Administrator
yesterday 3b05389a5bcf93ead612761835952699a4b2e302
refactor(ai): 重构产品配置相关功能

- 移除 AdminMoveChooseInfoDto 中的 companyId 字段
- 在 AiMemberRoleController 和 AiProductController 中添加获取当前用户公司 ID 的逻辑
- 更新 AiMemberRoleServiceImpl 和 AiProductServiceImpl 中的逻辑,使用从数据库获取的公司 ID
- 修复产品问题列表页面的难度格式显示错误
- 优化产品视图控制器中的数据查询逻辑
7 files modified
29 ■■■■ changed files
src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java 5 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java 12 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java
@@ -75,8 +75,6 @@
    @ControllerEndpoint(operation = "产品配置", exceptionMessage = "操作失败")
    public FebsResponse productSet(@RequestBody @Valid AdminMoveChooseInfoDto dto) {
        String companyId = getCurrentUserCompanyId();
        dto.setCompanyId(companyId);
        return aiMemberRoleService.productSet(dto);
    }
}
src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java
@@ -30,7 +30,8 @@
    @GetMapping("list")
    public FebsResponse list(AiProduct dto, QueryRequest request) {
        String companyId = getCurrentUserCompanyId();
        dto.setCompanyId(companyId);
        Map<String, Object> data = getDataTable(aiProductService.listInPage(dto, request));
        return new FebsResponse().success().data(data);
    }
@@ -50,6 +51,8 @@
    @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败")
    public FebsResponse add(@RequestBody @Valid AiProduct dto) {
        String companyId = getCurrentUserCompanyId();
        dto.setCompanyId(companyId);
        return aiProductService.add(dto);
    }
