|
|
@@ -24,6 +24,7 @@ import beilv.vipCardLog.domain.VipCardLog;
|
|
|
import beilv.vipCardLog.mapper.VipCardLogMapper;
|
|
|
import beilv.vipCardLog.service.IVipCardLogService;
|
|
|
import beilv.voucher.domain.BeilvVoucherMember;
|
|
|
+import beilv.voucher.mapper.BeilvVoucherMemberMapper;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -77,6 +78,9 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
@Autowired
|
|
|
private StringRedisTemplate stringRedisTemplate;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BeilvVoucherMemberMapper beilvVoucherMemberMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 查询充值记录
|
|
|
*
|
|
|
@@ -175,7 +179,7 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
* 充值回调
|
|
|
*
|
|
|
* @param vipCardLog 订单请求信息
|
|
|
- * @param orderInfo 原订单信息
|
|
|
+ * @param orderInfo 原订单信息
|
|
|
* @return
|
|
|
*/
|
|
|
private void charging(VipCardLog vipCardLog, VipCardLog orderInfo) {
|
|
|
@@ -189,20 +193,20 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
String vipCardId;
|
|
|
if (null == vipCard) {
|
|
|
//true 没有会员卡; 新增会员卡, 并且设置本次充值金额
|
|
|
- vipCardId = vipCardService.insertVipCard(new VipCard(Long.parseLong(orderInfo.getUserId()), orderInfo.getPracticalMoney(), BigDecimal.ZERO));
|
|
|
+ vipCardId = vipCardService.insertVipCard(new VipCard(Long.parseLong(orderInfo.getUserId()), orderInfo.getOriginalPrice(), BigDecimal.ZERO));
|
|
|
} else {
|
|
|
balance = vipCard.getBalance();
|
|
|
vipCardId = vipCard.getId();
|
|
|
//false 有会员卡,
|
|
|
- vipCardService.updateVipCard(new VipCard(Long.parseLong(orderInfo.getUserId()), orderInfo.getPracticalMoney().add(vipCard.getBalance()).setScale(2, RoundingMode.HALF_UP), vipCard.getScore()));
|
|
|
+ vipCardService.updateVipCard(new VipCard(Long.parseLong(orderInfo.getUserId()), orderInfo.getOriginalPrice().add(vipCard.getBalance()).setScale(2, RoundingMode.HALF_UP), vipCard.getScore()));
|
|
|
}
|
|
|
//设定支付时间
|
|
|
vipCardLog.setPaymentTime(DateUtils.getNowDate());
|
|
|
//写入会员卡流水
|
|
|
- insertAmountLog(new VipCardAmountLog(orderInfo.getUserId(), vipCardId, orderInfo.getId(), balance, orderInfo.getPracticalMoney(),"1"));
|
|
|
+ insertAmountLog(new VipCardAmountLog(orderInfo.getUserId(), vipCardId, orderInfo.getId(), balance, orderInfo.getOriginalPrice(), "1"));
|
|
|
|
|
|
//支付成功移除定时任务
|
|
|
- stringRedisTemplate.delete(ORDER_QUEUE+orderInfo.getId());
|
|
|
+ stringRedisTemplate.delete(ORDER_QUEUE + orderInfo.getId());
|
|
|
} else if ("payment_status_cancelled".equals(vipCardLog.getPaymentStatus())) {
|
|
|
//如果是取消, 设置支付状态为取消支付
|
|
|
vipCardLog.setCancellationTime(DateUtils.getNowDate());
|
|
|
@@ -231,7 +235,7 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
userMembershipCardService.insertUserMembershipCard(new UserMembershipCard(orderInfo.getUserId(), vipCardLog.getId(), carInformation.getTotalNumber(), "0", "3", DateUtils.getNowDate(), orderInfo.getBusId()));
|
|
|
}
|
|
|
|
|
|
- if("yueqiu".equals(orderType)){
|
|
|
+ if ("yueqiu".equals(orderType)) {
|
|
|
//如果是约球订单
|
|
|
AdmissionTicket admissionTicket = new AdmissionTicket();
|
|
|
admissionTicket.setId(orderInfo.getBusId());
|
|
|
@@ -260,8 +264,8 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
public AjaxResult refundById(VipCardLog vipCardLog, boolean isOnline, boolean executeUpdate) {
|
|
|
|
|
|
|
|
|
- if(StringUtils.isEmpty(vipCardLog.getId())){
|
|
|
- return AjaxResult.error("订单编号不能为空!");
|
|
|
+ if (StringUtils.isEmpty(vipCardLog.getId())) {
|
|
|
+ return AjaxResult.error("订单编号不能为空!");
|
|
|
}
|
|
|
|
|
|
//拉去订单信息
|
|
|
@@ -367,6 +371,8 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
}
|
|
|
//计算退款金额
|
|
|
refundPrice = refundPrice.add(orderInfo.getPracticalMoney());
|
|
|
+ } else if ("chongzhi".equals(orderInfo.getOrderType())) {
|
|
|
+ refundPrice = orderInfo.getPracticalMoney();
|
|
|
}
|
|
|
|
|
|
vipCardLog.setRefundPrice(refundPrice);
|
|
|
@@ -374,7 +380,7 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
|
|
|
// executeUpdate=true 时才执行更新操作(包括订单状态、会员卡余额、次卡次数等)
|
|
|
if (executeUpdate) {
|
|
|
- if("vipCard".equals(orderInfo.getPaymentType())){
|
|
|
+ if ("vipCard".equals(orderInfo.getPaymentType())) {
|
|
|
//查询会员卡信息
|
|
|
VipCard vipCard = vipCardService.selectVipCardById(orderInfo.getPaymentId());
|
|
|
//写入会员卡流水
|
|
|
@@ -390,6 +396,14 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
userMembershipCard.setRemainingNumber(userMembershipCard.getRemainingNumber() + refundSum);
|
|
|
//更新次卡信息
|
|
|
userMembershipCardService.updateUserMembershipCard(userMembershipCard);
|
|
|
+ } else if ("chongzhi".equals(orderInfo.getOrderType())) {
|
|
|
+ VipCard vipCard = vipCardService.selectVipCardByUserId(orderInfo.getUserId());
|
|
|
+ // 检查余额是否足够退款
|
|
|
+ if (vipCard.getBalance().compareTo(orderInfo.getOriginalPrice()) < 0) {
|
|
|
+ return AjaxResult.error("会员卡余额不足,无法完成退款,请前往柜台联系客服!");
|
|
|
+ }
|
|
|
+ vipCard.setBalance(vipCard.getBalance().subtract(orderInfo.getOriginalPrice()));
|
|
|
+ vipCardService.updateVipCard(vipCard);
|
|
|
}
|
|
|
|
|
|
vipCardLog.setRefundTime(DateUtils.getNowDate());
|
|
|
@@ -403,12 +417,15 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
admissionTicket.setAdmissionTicketStatus("0");
|
|
|
ticketService.updateBeilvAdmissionTicket(admissionTicket);
|
|
|
}
|
|
|
-
|
|
|
+ //如果使用了优惠券,释放优惠券
|
|
|
+ if (StringUtils.isNotEmpty(orderInfo.getVoucherId())) {
|
|
|
+ beilvVoucherMemberMapper.updateBeilvVoucherMember(new BeilvVoucherMember(Long.parseLong(orderInfo.getVoucherId()), "1"));
|
|
|
+ }
|
|
|
return AjaxResult.success("退款成功!");
|
|
|
}
|
|
|
|
|
|
// executeUpdate=false 时只返回计算结果,不更新任何状态
|
|
|
- if ("weChart".equals(orderInfo.getPaymentType())){
|
|
|
+ if ("weChart".equals(orderInfo.getPaymentType())) {
|
|
|
return AjaxResult.success(orderInfo);
|
|
|
}
|
|
|
return AjaxResult.success("退款金额计算成功!");
|
|
|
@@ -424,10 +441,10 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
|
|
|
List<Map<String, Object>> maps = vipCardLogMapper.selectYueQiuList(vipCardLog);
|
|
|
|
|
|
- maps.forEach(map->{
|
|
|
- map.put("orderTypeLabel", MapUtils.getString(orderType, MapUtils.getString(map,"orderType")));
|
|
|
- map.put("paymentStatusLabel", MapUtils.getString(paymentStatus, MapUtils.getString(map,"paymentStatus")));
|
|
|
- map.put("paymentTypeLabel", MapUtils.getString(paymentType, MapUtils.getString(map,"paymentType")));
|
|
|
+ maps.forEach(map -> {
|
|
|
+ map.put("orderTypeLabel", MapUtils.getString(orderType, MapUtils.getString(map, "orderType")));
|
|
|
+ map.put("paymentStatusLabel", MapUtils.getString(paymentStatus, MapUtils.getString(map, "paymentStatus")));
|
|
|
+ map.put("paymentTypeLabel", MapUtils.getString(paymentType, MapUtils.getString(map, "paymentType")));
|
|
|
map.put("createTime", MapUtils.getString(map, "createTime").replace("T", " "));
|
|
|
map.put("paymentTime", MapUtils.getString(map, "paymentTime").replace("T", " "));
|
|
|
});
|
|
|
@@ -442,11 +459,11 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
Map<String, String> competitionState = DictUtils.getDictCacheToMap("competition_state");
|
|
|
Map<String, String> paymentStatus = DictUtils.getDictCacheToMap("payment_status");
|
|
|
|
|
|
- maps.forEach(map->{
|
|
|
- map.put("orderTypeLabel", MapUtils.getString(orderType, MapUtils.getString(map,"orderType")));
|
|
|
- map.put("paymentTypeLabel", MapUtils.getString(paymentType, MapUtils.getString(map,"paymentType")));
|
|
|
- map.put("competitionStateLabel", MapUtils.getString(competitionState, MapUtils.getString(map,"competitionState")));
|
|
|
- map.put("paymentStatusLabel", MapUtils.getString(paymentStatus, MapUtils.getString(map,"paymentStatus")));
|
|
|
+ maps.forEach(map -> {
|
|
|
+ map.put("orderTypeLabel", MapUtils.getString(orderType, MapUtils.getString(map, "orderType")));
|
|
|
+ map.put("paymentTypeLabel", MapUtils.getString(paymentType, MapUtils.getString(map, "paymentType")));
|
|
|
+ map.put("competitionStateLabel", MapUtils.getString(competitionState, MapUtils.getString(map, "competitionState")));
|
|
|
+ map.put("paymentStatusLabel", MapUtils.getString(paymentStatus, MapUtils.getString(map, "paymentStatus")));
|
|
|
map.put("publishTime", MapUtils.getString(map, "publishTime").replace("T", " "));
|
|
|
map.put("applyEndTime", MapUtils.getString(map, "applyEndTime").replace("T", " "));
|
|
|
map.put("applyStartTime", MapUtils.getString(map, "applyStartTime").replace("T", " "));
|
|
|
@@ -456,7 +473,7 @@ public class VipCardLogServiceImpl implements IVipCardLogService {
|
|
|
return maps;
|
|
|
}
|
|
|
|
|
|
- public void insertAmountLog(VipCardAmountLog vipCardAmountLog){
|
|
|
+ public void insertAmountLog(VipCardAmountLog vipCardAmountLog) {
|
|
|
amountLogMapper.insertVipCardAmountLog(vipCardAmountLog);
|
|
|
}
|
|
|
}
|