|
@@ -33,6 +33,7 @@ import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderReqVO;
|
|
|
import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderRespVO;
|
|
import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderRespVO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.*;
|
|
import com.yc.ship.module.trade.dal.dataobject.order.*;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.supplier.TradeSupplierOrderDO;
|
|
import com.yc.ship.module.trade.dal.dataobject.supplier.TradeSupplierOrderDO;
|
|
|
|
|
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderLogMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderTotalMapper;
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderTotalMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
|
|
@@ -68,7 +69,7 @@ import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
|
import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
|
|
-import static com.yc.ship.module.ota.enums.ErrorCodeConstants.ORDER_PAY_AUTO_REFUND;
|
|
|
|
|
|
|
+import static com.yc.ship.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
|
|
|
import static com.yc.ship.module.trade.enums.ApiConstants.*;
|
|
import static com.yc.ship.module.trade.enums.ApiConstants.*;
|
|
|
import static com.yc.ship.module.trade.enums.ErrorCodeConstants.*;
|
|
import static com.yc.ship.module.trade.enums.ErrorCodeConstants.*;
|
|
|
import static com.yc.ship.module.trade.service.order.TradeOrderService.UPDATE_ORDER_LOCK;
|
|
import static com.yc.ship.module.trade.service.order.TradeOrderService.UPDATE_ORDER_LOCK;
|
|
@@ -124,6 +125,9 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
@Resource
|
|
@Resource
|
|
|
private TradeOrderMapper tradeOrderMapper;
|
|
private TradeOrderMapper tradeOrderMapper;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private TradeOrderLogMapper tradeOrderLogMapper;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public CommonResult<PayOrderRespVO> payOrder(PayOrderReqVO payOrderReqVO) {
|
|
public CommonResult<PayOrderRespVO> payOrder(PayOrderReqVO payOrderReqVO) {
|
|
|
try {
|
|
try {
|
|
@@ -352,8 +356,8 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(tradeOrderPayDO.getOrderId());
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(tradeOrderPayDO.getOrderId());
|
|
|
//验证订单是否已全部支付完成
|
|
//验证订单是否已全部支付完成
|
|
|
BigDecimal hadPayAmount = tradeOrderRepositoryService.getHadPayAmount(tradeOrderPayDO.getOrderId());
|
|
BigDecimal hadPayAmount = tradeOrderRepositoryService.getHadPayAmount(tradeOrderPayDO.getOrderId());
|
|
|
- if(hadPayAmount.compareTo(tradeOrderDO.getAmount()) >= 0){
|
|
|
|
|
- log.error("计算订单全部支付金额:{},订单金额:{}", hadPayAmount,tradeOrderDO.getAmount());
|
|
|
|
|
|
|
+ if (hadPayAmount.compareTo(tradeOrderDO.getAmount()) >= 0) {
|
|
|
|
|
+ log.error("计算订单全部支付金额:{},订单金额:{}", hadPayAmount, tradeOrderDO.getAmount());
|
|
|
tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.UNUSED.getStatus());
|
|
tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.UNUSED.getStatus());
|
|
|
}
|
|
}
|
|
|
//更新支付单状态
|
|
//更新支付单状态
|
|
@@ -526,7 +530,7 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
|
Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
|
|
Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
|
|
|
collect.keySet().forEach(roomId -> {
|
|
collect.keySet().forEach(roomId -> {
|
|
|
- if(StringUtils.isNotBlank(roomId)) {
|
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(roomId)) {
|
|
|
OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
|
orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
|
|
orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
|
|
|
orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
|
|
orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
|
|
@@ -534,9 +538,9 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
|
- if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
|
|
|
|
|
+ if (Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
|
voyageApi.preCancelReduceStock(reqDTO);
|
|
voyageApi.preCancelReduceStock(reqDTO);
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
voyageApi.cancelReduceStock(reqDTO);
|
|
voyageApi.cancelReduceStock(reqDTO);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -714,7 +718,7 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
tradeOrderPayDO.setPaymentNo(tradeId);
|
|
tradeOrderPayDO.setPaymentNo(tradeId);
|
|
|
//4.1支付成功
|
|
//4.1支付成功
|
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(payOrderReqVO.getOrderId());
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(payOrderReqVO.getOrderId());
|
|
|
- updateDeposiOrderPaid(tradeOrderDO,tradeOrderPayDO);
|
|
|
|
|
|
|
+ updateDeposiOrderPaid(tradeOrderDO, tradeOrderPayDO);
|
|
|
}
|
|
}
|
|
|
return CommonResult.success(payOrderRespVO);
|
|
return CommonResult.success(payOrderRespVO);
|
|
|
}
|
|
}
|
|
@@ -736,7 +740,7 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
tradeOrderPayDO.setPaymentNo(tradeId);
|
|
tradeOrderPayDO.setPaymentNo(tradeId);
|
|
|
//4.1支付成功
|
|
//4.1支付成功
|
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(payOrderReqVO.getOrderId());
|
|
TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(payOrderReqVO.getOrderId());
|
|
|
- updateBcOrderPaid(tradeOrderDO,tradeOrderPayDO);
|
|
|
|
|
|
|
+ updateBcOrderPaid(tradeOrderDO, tradeOrderPayDO);
|
|
|
}
|
|
}
|
|
|
return CommonResult.success(payOrderRespVO);
|
|
return CommonResult.success(payOrderRespVO);
|
|
|
}
|
|
}
|
|
@@ -788,24 +792,42 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_PAY)
|
|
|
|
|
|
|
+ // @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_PAY)
|
|
|
public void updateOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
public void updateOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
|
tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.PAID.getStatus());
|
|
tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.PAID.getStatus());
|
|
|
//支付时间暂时用当前
|
|
//支付时间暂时用当前
|
|
|
tradeOrderDO.setPaymentDate(LocalDateTime.now());
|
|
tradeOrderDO.setPaymentDate(LocalDateTime.now());
|
|
|
tradeOrderDO.setPayStatus(PaymentStatusEnum.PAID.getStatus());
|
|
tradeOrderDO.setPayStatus(PaymentStatusEnum.PAID.getStatus());
|
|
|
- BigDecimal realPayAmount = tradeOrderDO.getRealPayAmount()==null?BigDecimal.ZERO:tradeOrderDO.getRealPayAmount();
|
|
|
|
|
|
|
+ BigDecimal realPayAmount = tradeOrderDO.getRealPayAmount() == null ? BigDecimal.ZERO : tradeOrderDO.getRealPayAmount();
|
|
|
tradeOrderDO.setRealPayAmount(realPayAmount.add(tradeOrderPayDO.getPayAmount()));
|
|
tradeOrderDO.setRealPayAmount(realPayAmount.add(tradeOrderPayDO.getPayAmount()));
|
|
|
tradeOrderRepositoryService.updateOrderAfterAllPay(tradeOrderDO);
|
|
tradeOrderRepositoryService.updateOrderAfterAllPay(tradeOrderDO);
|
|
|
//保存订单日志
|
|
//保存订单日志
|
|
|
- TradeOrderLogUtils.setOrderInfo(tradeOrderDO.getId(), orderStatus, tradeOrderDO.getOrderStatus(), MapUtil.<String, Object>builder().put("payType", PayTypeEnum.valueOf(tradeOrderPayDO.getPaymentType()).getName()).put("payAmount", tradeOrderPayDO.getPayAmount()).build());
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ Long userId = getLoginUserId();
|
|
|
|
|
+ TradeOrderLogDO tradeOrderLogDO = new TradeOrderLogDO();
|
|
|
|
|
+ tradeOrderLogDO.setOrderId(tradeOrderDO.getId());
|
|
|
|
|
+ tradeOrderLogDO.setUserId(userId);
|
|
|
|
|
+ tradeOrderLogDO.setUserType(2);
|
|
|
|
|
+ tradeOrderLogDO.setTenantId(1L);
|
|
|
|
|
+ tradeOrderLogDO.setCreateTime(LocalDateTime.now());
|
|
|
|
|
+ tradeOrderLogDO.setDeleted(false);
|
|
|
|
|
+ tradeOrderLogDO.setId(IdWorker.getId(tradeOrderLogDO));
|
|
|
|
|
+ tradeOrderLogDO.setOperateType(TradeOrderOperateTypeEnum.ORDER_PAY.getType());
|
|
|
|
|
+ tradeOrderLogDO.setBeforeStatus(orderStatus);
|
|
|
|
|
+ tradeOrderLogDO.setAfterStatus(tradeOrderDO.getOrderStatus());
|
|
|
|
|
+ tradeOrderLogDO.setContent(TradeOrderOperateTypeEnum.ORDER_PAY.getContent().replaceAll("payType", PayTypeEnum.valueOf(tradeOrderPayDO.getPaymentType()).getName()).replaceAll("payAmount", tradeOrderPayDO.getPayAmount().toString()));
|
|
|
|
|
+ tradeOrderLogMapper.insert(tradeOrderLogDO);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("保存订单日志异常orderId:{}", tradeOrderDO.getId(), e);
|
|
|
|
|
+ }
|
|
|
|
|
+// TradeOrderLogUtils.setOrderInfo(tradeOrderDO.getId(), orderStatus, tradeOrderDO.getOrderStatus(), MapUtil.<String, Object>builder().put("payType", PayTypeEnum.valueOf(tradeOrderPayDO.getPaymentType()).getName()).put("payAmount", tradeOrderPayDO.getPayAmount()).build());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_DEPOSI_PAY)
|
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_DEPOSI_PAY)
|
|
|
public void updateDeposiOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
public void updateDeposiOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
|
- BigDecimal realPayAmount = (tradeOrderDO.getRealPayAmount()==null?BigDecimal.ZERO:tradeOrderDO.getRealPayAmount()).add(tradeOrderPayDO.getPayAmount());
|
|
|
|
|
|
|
+ BigDecimal realPayAmount = (tradeOrderDO.getRealPayAmount() == null ? BigDecimal.ZERO : tradeOrderDO.getRealPayAmount()).add(tradeOrderPayDO.getPayAmount());
|
|
|
tradeOrderMapper.update(new LambdaUpdateWrapper<TradeOrderDO>()
|
|
tradeOrderMapper.update(new LambdaUpdateWrapper<TradeOrderDO>()
|
|
|
.eq(TradeOrderDO::getId, tradeOrderDO.getId())
|
|
.eq(TradeOrderDO::getId, tradeOrderDO.getId())
|
|
|
.set(TradeOrderDO::getRealPayAmount, realPayAmount)
|
|
.set(TradeOrderDO::getRealPayAmount, realPayAmount)
|
|
@@ -819,7 +841,7 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
|
|
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_BC_PAY)
|
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_BC_PAY)
|
|
|
public void updateBcOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
public void updateBcOrderPaid(TradeOrderDO tradeOrderDO, TradeOrderPayDO tradeOrderPayDO) {
|
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
Integer orderStatus = tradeOrderDO.getOrderStatus();
|
|
|
- BigDecimal realPayAmount = (tradeOrderDO.getRealPayAmount()==null?BigDecimal.ZERO:tradeOrderDO.getRealPayAmount()).add(tradeOrderPayDO.getPayAmount());
|
|
|
|
|
|
|
+ BigDecimal realPayAmount = (tradeOrderDO.getRealPayAmount() == null ? BigDecimal.ZERO : tradeOrderDO.getRealPayAmount()).add(tradeOrderPayDO.getPayAmount());
|
|
|
tradeOrderMapper.update(new LambdaUpdateWrapper<TradeOrderDO>()
|
|
tradeOrderMapper.update(new LambdaUpdateWrapper<TradeOrderDO>()
|
|
|
.eq(TradeOrderDO::getId, tradeOrderDO.getId())
|
|
.eq(TradeOrderDO::getId, tradeOrderDO.getId())
|
|
|
.set(TradeOrderDO::getRealPayAmount, realPayAmount)
|
|
.set(TradeOrderDO::getRealPayAmount, realPayAmount)
|