|
@@ -199,7 +199,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
return HttpResponseResult.failed("订单已关闭");
|
|
|
}
|
|
|
//关闭或完成订单
|
|
|
- closeOrSuccessOrder(payReq.getOrderNo());
|
|
|
+ closeOrSuccessOrder(payReq.getOrderNo(), StringUtil.isEmpty(payReq.getReason()) ? "订单取消" : payReq.getReason());
|
|
|
return HttpResponseResult.succeed(true);
|
|
|
}
|
|
|
|
|
@@ -380,7 +380,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
List<UserOrderVo> payingOrderList = baseMapper.selectPendingList(search);
|
|
|
for (UserOrderVo orderVo : payingOrderList) {
|
|
|
//取消订单要获取锁,防止在轮询取消时,用户修改订单状态
|
|
|
- boolean b = DistributedLock.of(redissonClient)
|
|
|
+ DistributedLock.of(redissonClient)
|
|
|
.runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(orderVo.getOrderNo())
|
|
|
, () -> pollingCancelOrder(orderVo.getOrderNo()), 60L, TimeUnit.SECONDS);
|
|
|
}
|
|
@@ -388,10 +388,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
void pollingCancelOrder(String orderNo) {
|
|
|
- closeOrSuccessOrder(orderNo);
|
|
|
+ closeOrSuccessOrder(orderNo, "订单超时");
|
|
|
}
|
|
|
|
|
|
- private void closeOrSuccessOrder(String orderNo) {
|
|
|
+ private void closeOrSuccessOrder(String orderNo, String reason) {
|
|
|
UserOrderVo detail = detail(orderNo, null);
|
|
|
if (null == detail) {
|
|
|
return;
|
|
@@ -403,7 +403,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
UserOrderPayment userOrderPayment = orderPaymentService.detailByTransNoOrPaymentNo(detail.getTransNo(), detail.getPaymentNo());
|
|
|
if (null == userOrderPayment) {
|
|
|
//关闭订单
|
|
|
- doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
|
|
|
+ doOrderCancel(detail, OrderStatusEnum.CLOSE, reason);
|
|
|
} else if (TradeStatusEnum.pending.equals(userOrderPayment.getStatus())) {
|
|
|
Payment param = new Payment(detail.getOpenType(),
|
|
|
PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), detail.getPayChannel());
|
|
@@ -435,10 +435,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
orderPaymentService.updateById(userOrderPayment);
|
|
|
} else {
|
|
|
//关闭订单付款单
|
|
|
- Boolean close = orderPaymentService.closePaymentAndReqOpen(orderNo, "订单超时");
|
|
|
+ Boolean close = orderPaymentService.closePaymentAndReqOpen(orderNo, reason);
|
|
|
if (close) {
|
|
|
//关闭订单
|
|
|
- doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
|
|
|
+ doOrderCancel(detail, OrderStatusEnum.CLOSE, reason);
|
|
|
}
|
|
|
}
|
|
|
} else if (TradeStatusEnum.succeeded.equals(userOrderPayment.getStatus())) {
|
|
@@ -449,7 +449,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
doOrderCancel(detail, OrderStatusEnum.FAIL, userOrderPayment.getPayFailMsg());
|
|
|
} else if (TradeStatusEnum.close.equals(userOrderPayment.getStatus())) {
|
|
|
//关闭订单
|
|
|
- doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
|
|
|
+ doOrderCancel(detail, OrderStatusEnum.CLOSE, reason);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -659,6 +659,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
configValue = sysConfigService.findConfigValue(SysConfigConstant.GOOD_LOGO_MUSIC);
|
|
|
} else if (GoodTypeEnum.PINAO_ROOM.equals(goodTypeEnum)) {
|
|
|
configValue = sysConfigService.findConfigValue(SysConfigConstant.GOOD_LOGO_PIANO_ROOM);
|
|
|
+ } else if (GoodTypeEnum.ACTI_REGIST.equals(goodTypeEnum)) {
|
|
|
+ configValue = sysConfigService.findConfigValue(SysConfigConstant.GOOD_LOGO_ACTI_REGIST);
|
|
|
}
|
|
|
return configValue;
|
|
|
}
|
|
@@ -816,15 +818,11 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
|
|
|
InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.PIAON_ROOM, orderDetailVo.getBizId(),
|
|
|
orderDetailVo.getOrderNo(), accountPeriodTime);
|
|
|
- }else if (GoodTypeEnum.ACTI_REGIST.equals(orderDetailVo.getGoodType())) {
|
|
|
- AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode());
|
|
|
- platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
|
|
|
- InOrOutEnum.IN, PostStatusEnum.RECORDED, bizTypeEnum, orderDetailVo.getBizId(),
|
|
|
- orderDetailVo.getOrderNo(), accountPeriodTime);
|
|
|
} else {
|
|
|
AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(orderDetailVo.getGoodType().getCode());
|
|
|
platformCashAccountRecord = new PlatformCashAccountRecord(orderDetailVo.getUserId(), platformFee,
|
|
|
- InOrOutEnum.IN, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(), orderDetailVo.getOrderNo(), accountPeriodTime);
|
|
|
+ InOrOutEnum.IN, PostStatusEnum.WAIT, bizTypeEnum, orderDetailVo.getBizId(),
|
|
|
+ orderDetailVo.getOrderNo(), accountPeriodTime);
|
|
|
}
|
|
|
platformCashAccountRecordService.save(platformCashAccountRecord);
|
|
|
}
|
|
@@ -833,7 +831,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
if (null != orderDetailVo.getRecomUserId()
|
|
|
&& !orderDetailVo.getRecomUserId().equals(orderDetailVo.getMerchId())) {
|
|
|
//获取分润收益费率
|
|
|
- BigDecimal shareFeeRate = getShareFreeByGoodType(orderDetailVo.getGoodType());
|
|
|
+ BigDecimal shareFeeRate = getShareFreeByGoodType(orderDetailVo.getGoodType()
|
|
|
+ , orderDetailVo.getBizId());
|
|
|
//入老师账户
|
|
|
BigDecimal shareFee = expectPrice.multiply(shareFeeRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
if (shareFee.compareTo(BigDecimal.ZERO) > 0) {
|
|
@@ -867,10 +866,6 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
|
|
|
if (GoodTypeEnum.VIP.equals(goodType)) {
|
|
|
instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIP_ACCOUNT_PERIOD)));
|
|
|
- } else if (GoodTypeEnum.VIDEO.equals(goodType)) {
|
|
|
- instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIDEO_ACCOUNT_PERIOD)));
|
|
|
- } else if (GoodTypeEnum.MUSIC.equals(goodType)) {
|
|
|
- instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.MUSIC_ACCOUNT_PERIOD)));
|
|
|
} else if (GoodTypeEnum.PRACTICE.equals(goodType)) {
|
|
|
instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
|
|
|
} else if (GoodTypeEnum.LIVE.equals(goodType)) {
|
|
@@ -878,6 +873,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
CourseGroup byId = courseGroupService.getById(orderDetailVo.getBizId());
|
|
|
instance.setTime(byId.getSalesEndDate());
|
|
|
instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.LIVE_ACCOUNT_PERIOD)));
|
|
|
+ } else if (GoodTypeEnum.VIDEO.equals(goodType)) {
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.VIDEO_ACCOUNT_PERIOD)));
|
|
|
+ } else if (GoodTypeEnum.MUSIC.equals(goodType)) {
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.MUSIC_ACCOUNT_PERIOD)));
|
|
|
+ } else if (GoodTypeEnum.ACTI_REGIST.equals(goodType)) {
|
|
|
+ instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.ACTI_REGIST_ACCOUNT_PERIOD)));
|
|
|
}
|
|
|
return instance.getTime();
|
|
|
}
|
|
@@ -889,7 +890,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public BigDecimal getShareFreeByGoodType(GoodTypeEnum goodType) {
|
|
|
+ public BigDecimal getShareFreeByGoodType(GoodTypeEnum goodType, Long bizId) {
|
|
|
if (GoodTypeEnum.VIP.equals(goodType)) {
|
|
|
return getShareFreeByConfigName(SysConfigConstant.VIP_SHARE_FEE);
|
|
|
}
|
|
@@ -902,6 +903,13 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
if (GoodTypeEnum.MUSIC.equals(goodType)) {
|
|
|
return getShareFreeByConfigName(SysConfigConstant.MUSIC_SHARE_FEE);
|
|
|
}
|
|
|
+ if (GoodTypeEnum.ACTI_REGIST.equals(goodType)) {
|
|
|
+ //获取当前活动的分润比例
|
|
|
+ ActivityPlan byId = activityPlanService.getById(bizId);
|
|
|
+ if (null != byId && null != byId.getShareRate()) {
|
|
|
+ return byId.getShareRate();
|
|
|
+ }
|
|
|
+ }
|
|
|
return BigDecimal.ZERO;
|
|
|
}
|
|
|
|
|
@@ -919,7 +927,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
*/
|
|
|
private BigDecimal getPlatformFreeByGoodType(GoodTypeEnum goodType) {
|
|
|
//会员|琴房时长,平台全额收益
|
|
|
- if (GoodTypeEnum.VIP.equals(goodType) || GoodTypeEnum.PINAO_ROOM.equals(goodType)) {
|
|
|
+ if (GoodTypeEnum.VIP.equals(goodType) || GoodTypeEnum.PINAO_ROOM.equals(goodType)
|
|
|
+ || GoodTypeEnum.ACTI_REGIST.equals(goodType)) {
|
|
|
return BigDecimal.ONE;
|
|
|
}
|
|
|
if (GoodTypeEnum.PRACTICE.equals(goodType)) {
|