From c477b897db9991f5b0ad2d6d299ef7065466b862 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 16 Sep 2025 12:00:58 +0800 Subject: [PATCH] feat(ai): 新增首页推荐V2 接口并优化相关功能 --- src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java | 11 ++++++++++- src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java | 29 +++++++++++++++++++++++++++++ src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java | 2 ++ 3 files changed, 41 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java index dd25304..669c5e1 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java @@ -37,7 +37,16 @@ return aiProductCategoryService.hot(); } - @ApiOperation(value = "首页推荐(带公司ID)", notes = "首页推荐(带公司ID)") + @ApiOperation(value = "学习首页推荐(带公司ID)", notes = "学习首页推荐(带公司ID)") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class) + }) + @PostMapping(value = "/hotV2") + public FebsResponse hotV2(@RequestBody ApiProductCategoryHotDto dto) { + return aiProductCategoryService.hotV2(dto); + } + + @ApiOperation(value = "培训首页推荐(带公司ID)", notes = "培训首页推荐(带公司ID)") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class) }) diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java index c29fd8d..a709a69 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java @@ -29,6 +29,8 @@ FebsResponse hotV1(ApiProductCategoryHotDto dto); + FebsResponse hotV2(ApiProductCategoryHotDto dto); + FebsResponse categoryList(ApiProductCategoryPageDto dto); String getDefaultProductCategoryId(); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java index 771f4ef..7baeb7a 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java @@ -103,6 +103,35 @@ } @Override + public FebsResponse hotV2(ApiProductCategoryHotDto dto) { + + List<ApiProductCategoryVo> list = new ArrayList<>(); + + LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); + if (StrUtil.isNotEmpty(dto.getCompanyId())){ + query.eq(AiProductCategory::getCompanyId, dto.getCompanyId()); + }else{ + query.isNull(AiProductCategory::getCompanyId); + } + query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_ONE.getLevel()); + query.eq(AiProductCategory::getState, 1); + query.eq(AiProductCategory::getHotState, 1); + query.orderByAsc(AiProductCategory::getSort); + List<AiProductCategory> listByQuery = this.getListByQuery(query); + if (CollUtil.isNotEmpty(listByQuery)){ + for (AiProductCategory aiProductCategory : listByQuery){ + ApiProductCategoryVo apiProductCategoryVo = new ApiProductCategoryVo(); + apiProductCategoryVo.setId(aiProductCategory.getId()); + apiProductCategoryVo.setName(aiProductCategory.getName()); + apiProductCategoryVo.setBackImg(aiProductCategory.getBackImg()); + apiProductCategoryVo.setIconImg(aiProductCategory.getIconImg()); + list.add(apiProductCategoryVo); + } + } + return new FebsResponse().success().data(list); + } + + @Override public FebsResponse categoryList(ApiProductCategoryPageDto dto) { // 创建分页对象,传入当前页和每页大小 Page<ApiProductCategoryVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); -- Gitblit v1.9.1