From f417d6b965a16fb197ac8c49b383fbeedd28e23d Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期一, 11 九月 2023 15:44:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 server/company/src/main/java/com/doumee/api/business/GoodsController.java              |   27 +++
 server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java    |  202 ++++++++++++++++++++++++++++
 server/company/src/main/java/com/doumee/api/business/CategoryController.java           |   24 +++
 server/service/src/main/java/com/doumee/dao/business/model/dto/BatchDisableDTO.java    |   25 +++
 server/service/src/main/java/com/doumee/service/business/GoodsService.java             |    6 
 server/service/src/main/java/com/doumee/service/business/CategoryService.java          |    5 
 server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java |  120 ++++++++++++++++
 7 files changed, 402 insertions(+), 7 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/CategoryController.java b/server/company/src/main/java/com/doumee/api/business/CategoryController.java
index a666280..d3544d1 100644
--- a/server/company/src/main/java/com/doumee/api/business/CategoryController.java
+++ b/server/company/src/main/java/com/doumee/api/business/CategoryController.java
@@ -38,6 +38,15 @@
         return ApiResponse.success(categoryService.create(category));
     }
 
+
+    @PreventRepeat
+    @ApiOperation("浼佷笟鏂板缓鍒嗙被")
+    @PostMapping("/companyCreate")
+    @RequiresPermissions("business:category:create")
+    public ApiResponse companyCreate(@RequestBody Category category) {
+        return ApiResponse.success(categoryService.companyCreate(category));
+    }
+
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
     @RequiresPermissions("business:category:delete")
@@ -64,6 +73,14 @@
     @RequiresPermissions("business:category:update")
     public ApiResponse updateById(@RequestBody Category category) {
         categoryService.updateById(category);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("浼佷笟鏍规嵁ID淇敼")
+    @PostMapping("/companyUpdateById")
+    @RequiresPermissions("business:category:update")
+    public ApiResponse companyUpdateById(@RequestBody Category category) {
+        categoryService.companyUpdateById(category);
         return ApiResponse.success(null);
     }
 
@@ -108,4 +125,11 @@
         return ApiResponse.success(categoryService.findListForGoods(goodsId));
     }
 
+
+    @ApiOperation("浼佷笟閫夋嫨鍒嗙被鍒楄〃 - H5")
+    @PostMapping("/companyFindList")
+    public ApiResponse<List<Category>> companyFindList (@RequestBody Category category) {
+        return ApiResponse.success(categoryService.companyFindList(category));
+    }
+
 }
diff --git a/server/company/src/main/java/com/doumee/api/business/GoodsController.java b/server/company/src/main/java/com/doumee/api/business/GoodsController.java
index 50df5e6..ec599bc 100644
--- a/server/company/src/main/java/com/doumee/api/business/GoodsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/GoodsController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Goods;
+import com.doumee.dao.business.model.dto.BatchDisableDTO;
 import com.doumee.dao.business.model.dto.GoodCreatePlatRequest;
 import com.doumee.dao.business.model.dto.GoodsRequest;
 import com.doumee.service.business.GoodsService;
@@ -41,6 +42,17 @@
     public ApiResponse create(@RequestBody Goods goods) {
         return ApiResponse.success(goodsService.create(goods));
     }
+
+
+
+    @PreventRepeat
+    @ApiOperation("浼佷笟鏂板缓鍟嗗搧")
+    @PostMapping("/companyCreate")
+    @RequiresPermissions("business:goods:create")
+    public ApiResponse companyCreate(@RequestBody Goods goods) {
+        return ApiResponse.success(goodsService.companyCreate(goods));
+    }
+
     @PreventRepeat
     @ApiOperation("浠庡钩鍙伴�夋嫨鍟嗗搧")
     @PostMapping("/createPlat")
@@ -75,6 +87,14 @@
     @RequiresPermissions("business:goods:update")
     public ApiResponse updateById(@RequestBody Goods goods) {
         goodsService.updateById(goods);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("浼佷笟鏍规嵁ID淇敼")
+    @PostMapping("/companyUpdateById")
+    @RequiresPermissions("business:goods:update")
+    public ApiResponse companyUpdateById(@RequestBody Goods goods) {
+        goodsService.companyUpdateById(goods);
         return ApiResponse.success(null);
     }
 
@@ -118,6 +138,13 @@
         return ApiResponse.success(null);
     }
 
