|
|
@@ -293,11 +293,20 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
tradeOrderPayDO.setPaymentDate(DateUtil.parseLocalDateTime(payNotifyReqBO.getBillDate(), DatePattern.PURE_DATETIME_PATTERN));
|
|
|
} catch (Exception e) {
|
|
|
log.error("支付平台返回的支付时间转换错误{}", payNotifyReqBO.getBillDate());
|
|
|
+ tradeOrderPayDO.setPaymentDate(LocalDateTime.now());
|
|
|
}
|
|
|
}
|
|
|
- //4.1支付成功
|
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(tradeOrderPayDO.getOrderId());
|
|
|
- updateDeposiOrderPaid(tradeOrderDO,tradeOrderPayDO);
|
|
|
+ //验证订单是否已全部支付完成
|
|
|
+ BigDecimal hadPayAmount = tradeOrderRepositoryService.getHadPayAmount(tradeOrderPayDO.getOrderId());
|
|
|
+ if(hadPayAmount.compareTo(tradeOrderDO.getAmount()) >= 0){
|
|
|
+ log.error("计算订单全部支付金额:{},订单金额:{}", hadPayAmount,tradeOrderDO.getAmount());
|
|
|
+ tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.UNUSED.getStatus());
|
|
|
+ }
|
|
|
+ //更新支付单状态
|
|
|
+ updatePayOrderSuccess(tradeOrderPayDO);
|
|
|
+ //4.1支付成功
|
|
|
+ updateDeposiOrderPaid(tradeOrderDO, tradeOrderPayDO);
|
|
|
});
|
|
|
}
|
|
|
} catch (ServiceException e) {
|
|
|
@@ -690,7 +699,7 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
public void updateDeposiOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
|
tradeOrderMapper.update(new LambdaUpdateWrapper<TradeOrderDO>()
|
|
|
- .eq(TradeOrderDO::getId, tradeOrderDO.getId()).set(TradeOrderDO::getDeposiStatus, 2).set(TradeOrderDO::getDeposiPayTime, LocalDateTime.now()));
|
|
|
+ .eq(TradeOrderDO::getId, tradeOrderDO.getId()).set(TradeOrderDO::getOrderStatus, orderStatus).set(TradeOrderDO::getDeposiStatus, 2).set(TradeOrderDO::getDeposiPayTime, LocalDateTime.now()));
|
|
|
//保存订单日志
|
|
|
TradeOrderLogUtils.setOrderInfo(tradeOrderDO.getId(), orderStatus, tradeOrderDO.getOrderStatus(), MapUtil.<String, Object>builder().put("payType", PayTypeEnum.valueOf(tradeOrderPayDO.getPaymentType()).getName()).put("payAmount", tradeOrderPayDO.getPayAmount()).build());
|
|
|
}
|
|
|
@@ -999,4 +1008,8 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
return CommonResult.error(500, "合同不存在");
|
|
|
}
|
|
|
|
|
|
+ public static void main(String[] args) {
|
|
|
+ System.out.println(DateUtil.parseLocalDateTime("20260304", DatePattern.PURE_DATETIME_PATTERN));
|
|
|
+ }
|
|
|
+
|
|
|
}
|