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

---
 server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java |  202 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 197 insertions(+), 5 deletions(-)

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);

--
Gitblit v1.9.3