From 6498a0b8204d8f46a34c8bc41f8dc847f1850995 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 11 九月 2023 17:38:05 +0800
Subject: [PATCH] 同步素材库商品

---
 server/company/src/main/java/com/doumee/api/business/GoodsController.java              |   27 +++
 server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java         |    5 
 server/service/src/main/java/com/doumee/dao/business/model/CateParam.java              |    4 
 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/impl/CategoryServiceImpl.java |  120 +++++++++++++
 server/service/src/main/resources/mappers/BaseCateParamMapper.xml                      |   21 ++
 server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java    |  202 +++++++++++++++++++++
 server/service/src/main/java/com/doumee/dao/business/BaseCateParamMapper.java          |   11 +
 server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java      |   14 +
 server/service/src/main/java/com/doumee/service/business/GoodsService.java             |    6 
 server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java           |    8 
 server/service/src/main/resources/mappers/BaseCategoryMapper.xml                       |   28 +++
 server/service/src/main/java/com/doumee/service/business/CategoryService.java          |    5 
 14 files changed, 487 insertions(+), 13 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/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java b/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java
index 6d8eb6a..fdfffcf 100644
--- a/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java
@@ -84,8 +84,20 @@
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
-    @RequiresPermissions("business:basecategory:query")
+//    @RequiresPermissions("business:basecategory:query")
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(baseCategoryService.findById(id));
     }
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param baseCategory 瀹炰綋瀵硅薄
+     * @return List<BaseCategory>
+     */
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @PostMapping("/findList")
+    public ApiResponse<List<BaseCategory>> findList(@RequestBody BaseCategory baseCategory){
+        return ApiResponse.success(baseCategoryService.findList(baseCategory));
+    }
 }
diff --git a/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java b/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
index 61818e1..efa43c4 100644
--- a/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
@@ -7,10 +7,11 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
 import com.doumee.dao.business.model.BaseGoods;
+import com.doumee.dao.business.model.dto.BaseGoodsCreateOrUpdateRequest;
 import com.doumee.service.business.BaseGoodsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
@@ -34,7 +35,7 @@
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
     @RequiresPermissions("business:basegoods:create")
-    public ApiResponse create(@RequestBody BaseGoods baseGoods) {
+    public ApiResponse create(@RequestBody BaseGoodsCreateOrUpdateRequest baseGoods) {
         return ApiResponse.success(baseGoodsService.create(baseGoods));
     }
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/BaseCateParamMapper.java b/server/service/src/main/java/com/doumee/dao/business/BaseCateParamMapper.java
index 610b927..64cc487 100644
--- a/server/service/src/main/java/com/doumee/dao/business/BaseCateParamMapper.java
+++ b/server/service/src/main/java/com/doumee/dao/business/BaseCateParamMapper.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.BaseCateParam;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author 姹熻箘韫�
@@ -9,4 +12,12 @@
  */
 public interface BaseCateParamMapper extends BaseMapper<BaseCateParam> {
 
+
+    /**
+     *
+     * 鏌ヨ鍙傛暟閰嶇疆
+     * @param categoryId
+     * @return
+     */
+    List<BaseCateParam> getBaseCateParamList(@Param("categoryId") Integer categoryId);
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java b/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java
index 86a4e9d..93ee05f 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java
@@ -12,6 +12,7 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 绱犳潗搴�-鍝佺被淇℃伅琛�
@@ -89,8 +90,11 @@
     @ExcelColumn(name="鍔犱环绯绘暟")
     private BigDecimal priceRate;
 
-    @ApiModelProperty(value = "鍥炬爣")
-    @ExcelColumn(name="鍥炬爣")
+    @ApiModelProperty(value = "鍥炬爣 鍏ㄨ矾寰�")
     @TableField(exist = false)
     private String imgfullurl;
+
+    @ApiModelProperty(value = "鍝佺被鍙傛暟")
+    @TableField(exist = false)
+    private List<BaseCateParam> baseCateParamList;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/CateParam.java b/server/service/src/main/java/com/doumee/dao/business/model/CateParam.java
index 423b765..329305f 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/CateParam.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/CateParam.java
@@ -78,5 +78,7 @@
     @ExcelColumn(name="鎵�灞炲搧绫荤紪鐮�(鍏宠仈category琛�)")
     private Integer categoryId;
 
-
+    @ApiModelProperty(value = "閫夋嫨鍝佺被鍙傛暟涓婚敭(鍏宠仈 base_cate_param 琛�)", example = "1")
+    @ExcelColumn(name="閫夋嫨鍝佺被鍙傛暟涓婚敭(鍏宠仈 base_cate_param 琛�)")
+    private Integer baseCateParamId;
 }
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 a7342ed..c9eca84 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.dao.business.model.dto.PlatGoodsParam;
@@ -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瀹炵幇
@@ -78,6 +76,10 @@
 
     @Autowired
     private GoodsJoinMapper goodsJoinMapper;
+    @Autowired
+    private CateParamSelectMapper cateParamSelectMapper;
+
+
 
 
     @Override
@@ -225,7 +227,7 @@
         goods.setCategoryId(param.getCategoryId());
         //鑾峰彇鍏ユ墜浠锋牸
         goods.setPrice(getPriceFromParam(model,param));
-        goods.setZdPrice(model.getZdPrice());
+        goods.setZdPrice(model.getZdPrice());g
         goods.setRemark(model.getRemark());
         goods.setImgurl(model.getImgurl());
         goods.setBrandId(model.getBrandId());
@@ -273,6 +275,72 @@
         }
         //杩斿洖
         return Constants.formatBigdecimal(model.getPrice()).multiply(model.getCateRatePrice()).multiply(param.getRate());