src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java
@@ -156,11 +156,13 @@
        Set<String> productIds = new HashSet<>();
        AiProduct entity = aiProductService.getById(id);
        String companyId = entity.getCompanyId();
        if(ObjectUtil.isNotNull(entity)){
            //右侧数据
            LambdaQueryWrapper<AiProductQuestionLink> query = Wrappers.lambdaQuery(AiProductQuestionLink.class);
            if(StrUtil.isNotEmpty(id)){
                query.eq(AiProductQuestionLink::getProductId, id);
                query.eq(AiProductQuestionLink::getCompanyId, companyId);
            }
            List<AiProductQuestionLink> selectedList = aiProductQuestionLinkService.selectListByQuery(query);
            if(CollUtil.isNotEmpty(selectedList)){
@@ -172,6 +174,7 @@
            LambdaQueryWrapper<AiProductQuestion> aiProductQuestionLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class);
            aiProductQuestionLambdaQueryWrapper.eq(AiProductQuestion::getProductCategoryId, entity.getProductCategoryId());
            aiProductQuestionLambdaQueryWrapper.eq(AiProductQuestion::getState, 1);
            aiProductQuestionLambdaQueryWrapper.eq(AiProductQuestion::getCompanyId, companyId);
            List<AiProductQuestion> allList = aiProductQuestionService.productQuestionTree(aiProductQuestionLambdaQueryWrapper);
            if(CollUtil.isNotEmpty(allList)){
                //stream流操作mallMembers,生成一个新的List<MallMemberVo>
src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java
@@ -8,7 +8,6 @@
public class AdminMoveChooseInfoDto {
    private String chooseId;
    private String companyId;
    private List<String> chooseIds;
}
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
@@ -124,10 +124,10 @@
    @Override
    public FebsResponse productSet(AdminMoveChooseInfoDto dto) {
        String chooseId = dto.getChooseId();
        String companyId = dto.getCompanyId();
        List<String> chooseIds = dto.getChooseIds();
        AiMemberRole aiMemberRole = this.getById(chooseId);
        if (ObjectUtil.isNotNull(aiMemberRole)) {
            String companyId = aiMemberRole.getCompanyId();
            aiMemberRoleProductService.deleteByQuery(
                    Wrappers.lambdaQuery(AiMemberRoleProduct.class)
                            .eq(AiMemberRoleProduct::getRoleId,chooseId)
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
@@ -55,6 +55,9 @@
        if (StrUtil.isNotEmpty(dto.getProductCategoryId())){
            query.eq(AiProduct::getProductCategoryId, dto.getProductCategoryId());
        }
        if (StrUtil.isNotEmpty(dto.getCompanyId())){
            query.eq(AiProduct::getCompanyId, dto.getCompanyId());
        }
        query.ne(AiProduct::getState, 2);
        query.orderByDesc(AiProduct::getHotState);
        query.orderByAsc(AiProduct::getSort);
@@ -173,15 +176,18 @@
        List<String> chooseIds = dto.getChooseIds();
        AiProduct aiProduct = this.getById(chooseId);
        if (ObjectUtil.isNotNull(aiProduct)) {
            String companyId = aiProduct.getCompanyId();
            aiProductPointLinkService.deleteByQuery(
                    Wrappers.lambdaQuery(AiProductPointLink.class)
                            .eq(AiProductPointLink::getProductId,chooseId)
                            .eq(AiProductPointLink::getCompanyId,companyId)
            );
            if(CollUtil.isNotEmpty(chooseIds)){
                Date createdTime = new Date();
                for (String item : chooseIds){
                    AiProductPointLink entity = new AiProductPointLink();
                    entity.setId(UUID.getSimpleUUIDString());
                    entity.setCompanyId(companyId);
                    entity.setProductId(chooseId);
                    entity.setProductPointId(item);
                    entity.setCreatedTime(createdTime);
@@ -199,15 +205,18 @@
        List<String> chooseIds = dto.getChooseIds();
        AiProduct aiProduct = this.getById(chooseId);
        if (ObjectUtil.isNotNull(aiProduct)) {
            String companyId = aiProduct.getCompanyId();
            aiProductRoleLinkService.deleteByQuery(
                    Wrappers.lambdaQuery(AiProductRoleLink.class)
                            .eq(AiProductRoleLink::getProductId,chooseId)
                    .eq(AiProductRoleLink::getCompanyId,companyId)
            );
            if(CollUtil.isNotEmpty(chooseIds)){
                Date createdTime = new Date();
                for (String item : chooseIds){
                    AiProductRoleLink entity = new AiProductRoleLink();
                    entity.setId(UUID.getSimpleUUIDString());
                    entity.setCompanyId(companyId);
                    entity.setProductId(chooseId);
                    entity.setProductRoleId(item);
                    entity.setCreatedTime(createdTime);
@@ -224,15 +233,18 @@
        List<String> chooseIds = dto.getChooseIds();
        AiProduct aiProduct = this.getById(chooseId);
        if (ObjectUtil.isNotNull(aiProduct)) {
            String companyId = aiProduct.getCompanyId();
            aiProductQuestionLinkService.deleteByQuery(
                    Wrappers.lambdaQuery(AiProductQuestionLink.class)
                            .eq(AiProductQuestionLink::getProductId,chooseId)
                    .eq(AiProductQuestionLink::getCompanyId,companyId)
            );
            if(CollUtil.isNotEmpty(chooseIds)){
                Date createdTime = new Date();
                for (String item : chooseIds){
                    AiProductQuestionLink entity = new AiProductQuestionLink();
                    entity.setId(UUID.getSimpleUUIDString());
                    entity.setCompanyId(companyId);
                    entity.setProductId(chooseId);
                    entity.setProductQuestionId(item);
                    entity.setCreatedTime(createdTime);
src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
@@ -67,9 +67,9 @@
<script type="text/html" id="difficultyFormat">
    {{# if(d.difficulty == 1) { }}
    <span>简单</span>
    {{# }else if(d.isNormal == 2) { }}
    {{# }else if(d.difficulty == 2) { }}
    <span>中等</span>
    {{# }else if(d.isNormal == 3) { }}
    {{# }else if(d.difficulty == 3) { }}
    <span>困难</span>
    {{# } else { }}
    <span>-</span>