+    @ApiOperation("鎵归噺淇敼鐘舵��")
+    @PostMapping("/batchUpdateDisableById")
+    @RequiresPermissions("business:category:update")
+    public ApiResponse<String> batchUpdateDisableById(@RequestBody BatchDisableDTO batchDisableDTO) {
+        return ApiResponse.success(goodsService.batchUpdateDisableById(batchDisableDTO));
+    }
+
 
     @ApiOperation("鍒楄〃 - H5")
     @PostMapping("/list")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BatchDisableDTO.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BatchDisableDTO.java
new file mode 100644
index 0000000..5711daa
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BatchDisableDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.business.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/9/11 10:27
+ */
+@Data
+public class BatchDisableDTO {
+
+
+    @ApiModelProperty(value = "鎿嶄綔涓婚敭澶氫釜浠�,鍒嗗壊")
+    private String ids;
+
+
+    @ApiModelProperty(value = "鎿嶄綔鍒嗙被锛�0=涓婃灦锛�1=涓嬫灦")
+    private Integer status;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/CategoryService.java b/server/service/src/main/java/com/doumee/service/business/CategoryService.java
index 2784b17..3131e15 100644
--- a/server/service/src/main/java/com/doumee/service/business/CategoryService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CategoryService.java
@@ -20,6 +20,9 @@
      */
     Integer create(Category category);
 
+
+    Integer companyCreate(Category category);
+
     /**
      * 涓婚敭鍒犻櫎
      *
@@ -50,6 +53,7 @@
      */
     void updateById(Category category);
 
+    void companyUpdateById(Category category);
     /**
      * 鎵归噺涓婚敭鏇存柊
      *
@@ -81,6 +85,7 @@
      */
     List<Category> findList(Category category);
 
+    List<Category> companyFindList(Category category);
     /**
      * 鏌ヨ绫诲埆
      * @param goodsId
diff --git a/server/service/src/main/java/com/doumee/service/business/GoodsService.java b/server/service/src/main/java/com/doumee/service/business/GoodsService.java
index ffeab8e..7be8af6 100644
--- a/server/service/src/main/java/com/doumee/service/business/GoodsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/GoodsService.java
@@ -4,6 +4,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Goods;
+import com.doumee.dao.business.model.dto.BatchDisableDTO;
 import com.doumee.dao.business.model.dto.GoodCreatePlatRequest;
 import com.doumee.dao.business.model.dto.GoodsRequest;
 import org.springframework.web.multipart.MultipartFile;
@@ -26,6 +27,8 @@
      * @return Integer
      */
     Integer create(Goods goods);
+
+    Integer companyCreate(Goods goods);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -55,6 +58,7 @@
      */
     void updateById(Goods goods);
 
+    void companyUpdateById(Goods goods);
     /**
      * 鎵归噺涓婚敭鏇存柊
      *
@@ -64,6 +68,8 @@
 
     void updateDisableById(Goods goods);
 
+    String batchUpdateDisableById(BatchDisableDTO batchDisableDTO);
+
     /**
      * 涓婚敭鏌ヨ
      *
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 b3ed768..a51db4a 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
@@ -116,10 +116,55 @@
                 cateBudgetMapper.insert(cateBudget);
             }
         }
-
-
         return category.getId();
     }
+
+
+    @Override
+    public Integer companyCreate(Category category) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(categoryMapper.selectCount(new QueryWrapper<Category>().eq("ISDELETED",Constants.ZERO)
+                .eq("COMPANY_ID",user.getCompanyId()).eq("name",category.getName()))>0){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+category.getName()+"銆戝凡瀛樺湪");
+        };
+        category.setStatus(Constants.ZERO);
+        category.setCreateDate(new Date());
+        category.setCreator(user.getId());
+        category.setIsdeleted(Constants.ZERO);
+        //澶勭悊鎷奸煶闂
+        category.setPinyin(PinYinUtil.getFullSpell(category.getName()));
+        category.setShortPinyin(PinYinUtil.getFirstSpell(category.getName()));
+        categoryMapper.insert(category);
+        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);
+            }
+        }
+        List<CateBudget>  budgetList = category.getBudgetList();
+        if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){
+            for (int i = 0; i < budgetList.size(); i++) {
+                CateBudget cateBudget = budgetList.get(i);
+                cateBudget.setCreator(user.getId());
+                cateBudget.setCreateDate(new Date());
+                cateBudget.setIsdeleted(Constants.ZERO);
+                cateBudget.setSortnum(i+Constants.ONE);
+                cateBudget.setStatus(Constants.ZERO);
+                cateBudget.setCategoryId(category.getId());
+                cateBudgetMapper.insert(cateBudget);
+            }
+        }
+        return category.getId();
+    }
+
+
 
     @Override
     public void deleteById(Integer id) {
@@ -209,6 +254,52 @@
 //            }
 //        }
 
+        cateBudgetMapper.delete(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",category.getId()));
+        List<CateBudget>  budgetList = category.getBudgetList();
+        if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){
+            for (int i = 0; i < budgetList.size(); i++) {
+                CateBudget cateBudget = budgetList.get(i);
+                cateBudget.setCreator(user.getId());
+                cateBudget.setCreateDate(new Date());
+                cateBudget.setIsdeleted(Constants.ZERO);
+                cateBudget.setSortnum(i+Constants.ONE);
+                cateBudget.setStatus(Constants.ZERO);
+                cateBudget.setCategoryId(category.getId());
+                cateBudgetMapper.insert(cateBudget);
+            }
+        }
+    }
+
+
+    @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){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+category.getName()+"銆戝凡瀛樺湪");
+        };
+        category.setStatus(Constants.ZERO);
+        category.setEditDate(new Date());
+        category.setEditor(user.getId());
+        category.setIsdeleted(Constants.ZERO);
+        //澶勭悊鎷奸煶闂
+        category.setPinyin(PinYinUtil.getFullSpell(category.getName()));
+        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);
+            }
+        }
         cateBudgetMapper.delete(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",category.getId()));
         List<CateBudget>  budgetList = category.getBudgetList();
         if(!Objects.isNull(budgetList)&&budgetList.size()> Constants.ZERO){
@@ -385,4 +476,29 @@
         QueryWrapper<Category> wrapper = new QueryWrapper<>(category);
         return categoryMapper.selectCount(wrapper);
     }
+
+
+    /**********************************************************************************/
+
+    @Override
+    public List<Category> companyFindList(Category category) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<Category> wrapper = new QueryWrapper<>(category)
+                .eq("STATUS",Constants.ZERO)
+                .eq("COMPANY_ID",user.getCompanyId())
+                .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();
+        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 ")));
+            c.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>().eq("STATUS",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc("SORTNUM")));
+        }
+        return list;
+    }
+
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index 0e5c1ad..fd52229 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -17,6 +17,7 @@
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.GoodsJoinMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.model.dto.BatchDisableDTO;
 import com.doumee.dao.business.model.dto.GoodCreatePlatRequest;
 import com.doumee.dao.business.model.dto.GoodsRequest;
 import com.doumee.service.business.GoodsService;