+
+    }
+
+
+    @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();
     }
 
     @Override
@@ -345,6 +413,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)) {
@@ -359,11 +494,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);
diff --git a/server/service/src/main/resources/mappers/BaseCateParamMapper.xml b/server/service/src/main/resources/mappers/BaseCateParamMapper.xml
new file mode 100644
index 0000000..be96527
--- /dev/null
+++ b/server/service/src/main/resources/mappers/BaseCateParamMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.doumee.dao.business.BaseCateParamMapper">
+
+    <resultMap id="BaseCateParam" type="com.doumee.dao.business.model.BaseCateParam">
+        <id column="ID" jdbcType="INTEGER" property="id" />
+        <result column="CREATOR" jdbcType="INTEGER" property="creator" />
+        <result column="CREATE_DATE" jdbcType="VARCHAR" property="createDate" />
+        <result column="EDITOR" jdbcType="VARCHAR" property="editor" />
+        <result column="EDIT_DATE" jdbcType="VARCHAR" property="editDate"/>
+        <result column="ISDELETED" jdbcType="TIMESTAMP" property="isdeleted"/>
+        <result column="NAME" jdbcType="TIMESTAMP" property="name"/>
+        <result column="REMARK" jdbcType="TIMESTAMP" property="remark"/>
+        <result column="STATUS" jdbcType="TIMESTAMP" property="status"/>
+        <result column="SORTNUM" jdbcType="TIMESTAMP" property="sortnum"/>
+        <result column="CATEGORY_ID" jdbcType="TIMESTAMP" property="categoryId"/>
+    </resultMap>
+    <select id="getBaseCateParamList" resultType="com.doumee.dao.business.model.BaseCateParam">
+        select * from base_cate_param where CATEGORY_ID = #{categoryId}
+    </select>
+</mapper>
diff --git a/server/service/src/main/resources/mappers/BaseCategoryMapper.xml b/server/service/src/main/resources/mappers/BaseCategoryMapper.xml
new file mode 100644
index 0000000..b222ab2
--- /dev/null
+++ b/server/service/src/main/resources/mappers/BaseCategoryMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.doumee.dao.business.BaseCategoryMapper">
+    <resultMap id="BaseCategory" type="com.doumee.dao.business.model.BaseCategory" autoMapping="true">
+        <id column="ID" jdbcType="INTEGER" property="id"/>
+        <collection property="baseCateParamList"
+                    column="{categoryId=id}"
+                    ofType="com.doumee.dao.business.model.BaseCateParam"
+                    javaType="ArrayList"
+                    select="com.doumee.dao.business.BaseCateParamMapper.getBaseCateParamList" />
+    </resultMap>
+
+
+    <select id="selectById" resultMap="BaseCategory">
+        select * from base_category where id = #{id}
+    </select>
+
+    <select id="selectOne" resultMap="BaseCategory">
+        select * from base_category ${ew.customSqlSegment}
+    </select>
+
+    <select id="selectList" resultMap="BaseCategory">
+        select * from base_category ${ew.customSqlSegment}
+    </select>
+    <select id="selectPage" resultMap="BaseCategory">
+        select * from base_category ${ew.customSqlSegment}
+    </select>
+</mapper>

--
Gitblit v1.9.3