Browse Source

Merge remote-tracking branch 'origin/feature-background-hulh-1212' into feature-wangcz-background1212

wangcz 8 years ago
parent
commit
99e40eda7e

+ 14 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/constant/StringConstant.java

@@ -0,0 +1,14 @@
+package com.uas.platform.b2c.prod.commodity.constant;
+
+/**
+ * 字符串常量
+ * @author hulh 2017年12月14日 11点22分
+ */
+public class StringConstant {
+
+    public static final String consignment = "寄售";
+    public static final String saleSelf = "自营";
+    public static final String defaultImg = "默认图片";
+    public static final String newImg = "新图片";
+    public static final String oldImg = "旧图片";
+}

+ 51 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/controller/BackgroundRecordController.java

@@ -0,0 +1,51 @@
+package com.uas.platform.b2c.prod.commodity.controller;
+
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.prod.commodity.model.Title;
+import com.uas.platform.b2c.prod.commodity.service.BackgroundRecordService;
+import com.uas.platform.b2c.trade.support.ResultMap;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Set;
+
+/**
+ * 表头记录的Controller层
+ *
+ * @author hulh 2017年12月14日 09点58分
+ */
+@RestController
+@RequestMapping(value = "background/record")
+public class BackgroundRecordController {
+
+    @Autowired
+    private BackgroundRecordService recordService;
+
+    private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+    /**
+     * 根据useruu返回设置的表头信息
+     * @return
+     */
+    @RequestMapping(value = "/title", method = RequestMethod.GET)
+    public Set<Title> getTitleByUseruu() {
+        logger.log("超级后台", "获取表头信息,userUU : " + SystemSession.getUser().getUserUU());
+        return recordService.getTitleInfoByUseruu();
+    }
+
+    /**
+     * 更新表头信息
+     * @param titleSet 表头信息Set
+     * @return
+     */
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    public ResultMap updateTitleInfo(@RequestBody Set<Title> titleSet) {
+        logger.log("超级后台", "更新表头信息,userUU : " + SystemSession.getUser().getUserUU());
+        return recordService.updateTitleInfo(titleSet);
+    }
+}

+ 22 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsModifyInfoController.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2c.prod.commodity.controller;
+
+import com.uas.platform.b2c.prod.commodity.model.GoodsModifyInfo;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 商品修改记录Controller
+ * @author hulh 2017年12月14日 11点22分
+ */
+@RestController
+@RequestMapping("/goods/modifyInfo")
+public class GoodsModifyInfoController {
+
+    @RequestMapping(value = "/batchCode", method = RequestMethod.GET)
+    public List<GoodsModifyInfo> getGoodsModifyByBatchCode(String batchCode) {
+        return null;
+    }
+}

+ 16 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsModifyInfoDao.java