@@ -41,10 +42,7 @@
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 鍟嗗搧淇℃伅琛⊿ervice瀹炵幇
@@ -74,6 +72,12 @@
 
     @Autowired
     private GoodsJoinMapper goodsJoinMapper;
+    @Autowired
+    private CateParamSelectMapper cateParamSelectMapper;
+
+    @Autowired
+    private BaseGoodsMapper baseGoodsMapper;
+
 
 
     @Override
@@ -171,13 +175,77 @@
                 goodsParam.setCreator(user.getId());
                 goodsParam.setCreateDate(new Date());
                 goodsParam.setIsdeleted(Constants.ZERO);
-                goodsParam.setSortnum(i+Constants.ONE);
                 goodsParam.setStatus(Constants.ZERO);
+                goodsParam.setSortnum(i+Constants.ONE);
                 goodsParam.setGoodsId(goods.getId());
                 goodsParamMapper.insert(goodsParam);
             }
         }
+        return goods.getId();
+    }
 
+
+    @Override
+    public Integer companyCreate(Goods goods) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(user.getType()==1){
+            goods.setCompanyId(user.getCompanyId());
+        }else{
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛绫诲埆閿欒锛屾棤娉曡繘琛岃鎿嶄綔");
+        }
+        if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("COMPANY_ID",user.getCompanyId()).eq("ISDELETED",Constants.ZERO).eq("name",goods.getName()))>0){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+goods.getName()+"銆戝凡瀛樺湪");
+        }
+        goods.setStatus(Constants.ZERO);
+        goods.setCreateDate(new Date());
+        goods.setCreator(user.getId());
+        goods.setIsdeleted(Constants.ZERO);
+        //澶勭悊鎷奸煶闂
+        goods.setPinyin(PinYinUtil.getFullSpell(goods.getName()));
+        goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName()));
+        goodsMapper.insert(goods);
+
+        List<Multifile> multifileList = goods.getMultifileList();
+        if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){
+            for (int i = 0; i < multifileList.size(); i++) {
+                Multifile multifile = multifileList.get(i);
+                multifile.setCreator(user.getId());
+                multifile.setCreateDate(new Date());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setSortnum(i+Constants.ONE);
+                multifile.setObjId(goods.getId());
+                multifile.setType(Constants.ZERO);
+                multifile.setObjType(Constants.ZERO);
+                multifileMapper.insert(multifile);
+            }
+        }
+        List<GoodsParam> goodsParamList = goods.getGoodsParamList();
+        if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){
+            for (int i = 0; i < goodsParamList.size(); i++) {
+                GoodsParam goodsParam = goodsParamList.get(i);
+                goodsParam.setCreator(user.getId());
+                goodsParam.setCreateDate(new Date());
+                goodsParam.setIsdeleted(Constants.ZERO);
+                goodsParam.setStatus(Constants.ZERO);
+                goodsParam.setSortnum(i+Constants.ONE);
+                goodsParam.setGoodsId(goods.getId());
+                goodsParamMapper.insert(goodsParam);
+                //瀛樺偍 cate_param_select 鏌ヨ鏄惁宸插瓨鍦�
+                if(cateParamSelectMapper.selectCount(new QueryWrapper<CateParamSelect>()
+                        .eq("PARAM_ID",goodsParam.getPramaId()).eq("NAME",goodsParam.getName()))<=Constants.ZERO){
+                    CateParamSelect cateParamSelect = new CateParamSelect();
+                    cateParamSelect.setCreator(user.getId());
+                    cateParamSelect.setCreateDate(new Date());
+                    cateParamSelect.setName(goodsParam.getVal());
+                    cateParamSelect.setIsdeleted(Constants.ZERO);
+                    cateParamSelect.setStatus(Constants.ZERO);
+                    cateParamSelect.setParamId(goodsParam.getPramaId());
+                    cateParamSelect.setCategoryId(goods.getCategoryId());
+                    cateParamSelect.setStatus(Constants.ZERO);
+                    cateParamSelectMapper.insert(cateParamSelect);
+                };
+            }
+        }
         return goods.getId();
     }
 
