Kaynağa Gözat

feat:乐团费用改造

Joburgess 4 yıl önce
ebeveyn
işleme
fc975b67fe

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java

@@ -118,4 +118,6 @@ public interface GoodsService extends BaseService<Integer, Goods> {
      * @return java.util.List<com.ym.mec.biz.dal.dto.GoodsSellDto>
      */
     List<GoodsSellDto> queryGoodsSellDtos(String goodsId);
+
+    void getGoodsTest(Integer goodsId);
 }

+ 23 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -392,18 +392,30 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 		}
 		List<Long> calenderIds = musicGroupPaymentCalenders.stream().map(MusicGroupPaymentCalender::getId).collect(Collectors.toList());
 		List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.getWithCalenderIds(calenderIds);
-		//学员总缴费金额
-		BigDecimal totalActualAmount = calenderDetails.stream().map(MusicGroupPaymentCalenderDetail::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-		for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
-			if(totalActualAmount.compareTo(courseScheduleStudentPayment.getExpectPrice())>=0){
-				courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
-				totalActualAmount=totalActualAmount.subtract(courseScheduleStudentPayment.getExpectPrice());
-			}else{
-				courseScheduleStudentPayment.setActualPrice(totalActualAmount);
-				totalActualAmount=BigDecimal.ZERO;
+
+		Map<Integer, List<CourseScheduleStudentPayment>> studentStudentPaymentMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getUserId));
+		Map<Integer, List<MusicGroupPaymentCalenderDetail>> studentCalenderDetailMap = calenderDetails.stream().collect(Collectors.groupingBy(MusicGroupPaymentCalenderDetail::getUserId));
+
+		List<CourseScheduleStudentPayment> updateStudentPayments = new ArrayList<>();
+
+		for (Map.Entry<Integer, List<CourseScheduleStudentPayment>> studentStudentPaymentMapEntry : studentStudentPaymentMap.entrySet()) {
+			List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetails = studentCalenderDetailMap.get(studentStudentPaymentMapEntry.getKey());
+
+			//学员总缴费金额
+			BigDecimal totalActualAmount = musicGroupPaymentCalenderDetails.stream().map(MusicGroupPaymentCalenderDetail::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+			for (CourseScheduleStudentPayment courseScheduleStudentPayment : studentStudentPaymentMapEntry.getValue()) {
+				if(totalActualAmount.compareTo(courseScheduleStudentPayment.getExpectPrice())>=0){
+					courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
+					totalActualAmount=totalActualAmount.subtract(courseScheduleStudentPayment.getExpectPrice());
+				}else{
+					courseScheduleStudentPayment.setActualPrice(totalActualAmount);
+					totalActualAmount=BigDecimal.ZERO;
+				}
+				updateStudentPayments.add(courseScheduleStudentPayment);
 			}
 		}
-		courseScheduleStudentPaymentDao.batchUpdate(courseScheduleStudentPayments);
+
+		courseScheduleStudentPaymentDao.batchUpdate(updateStudentPayments);
 	}
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -447,6 +447,18 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 
 	@Override
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public void getGoodsTest(Integer goodsId) {
+		List<Goods> tempGoodsList = goodsDao.lockGoods(Arrays.asList(goodsId));
+		Goods goods = goodsDao.get(goodsId);
+		if(!tempGoodsList.get(0).getSellCount().equals(goods.getSellCount())){
+			System.out.println("-----------------------------------" + goods);
+		}
+		goods.setSellCount(new AtomicInteger(goods.getSellCount()).incrementAndGet());
+		goodsDao.update(goods);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	public List<SellOrder> subtractStock(List<Integer> goodsIds, AccountType accountType) {
 		if(CollectionUtils.isEmpty(goodsIds)){
 			return Collections.emptyList();

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java

@@ -5,6 +5,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.GoodsCategory;
 import com.ym.mec.biz.dal.entity.GoodsProcurement;
 import com.ym.mec.biz.service.GoodsCategoryService;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -118,4 +119,10 @@ public class GoodsController extends BaseController {
     public Object findGoodsBySubId(Integer subjectId,String type){
         return succeed(goodsService.findGoodsBySubId(subjectId,type));
     }
+
+    @GetMapping("getGoodsTest")
+    public HttpResponseResult getGoodsTest(Integer goodsId){
+        goodsService.getGoodsTest(goodsId);
+        return succeed();
+    }
 }