From dcdb0231034810232f2542f3865666ebf72daf11 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 30 四月 2025 16:45:34 +0800
Subject: [PATCH] sf

---
 server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java |  184 +++++++++++++++++++++++++++++----------------
 1 files changed, 118 insertions(+), 66 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index 233aebf..1497b58 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -11,6 +11,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.CateAttrMapper;
 import com.doumee.dao.business.CateParamMapper;
+import com.doumee.dao.business.CateParamSelectMapper;
 import com.doumee.dao.business.CategoryMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.CategoryService;
@@ -47,6 +48,9 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private CateParamSelectMapper cateParamSelectMapper;
 
     @Override
     public Integer create(Category category) {
@@ -223,8 +227,8 @@
             }
         }
 
-        this.dealCateAttr(category.getAttrFirstList(),Constants.ZERO,category.getId(),user);
-        this.dealCateAttr(category.getAttrSecondList(),Constants.ONE,category.getId(),user);
+//        this.dealCateAttr(category.getAttrFirstList(),Constants.ZERO,category.getId(),user);
+//        this.dealCateAttr(category.getAttrSecondList(),Constants.ONE,category.getId(),user);
 //        cateAttrMapper.delete(new QueryWrapper<CateAttr>().eq("CATEGORY_ID",category.getId()));
 //        List<CateAttr>  attrFirst = category.getAttrFirstList();
 //        if(!Objects.isNull(attrFirst)&&attrFirst.size()> Constants.ZERO){
@@ -275,7 +279,8 @@
     @Override
     public void companyUpdateById(Category category) {
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO).ne("id",category.getId()).eq("name",category.getName()))>0){
+        if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO).eq("COMPANY_ID",user.getCompanyId())
+                .ne("id",category.getId()).eq("name",category.getName()))>0){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+category.getName()+"銆戝凡瀛樺湪");
         };
         category.setStatus(Constants.ZERO);
@@ -287,20 +292,7 @@
         category.setShortPinyin(PinYinUtil.getFirstSpell(category.getName()));
         categoryMapper.updateById(category);
         //澶勭悊灞炴�ч厤缃�
-        cateParamMapper.delete(new QueryWrapper<CateParam>().eq("CATEGORY_ID",category.getId()));
-        List<CateParam> paramList = category.getParamList();
-        if(!Objects.isNull(paramList)&&paramList.size()> Constants.ZERO){
-            for (int i = 0; i < paramList.size(); i++) {
-                CateParam cateParam = paramList.get(i);
-                cateParam.setCreator(user.getId());
-                cateParam.setCreateDate(new Date());
-                cateParam.setIsdeleted(Constants.ZERO);
-                cateParam.setSortnum(i+Constants.ONE);
-                cateParam.setStatus(Constants.ZERO);
-                cateParam.setCategoryId(category.getId());
-                cateParamMapper.insert(cateParam);
-            }
-        }
+        this.dealCateParam(category.getParamList(),category.getId(),user);
         cateBudgetMapper.delete(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",category.getId()));
         List<CateBudget>  budgetList = category.getBudgetList();
         if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){
@@ -318,60 +310,54 @@
     }
 
 
