From 116e919af930037f4e5ece0b085e22feb0d50e5d Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期一, 11 九月 2023 14:33:37 +0800
Subject: [PATCH] #平台素材库

---
 server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsParamCreatRequest.java     |   34 +++
 server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsDTO.java                   |   63 +++++++
 server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java                     |   43 ++++
 server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java            |  245 ++++++++++++++++++++++++++-
 server/service/src/main/java/com/doumee/dao/business/model/BaseGoodsParam.java                     |   20 +
 server/service/src/main/java/com/doumee/dao/business/model/BaseGoods.java                          |   14 +
 server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsCreateOrUpdateRequest.java |   54 ++++++
 server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java                |   19 ++
 server/service/src/main/java/com/doumee/dao/business/model/Multifile.java                          |    6 
 9 files changed, 473 insertions(+), 25 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/dao/business/model/BaseGoods.java b/server/service/src/main/java/com/doumee/dao/business/model/BaseGoods.java
index 10892fc..470c3cd 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/BaseGoods.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/BaseGoods.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -32,7 +33,6 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -41,7 +41,6 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -72,9 +71,19 @@
     @ExcelColumn(name="鎵�灞炲搧绫荤紪鐮�(base_category)")
     private Integer categoryId;
 
+    @ApiModelProperty(value = "鎵�灞炲搧绫荤紪鐮�(base_category)", example = "1")
+    @ExcelColumn(name="鎵�灞炲搧绫荤紪鐮�(base_category)")
+    @TableField(exist = false)
+    private Integer categoryName;
+
     @ApiModelProperty(value = "鎵�灞炲搧鐗岀紪鐮�(base_brand)", example = "1")
     @ExcelColumn(name="鎵�灞炲搧鐗岀紪鐮�(base_brand)")
     private Integer brandId;
+
+    @ApiModelProperty(value = "鎵�灞炲搧鐗岀紪鐮�(base_brand)", example = "1")
+    @ExcelColumn(name="鎵�灞炲搧鐗宯ame")
+    @TableField(exist = false)
+    private Integer brandName;
 
     @ApiModelProperty(value = "鎸囧浠凤紙鍏冿級", example = "1")
     @ExcelColumn(name="鎸囧浠凤紙鍏冿級")
@@ -95,6 +104,7 @@
     @ApiModelProperty(value = "鍚嶇О鎷奸煶棣栧瓧姣�")
     @ExcelColumn(name="鍚嶇О鎷奸煶棣栧瓧姣�")
     private String shortPinyin;
+
     @ApiModelProperty(value = "鍏宠仈婧愭暟鎹紪鐮�")
     @ExcelColumn(name="鍏宠仈婧愭暟鎹紪鐮�")
     private String baseDataId;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/BaseGoodsParam.java b/server/service/src/main/java/com/doumee/dao/business/model/BaseGoodsParam.java
