diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java index ee1aa84..7b7345d 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java @@ -267,7 +267,6 @@ public class AdminOrderController { tradeOrderLineEntity.setGmtToShipping(new Date()); tradeOrderLineEntity.setSellerId(vvOrderRequest.getSellerId()); - vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity); vvTradeOrderConvertService.addOrderLineStatusLog( tradeOrderLineEntity.getId(), diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java index 0ac5099..0283963 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java @@ -33,6 +33,7 @@ import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.MessageDeliveryMode; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestBody; @@ -122,6 +123,8 @@ public class AppOrderController { @Autowired private VvPromoterBuyerDao vvPromoterBuyerDao; + @Autowired + private VvPromoterTradeOrderAwardDao vvPromoterTradeOrderAwardDao; /*** * https://api.1024api.com/api-interface/app/order/list @@ -296,6 +299,7 @@ public class AppOrderController { if (vvActivityDTO != null) { vvTradeOrderLineEntity.setAwardAmount(vvActivityDTO.getAwardAmount()); vvTradeOrderLineEntity.setDiscountAmount(vvActivityDTO.getDiscountAmount()); + vvTradeOrderLineEntity.setPromoterId(vvActivityDTO.getPromoterId()); payAmount = BigDecimalUtil.subtract(vvSkuEntity.getPromotionPrice(), vvActivityDTO.getDiscountAmount()); } vvTradeOrderLineEntity.setPayAmount(payAmount); @@ -306,6 +310,7 @@ public class AppOrderController { VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity(); VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId()); + //创建时间 vvTradeOrderEntity.setCreateTime(new Date()); vvTradeOrderEntity.setModifyTime(new Date()); @@ -332,7 +337,6 @@ public class AppOrderController { BigDecimal tradePayAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPayAmount); vvTradeOrderEntity.setPayAmount(tradePayAmount); vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity); - List vvPromoterTradeOrderLineAwardEntityList = new ArrayList<>(); for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { @@ -340,20 +344,65 @@ public class AppOrderController { // 如果在奖励金额 if (tradeOrderLineEntity.getAwardAmount().compareTo(BigDecimal.ZERO) > 0) { VvPromoterTradeOrderLineAwardEntity vvPromoterTradeOrderLineAwardEntity = new VvPromoterTradeOrderLineAwardEntity(); - + vvPromoterTradeOrderLineAwardEntity.setPromoterId(tradeOrderLineEntity.getPromoterId()); vvPromoterTradeOrderLineAwardEntity.setAwardAmount(vvActivityDTO.getAwardAmount()); vvPromoterTradeOrderLineAwardEntity.setTradeOrderId(vvTradeOrderEntity.getId()); vvPromoterTradeOrderLineAwardEntity.setTradeOrderLineId(tradeOrderLineEntity.getId()); + vvPromoterTradeOrderLineAwardEntity.setWasBuyerId(tradeOrderLineEntity.getBuyerId()); + vvPromoterTradeOrderLineAwardEntity.setWasBuyerName(tradeOrderLineEntity.getBuyerName()); + vvPromoterTradeOrderLineAwardEntity.setWasBuyerPhone(tradeOrderLineEntity.getBuyerPhone()); + vvPromoterTradeOrderLineAwardEntity.setWasBuyerWeixin(tradeOrderLineEntity.getBuyerWeixin()); vvPromoterTradeOrderLineAwardEntity.setStatus(AwardStatusEnums.create.getStatus()); vvPromoterTradeOrderLineAwardEntityList.add(vvPromoterTradeOrderLineAwardEntity); - } vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity); } List vvPromoterBuyerList = vvPromoterBuyerDao.selectVvPromoterBuyerByPromoterId(vvActivityDTO.getPromoterId()); + if (CollectionUtils.isNotEmpty(vvPromoterBuyerList) + && CollectionUtils.isNotEmpty(vvPromoterTradeOrderLineAwardEntityList)) { + for (int i = 0; i < vvPromoterBuyerList.size(); i++) { + VvPromoterTradeOrderAwardEntity vvPromoterTradeOrderAwardEntity = new VvPromoterTradeOrderAwardEntity(); + VvPromoterTradeOrderLineAwardEntity vvPromoterTradeOrderLineAwardIndex_0 = vvPromoterTradeOrderLineAwardEntityList.get(0); + VvPromoterBuyerEntity vvPromoterBuyer = vvPromoterBuyerList.get(i); + vvPromoterTradeOrderAwardEntity.setPromoterBuyerId(vvPromoterBuyer.getPromoterBuyerId()); + vvPromoterTradeOrderAwardEntity.setPromoterBuyerName(vvPromoterBuyer.getPromoterBuyerName()); + vvPromoterTradeOrderAwardEntity.setPromoterBuyerPhone(vvPromoterBuyer.getPromoterBuyerPhone()); + vvPromoterTradeOrderAwardEntity.setPromoterBuyerWeixin(vvPromoterBuyer.getPromoterBuyerWeixin()); + + BeanUtils.copyProperties(vvPromoterTradeOrderLineAwardIndex_0, vvPromoterTradeOrderAwardEntity); + vvPromoterTradeOrderAwardDao.insertVvPromoterTradeOrderAward(vvPromoterTradeOrderAwardEntity); + + BigDecimal tradeOrderAward = BigDecimal.ZERO; + for (VvPromoterTradeOrderLineAwardEntity vvPromoterTradeOrderLineAwardEntity : vvPromoterTradeOrderLineAwardEntityList) { + BigDecimal awardAmount = vvPromoterTradeOrderLineAwardEntity.getAwardAmount(); + BigDecimal awardAmountSingle = BigDecimalUtil.divide(awardAmount, new BigDecimal(vvPromoterBuyerList.size())); + VvPromoterTradeOrderLineAwardEntity promoterTradeOrderLineAwardNew = new VvPromoterTradeOrderLineAwardEntity(); + BeanUtils.copyProperties(vvPromoterTradeOrderLineAwardEntity, promoterTradeOrderLineAwardNew); + + BigDecimal sum = BigDecimal.ZERO; + if (i == vvPromoterBuyerList.size() - 1) { + promoterTradeOrderLineAwardNew.setAwardAmount(awardAmount.subtract(sum)); + } else { + sum = sum.add(awardAmountSingle); + promoterTradeOrderLineAwardNew.setAwardAmount(awardAmountSingle); + } + + promoterTradeOrderLineAwardNew.setPromoterBuyerId(vvPromoterBuyer.getPromoterBuyerId()); + promoterTradeOrderLineAwardNew.setPromoterBuyerName(vvPromoterBuyer.getPromoterBuyerName()); + promoterTradeOrderLineAwardNew.setPromoterBuyerPhone(vvPromoterBuyer.getPromoterBuyerPhone()); + promoterTradeOrderLineAwardNew.setPromoterBuyerWeixin(vvPromoterBuyer.getPromoterBuyerWeixin()); + + tradeOrderAward = tradeOrderAward.add(promoterTradeOrderLineAwardNew.getAwardAmount()); + vvPromoterTradeOrderLineAwardDao.insertVvPromoterTradeOrderLineAward(vvPromoterTradeOrderLineAwardEntity); + } + // 更新奖励金额 + vvPromoterTradeOrderAwardEntity.setAwardAmount(tradeOrderAward); + vvPromoterTradeOrderAwardDao.insertVvPromoterTradeOrderAward(vvPromoterTradeOrderAwardEntity); + } + } for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) { vvSkuDao.updateVvSkuStockSaleCountById(vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getSkuId()); @@ -397,7 +446,6 @@ public class AppOrderController { }); } - WxPayVO vo = new WxPayVO(); Long timeStamp = System.currentTimeMillis() / 1000; String nonceStr = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);