|
@@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.annotation.PostConstruct;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.function.Consumer;
|
|
import java.util.function.Consumer;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
@@ -54,13 +55,14 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
private PaymentSdk paymentSdk;
|
|
private PaymentSdk paymentSdk;
|
|
@Autowired
|
|
@Autowired
|
|
private IdGeneratorService idGeneratorService;
|
|
private IdGeneratorService idGeneratorService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CourseGroupService courseGroupService;
|
|
|
|
|
|
//验证订单是否可以下单
|
|
//验证订单是否可以下单
|
|
private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
|
|
private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
|
|
//插入订单后执行
|
|
//插入订单后执行
|
|
private static final Map<GoodTypeEnum, Consumer<UserOrderDetailVo>> orderAfter = new HashMap<>();
|
|
private static final Map<GoodTypeEnum, Consumer<UserOrderDetailVo>> orderAfter = new HashMap<>();
|
|
|
|
|
|
-
|
|
|
|
//订单完成后执行
|
|
//订单完成后执行
|
|
private static final Map<GoodTypeEnum, Consumer<UserOrderDetailVo>> orderSuccess = new HashMap<>();
|
|
private static final Map<GoodTypeEnum, Consumer<UserOrderDetailVo>> orderSuccess = new HashMap<>();
|
|
//订单取消后执行
|
|
//订单取消后执行
|
|
@@ -71,9 +73,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
/**********订单生成前******************/
|
|
/**********订单生成前******************/
|
|
//vip开通缴费
|
|
//vip开通缴费
|
|
orderCreate.put(GoodTypeEnum.VIP, vipCardService::orderCreate);
|
|
orderCreate.put(GoodTypeEnum.VIP, vipCardService::orderCreate);
|
|
|
|
+ //直播课程购买
|
|
|
|
+ orderCreate.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourse);
|
|
|
|
|
|
/**********订单生成后******************/
|
|
/**********订单生成后******************/
|
|
- //orderAfter.put(OrderTypeEnum.VIP, vipCardService::orderAfter);
|
|
|
|
|
|
+ //直播课程购买after
|
|
|
|
+ orderAfter.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourseAfter);
|
|
|
|
|
|
/**********订单完成后******************/
|
|
/**********订单完成后******************/
|
|
//vip开通缴费
|
|
//vip开通缴费
|
|
@@ -137,7 +142,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
//验证成功后,订单入库
|
|
//验证成功后,订单入库
|
|
UserOrderVo orderVo = insertOrder(orderReq, resList);
|
|
UserOrderVo orderVo = insertOrder(orderReq, resList);
|
|
List<UserOrderDetailVo> orderDetailList = orderVo.getOrderDetailList();
|
|
List<UserOrderDetailVo> orderDetailList = orderVo.getOrderDetailList();
|
|
- for(UserOrderDetailVo orderDetailVo : orderDetailList){
|
|
|
|
|
|
+ for (UserOrderDetailVo orderDetailVo : orderDetailList) {
|
|
orderDetailVo.setUserId(orderReq.getUserId());
|
|
orderDetailVo.setUserId(orderReq.getUserId());
|
|
orderDetailVo.setOrderId(orderVo.getId());
|
|
orderDetailVo.setOrderId(orderVo.getId());
|
|
|
|
|
|
@@ -267,7 +272,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
PaymentReq paymentReq = new PaymentReq();
|
|
PaymentReq paymentReq = new PaymentReq();
|
|
paymentReq.setOrder_no(payReq.getOrderNo());
|
|
paymentReq.setOrder_no(payReq.getOrderNo());
|
|
paymentReq.setPay_channel(payReq.getPayChannel().getCode());
|
|
paymentReq.setPay_channel(payReq.getPayChannel().getCode());
|
|
- paymentReq.setPay_amt(detail.getActualPrice().setScale(2).toString());
|
|
|
|
|
|
+ paymentReq.setPay_amt(detail.getActualPrice().setScale(2, RoundingMode.HALF_UP).toString());
|
|
paymentReq.setGoods_title(detail.getOrderName());
|
|
paymentReq.setGoods_title(detail.getOrderName());
|
|
paymentReq.setGoods_desc(detail.getOrderDesc());
|
|
paymentReq.setGoods_desc(detail.getOrderDesc());
|
|
|
|
|
|
@@ -363,8 +368,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
private UserOrderVo insertOrder(OrderReq orderReq, List<OrderCreateRes> resList) {
|
|
private UserOrderVo insertOrder(OrderReq orderReq, List<OrderCreateRes> resList) {
|
|
UserOrder userOrder = new UserOrder();
|
|
UserOrder userOrder = new UserOrder();
|
|
//订单号生成
|
|
//订单号生成
|
|
- Long orderNo = idGeneratorService.generatorId("userOrder");
|
|
|
|
- userOrder.setOrderNo(orderNo.toString());
|
|
|
|
|
|
+ long orderNo = idGeneratorService.generatorId("userOrder");
|
|
|
|
+ userOrder.setOrderNo(Long.toString(orderNo));
|
|
userOrder.setUserId(orderReq.getUserId());
|
|
userOrder.setUserId(orderReq.getUserId());
|
|
userOrder.setOrderName(orderReq.getOrderName());
|
|
userOrder.setOrderName(orderReq.getOrderName());
|
|
userOrder.setOrderType(orderReq.getOrderType());
|
|
userOrder.setOrderType(orderReq.getOrderType());
|
|
@@ -395,7 +400,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
BigDecimal serviceFeeRate = getServiceFeeRate(res.getGoodType());
|
|
BigDecimal serviceFeeRate = getServiceFeeRate(res.getGoodType());
|
|
orderDetail.setPlantformFee(userOrder.getExpectPrice().multiply(serviceFeeRate));
|
|
orderDetail.setPlantformFee(userOrder.getExpectPrice().multiply(serviceFeeRate));
|
|
orderDetail.setPlantformFeeRate(serviceFeeRate);
|
|
orderDetail.setPlantformFeeRate(serviceFeeRate);
|
|
-
|
|
|
|
|
|
+ orderDetail.setBizParam(res.getBizParam());
|
|
orderDetail.setCreateTime(new Date());
|
|
orderDetail.setCreateTime(new Date());
|
|
orderDetailService.save(orderDetail);
|
|
orderDetailService.save(orderDetail);
|
|
orderDetailList.add(orderDetail);
|
|
orderDetailList.add(orderDetail);
|
|
@@ -480,7 +485,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
orderPaymentService.updateById(orderPayment);
|
|
orderPaymentService.updateById(orderPayment);
|
|
}
|
|
}
|
|
List<UserOrderDetailVo> orderDetailList = orderDetailService.getOrderDetilListByOrderNo(userOrder.getOrderNo());
|
|
List<UserOrderDetailVo> orderDetailList = orderDetailService.getOrderDetilListByOrderNo(userOrder.getOrderNo());
|
|
- for(UserOrderDetailVo orderDetailVo : orderDetailList){
|
|
|
|
|
|
+ for (UserOrderDetailVo orderDetailVo : orderDetailList) {
|
|
orderDetailVo.setUserId(userOrder.getUserId());
|
|
orderDetailVo.setUserId(userOrder.getUserId());
|
|
orderDetailVo.setOrderId(userOrder.getId());
|
|
orderDetailVo.setOrderId(userOrder.getId());
|
|
//调用业务
|
|
//调用业务
|
|
@@ -523,7 +528,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
orderPaymentService.updateById(orderPayment);
|
|
orderPaymentService.updateById(orderPayment);
|
|
|
|
|
|
List<UserOrderDetailVo> orderDetailList = orderDetailService.getOrderDetilListByOrderNo(detail.getOrderNo());
|
|
List<UserOrderDetailVo> orderDetailList = orderDetailService.getOrderDetilListByOrderNo(detail.getOrderNo());
|
|
- for(UserOrderDetailVo orderDetailVo : orderDetailList){
|
|
|
|
|
|
+ for (UserOrderDetailVo orderDetailVo : orderDetailList) {
|
|
orderDetailVo.setUserId(detail.getUserId());
|
|
orderDetailVo.setUserId(detail.getUserId());
|
|
orderDetailVo.setOrderId(detail.getId());
|
|
orderDetailVo.setOrderId(detail.getId());
|
|
//调用业务
|
|
//调用业务
|