index 88e4368..9ba5aea 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/BaseGoodsParam.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/BaseGoodsParam.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,11 +22,11 @@
 public class BaseGoodsParam {
 
     @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ApiModelProperty(value = "涓婚敭")
     @ExcelColumn(name="涓婚敭")
     private Integer id;
 
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
     @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
     private Integer creator;
 
@@ -34,7 +35,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
     @ExcelColumn(name="鏇存柊浜虹紪鐮�")
     private Integer editor;
 
@@ -43,7 +44,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
-    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�")
     @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
     private Integer isdeleted;
 
@@ -55,15 +56,15 @@
     @ExcelColumn(name="澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤")
     @ExcelColumn(name="鐘舵�� 0鍚敤 1绂佺敤")
     private Integer status;
 
-    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+    @ApiModelProperty(value = "鎺掑簭鐮�")
     @ExcelColumn(name="鎺掑簭鐮�")
     private Integer sortnum;
 
-    @ApiModelProperty(value = "鍏宠仈鍝佺被鍙傛暟缂栫爜锛堝叧鑱攂ase_cate_param琛級", example = "1")
+    @ApiModelProperty(value = "鍏宠仈鍝佺被鍙傛暟缂栫爜锛堝叧鑱攂ase_cate_param琛級")
     @ExcelColumn(name="鍏宠仈鍝佺被鍙傛暟缂栫爜锛堝叧鑱攂ase_cate_param琛級")
     private Integer pramaId;
 
@@ -71,8 +72,11 @@
     @ExcelColumn(name="鍙傛暟鍊�")
     private String val;
 
-    @ApiModelProperty(value = "鍟嗗搧缂栫爜锛堝叧鑱攂ase_goods琛級", example = "1")
+    @ApiModelProperty(value = "鍟嗗搧缂栫爜锛堝叧鑱攂ase_goods琛級")
     @ExcelColumn(name="鍟嗗搧缂栫爜锛堝叧鑱攂ase_goods琛級")
     private Integer goodsId;
 
+    @ApiModelProperty(value = "鍏宠仈鍝佺被鍙傛暟缂栫爜")
+    @TableField(exist = false)
+    private String paramName;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java b/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java
index 8c7115e..77eaca6 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -64,7 +65,7 @@
     private Integer type;
 
     @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷 0鍟嗗搧澶氬浘", example = "1")
-    @ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷 0鍟嗗搧澶氬浘")
+    @ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷 0鍟嗗搧澶氬浘 1 骞冲彴鍟嗗搧澶氬浘")
     private Integer objType;
 
     @ApiModelProperty(value = "鏂囦欢鍦板潃")
@@ -78,4 +79,7 @@
     @ExcelColumn(name="鎺掑簭鐮�")
     private Integer sortnum;
 
+    @ApiModelProperty(value = "鏂囦欢鍦板潃")
+    @TableField(exist = false)
+    private String filefullurl;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsCreateOrUpdateRequest.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsCreateOrUpdateRequest.java
new file mode 100644
index 0000000..7518d37
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsCreateOrUpdateRequest.java
@@ -0,0 +1,54 @@
+package com.doumee.dao.business.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.dao.business.model.Multifile;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("娣诲姞鍟嗗搧淇℃伅")
+public class BaseGoodsCreateOrUpdateRequest {
+
+    @ApiModelProperty(value = "淇敼涓婚敭ID")
+    private Integer id;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍚嶇О锛堜笉鍙噸澶嶏級")
+    private String name;
+
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "鍥炬爣")
+    private String imgurl;
+
+    @ApiModelProperty(value = "鎵�灞炲搧绫荤紪鐮�(base_category)", example = "1")
+    private Integer categoryId;
+
+    @ApiModelProperty(value = "鎵�灞炲搧鐗岀紪鐮�(base_brand)", example = "1")
+    private Integer brandId;
+
+    @ApiModelProperty(value = "鎸囧浠凤紙鍏冿級", example = "1")
+    private BigDecimal zdPrice;
+
+    @ApiModelProperty(value = "鍏ユ墜浠锋牸锛堝厓锛�", example = "1")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "鍟嗗搧璇︽儏")
+    private String content;
+
+    @ApiModelProperty(value = "鍙傛暟绫诲瀷灞炴�у��")
+    private List<BaseGoodsParamCreatRequest> baseGoodsParamList;
+
+    @ApiModelProperty(value = "闄勪欢鍒楄〃")
+    private List<Multifile> multifileList;
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsDTO.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsDTO.java
new file mode 100644
index 0000000..8a09393
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsDTO.java
@@ -0,0 +1,63 @@
+package com.doumee.dao.business.model.dto;
+
+import com.doumee.dao.business.model.BaseGoodsParam;
+import com.doumee.dao.business.model.Multifile;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("鍙傛暟灞炴�у��")
+public class BaseGoodsDTO {
+
+    @ApiModelProperty(value = "淇敼涓婚敭ID")
+    private Integer id;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍚嶇О锛堜笉鍙噸澶嶏級")
+    private String name;
+
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "鍥炬爣")
+    private String imgurl;
+
+    @ApiModelProperty(value = "鍥炬爣")
+    private String imgfullurl;
+
+    @ApiModelProperty(value = "鎵�灞炲搧绫荤紪鐮�(base_category)", example = "1")
+    private Integer categoryId;
+
+    @ApiModelProperty(value = "鎵�灞炲搧绫荤紪鐮�(base_category)", example = "1")
+    private Integer categoryName;
+
+    @ApiModelProperty(value = "鎵�灞炲搧鐗岀紪鐮�(base_brand)", example = "1")
+    private Integer brandId;
+
+    @ApiModelProperty(value = "鎵�灞炲搧鐗岀紪鐮�(base_brand)", example = "1")
+    private Integer brandName;
+
+    @ApiModelProperty(value = "鎸囧浠凤紙鍏冿級", example = "1")
+    private BigDecimal zdPrice;
+
+    @ApiModelProperty(value = "鍏ユ墜浠锋牸锛堝厓锛�", example = "1")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "鍟嗗搧璇︽儏")
+    private String content;
+
+    @ApiModelProperty(value = "鍙傛暟绫诲瀷灞炴�у��")
+    private List<BaseGoodsParam> baseGoodsParamList;
+
+    @ApiModelProperty(value = "闄勪欢鍒楄〃")
+    private List<Multifile> multifileList;
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsParamCreatRequest.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsParamCreatRequest.java
new file mode 100644
index 0000000..518e122
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsParamCreatRequest.java
@@ -0,0 +1,34 @@
+package com.doumee.dao.business.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("鍙傛暟灞炴�у��")
+public class BaseGoodsParamCreatRequest {
+
+    @ApiModelProperty(value = "鍚嶇О锛堜笉鍙噸澶嶏級")
+    private String name;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+    private Integer sortnum;
+
+    @ApiModelProperty(value = "鍏宠仈鍝佺被鍙傛暟缂栫爜锛堝叧鑱攂ase_cate_param琛級", example = "1")
+    private Integer pramaId;
+
+    @ApiModelProperty(value = "鍙傛暟鍊�")
+    private String val;
+
+    @ApiModelProperty(value = "鍟嗗搧缂栫爜锛堝叧鑱攂ase_goods琛級", example = "1")
+    private Integer goodsId;
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java b/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java
index 200e8cf..539054a 100644
--- a/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java
@@ -3,6 +3,9 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.BaseGoods;
+import com.doumee.dao.business.model.dto.BaseGoodsCreateOrUpdateRequest;
+import com.doumee.dao.business.model.dto.BaseGoodsDTO;
+
 import java.util.List;
 
 /**
@@ -14,11 +17,11 @@
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param baseGoods 瀹炰綋瀵硅薄
      * @return Integer
      */
-    Integer create(BaseGoods baseGoods);
+    Integer create(BaseGoodsCreateOrUpdateRequest baseGoods);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -40,6 +43,31 @@
      * @param ids 涓婚敭闆�
      */
     void deleteByIdInBatch(List<Integer> ids);
+
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param baseGoods 瀹炰綋瀵硅薄
+     */
+    void update(BaseGoodsCreateOrUpdateRequest baseGoods);
+
+
+
+    /**
+     * 涓婚敭涓婁笅鏋�
+     *
+     * @param idList 瀹炰綋瀵硅薄
+     */
+    void updateStatusByIds(List<Integer> idList,Integer status);
+
+
+    /**
+     * 涓婚敭涓婁笅鏋�
+     *
+     * @param id 瀹炰綋瀵硅薄
+     */
+    void updateStatusByIds(Integer id,Integer status);
 
     /**
      * 涓婚敭鏇存柊
@@ -63,6 +91,15 @@
      */
     BaseGoods findById(Integer id);
 
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return BaseGoods
+     */
+    BaseGoodsDTO findByIdBaseGoods(Integer id);
+
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
      *
@@ -78,7 +115,7 @@
      * @return List<BaseGoods>
      */
     List<BaseGoods> findList(BaseGoods baseGoods);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      *
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
index 1ec2edb..8a62b1f 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
@@ -1,23 +1,36 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.PinYinUtil;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.BaseGoodsMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.BaseGoodsJoinMapper;
-import com.doumee.dao.business.model.BaseGoods;
-import com.doumee.dao.business.model.Goods;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.model.dto.BaseGoodsCreateOrUpdateRequest;
+import com.doumee.dao.business.model.dto.BaseGoodsDTO;
+import com.doumee.dao.business.model.dto.BaseGoodsParamCreatRequest;
 import com.doumee.service.business.BaseGoodsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 绱犳潗搴�-鍟嗗搧淇℃伅琛⊿ervice瀹炵幇
@@ -34,10 +47,90 @@
     @Autowired
     private BaseGoodsJoinMapper baseGoodsJoinMapper;
 
+    @Autowired
+    private BaseGoodsParamMapper baseGoodsParamMapper;
+
+
+    @Autowired
+    private MultifileMapper multifileMapper;
+
+    @Autowired
+    @Lazy
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private BrandMapper brandMapper;
+
+    @Autowired
+    private GoodsMapper goodsMapper;
+
     @Override
-    public Integer create(BaseGoods baseGoods) {
-        baseGoodsMapper.insert(baseGoods);
-        return baseGoods.getId();
+    public Integer create(BaseGoodsCreateOrUpdateRequest baseGoods) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(baseGoodsMapper.selectCount(new QueryWrapper<BaseGoods>().eq("ISDELETED", Constants.ZERO).eq("name",baseGoods.getName()))>0){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+baseGoods.getName()+"銆戝凡瀛樺湪");
+        }
+
+        Integer integer = baseGoodsMapper.selectCount(new QueryWrapper<BaseGoods>().eq("ISDELETED", Constants.ZERO));
+        BaseGoods insert = new BaseGoods();
+        insert.setCreator(user.getId());
+        insert.setCreateDate(new Date());
+        insert.setEditor(user.getId());
+        insert.setEditDate(new Date());
+        insert.setIsdeleted(Constants.ZERO);
+        insert.setRemark(baseGoods.getRemark());
+        insert.setName(baseGoods.getName());
+        insert.setStatus(Constants.ZERO);
+        insert.setSortnum(integer+Constants.ONE);
+        insert.setImgurl(baseGoods.getImgurl());
+        insert.setCategoryId(baseGoods.getCategoryId());
+        insert.setBrandId(baseGoods.getBrandId());
+        insert.setZdPrice(baseGoods.getZdPrice());
+        insert.setPrice(baseGoods.getPrice());
+        insert.setContent(baseGoods.getContent());
+        insert.setPinyin(PinYinUtil.getFullSpell(insert.getName()));
+        insert.setShortPinyin(PinYinUtil.getFirstSpell(insert.getName()));
+        baseGoodsMapper.insert(insert);
+
+
+        List<Multifile> multifileList = baseGoods.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(insert.getId());
+                multifile.setType(Constants.ZERO);
+                multifile.setObjType(Constants.ONE);
+                multifileMapper.insert(multifile);
+            }
+        }
+
+
+        List<BaseGoodsParamCreatRequest> goodsParamList = baseGoods.getBaseGoodsParamList();
+        if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){
+            for (int i = 0; i < goodsParamList.size(); i++) {
+                BaseGoodsParamCreatRequest param = goodsParamList.get(i);
+                BaseGoodsParam baseGoodsParam = new BaseGoodsParam();
+                baseGoodsParam.setCreator(user.getId());
+                baseGoodsParam.setCreateDate(new Date());
+                baseGoodsParam.setEditor(user.getId());
+                baseGoodsParam.setEditDate(new Date());
+                baseGoodsParam.setIsdeleted(Constants.ZERO);
+                baseGoodsParam.setName(param.getName());
+                baseGoodsParam.setRemark(param.getRemark());
+                baseGoodsParam.setStatus(Constants.ZERO);
+                baseGoodsParam.setSortnum(i+Constants.ONE);
+                baseGoodsParam.setPramaId(param.getPramaId());
+                baseGoodsParam.setVal(param.getVal());
+                baseGoodsParam.setGoodsId(insert.getId());
+                baseGoodsParamMapper.insert(baseGoodsParam);
+            }
+        }
+
+        return insert.getId();
     }
 
     @Override
