|
@@ -7,6 +7,7 @@ import cn.newfeifan.mall.module.pay.dal.dataobject.channel.PayChannelDO;
|
|
|
import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderDO;
|
|
|
import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderExtensionDO;
|
|
|
import cn.newfeifan.mall.module.pay.dal.mysql.order.PayOrderExtensionMapper;
|
|
|
+import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
|
|
|
import cn.newfeifan.mall.module.pay.fuiou.reqvo.SubmitOrderRequestVO;
|
|
|
import cn.newfeifan.mall.module.pay.fuiou.respVO.FuYouPayOrderSubmitRespVO;
|
|
|
import cn.newfeifan.mall.module.pay.fuiou.respVO.FuYouPaymentResponseVO;
|
|
@@ -66,18 +67,21 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
|
|
|
|
|
|
// 1.1 获得 PayOrderDO ,并校验其是否存在
|
|
|
PayOrderDO payOrder = payOrderService.validateOrderCanSubmit(requestVO.getId());
|
|
|
- payOrder.setPayOrderNo(generate());
|
|
|
+ payOrder.setPayOrderNo(generate(FUYOU_TRADE_ORDER_NO_PREFIX));
|
|
|
payOrderService.updatePayOrder(payOrder);
|
|
|
|
|
|
// 1.32 校验支付渠道是否有效
|
|
|
PayChannelDO channel = validateChannelCanSubmit(payOrder.getAppId(), requestVO.getChannelCode());
|
|
|
|
|
|
// 2. 插入 PayOrderExtensionDO
|
|
|
+ String no = generate(ORDER_NO_PREFIX);
|
|
|
PayOrderExtensionDO orderExtension = PayOrderExtensionDO.builder()
|
|
|
.userIp(getClientIP())
|
|
|
.orderId(payOrder.getId())
|
|
|
.channelId(channel.getId())
|
|
|
.channelCode(channel.getCode())
|
|
|
+ .no(no)
|
|
|
+ .status(PayOrderStatusEnum.WAITING.getStatus())
|
|
|
.build();
|
|
|
orderExtensionMapper.insert(orderExtension);
|
|
|
|
|
@@ -151,9 +155,9 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService {
|
|
|
return channel;
|
|
|
}
|
|
|
|
|
|
- private String generate() {
|
|
|
+ private String generate(String prefix) {
|
|
|
// 递增序号
|
|
|
- String noPrefix = cn.newfeifan.mall.module.pay.enums.DictTypeConstants.FUYOU_TRADE_ORDER_NO_PREFIX + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN);
|
|
|
+ String noPrefix = prefix + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN);
|
|
|
String key = TRADE_NO + noPrefix;
|
|
|
Long no = stringRedisTemplate.opsForValue().increment(key);
|
|
|
// 设置过期时间
|