@@ -0,0 +1,16 @@
+package com.uas.platform.b2c.prod.commodity.dao;
+
+import com.uas.platform.b2c.prod.commodity.model.GoodsModifyInfo;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 商品修改dao层
+ * @author hulh
+ */
+@Repository
+public interface GoodsModifyInfoDao extends JpaSpecificationExecutor<GoodsModifyInfo>,
+        JpaRepository<GoodsModifyInfo, Long> {
+
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/model/BackgroundRecord.java

@@ -42,7 +42,7 @@ public class BackgroundRecord {
     /**
     /**
      * 表头信息创建时间
      * 表头信息创建时间
      */
      */
-    @Column(name = "re_update_time")
+    @Column(name = "re_create_time")
     private Date createTime;
     private Date createTime;
 
 
     /**
     /**

+ 115 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsModifyInfo.java

@@ -0,0 +1,115 @@
+package com.uas.platform.b2c.prod.commodity.model;
+
+import javax.persistence.*;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 商品修改记录类
+ * @author hulh 2017年12月14日 11点22分
+ */
+@Entity
+@Table(name = "trade$goods_modify")
+public class GoodsModifyInfo {
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "id")
+    private Long id;
+
+    /**
+     * 用户useruu
+     */
+    @Column(name = "mo_useruu")
+    private Long useruu;
+
+    /**
+     * 店铺enuu
+     */
+    @Column(name = "mo_enuu")
+    private Long enuu;
+
+    /**
+     * 商品批次号
+     */
+    @Column(name = "mo_batchcode")
+    private String batchCode;
+
+    /**
+     * 商品修改信息Set
+     */
+    @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
+    @JoinColumn(name = "mo_id")
+    private Set<ModifyInfo> infoSet;
+
+    /**
+     * 更新时间
+     */
+    @Column(name = "mo_update_time")
+    private Date updateTime;
+
+    /**
+     * 审核状态  1:未审核 0:已审核
+     */
+    @Column(name = "mo_status")
+    private Short status;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUseruu() {
+        return useruu;
+    }
+
+    public void setUseruu(Long useruu) {
+        this.useruu = useruu;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getBatchCode() {
+        return batchCode;
+    }
+
+    public void setBatchCode(String batchCode) {
+        this.batchCode = batchCode;
+    }
+
+    public Set<ModifyInfo> getInfoSet() {
+        return infoSet;
+    }
+
+    public void setInfoSet(Set<ModifyInfo> infoSet) {
+        this.infoSet = infoSet;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+}

+ 84 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/ModifyInfo.java

@@ -0,0 +1,84 @@
+package com.uas.platform.b2c.prod.commodity.model;
+
+import javax.persistence.*;
+
+/**
+ * 商品修改明细类
+ * @author hulh 2017年12月14日 11点22分
+ */
+@Entity
+@Table(name = "trade$goods_modify_info")
+public class ModifyInfo {
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "id")
+    private Long id;
+
+    /**
+     * 关联的商品修改id
+     */
+    @Column(name = "mo_id")
+    private Long modifyid;
+
+    /**
+     * 修改的字段
+     */
+    @Column(name = "info_field")
+    private String modifyField;
+
+    /**
+     * 修改前信息
+     */
+    @Column(name = "info_before")
+    private String before;
+
+    /**
+     * 修改后信息
+     */
+    @Column(name = "info_after")
+    private String after;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getModifyid() {
+        return modifyid;
+    }
+
+    public void setModifyid(Long modifyid) {
+        this.modifyid = modifyid;
+    }
+
+    public String getModifyField() {
+        return modifyField;
+    }
+
+    public void setModifyField(String modifyField) {
+        this.modifyField = modifyField;
+    }
+
+    public String getBefore() {
+        return before;
+    }
+
+    public void setBefore(String before) {
+        this.before = before;
+    }
+
+    public String getAfter() {
+        return after;
+    }
+
+    public void setAfter(String after) {
+        this.after = after;
+    }
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/BackgroundRecordServiceImpl.java

@@ -72,7 +72,7 @@ public class BackgroundRecordServiceImpl implements BackgroundRecordService {
      * 新建一个表头记录类
      * 新建一个表头记录类
      * @return
      * @return
      */
      */
-    private BackgroundRecord createOneRecord(){
+    private BackgroundRecord createOneRecord() {
         BackgroundRecord record = new BackgroundRecord();
         BackgroundRecord record = new BackgroundRecord();
         record.setUseruu(SystemSession.getUser().getUserUU());
         record.setUseruu(SystemSession.getUser().getUserUU());
         record.setEnuu(sysConf.getEnUU());
         record.setEnuu(sysConf.getEnUU());

+ 127 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -16,10 +16,12 @@ import com.uas.platform.b2c.core.utils.DoubleArith;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
 import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
 import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
+import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
 import com.uas.platform.b2c.prod.commodity.dao.*;
 import com.uas.platform.b2c.prod.commodity.dao.*;
 import com.uas.platform.b2c.prod.commodity.model.*;
 import com.uas.platform.b2c.prod.commodity.model.*;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory.OperateType;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory.OperateType;
 import com.uas.platform.b2c.prod.commodity.service.*;
 import com.uas.platform.b2c.prod.commodity.service.*;
+import com.uas.platform.b2c.prod.commodity.type.ModifyConstant;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
@@ -183,6 +185,9 @@ public class GoodsServiceImpl implements GoodsService {
 	@Autowired
 	@Autowired
 	private ProductDetailDao productDetailDao;
 	private ProductDetailDao productDetailDao;
 
 
+	@Autowired
+	private GoodsModifyInfoDao goodsModifyInfoDao;
+
 	@Autowired
 	@Autowired
 	public GoodsServiceImpl(KindService kindService, StoreInDao storeInDao, StoreInService storeInService, ProductStandardPutOnInfoDao productStandardPutOnInfoDao, ProductDao productDao, BrowsingHistoryService browsingHistoryService, RecommendProductService recommendProductService) {
 	public GoodsServiceImpl(KindService kindService, StoreInDao storeInDao, StoreInService storeInService, ProductStandardPutOnInfoDao productStandardPutOnInfoDao, ProductDao productDao, BrowsingHistoryService browsingHistoryService, RecommendProductService recommendProductService) {
 		this.kindService = kindService;
 		this.kindService = kindService;
@@ -1102,11 +1107,133 @@ public class GoodsServiceImpl implements GoodsService {
 //				return new ResultMap(CodeType.INFO_UPDATE.code(), "数据已经被更新了请刷新之后重新操作");
 //				return new ResultMap(CodeType.INFO_UPDATE.code(), "数据已经被更新了请刷新之后重新操作");
 //			}
 //			}
 //		}
 //		}
+		compareGoodsWithModify(nowGoods, goods);
 		resultGoods = updateGoods(nowGoods, goods);
 		resultGoods = updateGoods(nowGoods, goods);
 		updateComponentTradeInfos(nowGoods.getUuid());
 		updateComponentTradeInfos(nowGoods.getUuid());
 		return ResultMap.success(resultGoods);
 		return ResultMap.success(resultGoods);
 	}
 	}
 
 
+	/**
+	 * 比较两个Goods,得出修改后的信息
+	 * @param beforeGoods
+	 * @param afterGoods
+	 */
+	private void compareGoodsWithModify(Goods beforeGoods, Goods afterGoods) {
+		Set<ModifyInfo> infoSet = new HashSet<>();
+		String beforeImg = beforeGoods.getImg();
+		String afterImg = afterGoods.getImg();
+		if (StringUtils.isEmpty(beforeImg) && StringUtils.hasText(afterImg)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_IMG.getPhrase());
+			info.setBefore(StringConstant.defaultImg);
+			info.setAfter(StringConstant.newImg);
+			infoSet.add(info);
+		}
+		if (StringUtils.hasText(beforeImg) && !beforeImg.equals(afterImg)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_IMG.getPhrase());
+			info.setBefore(StringConstant.oldImg);
+			info.setAfter(StringConstant.newImg);
+			infoSet.add(info);
+		}
+		String beforePackage = beforeGoods.getPackaging();
+		String afterPackage = afterGoods.getPackaging();
+		if (!beforePackage.equals(afterPackage)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_PACKAGE.getPhrase());
+			info.setBefore(beforePackage);
+			info.setAfter(afterPackage);
+			infoSet.add(info);
+		}
+		String beforeProduce = beforeGoods.getProduceDate();
+		String afterProduce = afterGoods.getProduceDate();
+		if (!beforeProduce.equals(afterProduce)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_PRODUCE_DATE.getPhrase());
+			info.setBefore(beforeProduce);
+			info.setAfter(afterProduce);
+			infoSet.add(info);
+		}
+		Boolean beforeBreak = beforeGoods.getBreakUp();
+		Boolean afterBreak = afterGoods.getBreakUp();
+		if (!beforeBreak.equals(afterBreak)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_BREAK_UP.getPhrase());
+			info.setBefore(beforeBreak.toString());
+			info.setAfter(afterBreak.toString());
+			infoSet.add(info);
+		}
+		Double beforeReserve = beforeGoods.getReserve();
+		Double afterReserve = afterGoods.getReserve();
+		if (!beforeReserve.equals(afterReserve)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_RESERVE.getPhrase());
+			info.setBefore(beforeReserve.toString());
+			info.setAfter(afterReserve.toString());
+			infoSet.add(info);
+		}
+		Double beforePackQty = beforeGoods.getMinPackQty();
+		Double afterPackQty = afterGoods.getMinPackQty();
+		if (!beforePackQty.equals(afterPackQty)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_PACKAGE_QTY.getPhrase());
+			info.setBefore(beforePackQty.toString());
+			info.setAfter(afterPackQty.toString());
+			infoSet.add(info);
+		}
+		Double beforeBuyQty = beforeGoods.getMinBuyQty();
+		Double afterBuyQty = afterGoods.getMinBuyQty();
+		if (!beforeBuyQty.equals(afterBuyQty)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_BUY_QTY.getPhrase());
+			info.setBefore(beforeBuyQty.toString());
+			info.setAfter(afterBuyQty.toString());
+			infoSet.add(info);
+		}
+		Short beforeMinDelivery = beforeGoods.getMinDelivery();
+		Short afterMinDelivery = afterGoods.getMinDelivery();
+		if (!beforeMinDelivery.equals(afterMinDelivery)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_MIN_DELIVERY.getPhrase());
+			info.setBefore(beforeMinDelivery.toString());
+			info.setAfter(afterMinDelivery.toString());
+			infoSet.add(info);
+		}
+		Short beforeMaxDelivery = beforeGoods.getMaxDelivery();
+		Short afterMaxDelivery = afterGoods.getMaxDelivery();
+		if (!beforeMaxDelivery.equals(afterMaxDelivery)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_MAX_DELIVERY.getPhrase());
+			info.setBefore(beforeMaxDelivery.toString());
+			info.setAfter(afterMaxDelivery.toString());
+			infoSet.add(info);
+		}
+		String beforeStore = beforeGoods.getStoreid();
+		String afterStore = afterGoods.getStoreid();
+		if (!beforeStore.equals(afterStore)) {
+			ModifyInfo info = new ModifyInfo();
+			info.setModifyField(ModifyConstant.MODIFY_SALE_METHOD.getPhrase());
+			if (beforeStore.equals(sysConf.getStoreid())) {
+				info.setBefore(StringConstant.consignment);
+				info.setAfter(StringConstant.saleSelf);
+			} else {
+				info.setBefore(StringConstant.saleSelf);
+				info.setAfter(StringConstant.consignment);
+			}
+			infoSet.add(info);
+		}
+		if (!CollectionUtils.isEmpty(infoSet)) {
+			GoodsModifyInfo modifyInfo = new GoodsModifyInfo();
+			modifyInfo.setEnuu(SystemSession.getUser().getEnterprise().getUu());
+			modifyInfo.setUseruu(SystemSession.getUser().getUserUU());
+			modifyInfo.setBatchCode(beforeGoods.getBatchCode());
+			modifyInfo.setStatus(ShortConstant.YES_SHORT);
+			modifyInfo.setUpdateTime(new Date());
+			modifyInfo.setInfoSet(infoSet);
+			goodsModifyInfoDao.save(modifyInfo);
+		}
+	}
+
 	/**
 	/**
 	 * 根据前端修改的库存(oldGoods)更新数据库中的库存。
 	 * 根据前端修改的库存(oldGoods)更新数据库中的库存。
 	 * @param nowGoods 数据库中的库存。
 	 * @param nowGoods 数据库中的库存。

+ 41 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/type/ModifyConstant.java

@@ -0,0 +1,41 @@
+package com.uas.platform.b2c.prod.commodity.type;
+
+/**
+ * 商品修改常量
+ * @author hulh 2017年12月14日 11点22分
+ */
+public enum  ModifyConstant {
+    MODIFY_IMG(10, "产品图片"),
+    MODIFY_PACKAGE(11, "包装"),
+    MODIFY_PRODUCE_DATE(12, "生产日期"),
+    MODIFY_BREAK_UP(13, "可拆卖"),
+    MODIFY_RESERVE(14, "库存"),
+    MODIFY_BUY_QTY(15, "最小起订量"),
+    MODIFY_PACKAGE_QTY(16, "最小包装量"),
+    MODIFY_MIN_DELIVERY(17, "最小交期"),
+    MODIFY_MAX_DELIVERY(18, "最大交期"),
+    MODIFY_SALE_METHOD(19, "销售方式");
+
+    ModifyConstant(int value, String phrase) {
+        this.value = value;
+        this.phrase = phrase;
+    }
+
+    private final int value;
+
+    private final String phrase;
+
+    /**
+     * @return 状态的整型编码
+     */
+    public int value() {
+        return this.value;
+    }
+
+    /**
+     * @return 状态的描述
+     */
+    public String getPhrase() {
+        return this.phrase;
+    }
+}