Kaynağa Gözat

Merge remote-tracking branch 'origin/Joburgess' into Joburgess

周箭河 5 yıl önce
ebeveyn
işleme
02e5ac5ac4

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SellOrderDao.java

@@ -127,4 +127,13 @@ public interface SellOrderDao extends BaseDAO<Integer, SellOrder> {
      * @return
      */
     List<OperatingReport> getSubjectChangeMonthReport(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
-}
+
+    /**
+     * @describe 获取指定的销售记录
+     * @author Joburgess
+     * @date 2020.10.13
+     * @param sellOrderIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.SellOrder>
+     */
+    List<SellOrder> getSellOrders(@Param("sellOrderIds") List<Integer> sellOrderIds);
+}

+ 17 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/GoodsProcurement.java

@@ -10,6 +10,9 @@ public class GoodsProcurement {
 
 	@ApiModelProperty(value = "编号")
 	private Long id;
+
+	@ApiModelProperty(value = "组合商品编号")
+	private Integer parentGoodsId;
 	
 	@ApiModelProperty(value = "商品编号")
 	private Integer goodsId;
@@ -57,6 +60,11 @@ public class GoodsProcurement {
 		this.goodsId = goodsId;
 	}
 
+	public GoodsProcurement(Integer parentGoodsId, Integer goodsId) {
+		this.parentGoodsId = parentGoodsId;
+		this.goodsId = goodsId;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -64,7 +72,15 @@ public class GoodsProcurement {
 	public Long getId(){
 		return this.id;
 	}
-			
+
+	public Integer getParentGoodsId() {
+		return parentGoodsId;
+	}
+
+	public void setParentGoodsId(Integer parentGoodsId) {
+		this.parentGoodsId = parentGoodsId;
+	}
+
 	public void setGoodsId(Integer goodsId){
 		this.goodsId = goodsId;
 	}

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.dto.GoodsBatchNoDto;
 import com.ym.mec.biz.dal.dto.GoodsSellDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.GoodsProcurement;
+import com.ym.mec.biz.dal.entity.SellOrder;
 import com.ym.mec.biz.dal.enums.AccountType;
 import com.ym.mec.common.service.BaseService;
 
@@ -79,6 +80,15 @@ public interface GoodsService extends BaseService<Integer, Goods> {
     void repertoryWarn();
 
     /**
+     * @describe 商品批次号分配
+     * @author Joburgess
+     * @date 2020.10.13
+     * @param goods:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.GoodsProcurement>
+     */
+    List<SellOrder> goodsBatchNoAllot(Goods goods);
+
+    /**
      * @describe 扣减商品库存
      * @author Joburgess
      * @date 2020.10.12
@@ -86,15 +96,14 @@ public interface GoodsService extends BaseService<Integer, Goods> {
      * @param accountType: 收款账户类型
      * @return java.lang.String
      */
-    List<GoodsProcurement> subtractStock(List<Integer> goodsIds, AccountType accountType);
+    List<SellOrder> subtractStock(List<Integer> goodsIds, AccountType accountType);
 
     /**
      * @describe 增加商品库存
      * @author Joburgess
      * @date 2020.10.12
-     * @param goodsBatchNoDtos: 对应批次商品列表
-     * @param goodsIds: 用户购买商品列表
+     * @param sellOrderIds: 对应批次商品列表
      * @return void
      */
-    void increaseStock(List<GoodsBatchNoDto> goodsBatchNoDtos, List<Integer> goodsIds, AccountType accountType);
+    void increaseStock(List<SellOrder> sellOrderIds, AccountType accountType);
 }

+ 81 - 49
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -4,17 +4,16 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.GoodsDao;
-import com.ym.mec.biz.dal.dao.GoodsProcurementDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.GoodsBatchNoDto;
 import com.ym.mec.biz.dal.dto.GoodsSellDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.GoodsProcurement;
+import com.ym.mec.biz.dal.entity.SellOrder;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.GoodsService;
+import com.ym.mec.biz.service.SellOrderService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.UploadFileService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -41,7 +40,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
@@ -63,6 +61,8 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	private SysMessageService sysMessageService;
 	@Autowired
 	private TeacherDao teacherDao;
+	@Autowired
+	private SellOrderDao sellOrderDao;
 
 	@Override
 	public BaseDAO<Integer, Goods> getDAO() {
@@ -304,8 +304,14 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	}
 
 	@Override
+	public List<SellOrder> goodsBatchNoAllot(Goods goods) {
+
+		return null;
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-	public List<GoodsProcurement> subtractStock(List<Integer> goodsIds, AccountType accountType) {
+	public List<SellOrder> subtractStock(List<Integer> goodsIds, AccountType accountType) {
 		if(CollectionUtils.isEmpty(goodsIds)){
 			return Collections.emptyList();
 		}
@@ -314,77 +320,103 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 
 		List<Goods> tempGoodsList = goodsDao.lockGoods(new ArrayList<>(goodsIds));
 		Map<Integer, Goods> idTempGoodsMap = tempGoodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
-		List<Integer> singleGoodsIds = new ArrayList<>();
+		List<SellOrder> goodsBatchNoDtos = new ArrayList<>();
 		for (Integer goodsId : goodsIds) {
 			Goods tempGoods = idTempGoodsMap.get(goodsId);
+			List<Goods> childGoods = new ArrayList<>();
 			if(StringUtils.isBlank(tempGoods.getComplementGoodsIdList())){
-				singleGoodsIds.add(tempGoods.getId());
+				childGoods.add(tempGoods);
 			}else{
 				List<Integer> complementGoodsIds = Arrays.stream(tempGoods.getComplementGoodsIdList().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
-				singleGoodsIds.addAll(complementGoodsIds);
+				childGoods = goodsDao.getGoodies(complementGoodsIds);
 			}
 			tempGoods.setSellCount((int) (tempGoods.getSellCount() + goodsSellNumMap.get(tempGoods.getId())));
-//			goodsDao.update(tempGoods);
-		}
-		goodsDao.batchUpdate(tempGoodsList);
-		List<Goods> singleGoodsList = goodsDao.getGoodies(singleGoodsIds);
-		Map<Integer, Goods> idSingleGoodsMap = singleGoodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
-		List<GoodsProcurement> goodsBatchNoDtos = new ArrayList<>();
-		for (Integer singleGoodsId : singleGoodsIds) {
-			Goods goods = idSingleGoodsMap.get(singleGoodsId);
-			GoodsProcurement goodsProcurement = null;
-			if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
-				goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(goods.getId());
-				goods.setStockCount(new AtomicInteger(goods.getStockCount()).decrementAndGet());
-				if(Objects.nonNull(goodsProcurement)){
-					goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).decrementAndGet());
-					goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
+			for (Goods goods : childGoods) {
+				GoodsProcurement goodsProcurement = null;
+				if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
+					goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(goods.getId());
+					goods.setStockCount(new AtomicInteger(goods.getStockCount()).decrementAndGet());
+					if(Objects.nonNull(goodsProcurement)){
+						goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).decrementAndGet());
+						goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
+					}
+				}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
+					goodsProcurement = goodsProcurementDao.getWithTaxStockSurplusProcurement(goods.getId());
+					goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).decrementAndGet());
+					if(Objects.nonNull(goodsProcurement)){
+						goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).decrementAndGet());
+						goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).incrementAndGet());
+					}
 				}
