|
|
@@ -257,7 +257,7 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AjaxResult refundById(VipCardLog vipCardLog, boolean isOnline) {
|
|
|
+ public AjaxResult refundById(VipCardLog vipCardLog, boolean isOnline, boolean executeUpdate) {
|
|
|
|
|
|
|
|
|
if(StringUtils.isEmpty(vipCardLog.getId())){
|
|
|
@@ -318,8 +318,6 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
if (cancelTime.isBefore(now)) {
|
|
|
return AjaxResult.error("距离开场不足" + cancelMinutes + "分钟, 不允许线上退款!如需退款请线下联系工作人员!");
|
|
|
}
|
|
|
- admissionTicket.setAdmissionTicketStatus("0");
|
|
|
- ticketService.updateBeilvAdmissionTicket(admissionTicket);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -372,35 +370,48 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
}
|
|
|
|
|
|
vipCardLog.setRefundPrice(refundPrice);
|
|
|
+ orderInfo.setRefundPrice(refundPrice);
|
|
|
+
|
|
|
+ // executeUpdate=true 时才执行更新操作(包括订单状态、会员卡余额、次卡次数等)
|
|
|
+ if (executeUpdate) {
|
|
|
+ if("vipCard".equals(orderInfo.getPaymentType())){
|
|
|
+ //查询会员卡信息
|
|
|
+ VipCard vipCard = vipCardService.selectVipCardById(orderInfo.getPaymentId());
|
|
|
+ //写入会员卡流水
|
|
|
+ VipCardAmountLog vipCardAmountLog = new VipCardAmountLog(orderInfo.getUserId(), orderInfo.getPaymentId(), orderInfo.getId(), vipCard.getBalance(), refundPrice, "1");
|
|
|
+ amountLogMapper.insertVipCardAmountLog(vipCardAmountLog);
|
|
|
+ vipCard.setBalance(vipCardAmountLog.getRemainingAmount());
|
|
|
+ vipCardService.updateVipCard(vipCard);
|
|
|
+
|
|
|
+ } else if ("numCard".equals(orderInfo.getPaymentType())) {
|
|
|
+ //查询次卡信息
|
|
|
+ UserMembershipCard userMembershipCard = userMembershipCardService.selectUserMembershipCardById(Long.valueOf(orderInfo.getPaymentId()));
|
|
|
+ //剩余使用次数+1
|
|
|
+ userMembershipCard.setRemainingNumber(userMembershipCard.getRemainingNumber() + refundSum);
|
|
|
+ //更新次卡信息
|
|
|
+ userMembershipCardService.updateUserMembershipCard(userMembershipCard);
|
|
|
+ }
|
|
|
|
|
|
- if("vipCard".equals(orderInfo.getPaymentType())){
|
|
|
- //查询会员卡信息
|
|
|
- VipCard vipCard = vipCardService.selectVipCardById(orderInfo.getPaymentId());
|
|
|
- //写入会员卡流水
|
|
|
- VipCardAmountLog vipCardAmountLog = new VipCardAmountLog(orderInfo.getUserId(), orderInfo.getPaymentId(), orderInfo.getId(), vipCard.getBalance(), refundPrice, "1");
|
|
|
- amountLogMapper.insertVipCardAmountLog(vipCardAmountLog);
|
|
|
- vipCard.setBalance(vipCardAmountLog.getRemainingAmount());
|
|
|
- vipCardService.updateVipCard(vipCard);
|
|
|
-
|
|
|
- } else if ("weChart".equals(orderInfo.getPaymentType())) {
|
|
|
- orderInfo.setRefundPrice(refundPrice);
|
|
|
- } else if ("numCard".equals(orderInfo.getPaymentType())) {
|
|
|
- //查询次卡信息
|
|
|
- UserMembershipCard userMembershipCard = userMembershipCardService.selectUserMembershipCardById(Long.valueOf(orderInfo.getPaymentId()));
|
|
|
- //剩余使用次数+1
|
|
|
- userMembershipCard.setRemainingNumber(userMembershipCard.getRemainingNumber() + refundSum);
|
|
|
- //更新次卡信息
|
|
|
- userMembershipCardService.updateUserMembershipCard(userMembershipCard);
|
|
|
- }
|
|
|
+ vipCardLog.setRefundTime(DateUtils.getNowDate());
|
|
|
+ vipCardLog.setPaymentStatus("payment_status_refunded");
|
|
|
+ vipCardLogMapper.updateVipCardLog(vipCardLog);
|
|
|
|
|
|
- vipCardLog.setRefundTime(DateUtils.getNowDate());
|
|
|
- vipCardLog.setPaymentStatus("payment_status_refunded");
|
|
|
- vipCardLogMapper.updateVipCardLog(vipCardLog);
|
|
|
+ // 如果是约球订单,更新场次状态
|
|
|
+ if ("yueqiu".equals(orderInfo.getOrderType())) {
|
|
|
+ AdmissionTicket admissionTicket = new AdmissionTicket();
|
|
|
+ admissionTicket.setId(orderInfo.getBusId());
|
|
|
+ admissionTicket.setAdmissionTicketStatus("0");
|
|
|
+ ticketService.updateBeilvAdmissionTicket(admissionTicket);
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success("退款成功!");
|
|
|
+ }
|
|
|
|
|
|
+ // executeUpdate=false 时只返回计算结果,不更新任何状态
|
|
|
if ("weChart".equals(orderInfo.getPaymentType())){
|
|
|
return AjaxResult.success(orderInfo);
|
|
|
}
|
|
|
- return AjaxResult.success("退款成功!");
|
|
|
+ return AjaxResult.success("退款金额计算成功!");
|
|
|
|
|
|
}
|
|
|
|