|
@@ -167,6 +167,11 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ public UserOrderVo getUserOrderByPaymentNoOrTransNo(String paymentNo, String transNo) {
|
|
|
|
+ return baseMapper.getUserOrderByPaymentNoOrTransNo(paymentNo,transNo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public HttpResponseResult<Boolean> orderCancel(OrderPayReq payReq) {
|
|
public HttpResponseResult<Boolean> orderCancel(OrderPayReq payReq) {
|
|
UserOrderVo detail = detail(payReq.getOrderNo(), payReq.getUserId());
|
|
UserOrderVo detail = detail(payReq.getOrderNo(), payReq.getUserId());
|
|
@@ -189,7 +194,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
return HttpResponseResult.failed("订单已经交易完成");
|
|
return HttpResponseResult.failed("订单已经交易完成");
|
|
}
|
|
}
|
|
//关闭订单付款单
|
|
//关闭订单付款单
|
|
- orderPaymentService.closePayment(payReq.getOrderNo(), StringUtil.isEmpty(payReq.getReason()) ? "用户取消订单" : payReq.getReason());
|
|
|
|
|
|
+ orderPaymentService.closePaymentAndReqOpen(payReq.getOrderNo(), StringUtil.isEmpty(payReq.getReason()) ? "用户取消订单" : payReq.getReason());
|
|
}
|
|
}
|
|
//关闭订单
|
|
//关闭订单
|
|
doOrderCancel(detail, OrderStatusEnum.CLOSE, StringUtil.isEmpty(payReq.getReason()) ? "用户取消订单" : payReq.getReason());
|
|
doOrderCancel(detail, OrderStatusEnum.CLOSE, StringUtil.isEmpty(payReq.getReason()) ? "用户取消订单" : payReq.getReason());
|
|
@@ -252,17 +257,18 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
long start = System.currentTimeMillis();
|
|
long start = System.currentTimeMillis();
|
|
log.info("订单[创建订单] Req:{}", JSONObject.toJSONString(orderReq));
|
|
log.info("订单[创建订单] Req:{}", JSONObject.toJSONString(orderReq));
|
|
//订单号生成
|
|
//订单号生成
|
|
- Long orderNo = idGeneratorService.generatorId("userOrder");
|
|
|
|
|
|
+ Long orderNo = idGeneratorService.generatorId("orderNo");
|
|
|
|
+ orderReq.setOrderNo(Long.toString(orderNo));
|
|
//验证参数,必须验证参数
|
|
//验证参数,必须验证参数
|
|
- List<OrderCreateRes> resList = new ArrayList<>();
|
|
|
|
for (OrderReq.OrderReqInfo info : orderReq.getOrderInfos()) {
|
|
for (OrderReq.OrderReqInfo info : orderReq.getOrderInfos()) {
|
|
Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>> createFunction = orderCreate.get(info.getGoodType());
|
|
Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>> createFunction = orderCreate.get(info.getGoodType());
|
|
if (Objects.isNull(createFunction)) {
|
|
if (Objects.isNull(createFunction)) {
|
|
return HttpResponseResult.failed("订单商品信息获取失败");
|
|
return HttpResponseResult.failed("订单商品信息获取失败");
|
|
}
|
|
}
|
|
|
|
+ info.setOrderNo(orderReq.getOrderNo());
|
|
|
|
+ Long subOrderNo = idGeneratorService.generatorId("subOrderNo");
|
|
|
|
+ info.setSubOrderNo(Long.toString(subOrderNo));
|
|
|
|
|
|
-
|
|
|
|
- info.setOrderNo(Long.toString(orderNo));
|
|
|
|
info.setUserId(orderReq.getUserId());
|
|
info.setUserId(orderReq.getUserId());
|
|
HttpResponseResult<OrderCreateRes> createResult = createFunction.apply(info);
|
|
HttpResponseResult<OrderCreateRes> createResult = createFunction.apply(info);
|
|
OrderCreateRes createRes = createResult.getData();
|
|
OrderCreateRes createRes = createResult.getData();
|
|
@@ -275,11 +281,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
BigDecimal couponAmount = BigDecimal.ZERO;
|
|
BigDecimal couponAmount = BigDecimal.ZERO;
|
|
createRes.setActualPrice(createRes.getExpectPrice().subtract(couponAmount).setScale(2, RoundingMode.HALF_UP));
|
|
createRes.setActualPrice(createRes.getExpectPrice().subtract(couponAmount).setScale(2, RoundingMode.HALF_UP));
|
|
createRes.setCouponAmount(couponAmount);
|
|
createRes.setCouponAmount(couponAmount);
|
|
- resList.add(createRes);
|
|
|
|
|
|
+
|
|
|
|
+ info.setCreateRes(createRes);
|
|
}
|
|
}
|
|
|
|
|
|
//验证成功后,订单入库
|
|
//验证成功后,订单入库
|
|
- UserOrderVo orderVo = insertOrder(orderNo, orderReq, resList);
|
|
|
|
|
|
+ UserOrderVo orderVo = insertOrder(orderReq);
|
|
|
|
|
|
List<UserOrderDetailVo> orderDetailList = orderVo.getOrderDetailList();
|
|
List<UserOrderDetailVo> orderDetailList = orderVo.getOrderDetailList();
|
|
for (UserOrderDetailVo orderDetailVo : orderDetailList) {
|
|
for (UserOrderDetailVo orderDetailVo : orderDetailList) {
|
|
@@ -373,7 +380,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
//关闭订单
|
|
//关闭订单
|
|
doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
|
|
doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
|
|
//关闭订单付款单
|
|
//关闭订单付款单
|
|
- orderPaymentService.closePayment(orderNo, "订单超时");
|
|
|
|
|
|
+ orderPaymentService.closePaymentAndReqOpen(orderNo, "订单超时");
|
|
}
|
|
}
|
|
|
|
|
|
private HttpResponseResult<OrderPayRes> doOrderPay(OrderPayReq payReq, UserOrderVo detail) throws Exception {
|
|
private HttpResponseResult<OrderPayRes> doOrderPay(OrderPayReq payReq, UserOrderVo detail) throws Exception {
|
|
@@ -384,6 +391,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
orderPayRes.setPay_amt(orderPayment.getPayAmt().toString());
|
|
orderPayRes.setPay_amt(orderPayment.getPayAmt().toString());
|
|
orderPayRes.setPay_info(orderPayment.getPayInfo());
|
|
orderPayRes.setPay_info(orderPayment.getPayInfo());
|
|
orderPayRes.setPayChannel(orderPayment.getPayChannel());
|
|
orderPayRes.setPayChannel(orderPayment.getPayChannel());
|
|
|
|
+ orderPayRes.setPaymentNo(orderPayment.getPaymentNo());
|
|
return HttpResponseResult.succeed(orderPayRes);
|
|
return HttpResponseResult.succeed(orderPayRes);
|
|
}
|
|
}
|
|
return orderPaymentService.createOrderPayment(payReq, detail);
|
|
return orderPaymentService.createOrderPayment(payReq, detail);
|
|
@@ -396,10 +404,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
* @updateTime 2022/3/31 16:15
|
|
* @updateTime 2022/3/31 16:15
|
|
* @return: com.yonge.cooleshow.biz.dal.entity.Order
|
|
* @return: com.yonge.cooleshow.biz.dal.entity.Order
|
|
*/
|
|
*/
|
|
- private UserOrderVo insertOrder(Long orderNo, OrderReq orderReq, List<OrderCreateRes> resList) throws Exception {
|
|
|
|
|
|
+ private UserOrderVo insertOrder(OrderReq orderReq) throws Exception {
|
|
UserOrder userOrder = new UserOrder();
|
|
UserOrder userOrder = new UserOrder();
|
|
|
|
|
|
- userOrder.setOrderNo(Long.toString(orderNo));
|
|
|
|
|
|
+ userOrder.setOrderNo(orderReq.getOrderNo());
|
|
userOrder.setUserId(orderReq.getUserId());
|
|
userOrder.setUserId(orderReq.getUserId());
|
|
userOrder.setOrderName(orderReq.getOrderName());
|
|
userOrder.setOrderName(orderReq.getOrderName());
|
|
userOrder.setOrderType(orderReq.getOrderType());
|
|
userOrder.setOrderType(orderReq.getOrderType());
|
|
@@ -421,10 +429,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
userOrder.setCouponAmount(BigDecimal.ZERO);
|
|
userOrder.setCouponAmount(BigDecimal.ZERO);
|
|
userOrder.setPlantformFee(BigDecimal.ZERO);
|
|
userOrder.setPlantformFee(BigDecimal.ZERO);
|
|
List<UserOrderDetailVo> orderDetailList = new ArrayList<>();
|
|
List<UserOrderDetailVo> orderDetailList = new ArrayList<>();
|
|
- for (OrderCreateRes res : resList) {
|
|
|
|
|
|
+ for (OrderReq.OrderReqInfo data : orderReq.getOrderInfos()) {
|
|
|
|
+ OrderCreateRes res = data.getCreateRes();
|
|
|
|
|
|
UserOrderDetailVo orderDetail = new UserOrderDetailVo();
|
|
UserOrderDetailVo orderDetail = new UserOrderDetailVo();
|
|
- orderDetail.setOrderNo(userOrder.getOrderNo());
|
|
|
|
|
|
+ orderDetail.setOrderNo(data.getOrderNo());
|
|
|
|
+ orderDetail.setSubOrderNo(data.getSubOrderNo());
|
|
orderDetail.setMerchId(res.getMerchId());
|
|
orderDetail.setMerchId(res.getMerchId());
|
|
orderDetail.setGoodType(res.getGoodType());
|
|
orderDetail.setGoodType(res.getGoodType());
|
|
orderDetail.setBizId(res.getBizId());
|
|
orderDetail.setBizId(res.getBizId());
|
|
@@ -633,10 +643,15 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
if (!Objects.isNull(userOrderVoConsumer)) {
|
|
if (!Objects.isNull(userOrderVoConsumer)) {
|
|
userOrderVoConsumer.accept(orderDetailVo);
|
|
userOrderVoConsumer.accept(orderDetailVo);
|
|
}
|
|
}
|
|
|
|
+ Long merchId = orderDetailVo.getMerchId();
|
|
|
|
+ if (null != merchId) {
|
|
|
|
+ redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(merchId)).delete();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//清除老师声部缓存
|
|
//清除老师声部缓存
|
|
redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(detail.getUserId())).delete();
|
|
redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(detail.getUserId())).delete();
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|