-			}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
-				goodsProcurement = goodsProcurementDao.getWithTaxStockSurplusProcurement(goods.getId());
-				goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).decrementAndGet());
+
+				goodsDao.update(goods);
 				if(Objects.nonNull(goodsProcurement)){
-					goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).decrementAndGet());
-					goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).incrementAndGet());
+					goodsProcurementDao.update(goodsProcurement);
+				}else{
+					goodsProcurement = new GoodsProcurement(goods.getId());
+				}
+				if(StringUtils.isNotBlank(tempGoods.getComplementGoodsIdList())){
+					goodsProcurement.setParentGoodsId(tempGoods.getId());
 				}
-			}
 
-			goodsDao.update(goods);
-			if(Objects.nonNull(goodsProcurement)){
-				goodsBatchNoDtos.add(goodsProcurement);
-				goodsProcurementDao.update(goodsProcurement);
-			}else{
-				goodsBatchNoDtos.add(new GoodsProcurement(goods.getId()));
+//				goodsBatchNoDtos.add(goodsProcurement);
 			}
+//			goodsDao.update(tempGoods);
 		}
-
+		goodsDao.batchUpdate(tempGoodsList);
 		return goodsBatchNoDtos;
 	}
 
 	@Override
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-	public void increaseStock(List<GoodsBatchNoDto> goodsBatchNoDtos, List<Integer> goodsIdsList, AccountType accountType) {
-		Set<Integer> goodsIds = goodsBatchNoDtos.stream().map(GoodsBatchNoDto::getGoodsId).collect(Collectors.toSet());
-		List<Goods> goodsList = goodsDao.lockGoods(new ArrayList<>(goodsIds));
+	public void increaseStock(List<SellOrder> sellOrders, AccountType accountType) {
+		if(CollectionUtils.isEmpty(sellOrders)){
+			return;
+		}
+
+		Set<Integer> goodsIdList = new HashSet<>();
+		sellOrders.forEach(so -> {
+			if(Objects.nonNull(so.getParentGoodsId())){
+				goodsIdList.add(so.getParentGoodsId());
+			}else{
+				goodsIdList.add(so.getGoodsId());
+			}
+		});
+
+		List<Goods> goodsList = goodsDao.lockGoods(new ArrayList<>(goodsIdList));
 		Map<Integer, Goods> idGoodsMap = goodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
-		for (GoodsBatchNoDto goodsBatchNoDto : goodsBatchNoDtos) {
-			Goods goods = idGoodsMap.get(goodsBatchNoDto.getGoodsId());
-			GoodsProcurement goodsProcurement = goodsProcurementDao.getWithGoodsAndBatchNo(goods.getId(), goodsBatchNoDto.getBatchNo());
+
+		for (SellOrder sellOrder : sellOrders) {
+			Goods goods = goodsDao.get(sellOrder.getGoodsId());
+			GoodsProcurement goodsProcurement = goodsProcurementDao.getWithGoodsAndBatchNo(sellOrder.getGoodsId(), sellOrder.getBatchNo());
 			if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
-				goods.setStockCount(new AtomicInteger(goods.getStockCount()).incrementAndGet());
+				goods.setStockCount(new AtomicInteger(goods.getStockCount()).addAndGet(sellOrder.getNum()));
 				if(Objects.nonNull(goodsProcurement)){
-					goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).incrementAndGet());
-					goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).decrementAndGet());
+					goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).addAndGet(sellOrder.getNum()));
+					goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).addAndGet(-sellOrder.getNum()));
 				}
 			}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
