From 85069103bd0b1a801924c660daad78aedd0bfb6c Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 18 Sep 2025 16:52:52 +0800 Subject: [PATCH] ``` feat(AiMemberTalkStreamService): 添加answerV3方法以支持流式生成报告 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java | 93 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 87 insertions(+), 6 deletions(-) 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 2f0697e..f59f046 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 @@ -1,14 +1,18 @@ package cc.mrbird.febs.ai.service.impl; +import cc.mrbird.febs.ai.entity.AiMemberRole; import cc.mrbird.febs.ai.entity.AiProductCategory; import cc.mrbird.febs.ai.enumerates.ProductCategoryLevelEnum; import cc.mrbird.febs.ai.mapper.AiProductCategoryMapper; +import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryAllDto; +import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryHotDto; import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryPageDto; import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo; import cc.mrbird.febs.ai.service.AiProductCategoryService; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.vo.ApiActivityInfoVo; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -70,17 +74,89 @@ } @Override - public FebsResponse categoryList(ApiProductCategoryPageDto dto) { - // 创建分页对象,传入当前页和每页大小 - Page<ApiProductCategoryVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); - Page<ApiProductCategoryVo> pageListByQuery = this.getPageListByQuery(page, dto); - return new FebsResponse().success().data(pageListByQuery); + public FebsResponse hotV1(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_TWO.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 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 categoryChildList(ApiProductCategoryPageDto dto) { + List<ApiProductCategoryVo> vos = new ArrayList<>(); + + List<AiProductCategory> aiProductCategories = aiProductCategoryMapper.selectList( + Wrappers.lambdaQuery(AiProductCategory.class) + .eq(AiProductCategory::getParentId, dto.getParentId()) + .eq(AiProductCategory::getState, 1) + .orderByAsc(AiProductCategory::getSort) + ); + if (CollUtil.isNotEmpty(aiProductCategories)){ + for (AiProductCategory aiProductCategory : aiProductCategories) { + ApiProductCategoryVo vo = new ApiProductCategoryVo(); + vo.setId(aiProductCategory.getId()); + vo.setName(aiProductCategory.getName()); + vos.add(vo); + } + } + return new FebsResponse().success().data(vos); } @Override public String getDefaultProductCategoryId() { LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); query.eq(AiProductCategory::getState, 1); + query.isNull(AiProductCategory::getCompanyId); query.eq(AiProductCategory::getHotState, 1); query.orderByAsc(AiProductCategory::getSort); query.last("limit 1"); @@ -92,9 +168,14 @@ } @Override - public FebsResponse allList() { + public FebsResponse allList(ApiProductCategoryAllDto 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::getState, 1); query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_ONE.getLevel()); query.orderByAsc(AiProductCategory::getSort); -- Gitblit v1.9.1