feat(cms): 新增根据code查询导航记录功能- 在CmsNavigationController中添加getByCode接口- 实现根据code关联查询导航记录逻辑
- 补充service层getByIdRelByCodeRel方法定义与实现 - 完善根据code查询时的父子栏目及模型信息关联加载 - 添加对页面设计与模型banner图片的自动填充处理
This commit is contained in:
@@ -72,6 +72,13 @@ public class CmsNavigationController extends BaseController {
|
||||
return success(cmsNavigationService.getByIdRel(id));
|
||||
}
|
||||
|
||||
@Operation(summary = "根据code查询网站导航记录表")
|
||||
@GetMapping("/{code}")
|
||||
public ApiResult<CmsNavigation> getByCode(@PathVariable("code") String code) {
|
||||
// 使用关联查询
|
||||
return success(cmsNavigationService.getByIdRelByCodeRel(code));
|
||||
}
|
||||
|
||||
@Operation(summary = "添加网站导航记录表")
|
||||
@PostMapping()
|
||||
public ApiResult<?> save(@RequestBody CmsNavigation cmsNavigation) {
|
||||
|
||||
@@ -40,4 +40,6 @@ public interface CmsNavigationService extends IService<CmsNavigation> {
|
||||
CmsNavigation getByIdRel(Integer navigationId);
|
||||
|
||||
void saveAsync(CmsNavigation cmsNavigation);
|
||||
|
||||
CmsNavigation getByIdRelByCodeRel(String code);
|
||||
}
|
||||
|
||||
@@ -158,4 +158,33 @@ public class CmsNavigationServiceImpl extends ServiceImpl<CmsNavigationMapper, C
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public CmsNavigation getByIdRelByCodeRel(String code) {
|
||||
CmsNavigationParam param = new CmsNavigationParam();
|
||||
param.setCode(code);
|
||||
CmsNavigation navigation;
|
||||
navigation = param.getOne(baseMapper.selectListRel(param));
|
||||
if (ObjectUtil.isEmpty(navigation)) {
|
||||
return null;
|
||||
}
|
||||
// 父级栏目并且是page模型则读取子项目第一条
|
||||
if (navigation.getParentId().equals(0) && navigation.getModel().equals("page")) {
|
||||
final CmsNavigation parent = this.getOne(new LambdaQueryWrapper<CmsNavigation>().eq(CmsNavigation::getParentId, navigation.getNavigationId()).last("limit 1"));
|
||||
if (ObjectUtil.isNotEmpty(parent)) {
|
||||
navigation = parent;
|
||||
}
|
||||
}
|
||||
// 所属页面
|
||||
navigation.setDesign(cmsDesignService.getOne(new LambdaQueryWrapper<CmsDesign>().eq(CmsDesign::getCategoryId, navigation.getNavigationId()).last("limit 1")));
|
||||
// 所属模型
|
||||
if (StrUtil.isNotBlank(navigation.getModel())) {
|
||||
navigation.setModelInfo(cmsModelService.getOne(new LambdaQueryWrapper<CmsModel>().eq(CmsModel::getModel, navigation.getModel()).last("limit 1")));
|
||||
if (StrUtil.isBlank(navigation.getBanner())) {
|
||||
navigation.setBanner(navigation.getModelInfo().getBanner());
|
||||
navigation.setMpBanner(navigation.getModelInfo().getThumb());
|
||||
}
|
||||
}
|
||||
return navigation;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user