-				goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).incrementAndGet());
+				goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).addAndGet(sellOrder.getNum()));
 				if(Objects.nonNull(goodsProcurement)){
-					goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).incrementAndGet());
-					goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).decrementAndGet());
+					goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).addAndGet(sellOrder.getNum()));
+					goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).addAndGet(-sellOrder.getNum()));
 				}
 			}
+			if(Objects.isNull(sellOrder.getParentGoodsId())){
+				goods.setSellCount(new AtomicInteger(goods.getSellCount()).addAndGet(-sellOrder.getNum()));
+			}
 			goodsDao.update(goods);
 			goodsProcurementDao.update(goodsProcurement);
 		}
+
+		//处理组合商品
+		Map<Integer, Long> goodsNumMap = sellOrders.stream().filter(so -> Objects.nonNull(so.getParentGoodsId())).collect(Collectors.groupingBy(SellOrder::getId, Collectors.counting()));
+		for (Map.Entry<Integer, Long> goodsIdNumMapEntry : goodsNumMap.entrySet()) {
+			Goods goods = idGoodsMap.get(goodsIdNumMapEntry.getKey());
+			int complementGoodsSize = goods.getComplementGoodsIdList().split(",").length;
+			int sellNum = (int) (goodsIdNumMapEntry.getValue()/complementGoodsSize);
+			goods.setSellCount(new AtomicInteger(goods.getSellCount()).addAndGet(-sellNum));
+			goodsDao.update(goods);
+		}
 	}
 }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -7,6 +7,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.GoodsBatchNoDto;
 import com.ym.mec.biz.dal.dto.GoodsSellDto;
 import com.ym.mec.biz.dal.dto.RepairGoodsDto;
 import com.ym.mec.biz.dal.entity.*;
