Browse Source

feat(cms): 新增根据code查询导航记录功能- 在CmsNavigationController中添加getByCode接口- 实现根据code关联查询导航记录逻辑

- 补充service层getByIdRelByCodeRel方法定义与实现
- 完善根据code查询时的父子栏目及模型信息关联加载
- 添加对页面设计与模型banner图片的自动填充处理
dev3
科技小王子 5 days ago
parent
commit
9e738a9598
  1. 7
      src/main/java/com/gxwebsoft/cms/controller/CmsNavigationController.java
  2. 2
      src/main/java/com/gxwebsoft/cms/service/CmsNavigationService.java
  3. 29
      src/main/java/com/gxwebsoft/cms/service/impl/CmsNavigationServiceImpl.java

7
src/main/java/com/gxwebsoft/cms/controller/CmsNavigationController.java

@ -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) {

2
src/main/java/com/gxwebsoft/cms/service/CmsNavigationService.java

@ -40,4 +40,6 @@ public interface CmsNavigationService extends IService<CmsNavigation> {
CmsNavigation getByIdRel(Integer navigationId);
void saveAsync(CmsNavigation cmsNavigation);
CmsNavigation getByIdRelByCodeRel(String code);
}

29
src/main/java/com/gxwebsoft/cms/service/impl/CmsNavigationServiceImpl.java

@ -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;
}
}

Loading…
Cancel
Save