-    public void dealCateAttr(List<CateAttr> cateAttrList,Integer type,Integer categoryId,LoginUserInfo user){
-        List<CateAttr> oldCateAttrList = cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",categoryId).eq("TYPE",type));
-        List<CateAttr> addCateAttr = new ArrayList<>();
-        List<CateAttr> updCateAttr = new ArrayList<>();
-        List<CateAttr> delCateAttr = new ArrayList<>();
-        for (CateAttr oldCateAttr:oldCateAttrList) {
+    public void dealCateParam(List<CateParam> cateParamList,Integer categoryId,LoginUserInfo userInfo ){
+        List<CateParam> oldCateParamList = cateParamMapper.selectList(new QueryWrapper<CateParam>()
+                .eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",categoryId));
+        List<CateParam> updCateParam = new ArrayList<>();
+        List<CateParam> delCateParam = new ArrayList<>();
+        for (CateParam oldCateParam:oldCateParamList) {
             Boolean flag = false;
-            for (CateAttr cateAttr:cateAttrList) {
-                if(oldCateAttr.getName().equals(cateAttr.getName())){
-                    updCateAttr.add(oldCateAttr);
+            for (CateParam cateParam:cateParamList) {
+                if(oldCateParam.getId().equals(cateParam.getId())){
+                    updCateParam.add(cateParam);
                     flag = true;
                     break;
                 }
             }
             if(!flag){
-                delCateAttr.add(oldCateAttr);
+                delCateParam.add(oldCateParam);
             }
         }
-        CateAttr maxCateAttr = cateAttrMapper.selectOne(new QueryWrapper<CateAttr>().eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",categoryId).eq("TYPE",type).orderByDesc(" SORTNUM ").last(" limit 1  "));
+        CateParam maxCateParam = cateParamMapper.selectOne(new QueryWrapper<CateParam>().eq("ISDELETED",Constants.ZERO)
+                .eq("CATEGORY_ID",categoryId).orderByDesc(" SORTNUM ").last(" limit 1  "));
         Integer nextSortNum = 0;
-        if(!Objects.isNull(maxCateAttr)){
-            nextSortNum = maxCateAttr.getSortnum();
+        if(!Objects.isNull(maxCateParam)){
+            nextSortNum = maxCateParam.getSortnum();
         }
-        //澶勭悊鏂板鏁版嵁
-        for (CateAttr cateAttr:cateAttrList) {
-            Boolean flag = false;
-            for (CateAttr oldCateAttr:oldCateAttrList) {
-                if(cateAttr.getName().equals(oldCateAttr.getName())){
-                    flag = true;
-                    break;
-                }
-            }
-            if(!flag){
-                nextSortNum = nextSortNum + 1;
-                cateAttr.setCreator(user.getId());
-                cateAttr.setCreateDate(new Date());
-                cateAttr.setIsdeleted(Constants.ZERO);
-                cateAttr.setSortnum(nextSortNum);
-                cateAttr.setStatus(Constants.ZERO);
-                cateAttr.setCategoryId(categoryId);
-                cateAttr.setType(type);
-                addCateAttr.add(cateAttr);
+        for (CateParam cateParam:cateParamList) {
+            if(Objects.isNull(cateParam.getId())){
+                nextSortNum ++ ;
+                cateParam.setCreator(userInfo.getId());
+                cateParam.setCreateDate(new Date());
+                cateParam.setIsdeleted(Constants.ZERO);
+                cateParam.setSortnum(nextSortNum);
+                cateParam.setStatus(Constants.ZERO);
+                cateParam.setCategoryId(categoryId);
+                cateParamMapper.insert(cateParam);
             }
         }
-        addCateAttr.forEach(i->{
-            cateAttrMapper.insert(i);
+        delCateParam.forEach(i->{
+            cateParamMapper.deleteById(i.getId());
         });
-        delCateAttr.forEach(i->{
-            i.setIsdeleted(Constants.ONE);
+        updCateParam.forEach(i->{
             i.setEditDate(new Date());
-            i.setEditor(user.getId());
-            cateAttrMapper.updateById(i);
+            i.setEditor(userInfo.getId());
+            cateParamMapper.updateById(i);
         });
+
+
     }
+
 
     @Override
     public void updateDisableById(Category category) {
@@ -410,38 +396,101 @@
 
     @Override
     public List<Category> findList(Category category) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         QueryWrapper<Category> wrapper = new QueryWrapper<>(category)
                 .eq("STATUS",Constants.ZERO)
                 .eq("ISDELETED",Constants.ZERO)
+                .eq("COMPANY_ID",user.getCompanyId())
                 .orderByAsc(" SORTNUM ");
         List<Category> list = categoryMapper.selectList(wrapper);
-        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
-                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+//        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+//                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
+//        for (Category c:list) {
+//            c.setPrefixUrl(prefixUrl);
+//            c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+//            c.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+//            c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+//        }
+        return list;
+    }
+
+
+
+    @Override
+    public List<Category> findListSaaS(Category category) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!user.getType().equals(Constants.UserType.ZHUBO.getKey())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛绫诲埆閿欒锛岄潪涓绘挱鐢ㄦ埛!");
+        }
+        QueryWrapper<Category> wrapper = new QueryWrapper<>(category)
+                .eq("STATUS",Constants.ZERO)
+                .eq("ISDELETED",Constants.ZERO)
+                .eq("COMPANY_ID",user.getCompanyId())
+                .orderByAsc(" SORTNUM ");
+        List<Category> list = categoryMapper.selectList(wrapper);
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
         for (Category c:list) {
             c.setPrefixUrl(prefixUrl);
-            c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
-            c.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
-            c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+            c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",c.getId())
+                    .orderByAsc(" SORTNUM ")));
+            this.getParamSelect(c);
         }
         return list;
     }
 
+
+    public void getParamSelect(Category category){
+        List<CateParam> cateParamList =  cateParamMapper.selectList(new QueryWrapper<CateParam>()
+                .eq("CATEGORY_ID",category.getId())
+                .eq("ISSELECT",Constants.ONE)
+                .eq("ISDELETED",Constants.ZERO)
+                .eq("ISSHOW",Constants.ONE)
+                .orderByAsc(" SORTNUM ")
+                .last(" limit 2 ")
+        );
+        if(!Objects.isNull(cateParamList)&&cateParamList.size()>Constants.ZERO){
+            for (int i = 0; i < cateParamList.size(); i++) {
+                CateParam cateParam = cateParamList.get(i);
+                List<CateParamSelect> cateParamSelectList = cateParamSelectMapper.selectList(new QueryWrapper<CateParamSelect>()
+                        .eq("PARAM_ID",cateParam.getId())
+                        .eq("ISDELETED",Constants.ZERO));
+                if(i==0){
+                    category.setAttrFirst(cateParam.getName());
+                    category.setCateParamFirstList(cateParamSelectList);
+                }else if(i==1){
+                    category.setAttrSecond(cateParam.getName());
+                    category.setCateParamSecondList(cateParamSelectList);
+                }
+
+            }
+        }
+    }
+
+
+
     @Override
     public List<Category> findListForGoods(Integer goodsId) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         QueryWrapper<Category> wrapper = new QueryWrapper<Category>()
                 .eq("STATUS",Constants.ZERO)
                 .eq("ISDELETED",Constants.ZERO)
+                .eq("COMPANY_ID",loginUserInfo.getCompanyId())
                 .orderByAsc(" SORTNUM ");
         List<Category> list = categoryMapper.selectList(wrapper);
-        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
-                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
         for (Category c:list) {
             c.setPrefixUrl(prefixUrl);
             c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
             c.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
             c.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>()
-                            .select(" * , ( select gp.VAL from goods_param gp where gp.GOODS_ID = "+goodsId+" and gp.PRAMA_ID = cate_param.id limit 1 )  as val ")
-                    .eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+                        .select(" * , ( select gp.VAL from goods_param gp where gp.GOODS_ID = "+goodsId+" and gp.PRAMA_ID = cate_param.id limit 1 )  as val ")
+                    .eq("CATEGORY_ID",c.getId())
+                    .eq("ISSHOW",Constants.ONE)
+                    .eq("STATUS",Constants.ZERO)
+                    .eq("ISDELETED",Constants.ZERO)
+                    .orderByAsc(" SORTNUM ")));
         }
         return list;
     }
@@ -459,6 +508,9 @@
         }
         if (pageWrap.getModel().getStatus() != null) {
             queryWrapper.lambda().eq(Category::getStatus, pageWrap.getModel().getStatus());
+        }
+        if (pageWrap.getModel().getType() != null) {
+            queryWrapper.lambda().eq(Category::getType, pageWrap.getModel().getType());
         }
         if (pageWrap.getModel().getCompanyId() != null) {
             queryWrapper.lambda().eq(Category::getCompanyId, pageWrap.getModel().getCompanyId());
@@ -491,8 +543,8 @@
                 .eq("ISDELETED",Constants.ZERO)
                 .orderByAsc(" SORTNUM ");
         List<Category> list = categoryMapper.selectList(wrapper);
-        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
-                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
         for (Category c:list) {
             c.setPrefixUrl(prefixUrl);
             c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("STATUS",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));

--
Gitblit v1.9.3