sync_pay_state
This commit is contained in:
parent
1d65abcff2
commit
1b63872d7e
|
|
@ -24,6 +24,7 @@ import com.bonus.core.pay.api.dto.UnifyPaySelectDTO;
|
|||
import com.bonus.core.pay.api.vo.UnifyPaySelectVO;
|
||||
import com.bonus.core.pay.api.vo.UnifyPayVO;
|
||||
import com.bonus.core.pay.common.constants.PayStateEnum;
|
||||
import com.bonus.core.pay.common.model.TradeOrderRecharge;
|
||||
import com.bonus.core.pay.common.model.TradeRecord;
|
||||
import com.bonus.core.pay.common.po.PayResultPO;
|
||||
import org.slf4j.Logger;
|
||||
|
|
@ -403,30 +404,30 @@ public class OrderResultBusinessImpl implements OrderResultBusiness {
|
|||
}
|
||||
}
|
||||
|
||||
// public boolean orderRepeatPayCheck(PayResultPO payResultPO, List<OrderInfo> orderInfoList) {
|
||||
// if (!PayStateEnum.isPaidState(payResultPO.getTradeState())) {
|
||||
// log.warn("本次交易不成功,跳过重复交易检查 tradeId={}", payResultPO.getTradeId());
|
||||
// return false;
|
||||
// } else {
|
||||
// List<Long> orderIds = (List)orderInfoList.stream().map(OrderInfo::getOrderId).collect(Collectors.toList());
|
||||
// List<TradeOrderRecharge> repeatPaidTrades = (List)this.tradeRecordApi.listSuccessByOrderIds(orderIds).stream().filter((s) -> {
|
||||
// return !s.getTradeId().equals(payResultPO.getTradeId());
|
||||
// }).collect(Collectors.toList());
|
||||
// if (CollUtil.isNotEmpty(repeatPaidTrades)) {
|
||||
// log.warn("订单产生多笔支付成功的交易 {}", repeatPaidTrades);
|
||||
// OrderSavePO orderSavePO = this.orderRepairService.packageNewPaidOrderInfo(orderInfoList);
|
||||
// this.tradeRecordApi.updateOrderRechargeId(payResultPO.getTradeId(), orderSavePO.getMacOrderId(), (List)orderSavePO.getOrderInfoList().stream().map(OrderInfo::getOrderId).collect(Collectors.toList()));
|
||||
// this.orderPlaceBusiness.save(orderSavePO, false, false);
|
||||
// CollUtil.clear(new Collection[]{orderInfoList});
|
||||
// orderInfoList.addAll(orderSavePO.getOrderInfoList());
|
||||
// return true;
|
||||
// } else {
|
||||
// log.warn("订单未产生多笔支付成功的交易,跳过 orderId={}", orderInfoList.stream().map(OrderInfo::getOrderId).collect(Collectors.toList()));
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
public boolean orderRepeatPayCheck(PayResultPO payResultPO, List<OrderInfo> orderInfoList) {
|
||||
if (!PayStateEnum.isPaidState(payResultPO.getTradeState())) {
|
||||
log.warn("本次交易不成功,跳过重复交易检查 tradeId={}", payResultPO.getTradeId());
|
||||
return false;
|
||||
} else {
|
||||
List<Long> orderIds = (List)orderInfoList.stream().map(OrderInfo::getOrderId).collect(Collectors.toList());
|
||||
List<TradeOrderRecharge> repeatPaidTrades = (List)this.tradeRecordApi.listSuccessByOrderIds(orderIds).stream().filter((s) -> {
|
||||
return !s.getTradeId().equals(payResultPO.getTradeId());
|
||||
}).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(repeatPaidTrades)) {
|
||||
log.warn("订单产生多笔支付成功的交易 {}", repeatPaidTrades);
|
||||
OrderSavePO orderSavePO = this.orderRepairService.packageNewPaidOrderInfo(orderInfoList);
|
||||
this.tradeRecordApi.updateOrderRechargeId(payResultPO.getTradeId(), orderSavePO.getMacOrderId(), (List)orderSavePO.getOrderInfoList().stream().map(OrderInfo::getOrderId).collect(Collectors.toList()));
|
||||
this.orderPlaceBusiness.save(orderSavePO, false, false);
|
||||
CollUtil.clear(new Collection[]{orderInfoList});
|
||||
orderInfoList.addAll(orderSavePO.getOrderInfoList());
|
||||
return true;
|
||||
} else {
|
||||
log.warn("订单未产生多笔支付成功的交易,跳过 orderId={}", orderInfoList.stream().map(OrderInfo::getOrderId).collect(Collectors.toList()));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// public OrderRefund orderRepeatRefundCheck(RefundResultPO refundResultPO, OrderRefund orderRefund) {
|
||||
// List<TradeRecord> paidTradeRecords = (List)this.tradeRecordApi.listTradeRecordByOrderRechargeId(orderRefund.getOrderRefundId()).stream().filter((s) -> {
|
||||
// return PayStateEnum.isPaidState(s.getTradeState());
|
||||
|
|
|
|||
|
|
@ -68,4 +68,8 @@ public class TradeRecordApi {
|
|||
public List<TradeOrderRecharge> listOrderRechargeByTradeId(Long tradeId) {
|
||||
return this.tradeRecordService.queryOrderRechargeTrade(tradeId);
|
||||
}
|
||||
|
||||
public List<TradeOrderRecharge> listSuccessByOrderIds(List<Long> orderIds) {
|
||||
return this.tradeRecordService.listSuccessByOrderIds(orderIds);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,10 +6,13 @@ import com.bonus.core.pay.common.model.TradeOrderRecharge;
|
|||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
@InterceptorIgnore
|
||||
public interface TradeOrderRechargeMapper extends BaseMapper<TradeOrderRecharge> {
|
||||
void batchInsert(@Param("tradeOrderRechargeList") List<TradeOrderRecharge> tradeOrderRechargeList);
|
||||
|
||||
List<TradeOrderRecharge> listSuccessByOrderIds(@Param("orderIds") List<Long> orderIds, @Param("stratTime") LocalDateTime stratTime, @Param("endTime") LocalDateTime endTime);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ public interface TradeRecordService {
|
|||
|
||||
List<TradeOrderRecharge> queryOrderRechargeTrade(Long tradeId);
|
||||
|
||||
List<TradeOrderRecharge> listSuccessByOrderIds(List<Long> orderIds);
|
||||
|
||||
TradeRecord getTradeRecordByOrderRechargeId(Long orderRechargeId, Integer... tradeState);
|
||||
|
||||
void insertTradeRecord(TradeRecord tradeRecord);
|
||||
|
|
|
|||
|
|
@ -97,6 +97,15 @@ public class TradeRecordServiceImpl extends ServiceImpl<TradeRecordMapper, Trade
|
|||
return tradeOrderRechargeList;
|
||||
}
|
||||
|
||||
public List<TradeOrderRecharge> listSuccessByOrderIds(List<Long> orderIds) {
|
||||
if (CollUtil.isEmpty(orderIds)) {
|
||||
return CollUtil.newArrayList(new TradeOrderRecharge[0]);
|
||||
} else {
|
||||
List<LocalDateTime> timeRange = LeOrderUtil.queryCreateTimeRange();
|
||||
return this.tradeOrderRechargeMapper.listSuccessByOrderIds(orderIds, (LocalDateTime)timeRange.get(0), (LocalDateTime)timeRange.get(1));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TradeRecord getTradeRecordByOrderRechargeId(Long orderRechargeId, Integer... tradeState) {
|
||||
log.info("[交易记录] getTradeRecordByOrderRechargeId 开始");
|
||||
|
|
|
|||
|
|
@ -12,4 +12,21 @@
|
|||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="listSuccessByOrderIds" resultType="com.bonus.core.pay.common.model.TradeOrderRecharge">
|
||||
SELECT tor.trade_id, tor.order_recharge_id, tor.mac_order_id
|
||||
FROM trade_order_recharge tor
|
||||
LEFT JOIN trade_record tr ON tor.trade_id = tr.id
|
||||
WHERE tr.trade_state IN (3,6)
|
||||
AND tor.order_recharge_id IN
|
||||
<foreach collection="orderIds" item="orderId" open="(" separator="," close=")">
|
||||
#{orderId}
|
||||
</foreach>
|
||||
<if test="stratTime != null">
|
||||
AND tr.create_time <![CDATA[ >= ]]> #{stratTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND tr.create_time <![CDATA[ <= ]]> #{endTime}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
Reference in New Issue