@@ -57,6 +150,102 @@
             return;
         }
         baseGoodsMapper.deleteBatchIds(ids);
+    }
+
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    @Override
+    public void update(BaseGoodsCreateOrUpdateRequest baseGoods) {
+
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(baseGoodsMapper.selectCount(new QueryWrapper<BaseGoods>()
+                .eq("ISDELETED",Constants.ZERO).ne("id",baseGoods.getId())
+                .eq("name",baseGoods.getName()))>0){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+baseGoods.getName()+"銆戝凡瀛樺湪");
+        }
+
+        UpdateWrapper<BaseGoods> wrapper = new UpdateWrapper<>();
+        wrapper.lambda()
+                .eq(BaseGoods::getId,baseGoods.getId())
+                .set(BaseGoods::getName,baseGoods.getName())
+                .set(BaseGoods::getName,baseGoods.getName())
+                .set(BaseGoods::getName,baseGoods.getName())
+                .set(BaseGoods::getName,baseGoods.getName());
+        baseGoodsMapper.update(null,wrapper);
+
+        multifileMapper.delete(new QueryWrapper<Multifile>().eq("OBJ_ID",baseGoods.getId()));
+        List<Multifile> multifileList = baseGoods.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(baseGoods.getId());
+                multifile.setType(Constants.ZERO);
+                multifile.setObjType(Constants.ONE);
+                multifileMapper.insert(multifile);
+            }
+        }
+        baseGoodsParamMapper.delete(new QueryWrapper<BaseGoodsParam>().eq("GOODS_ID",baseGoods.getId()));
+        List<BaseGoodsParamCreatRequest> goodsParamList = baseGoods.getBaseGoodsParamList();
+        if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){
+            for (int i = 0; i < goodsParamList.size(); i++) {
+                BaseGoodsParamCreatRequest param = goodsParamList.get(i);
+                BaseGoodsParam baseGoodsParam = new BaseGoodsParam();
+                baseGoodsParam.setCreator(user.getId());
+                baseGoodsParam.setCreateDate(new Date());
+                baseGoodsParam.setEditor(user.getId());
+                baseGoodsParam.setEditDate(new Date());
+                baseGoodsParam.setIsdeleted(Constants.ZERO);
+                baseGoodsParam.setName(param.getName());
+                baseGoodsParam.setRemark(param.getRemark());
+                baseGoodsParam.setStatus(Constants.ZERO);
+                baseGoodsParam.setSortnum(i+Constants.ONE);
+                baseGoodsParam.setPramaId(param.getPramaId());
+                baseGoodsParam.setVal(param.getVal());
+                baseGoodsParam.setGoodsId(baseGoods.getId());
+                baseGoodsParamMapper.insert(baseGoodsParam);
+            }
+        }
+    }
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    @Override
+    public void updateStatusByIds(List<Integer> idList, Integer status) {
+        if (CollectionUtils.isEmpty(idList)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍟嗗搧鐘舵�佷笉鑳戒负绌�");
+        }
+        idList.forEach(s->updateStatusByIds(s,status));
+
+    }
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    @Override
+    public void updateStatusByIds(Integer id, Integer status) {
+
+        if (Objects.isNull(status)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍟嗗搧鐘舵�佷笉鑳戒负绌�");
+        }
+        if (Constants.equalsInteger(status,Constants.ZERO)){
+            BaseGoods baseGoods = new BaseGoods();
+            baseGoods.setId(id);
+            baseGoods.setStatus(status);
+            baseGoodsMapper.updateById(baseGoods);
+        }else if (Constants.equalsInteger(status,Constants.ONE)){
+            BaseGoods baseGoods = new BaseGoods();
+            baseGoods.setId(id);
+            baseGoods.setStatus(status);
+            baseGoodsMapper.updateById(baseGoods);
+
+            UpdateWrapper<Goods> goodsUpdate = new UpdateWrapper<>();
+            goodsUpdate.lambda()
+                        .eq(Goods::getType,Constants.ONE)
+                        .eq(Goods::getGoodsId,id)
+                        .set(Goods::getStatus,Constants.ONE);
+            goodsMapper.update(null,goodsUpdate);
+        }
     }
 
     @Override
@@ -80,6 +269,41 @@
     }
 
     @Override
+    public BaseGoodsDTO findByIdBaseGoods(Integer id) {
+
+        MPJLambdaWrapper<BaseGoods> queryWrapper = new MPJLambdaWrapper<>();
+
+        queryWrapper.leftJoin(Brand.class,Brand::getId,BaseGoods::getBrandId)
+                .leftJoin(BaseCategory.class,BaseCategory::getId,BaseGoods::getBaseDataId)
+                .selectAll(BaseGoods.class)
+                .selectAs(Brand::getName,BaseGoodsDTO::getBrandName)
+                .selectAs(BaseCategory::getSortnum,BaseGoodsDTO::getCategoryName);
+
+        BaseGoodsDTO baseGoodsDTO = baseGoodsJoinMapper.selectJoinOne(BaseGoodsDTO.class, queryWrapper);
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
+                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        baseGoodsDTO.setImgfullurl(prefixUrl+baseGoodsDTO.getImgurl());
+
+        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>()
+                .eq("OBJ_ID", id)
+                .eq("OBJ_TYPE", Constants.ONE));
+        if (!CollectionUtils.isEmpty(multifiles)){
+            multifiles.forEach(s->s.setFilefullurl(prefixUrl+s.getFileurl()));
+        }
+        baseGoodsDTO.setMultifileList(multifiles);
+
+        QueryWrapper<BaseGoodsParam> baseGoodsParamQuery = new QueryWrapper<>();
+        baseGoodsParamQuery.select("base_goods_param.*,(select name from base_cate_param bcp where (bcp.id = base_goods_param.PRAMA_ID)) as paramName")
+                            .lambda()
+                            .eq(BaseGoodsParam::getGoodsId,id)
+                            .orderByAsc(BaseGoodsParam::getSortnum);
+        List<BaseGoodsParam> baseGoodsParams = baseGoodsParamMapper.selectList(baseGoodsParamQuery);
+        baseGoodsDTO.setBaseGoodsParamList(baseGoodsParams);
+        return baseGoodsDTO;
+
+    }
+
+    @Override
     public BaseGoods findOne(BaseGoods baseGoods) {
         QueryWrapper<BaseGoods> wrapper = new QueryWrapper<>(baseGoods);
         return baseGoodsMapper.selectOne(wrapper);
@@ -98,7 +322,7 @@
         Utils.MP.blankToNull(pageWrap.getModel());
 
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.eq(BaseGoods::getId, pageWrap.getModel().getId());
+            queryWrapper.like(BaseGoods::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getName() != null) {
             queryWrapper.eq(BaseGoods::getName, pageWrap.getModel().getName());
@@ -106,15 +330,16 @@
         if (pageWrap.getModel().getStatus() != null) {
             queryWrapper.eq(BaseGoods::getStatus, pageWrap.getModel().getStatus());
         }
-
-
         if (pageWrap.getModel().getCategoryId() != null) {
             queryWrapper.eq(BaseGoods::getCategoryId, pageWrap.getModel().getCategoryId());
         }
         if (pageWrap.getModel().getBrandId() != null) {
             queryWrapper.eq(BaseGoods::getBrandId, pageWrap.getModel().getBrandId());
         }
-
+        queryWrapper.leftJoin(Brand.class,Brand::getId,BaseGoods::getBrandId)
+                    .leftJoin(BaseCategory.class,BaseCategory::getId,BaseGoods::getBaseDataId)
+                    .selectAs(Brand::getName,BaseGoods::getBrandName)
+                    .selectAs(BaseCategory::getSortnum,BaseGoods::getCategoryName);
         queryWrapper.orderByDesc(Goods::getId);
         return PageData.from(baseGoodsJoinMapper.selectJoinPage(page,BaseGoods.class,queryWrapper));
     }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java
index f5c19c8..d764fea 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java
@@ -88,7 +88,14 @@
     @Override
     public void updateById(Brand brand) {
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        if(brandMapper.selectCount(new QueryWrapper<Brand>().eq("ISDELETED",Constants.ZERO).ne("id",brand.getId()).eq("name",brand.getName()))>0){
+        if(brandMapper.selectCount(new QueryWrapper<Brand>()
+                .eq("ISDELETED",Constants.ZERO)
+                .eq(user.getType().equals(Constants.UserType.SYSTEM),"name",brand.getName())
+                .and(user.getType().equals(Constants.UserType.COMPANY),
+                        i->i.apply(" name = '"+brand.getName()+"' and type = 1 ")
+                                .or().apply( "  name = '"+brand.getName()+"' and COMPANY_ID = '"+user.getCompanyId()+"' and type = 0 ")
+                )
+        )>0){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+brand.getName()+"銆戝凡瀛樺湪");
         };
         brand.setStatus(Constants.ZERO);
@@ -125,10 +132,15 @@
 
     @Override
     public List<Brand> findList(Brand brand) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         QueryWrapper<Brand> wrapper = new QueryWrapper<>(brand);
         wrapper.lambda().eq(Brand::getIsdeleted,Constants.ZERO);
         wrapper.lambda().eq(Brand::getStatus,Constants.ZERO);
         wrapper.lambda().orderByAsc(Brand::getSortnum);
+        // 绫诲瀷 0浼佷笟 1骞冲彴
+        if (Objects.isNull(user.getCompanyId())) {
+            wrapper.lambda().eq(Brand::getType,Constants.ONE);
+        }
         List<Brand> list = brandMapper.selectList(wrapper);
         String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
                 + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
@@ -140,6 +152,7 @@
 
     @Override
     public PageData<Brand> findPage(PageWrap<Brand> pageWrap) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         IPage<Brand> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<Brand> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
@@ -150,6 +163,10 @@
         if (pageWrap.getModel().getStatus() != null) {
             queryWrapper.lambda().eq(Brand::getStatus, pageWrap.getModel().getStatus());
         }
+        // 绫诲瀷 0浼佷笟 1骞冲彴
+        if (Objects.isNull(user.getCompanyId())) {
+            queryWrapper.lambda().eq(Brand::getType,Constants.ONE);
+        }
         queryWrapper.lambda().orderByAsc(Brand::getSortnum);
         IPage<Brand> brandIPage = brandMapper.selectPage(page, queryWrapper);
         String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()

--
Gitblit v1.9.3