@@ -739,6 +740,37 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         List<GoodsSellDto> goodsSellDtos = JSONObject.parseArray(goodsJson, GoodsSellDto.class);
         Map<Integer, List<GoodsSellDto>> collect = goodsSellDtos.stream().collect(Collectors.groupingBy(GoodsSellDto::getGoodsId));
         List<Integer> goodsId = goodsSellDtos.stream().map(e -> e.getGoodsId()).collect(Collectors.toList());
+
+        List<Integer> goodsIds = new ArrayList<>();
+        goodsSellDtos.forEach(e->{
+            for (int i = 0; i < e.getGoodsNum(); i++) {
+                goodsIds.add(e.getGoodsId());
+            }
+        });
+        List<GoodsSellDto> goodsSellDtoList = new ArrayList<>();
+        //扣减库存
+        List<SellOrder> goodsBatchNoDtos = goodsService.subtractStock(goodsIds, AccountType.EXTERNAL);
+
+        Map<String, List<SellOrder>> listMap = goodsBatchNoDtos.stream().collect(Collectors.groupingBy(SellOrder::getBatchNo));
+        Set<String> listMapKeys = listMap.keySet();
+        listMapKeys.forEach(e->{
+            listMap.get(e).forEach(z->{
+                GoodsSellDto goodsSellDto1 = collect.get(z.getGoodsId()).get(0);
+                GoodsSellDto goodsSellDto = new GoodsSellDto();
+                if(StringUtils.isEmpty(z.getBatchNo())){
+                    goodsSellDto.setGoodsNum(1);
+                    goodsSellDto.setTotalGoodsPrice(goodsSellDto1.getGoodsPrice());
+                    goodsSellDto.setGoodsPrice(goodsSellDto1.getGoodsPrice());
+                    goodsSellDto.setGoodsId(goodsSellDto1.getGoodsId());
+                    goodsSellDto.setGoodsName(goodsSellDto1.getGoodsName());
+                    goodsSellDto.setGoodsType(goodsSellDto1.getGoodsType());
+                    goodsSellDto.setImage(goodsSellDto1.getImage());
+                }else {
+
+                }
+            });
+        });
+
         List<Goods> goodsByIds = goodsService.findGoodsByIds(StringUtils.join(goodsId, ","));
         Map<Integer, List<Goods>> goodsMap = goodsByIds.stream().collect(Collectors.groupingBy(Goods::getId));
         Map<String, BigDecimal> costMap = new HashMap<>(2);

+ 21 - 8
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -34,6 +34,8 @@
         <result column="complement_goods_id_list_" property="complementGoodsIdList"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="supply_channel_" property="supplyChannel" />