@@ -251,6 +319,73 @@
         }
     }
 
+
+    @Override
+    public void companyUpdateById(Goods goods) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(user.getType()==1){
+            goods.setCompanyId(user.getCompanyId());
+        }else{
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛绫诲埆閿欒锛屾棤娉曡繘琛岃鎿嶄綔");
+        }
+        if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("COMPANY_ID",user.getCompanyId()).eq("ISDELETED",Constants.ZERO).ne("id",goods.getId()).eq("name",goods.getName()))>0){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+goods.getName()+"銆戝凡瀛樺湪");
+        };
+        goods.setStatus(Constants.ZERO);
+        goods.setEditDate(new Date());
+        goods.setEditor(user.getId());
+        goods.setIsdeleted(Constants.ZERO);
+        //澶勭悊鎷奸煶闂
+        goods.setPinyin(PinYinUtil.getFullSpell(goods.getName()));
+        goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName()));
+        goodsMapper.updateById(goods);
+
+        multifileMapper.delete(new QueryWrapper<Multifile>().eq("OBJ_ID",goods.getId()));
+        List<Multifile> multifileList = goods.getMultifileList();
+        if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){
+            for (int i = 0; i < multifileList.size(); i++) {
+                Multifile multifile = multifileList.get(i);
+                multifile.setCreator(user.getId());
+                multifile.setCreateDate(new Date());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setSortnum(i+Constants.ONE);
+                multifile.setObjId(goods.getId());
+                multifile.setType(Constants.ZERO);
+                multifile.setObjType(Constants.ZERO);
+                multifileMapper.insert(multifile);
+            }
+        }
+        goodsParamMapper.delete(new QueryWrapper<GoodsParam>().eq("GOODS_ID",goods.getId()));
+        List<GoodsParam> goodsParamList = goods.getGoodsParamList();
+        if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){
+            for (int i = 0; i < goodsParamList.size(); i++) {
+                GoodsParam goodsParam = goodsParamList.get(i);
+                goodsParam.setCreator(user.getId());
+                goodsParam.setCreateDate(new Date());
+                goodsParam.setIsdeleted(Constants.ZERO);
+                goodsParam.setSortnum(i+Constants.ONE);
+                goodsParam.setStatus(Constants.ZERO);
+                goodsParam.setGoodsId(goods.getId());
+                goodsParamMapper.insert(goodsParam);
+                //瀛樺偍 cate_param_select 鏌ヨ鏄惁宸插瓨鍦�
+                if(cateParamSelectMapper.selectCount(new QueryWrapper<CateParamSelect>()
+                        .eq("PARAM_ID",goodsParam.getPramaId()).eq("NAME",goodsParam.getName()))<=Constants.ZERO){
+                    CateParamSelect cateParamSelect = new CateParamSelect();
+                    cateParamSelect.setCreator(user.getId());
+                    cateParamSelect.setCreateDate(new Date());
+                    cateParamSelect.setName(goodsParam.getVal());
+                    cateParamSelect.setIsdeleted(Constants.ZERO);
+                    cateParamSelect.setStatus(Constants.ZERO);
+                    cateParamSelect.setParamId(goodsParam.getPramaId());
+                    cateParamSelect.setCategoryId(goods.getCategoryId());
+                    cateParamSelect.setStatus(Constants.ZERO);
+                    cateParamSelectMapper.insert(cateParamSelect);
+                };
+            }
+        }
+    }
+
+
     @Override
     public void updateByIdInBatch(List<Goods> goodss) {
         if (CollectionUtils.isEmpty(goodss)) {
@@ -265,11 +400,68 @@
     @Override
     public void updateDisableById(Goods goods) {
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Goods dbGoods = goodsMapper.selectById(goods.getId());
+        if(Objects.isNull(dbGoods)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        //鎷夊紡鍟嗗搧 涓� 涓婃灦鏃讹紝闇�瑕侀檺鍒� 骞冲彴鍟嗗搧鏄惁宸蹭笅鏋�
+        if(dbGoods.getType().equals(Constants.goodsType.PULL)&&goods.getStatus().equals(Constants.ZERO)){
+            BaseGoods baseGoods = baseGoodsMapper.selectById(dbGoods.getGoodsId());
+            if(Objects.isNull(baseGoods)){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌骞冲彴鍟嗗搧淇℃伅");
+            }
+            if(!baseGoods.getStatus().equals(Constants.ZERO)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"骞冲彴鍟嗗搧宸蹭笅鏋讹紝鏃犳硶涓婃灦");
+            }
+        }
         goods.setEditDate(new Date());
         goods.setEditor(user.getId());
         goodsMapper.updateById(goods);
     }
 
+    /**
+     * 鎵归噺涓婁笅鏋�
+     * @param batchDisableDTO
+     * @return
+     */
+    @Override
+    public String batchUpdateDisableById(BatchDisableDTO batchDisableDTO) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(StringUtils.isBlank(batchDisableDTO.getIds())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇烽�夋嫨瀵瑰簲鐨勫晢鍝佽繘琛岃鎿嶄綔");
+        }
+        if(!(batchDisableDTO.getStatus().equals(Constants.ZERO)||batchDisableDTO.getStatus().equals(Constants.ONE))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔绫诲瀷閿欒");
+        }
+        Integer okNum = 0;
+        Integer errNum = 0;
+        List<String> goodsList  = Arrays.asList(batchDisableDTO.getIds().split(","));
+        for (String goodsId:goodsList) {
+            Goods dbGoods = goodsMapper.selectById(goodsId);
+            if(Objects.isNull(dbGoods)){
+                errNum++;
+                continue;
+            }
+            //鎷夊紡鍟嗗搧 涓� 涓婃灦鏃讹紝闇�瑕侀檺鍒� 骞冲彴鍟嗗搧鏄惁宸蹭笅鏋�
+            if(dbGoods.getType().equals(Constants.goodsType.PULL)&&batchDisableDTO.getStatus().equals(Constants.ZERO)){
+                BaseGoods baseGoods = baseGoodsMapper.selectById(dbGoods.getGoodsId());
+                if(Objects.isNull(baseGoods)||!baseGoods.getStatus().equals(Constants.ZERO)){
+                    errNum++;
+                    continue;
+                }
+            }
+            dbGoods.setEditDate(new Date());
+            dbGoods.setEditor(user.getId());
+            dbGoods.setStatus(batchDisableDTO.getStatus());
+            goodsMapper.updateById(dbGoods);
+            okNum++;
+        }
+        return "鏇存柊鎴愬姛鏁伴噺("+okNum+");鏇存柊澶辫触鏁伴噺("+errNum+")";
+    }
+
+
+
+
     @Override
     public Goods findById(Integer id) {
         Goods goods = goodsMapper.selectById(id);

--
Gitblit v1.9.3