From 4bfe57af40d98331721124837950c4329ad12baf Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 15 Sep 2025 15:07:03 +0800 Subject: [PATCH] feat(ai): 增加公司 ID 筛选功能 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java | 35 +++++++++++++++++++++++++++++++---- src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java | 6 +++--- src/main/java/cc/mrbird/febs/ai/controller/productCategory/AiProductCategoryController.java | 11 ++++++++--- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/AiProductCategoryController.java b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/AiProductCategoryController.java index 8063a2a..4cb3c8b 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/AiProductCategoryController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/AiProductCategoryController.java @@ -31,6 +31,8 @@ @GetMapping("list") public FebsResponse list(AiProductCategory dto, QueryRequest request) { + String companyId = getCurrentUserCompanyId(); + dto.setCompanyId(companyId); Map<String, Object> data = getDataTable(service.listInPage(dto, request)); return new FebsResponse().success().data(data); @@ -50,7 +52,8 @@ @PostMapping("add") @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败") public FebsResponse add(@RequestBody @Valid AiProductCategory dto) { - + String companyId = getCurrentUserCompanyId(); + dto.setCompanyId(companyId); return service.add(dto); } @@ -73,13 +76,15 @@ @GetMapping(value = "/categoryTree") public FebsResponse categoryTree() { - return new FebsResponse().success().data(service.categoryTree()); + String companyId = getCurrentUserCompanyId(); + return new FebsResponse().success().data(service.categoryTree(companyId)); } @GetMapping("categoryTree/parent") @ControllerEndpoint(exceptionMessage = "获取分类失败") public List<AiProductCategory> parent(){ - return service.parent(); + String companyId = getCurrentUserCompanyId(); + return service.parent(companyId); } } 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 3f640aa..7bf8837 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java @@ -25,7 +25,7 @@ */ AiProductCategory getById(String id); - List<AiProductCategory> getList(); + List<AiProductCategory> getList(String companyId); Map<String, AiProductCategory> selectMapByIds(Set<String> collect); @@ -39,7 +39,7 @@ FebsResponse delete(String id); - List<AiProductCategory> categoryTree(); + List<AiProductCategory> categoryTree(String companyId); - List<AiProductCategory> parent(); + List<AiProductCategory> parent(String companyId); } 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 8550d52..23dd18f 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 @@ -8,6 +8,7 @@ import cc.mrbird.febs.ai.util.UUID; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.exception.FebsException; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -43,8 +44,11 @@ } @Override - public List<AiProductCategory> getList() { + public List<AiProductCategory> getList(String companyId) { LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); + if (StrUtil.isNotEmpty(companyId)){ + query.eq(AiProductCategory::getCompanyId, companyId); + } query.ne(AiProductCategory::getState, 2); query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_ONE.getLevel()); query.orderByDesc(AiProductCategory::getHotState); @@ -106,6 +110,9 @@ Page<AiProductCategory> page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); + if (StrUtil.isNotEmpty(dto.getCompanyId())){ + query.eq(AiProductCategory::getCompanyId, dto.getCompanyId()); + } query.ne(AiProductCategory::getState, 2); query.orderByDesc(AiProductCategory::getHotState); query.orderByAsc(AiProductCategory::getSort); @@ -175,6 +182,21 @@ public FebsResponse update(AiProductCategory dto) { String id = dto.getId(); AiProductCategory entity = this.getById(id); + dto.setLevel(ProductCategoryLevelEnum.LEVEL_ONE.getLevel()); + String parentId = dto.getParentId(); + if (parentId.equals( id)){ + throw new FebsException("父类不能选择自己"); + } + if (StrUtil.isNotEmpty(parentId)){ + AiProductCategory parent = this.getById(parentId); + if ( + ObjectUtil.isNotNull(parent) + && parent.getLevel() < ProductCategoryLevelEnum.LEVEL_TWO.getLevel() + ){ + dto.setLevel(parent.getLevel() +1); + dto.setParentId(parentId); + } + } if (ObjectUtil.isNotNull( entity)){ this.update(null, Wrappers.lambdaUpdate(AiProductCategory.class) @@ -184,6 +206,8 @@ .set(AiProductCategory::getIconImg, dto.getIconImg()) .set(AiProductCategory::getSort, dto.getSort()) .set(AiProductCategory::getUpdatedTime, new Date()) + .set(AiProductCategory::getParentId, dto.getParentId()) + .set(AiProductCategory::getLevel, dto.getLevel()) .eq(AiProductCategory::getId, id) ); } @@ -206,14 +230,17 @@ } @Override - public List<AiProductCategory> categoryTree() { - return this.getList() ; + public List<AiProductCategory> categoryTree(String companyId) { + return this.getList(companyId) ; } @Override - public List<AiProductCategory> parent() { + public List<AiProductCategory> parent(String companyId) { LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); query.select(AiProductCategory::getId,AiProductCategory::getName); + if (StrUtil.isNotEmpty(companyId)){ + query.eq(AiProductCategory::getCompanyId, companyId); + } query.eq(AiProductCategory::getLevel, 1); query.ne(AiProductCategory::getState, 2); return this.getBaseMapper().selectList(query); -- Gitblit v1.9.1