yonge 3 rokov pred
rodič
commit
c3008b51c2

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -30,6 +30,7 @@ import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.yqpay.*;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -43,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 @Service
@@ -84,6 +86,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private GoodsDao goodsDao;
     @Autowired
+    private GoodsService goodsService;
+    @Autowired
     private StudentInstrumentService studentInstrumentService;
     @Autowired
     private ReplacementInstrumentActivityService replacementInstrumentActivityService;
@@ -109,6 +113,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private TenantConfigService tenantConfigService;
+    @Autowired
+    private GoodsProcurementDao goodsProcurementDao;
 
     @Override
     public BaseDAO<Long, StudentPaymentOrder> getDAO() {
@@ -793,6 +799,40 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         //处理关闭订单
         order.setStatus(DealStatusEnum.CLOSE);
         order.setMemo("关闭订单");
+        
+        Date nowDate = new Date();
+		List<Goods> batchUpdateGoodsList = new ArrayList<Goods>();
+        //增加商品库存
+        List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = studentPaymentOrderDetailService.queryOrderDetail(order.getId());
+        String goodsIds = studentPaymentOrderDetailList.stream().filter(t -> StringUtils.isNotBlank(t.getMinuendStockGoodsIdList())).map(t -> t.getMinuendStockGoodsIdList()).collect(Collectors.joining(","));
+        if(StringUtils.isNotBlank(goodsIds)){
+        	GoodsProcurement goodsProcurement = null;
+        	List<GoodsProcurement> goodsProcurementList = new ArrayList<GoodsProcurement>();
+        	List<Goods> goodsList = goodsService.getGoodsWithLocked(goodsIds);
+        	for(Goods subGoods : goodsList){
+				subGoods.setStockCount(new AtomicInteger(subGoods.getStockCount()).incrementAndGet());
+				subGoods.setSellCount(new AtomicInteger(subGoods.getSellCount()).decrementAndGet());
+				subGoods.setUpdateTime(nowDate);
+				batchUpdateGoodsList.add(subGoods);
+				
+				// 进货清单
+				goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(subGoods.getId());
+				if(goodsProcurement != null){
+					goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).decrementAndGet());
+					goodsProcurement.setUpdateTime(nowDate);
+					goodsProcurementList.add(goodsProcurement);
+				}
+        	}
+        	
+        	if(goodsProcurementList.size() > 0){
+        		goodsProcurementDao.batchUpdate(goodsProcurementList);
+        	}
+        }
+        
+        if(batchUpdateGoodsList.size() > 0){
+        	goodsService.batchUpdate(batchUpdateGoodsList);
+        }
+        
         //如果是报名订单,订单关闭时需要更改已缴费学员数
         cutSubjectPlan(order);
         if (order.getBalancePaymentAmount() != null && order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -838,7 +838,8 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 	        	if(StringUtils.isNotBlank(subjectChange.getChangeAccessories())){
 	        		originalAccessories = Arrays.asList(subjectChange.getChangeAccessories().split(","));
 	        	}
-	        	changeAccessoriesList.removeAll(originalAccessories);
+	        	// changeAccessoriesList.removeAll(originalAccessories);
+	        	changeAccessoriesList = ListUtils.subtract(changeAccessoriesList, originalAccessories);
 	        	
 	        	if(subjectChange.getChangeMusical() != subjectChange.getOriginalMusical()){
 	        		changeAccessoriesList.add(subjectChange.getOriginalMusical()+"");