From db5899faa22531d73fcc6d14d053ce7e5c1f8696 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Thu, 20 Feb 2025 19:23:22 +0800 Subject: [PATCH] sync_pay_state --- .../common/business/OrderResultBusiness.java | 5 ++- .../custom/OrderCustomMobileBusiness.java | 11 ++--- .../dto/OrderSyncPayStateMobileDTO.java | 28 +++++++++++++ .../impl/OrderInfoMobileBusinessImpl.java | 24 +++++++++++ .../bonus/core/pay/api/TradeRecordApi.java | 4 ++ .../pay/common/mapper/TradeRecordMapper.java | 1 + .../common/service/TradeRecordService.java | 2 + .../service/impl/TradeRecordServiceImpl.java | 12 ++++++ .../mapper/pay/TradeRecordMapper.xml | 40 +++++++++++++++++++ 9 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/dto/OrderSyncPayStateMobileDTO.java diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/OrderResultBusiness.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/OrderResultBusiness.java index fd5a2a3b..d781a681 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/OrderResultBusiness.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/OrderResultBusiness.java @@ -3,12 +3,13 @@ package com.bonus.core.order.common.business; import com.bonus.core.order.common.model.OrderDetail; import com.bonus.core.order.common.model.OrderInfo; +import com.bonus.core.pay.api.vo.UnifyPaySelectVO; import java.util.List; public interface OrderResultBusiness { -// UnifyPaySelectVO reSyncOrderPayResult(Long orderId); -// + UnifyPaySelectVO reSyncOrderPayResult(Long orderId); + // UnifyRefundSelectVO reSyncOrderRefundResult(Long orderRefundId); // // String asyncPayResultHandler(PayResultPO payResultPO); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomMobileBusiness.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomMobileBusiness.java index ea13e876..7b49c6d3 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomMobileBusiness.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomMobileBusiness.java @@ -14,6 +14,7 @@ import com.bonus.core.order.mobile.dto.*; import com.bonus.core.order.mobile.vo.*; import com.bonus.core.order.mq.po.OrderSavePO; import com.bonus.core.pay.api.dto.UnifyPayDTO; +import com.bonus.core.pay.api.vo.UnifyPaySelectVO; import org.springframework.stereotype.Service; import java.util.Collection; @@ -67,11 +68,11 @@ public class OrderCustomMobileBusiness implements CustomBusiness { public OrderInfoMobileVO didQueryOrderInfo(OrderInfoMobileVO orderInfoMobileVO) { return orderInfoMobileVO; } -// -// public UnifyPaySelectVO willReSyncOrderPayResult(Long orderId) { -// return null; -// } -// + + public UnifyPaySelectVO willReSyncOrderPayResult(Long orderId) { + return null; + } + public List didListShoppingCartByCust(OrderShoppingSearchDTO searchDTO, List resultList) { return resultList; } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/dto/OrderSyncPayStateMobileDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/dto/OrderSyncPayStateMobileDTO.java new file mode 100644 index 00000000..7835e2e5 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/dto/OrderSyncPayStateMobileDTO.java @@ -0,0 +1,28 @@ +package com.bonus.core.order.mobile.dto; + +import io.swagger.annotations.ApiModelProperty; +import javax.validation.constraints.NotNull; + +public class OrderSyncPayStateMobileDTO { + @ApiModelProperty("订单号") + private @NotNull Long orderId; + @ApiModelProperty("是否手动同步") + private Integer ifManualSync; + + public Long getOrderId() { + return this.orderId; + } + + public Integer getIfManualSync() { + return this.ifManualSync; + } + + public void setOrderId(final Long orderId) { + this.orderId = orderId; + } + + public void setIfManualSync(final Integer ifManualSync) { + this.ifManualSync = ifManualSync; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/service/impl/OrderInfoMobileBusinessImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/service/impl/OrderInfoMobileBusinessImpl.java index 4f346b85..76ded268 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/service/impl/OrderInfoMobileBusinessImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/mobile/service/impl/OrderInfoMobileBusinessImpl.java @@ -5,12 +5,14 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.ObjectUtil; +import com.bonus.constant.LeConstants; import com.bonus.core.common.page.PageVO; import com.bonus.core.device.api.DeviceApi; import com.bonus.core.device.manage.dto.DeviceSearchDTO; import com.bonus.core.device.manage.model.DeviceInfo; import com.bonus.core.menu.api.MenuDishesApi; import com.bonus.core.menu.utils.NutritionEntity; +import com.bonus.core.order.common.business.OrderResultBusiness; import com.bonus.core.order.common.constants.CheckStateEnum; import com.bonus.core.order.common.constants.DetailTypeEnum; import com.bonus.core.order.common.constants.OrderTypeEnum; @@ -22,6 +24,7 @@ import com.bonus.core.order.common.service.*; import com.bonus.core.order.common.vo.OrderIdDateVO; import com.bonus.core.order.custom.OrderCustomBusiness; import com.bonus.core.order.mobile.dto.OrderListMobileDTO; +import com.bonus.core.order.mobile.dto.OrderSyncPayStateMobileDTO; import com.bonus.core.order.mobile.service.OrderInfoMobileBusiness; import com.bonus.core.order.mobile.vo.OrderDetailMobileVO; import com.bonus.core.order.mobile.vo.OrderInfoMobileVO; @@ -32,6 +35,9 @@ import com.bonus.core.order.web.dto.OrderUserPermissionDTO; import com.bonus.core.order.weight.service.MacPlateidBindSerialService; import com.bonus.core.order.weight.model.MacPlateidBindSerial; import com.bonus.core.order.weight.vo.RefundDetailStateVO; +import com.bonus.core.pay.api.TradeRecordApi; +import com.bonus.core.pay.api.vo.UnifyPaySelectVO; +import com.bonus.core.pay.common.model.TradeRecord; import com.bonus.utils.AesEncryptUtil; import com.bonus.core.menu.model.MenuDishesTypeModel; import com.github.pagehelper.page.PageMethod; @@ -67,6 +73,9 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness { protected OrderCustomBusiness orderCustomBusiness; @Lazy @Autowired + protected OrderResultBusiness orderResultBusiness; + @Lazy + @Autowired protected DeviceApi deviceApi; @Lazy @Autowired @@ -80,6 +89,9 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness { @Lazy @Autowired protected OrderRefundDetailService orderRefundDetailService; + @Lazy + @Autowired + protected TradeRecordApi tradeRecordApi; @Override public PageVO orderList(OrderListMobileDTO orderListDTO, RequestHeaderDTO headerDTO) { @@ -251,4 +263,16 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness { } + public UnifyPaySelectVO orderSyncPayState(OrderSyncPayStateMobileDTO dto) { + UnifyPaySelectVO unifyPaySelectVO = this.orderCustomBusiness.mobile().willReSyncOrderPayResult(dto.getOrderId()); + if (ObjectUtil.isNotNull(unifyPaySelectVO)) { + return unifyPaySelectVO; + } else if (LeConstants.COMMON_YES.equals(dto.getIfManualSync())) { + return this.orderResultBusiness.reSyncOrderPayResult(dto.getOrderId()); + } else { + TradeRecord tradeRecord = this.tradeRecordApi.getLastTradeRecordByOrderId(dto.getOrderId()); + return UnifyPaySelectVO.of(tradeRecord); + } + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java index 15d228ef..82f92e36 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java @@ -91,4 +91,8 @@ public class TradeRecordApi { }).collect(Collectors.toList())); } } + + public TradeRecord getLastTradeRecordByOrderId(Long orderId) { + return (TradeRecord)this.tradeRecordService.queryTradeRecordInfoList((String)null, orderId, (Integer)null, (Integer)null).stream().sorted(Comparator.comparing(TradeRecord::getId).reversed()).findFirst().orElse((TradeRecord) null); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/mapper/TradeRecordMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/mapper/TradeRecordMapper.java index 95bf67cc..686395c9 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/mapper/TradeRecordMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/mapper/TradeRecordMapper.java @@ -13,5 +13,6 @@ import java.util.List; @InterceptorIgnore public interface TradeRecordMapper extends BaseMapper { + List queryTradeRecordInfo(@Param("macOrderId") String macOrderId, @Param("orderRechargeId") Long orderRechargeId, @Param("tradeState") Integer tradeState, @Param("tradeType") Integer tradeType, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); List listTradeRecordByOrderRechargeId(@Param("orderRechargeId") Long orderRechargeId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime, @Param("tradeState") Integer... tradeState); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/TradeRecordService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/TradeRecordService.java index 2a327202..019eae2c 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/TradeRecordService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/TradeRecordService.java @@ -30,4 +30,6 @@ public interface TradeRecordService { void insertOrderRechargeTrade(List tradeOrderRechargeList); void deleteOrderRechargeTrade(Long tradeId); + + List queryTradeRecordInfoList(String macOrderId, Long orderRechargeId, Integer tradeState, Integer tradeType); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/impl/TradeRecordServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/impl/TradeRecordServiceImpl.java index dc97613e..07098d23 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/impl/TradeRecordServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/common/service/impl/TradeRecordServiceImpl.java @@ -124,4 +124,16 @@ public class TradeRecordServiceImpl extends ServiceImpl queryTradeRecordInfoList(String macOrderId, Long orderRechargeId, Integer tradeState, Integer tradeType) { + if (CharSequenceUtil.isEmpty(macOrderId) && !LeNumUtil.isValidId(orderRechargeId)) { + return CollUtil.newArrayList(new TradeRecord[0]); + } else { + log.info("[交易记录] queryTradeRecordInfoList 开始"); + List timeRange = LeOrderUtil.queryCreateTimeRange(); + List tradeRecordList = ((TradeRecordMapper)this.baseMapper).queryTradeRecordInfo(macOrderId, orderRechargeId, tradeState, tradeType, (LocalDateTime)timeRange.get(0), (LocalDateTime)timeRange.get(1)); + log.info("[交易记录] queryTradeRecordInfoList 结束"); + return tradeRecordList; + } + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/pay/TradeRecordMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/pay/TradeRecordMapper.xml index a6e10359..5e9ea549 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/pay/TradeRecordMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/pay/TradeRecordMapper.xml @@ -4,6 +4,46 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + +