|
@@ -413,11 +413,22 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public OrderPayResultVO createRechargeOrder(OrderRechargeCreateDTO createDTO) {
|
|
|
+ //卡密充值
|
|
|
+ if(StringUtils.isNotEmpty(createDTO.getCardNo()) && StringUtils.isNotEmpty(createDTO.getPassword())){
|
|
|
+ OrderRechargeCreateDTO orderRechargeCreateDTO = new OrderRechargeCreateDTO();
|
|
|
+ orderRechargeCreateDTO.setOrderSource(OrderSourceType.OFFLINE.getCode());
|
|
|
+ orderRechargeCreateDTO.setCardNo(createDTO.getCardNo());
|
|
|
+ orderRechargeCreateDTO.setPassword(createDTO.getPassword());
|
|
|
+ orderRechargeCreateDTO.setRechargeType(RechargeTypeEnum.CARD.getCode());
|
|
|
+ orderRechargeCreateDTO.setAppUserId(createDTO.getAppUserId());
|
|
|
+ orderRechargeCreateDTO.setOrgId(createDTO.getOrgId());
|
|
|
+ OrderPayResultVO orderPayResultVO = insertOrderRechargeByPasscard(orderRechargeCreateDTO);
|
|
|
+ return orderPayResultVO;
|
|
|
+ }
|
|
|
// 1. 校验参数
|
|
|
if (StringUtils.isEmpty(createDTO.getPayType())) {
|
|
|
throw new ServiceException("请选择支付方式");
|
|
|
}
|
|
|
-
|
|
|
// 2. 获取充值套餐信息
|
|
|
RechargePackageInfo packageInfo = getRechargePackageInfo(createDTO.getRechargeTypeId(), createDTO.getOrgId());
|
|
|
|
|
@@ -461,6 +472,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
|
|
|
// 1. 设置基本信息
|
|
|
orderRecharge.setOrderNo(orderNoUtils.getRechargeOrderNo());
|
|
|
+ orderRecharge.setSourceType(SourceType.STORE.getCode());
|
|
|
orderRecharge.setAppUserId(createDTO.getAppUserId());
|
|
|
orderRecharge.setRechargeType(createDTO.getRechargeType());
|
|
|
orderRecharge.setRechargeTypeId(createDTO.getRechargeTypeId());
|
|
@@ -621,6 +633,13 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
orderRechargeCreateDTO.getPassword()
|
|
|
);
|
|
|
|
|
|
+ //如果是线下门店开卡,要判断线下门店跟绑定门店是否一致
|
|
|
+ if(OrderSourceType.OFFLINE.getCode().equals(orderRechargeCreateDTO.getOrderSource())){
|
|
|
+ if (rechargeCard.getRechargeStoreId() != null &&
|
|
|
+ !rechargeCard.getRechargeStoreId().equals(orderRechargeCreateDTO.getOrgId())) {
|
|
|
+ throw new ServiceException("充值卡与门店不匹配");
|
|
|
+ }
|
|
|
+ }
|
|
|
try {
|
|
|
// 3. 创建充值订单
|
|
|
OrderRecharge orderRecharge = createRechargeOrder(rechargeCard, orderRechargeCreateDTO);
|
|
@@ -628,6 +647,9 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
// 4. 更新充值卡状态
|
|
|
updateRechargeCardStatus(rechargeCard, orderRecharge);
|
|
|
|
|
|
+ // 添加用户积分
|
|
|
+ appUserPointLogService.addPoint(orderRecharge.getAppUserId(), orderRecharge.getGivePointAmount().intValue(), orderRecharge.getOrderNo(), MemberPointSourceEnum.RECHARGEADD, "会员储值赠送");
|
|
|
+
|
|
|
// 5. 记录账单流水
|
|
|
createBillRecord(orderRecharge, rechargeCard);
|
|
|
|
|
@@ -666,6 +688,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
throw new ServiceException("充值卡已过期");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
return card;
|
|
|
}
|
|
|
|
|
@@ -682,15 +705,18 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
orderRecharge.setAppUserId(dto.getAppUserId());
|
|
|
orderRecharge.setRechargeType(dto.getRechargeType());
|
|
|
orderRecharge.setOrderSource(dto.getOrderSource());
|
|
|
- orderRecharge.setStoreId(card.getUseBindStoreId());
|
|
|
- orderRecharge.setCreateBy(AuthHolder.userName());
|
|
|
- orderRecharge.setCreateById(AuthHolder.userId());
|
|
|
- orderRecharge.setCreateTime(DateUtils.getNowDate());
|
|
|
+ orderRecharge.setStoreId(card.getRechargeStoreId());
|
|
|
+ orderRecharge.setSourceType(SourceType.STORE.getCode());
|
|
|
+ orderRecharge.setDelFlag(DeleteStatus.OK.getCode());
|
|
|
+ orderRecharge.buildCreateData();
|
|
|
|
|
|
// 设置支付相关信息
|
|
|
orderRecharge.setPayTime(DateUtils.getNowDate());
|
|
|
orderRecharge.setPayType(PayType.RECHARGE_CARD.getCode());
|
|
|
+ orderRecharge.setPayStatus(PayStatus.HAS_PAY.getCode());
|
|
|
orderRecharge.setOrderStatus(OrderRechargeStatus.YES_PAY.getCode());
|
|
|
+ orderRecharge.setRefundStatus(OrderRefundStatus.OK.getCode());
|
|
|
+ orderRecharge.setRefundAmount(BigDecimal.ZERO);
|
|
|
orderRecharge.setRechargeCardNo(card.getCardNo());
|
|
|
|
|
|
// 设置金额信息
|
|
@@ -699,6 +725,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
orderRecharge.setGiveAmount(card.getGiveAmount());
|
|
|
orderRecharge.setWelfareAmount(card.getWelfareAmount());
|
|
|
orderRecharge.setGivePointAmount(card.getGivePointAmount());
|
|
|
+ orderRecharge.setCouponDeductAmount(BigDecimal.ZERO);
|
|
|
|
|
|
// 设置支付渠道金额
|
|
|
orderRecharge.setCashPayAmount(card.getRechargeAmount());
|
|
@@ -716,6 +743,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
card.setRechargeUserId(order.getAppUserId());
|
|
|
card.setRechargeTime(DateUtils.getNowDate());
|
|
|
card.setRechargeStatus(RechargeStatusType.HAS_USE.getCode());
|
|
|
+ card.setUseBindStoreId(order.getStoreId());
|
|
|
card.setOrderNo(order.getOrderNo());
|
|
|
card.setUpdateTime(DateUtils.getNowDate());
|
|
|
card.setUpdateBy(AuthHolder.userName());
|
|
@@ -733,7 +761,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
// 设置账单基本信息
|
|
|
billDTO.setAppUserId(order.getAppUserId());
|
|
|
billDTO.setOrgId(order.getStoreId());
|
|
|
- billDTO.setSourceType(order.getOrderSource());
|
|
|
+ billDTO.setSourceType(order.getSourceType());
|
|
|
billDTO.setOrderNo(order.getOrderNo());
|
|
|
billDTO.setOrderType(OrderType.recharge.getCode());
|
|
|
billDTO.setUseBindStoreId(card.getUseBindStoreId());
|
|
@@ -778,10 +806,13 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
return;
|
|
|
}
|
|
|
Date date = DateUtils.getNowDate();
|
|
|
- updateOrderStatusAndPayTime(orderRecharge, outTradeNo, date);
|
|
|
+
|
|
|
|
|
|
// 同步生成密码卡
|
|
|
RechargePasswordCard rechargePasswordCard = buildRechargePasswordCardData(orderRecharge);
|
|
|
+ orderRecharge.setRechargeCardNo(rechargePasswordCard.getCardNo());
|
|
|
+ // 更新订单信息
|
|
|
+ updateOrderStatusAndPayTime(orderRecharge, outTradeNo, date);
|
|
|
|
|
|
// 添加用户积分
|
|
|
appUserPointLogService.addPoint(orderRecharge.getAppUserId(), orderRecharge.getGivePointAmount().intValue(), orderRecharge.getOrderNo(), MemberPointSourceEnum.RECHARGEADD, "会员储值赠送");
|
|
@@ -809,6 +840,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
billMstrOrderDTO.setAppUserId(orderRecharge.getAppUserId());
|
|
|
billMstrOrderDTO.setSourceType(orderRecharge.getSourceType());
|
|
|
billMstrOrderDTO.setOrgId(orderRecharge.getStoreId());
|
|
|
+ billMstrOrderDTO.setOrderId(orderRecharge.getId());
|
|
|
billMstrOrderDTO.setOrderNo(orderRecharge.getOrderNo());
|
|
|
billMstrOrderDTO.setOrderType(OrderType.recharge.getCode());
|
|
|
billMstrOrderDTO.setRechargePayAmount(orderRecharge.getRechargeAmount());
|
|
@@ -817,6 +849,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
billMstrOrderDTO.setGivePayAmount(orderRecharge.getGiveAmount());
|
|
|
billMstrOrderDTO.setRechargeCardNo(orderRecharge.getRechargeCardNo());
|
|
|
billMstrOrderDTO.setPayType(orderRecharge.getPayType());
|
|
|
+ billMstrOrderDTO.setRechargeCardNo(orderRecharge.getRechargeCardNo());
|
|
|
BigDecimal totalPayAmount = CurrencyUtil.add(orderRecharge.getRechargeAmount(), orderRecharge.getGiveAmount(), orderRecharge.getWelfareAmount());
|
|
|
billMstrOrderDTO.setPayTotalAmount(totalPayAmount);
|
|
|
billMstrOrderDTO.setRemark("充值卡:" + rechargePasswordCard.getCardNo() + ",储值到账" + totalPayAmount + "元");
|
|
@@ -904,6 +937,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
orderRecharge.setDelFlag(DeleteStatus.OK.getCode());
|
|
|
orderRecharge.setOrderStatus(OrderRechargeStatus.YES_PAY.getCode());
|
|
|
orderRecharge.setPayStatus(PayStatus.HAS_PAY.getCode());
|
|
|
+ orderRecharge.setSourceType(SourceType.STORE.getCode());
|
|
|
orderRecharge.setOrderSource(orderRechargeCreateDTO.getOrderSource());
|
|
|
orderRecharge.setRechargeCardNo(rechargePasswordCard.getCardNo());
|
|
|
orderRecharge.setPayAmount(rechargePasswordCard.getRechargeAmount());
|
|
@@ -966,7 +1000,6 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
rechargePasswordCard.setRechargeBalance(rechargePasswordCard.getRechargeAmount());
|
|
|
rechargePasswordCard.setGiveBalance(rechargePasswordCard.getGiveAmount());
|
|
|
rechargePasswordCard.setWelfareBalance(rechargePasswordCard.getWelfareAmount());
|
|
|
-
|
|
|
rechargePasswordCard.setRechargeStatus(RechargeStatusType.HAS_USE.getCode());
|
|
|
rechargePasswordCard.setRechargeTime(DateUtils.getNowDate());
|
|
|
rechargePasswordCard.setRechargeUserId(orderRecharge.getAppUserId());
|
|
@@ -1256,6 +1289,7 @@ public class OrderRechargeServiceImpl extends ServiceImpl<OrderRechargeMapper, O
|
|
|
BillMstrOrderDTO billMstrOrderDTO = new BillMstrOrderDTO();
|
|
|
billMstrOrderDTO.setAppUserId(orderRecharge.getAppUserId());
|
|
|
billMstrOrderDTO.setOrgId(orderRecharge.getStoreId());
|
|
|
+ billMstrOrderDTO.setOrderId(orderRecharge.getId());
|
|
|
billMstrOrderDTO.setSourceType(orderRecharge.getSourceType());
|
|
|
billMstrOrderDTO.setOrderNo(orderRecharge.getOrderNo());
|
|
|
billMstrOrderDTO.setOrderType(OrderType.recharge.getCode());
|