+        <result column="client_show_" property="clientShow" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="stock_warning_" property="stockWarning" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -52,23 +54,24 @@
         INSERT INTO goods
         (goods_category_id_,sn_,name_,brand_,specification_,image_,stock_count_,tax_stock_count_,sell_count_,market_price_,
         discount_price_,group_purchase_price_,brief_,desc_,is_new_,is_top_,status_,memo_,publish_time_,
-        complement_goods_id_list_,update_time_,create_time_,type_,agree_cost_price_)
+        complement_goods_id_list_,update_time_,create_time_,type_,agree_cost_price_,client_show_,stock_warning_)
         VALUES(#{goodsCategoryId},#{sn},#{name},#{brand},#{specification},#{image},#{stockCount},#{taxStockCount},#{sellCount},#{marketPrice},
-        #{discountPrice},#{groupPurchasePrice},#{brief},#{desc},
+        #{discountPrice},#{groupPurchasePrice},#{brief},
         #{isNew,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isTop,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{memo},#{publishTime},#{complementGoodsIdList},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{agreeCostPrice})
+        #{memo},#{publishTime},#{complementGoodsIdList},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{agreeCostPrice},
+        #{clientShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
     <insert id="batchInsert">
         INSERT INTO goods
         (goods_category_id_,name_,brand_,specification_,image_,market_price_,
         discount_price_,group_purchase_price_,desc_,update_time_,create_time_,type_,agree_cost_price_,sn_,
-        stock_count_,tax_stock_count_)
+        stock_count_,tax_stock_count_,client_show_,stock_warning_)
         VALUES
         <foreach collection="goodsList" separator="," item="goods">
             (#{goods.goodsCategoryId},#{goods.name},#{goods.brand},#{goods.specification},#{goods.image},#{goods.marketPrice},
             #{goods.discountPrice},#{goods.groupPurchasePrice},#{goods.desc},now(),now(),
             #{goods.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goods.agreeCostPrice},#{goods.sn},
-            #{goods.stockCount},#{goods.taxStockCount},)
+            #{goods.stockCount},#{goods.taxStockCount},#{goods.clientShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goods.stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
         </foreach>
     </insert>
     <!-- 根据主键查询一条记录 -->
@@ -120,9 +123,6 @@
             <if test="brief != null">
                 brief_ = #{brief},
             </if>
-            <if test="updateTime != null">
-                update_time_ = NOW(),
-            </if>
             <if test="discountPrice != null">
                 discount_price_ = #{discountPrice},
             </if>
@@ -144,6 +144,13 @@
             <if test="taxStockCount != null">
                 tax_stock_count_ = #{taxStockCount},
             </if>
+            <if test="clientShow != null">
+                client_show_ = #{clientShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="stockWarning != null">
+                stock_warning_ = #{stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+                update_time_ = NOW()
         </set>
         WHERE id_ = #{id}
     </update>
@@ -218,6 +225,12 @@
                 <if test="goods.taxStockCount != null">
                     tax_stock_count_ = #{goods.taxStockCount},
                 </if>
+                <if test="goods.clientShow != null">
+                    client_show_ = #{goods.clientShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                </if>
+                <if test="stockWarning != null">
+                    stock_warning_ = #{goods.stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                </if>
                     update_time_ = NOW()
             </set>
             WHERE id_ = #{goods.id}

+ 10 - 3
mec-biz/src/main/resources/config/mybatis/SellOrderMapper.xml

@@ -16,7 +16,7 @@
         <result column="expect_amount_" property="expectAmount"/>
         <result column="actual_amount_" property="actualAmount"/>
         <result column="balance_amount_" property="balanceAmount"/>
-        <result column="type_" property="type"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="parent_goods_id_" property="parentGoodsId"/>
         <result column="goods_id_" property="goodsId"/>
         <result column="goods_name_" property="goodsName"/>
@@ -30,7 +30,7 @@
         <result column="user_id_" property="userId"/>
         <result column="payment_channel_" property="paymentChannel"/>
         <result column="mer_no_" property="merNo"/>
-        <result column="status_" property="status"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="sell_time_" property="sellTime"/>
         <result column="create_ime_" property="createIme"/>
         <result column="update_time_" property="updateTime"/>
@@ -397,4 +397,11 @@
           AND sc.sell_time_ <= #{endTime}
         GROUP BY sc.organ_id_, sc.cooperation_organ_id_
         ]]></select>
-</mapper>
+
+    <select id="getSellOrders" resultMap="SellOrder">
+        SELECT * FROM sell_order WHERE id_ IN
+        <foreach collection="sellOrderIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
+</mapper>