Commit 01f6a2ee120a0f8e4849da936e0fc483e25a0803
1 parent
5037436e
feat rtmart payment
Showing
5 changed files
with
41 additions
and
6 deletions
cashier-mall/src/main/java/com/diligrp/cashier/mall/dao/MallBizPaymentOrderDao.java
| @@ -33,4 +33,6 @@ public interface MallBizPaymentOrderDao extends MybatisMapperSupport { | @@ -33,4 +33,6 @@ public interface MallBizPaymentOrderDao extends MybatisMapperSupport { | ||
| 33 | void updateByPayment(MallBizPayment mallBizPayment); | 33 | void updateByPayment(MallBizPayment mallBizPayment); |
| 34 | 34 | ||
| 35 | List<MallBizPaymentOrder> listPaymentOrderByBizOrderId(@Param("bizOrderId") Long bizOrderId); | 35 | List<MallBizPaymentOrder> listPaymentOrderByBizOrderId(@Param("bizOrderId") Long bizOrderId); |
| 36 | + | ||
| 37 | + List<MallBizPaymentOrder> listPaymentOrderByBizOrderIds(@Param("bizOrderIds") List<Long> bizOrderIds); | ||
| 36 | } | 38 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/biz/MallBizPaymentService.java
| @@ -45,4 +45,6 @@ public interface MallBizPaymentService { | @@ -45,4 +45,6 @@ public interface MallBizPaymentService { | ||
| 45 | void cancel(MallBizPaymentOrder mallBizPaymentOrder); | 45 | void cancel(MallBizPaymentOrder mallBizPaymentOrder); |
| 46 | 46 | ||
| 47 | List<MallBizPaymentOrder> listPaymentOrderByBizOrderId(Long bizOrderId); | 47 | List<MallBizPaymentOrder> listPaymentOrderByBizOrderId(Long bizOrderId); |
| 48 | + | ||
| 49 | + List<MallBizPaymentOrder> listPaymentOrderByBizOrderIds(List<Long> bizOrderIds); | ||
| 48 | } | 50 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/biz/impl/MallBizPaymentServiceImpl.java
| @@ -259,12 +259,11 @@ public class MallBizPaymentServiceImpl implements MallBizPaymentService { | @@ -259,12 +259,11 @@ public class MallBizPaymentServiceImpl implements MallBizPaymentService { | ||
| 259 | */ | 259 | */ |
| 260 | @Override | 260 | @Override |
| 261 | public void cancel(MallBizPaymentOrder mallBizPaymentOrder) { | 261 | public void cancel(MallBizPaymentOrder mallBizPaymentOrder) { |
| 262 | - mallBizPaymentOrder.cancel(); | ||
| 263 | mallBizPaymentOrderDao.updateByPrimaryKeySelective(mallBizPaymentOrder); | 262 | mallBizPaymentOrderDao.updateByPrimaryKeySelective(mallBizPaymentOrder); |
| 264 | } | 263 | } |
| 265 | 264 | ||
| 266 | /** | 265 | /** |
| 267 | - * return List.of(); | 266 | + * listPaymentOrderByBizOrderId |
| 268 | */ | 267 | */ |
| 269 | @Override | 268 | @Override |
| 270 | public List<MallBizPaymentOrder> listPaymentOrderByBizOrderId(Long bizOrderId) { | 269 | public List<MallBizPaymentOrder> listPaymentOrderByBizOrderId(Long bizOrderId) { |
| @@ -272,6 +271,15 @@ public class MallBizPaymentServiceImpl implements MallBizPaymentService { | @@ -272,6 +271,15 @@ public class MallBizPaymentServiceImpl implements MallBizPaymentService { | ||
| 272 | } | 271 | } |
| 273 | 272 | ||
| 274 | /** | 273 | /** |
| 274 | + * listPaymentOrderByBizOrderIds | ||
| 275 | + */ | ||
| 276 | + @Override | ||
| 277 | + public List<MallBizPaymentOrder> listPaymentOrderByBizOrderIds(List<Long> bizOrderIds) { | ||
| 278 | + return mallBizPaymentOrderDao.listPaymentOrderByBizOrderIds(bizOrderIds); | ||
| 279 | + } | ||
| 280 | + | ||
| 281 | + | ||
| 282 | + /** | ||
| 275 | * 处理单个支付流水的分摊通知 | 283 | * 处理单个支付流水的分摊通知 |
| 276 | * 1. 调用大润发订单详情接口获取商品信息 | 284 | * 1. 调用大润发订单详情接口获取商品信息 |
| 277 | * 2. 更新订单状态 | 285 | * 2. 更新订单状态 |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/sourcechannel/AbstractSourceChannel.java
| @@ -97,14 +97,13 @@ public abstract class AbstractSourceChannel { | @@ -97,14 +97,13 @@ public abstract class AbstractSourceChannel { | ||
| 97 | @Transactional(rollbackFor = {Exception.class}) | 97 | @Transactional(rollbackFor = {Exception.class}) |
| 98 | public void paymentOnEvent(PaymentResultBO event, MallBizPayment mallBizPayment) { | 98 | public void paymentOnEvent(PaymentResultBO event, MallBizPayment mallBizPayment) { |
| 99 | LOG.info("paymentOnEvent event: {} mallBizPayment: {}", JsonUtils.toJsonString(event), JsonUtils.toJsonString(mallBizPayment)); | 99 | LOG.info("paymentOnEvent event: {} mallBizPayment: {}", JsonUtils.toJsonString(event), JsonUtils.toJsonString(mallBizPayment)); |
| 100 | - // update mall_biz_order | ||
| 101 | - List<Long> bizOrderIds = Arrays.stream(mallBizPayment.getBizOrderId().split(",")).map(Long::valueOf).toList(); | ||
| 102 | - mallBizOrderDao.updateByIds(bizOrderIds, OrderState.PAYED.code); | ||
| 103 | - | ||
| 104 | // update mall_biz_payment | 100 | // update mall_biz_payment |
| 105 | mallBizPayment.payCallBack(event); | 101 | mallBizPayment.payCallBack(event); |
| 106 | mallBizPaymentService.updateByPay(mallBizPayment); | 102 | mallBizPaymentService.updateByPay(mallBizPayment); |
| 107 | 103 | ||
| 104 | + // check all refund state | ||
| 105 | + updateOrder(mallBizPayment); | ||
| 106 | + | ||
| 108 | // notify other channel | 107 | // notify other channel |
| 109 | payCallBack(event, mallBizPayment); | 108 | payCallBack(event, mallBizPayment); |
| 110 | } | 109 | } |
| @@ -138,6 +137,18 @@ public abstract class AbstractSourceChannel { | @@ -138,6 +137,18 @@ public abstract class AbstractSourceChannel { | ||
| 138 | } | 137 | } |
| 139 | 138 | ||
| 140 | /** | 139 | /** |
| 140 | + * updateOrder | ||
| 141 | + */ | ||
| 142 | + private void updateOrder(MallBizPayment mallBizPayment) { | ||
| 143 | + List<Long> bizOrderIds = Arrays.stream(mallBizPayment.getBizOrderId().split(",")).map(Long::valueOf).toList(); | ||
| 144 | + List<MallBizPaymentOrder> paymentOrderList = mallBizPaymentService.listPaymentOrderByBizOrderIds(bizOrderIds); | ||
| 145 | + boolean success = paymentOrderList.stream().allMatch(vo -> Objects.equals(vo.getPayState(), PaymentState.SUCCESS.getCode())); | ||
| 146 | + if (success) { | ||
| 147 | + mallBizOrderDao.updateByIds(bizOrderIds, OrderState.PAYED.code); | ||
| 148 | + } | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + /** | ||
| 141 | * 渠道 | 152 | * 渠道 |
| 142 | */ | 153 | */ |
| 143 | public abstract Integer source(); | 154 | public abstract Integer source(); |
cashier-mall/src/main/resources/com/diligrp/cashier/dao/mapper/MallBizPaymentOrderDao.xml
| @@ -122,6 +122,9 @@ | @@ -122,6 +122,9 @@ | ||
| 122 | <if test="payFee != null"> | 122 | <if test="payFee != null"> |
| 123 | pay_fee = #{payFee,jdbcType=BIGINT}, | 123 | pay_fee = #{payFee,jdbcType=BIGINT}, |
| 124 | </if> | 124 | </if> |
| 125 | + <if test="payState != null"> | ||
| 126 | + pay_state = #{payState,jdbcType=INTEGER}, | ||
| 127 | + </if> | ||
| 125 | <if test="payTime != null"> | 128 | <if test="payTime != null"> |
| 126 | pay_time = #{payTime,jdbcType=TIMESTAMP}, | 129 | pay_time = #{payTime,jdbcType=TIMESTAMP}, |
| 127 | </if> | 130 | </if> |
| @@ -189,4 +192,13 @@ | @@ -189,4 +192,13 @@ | ||
| 189 | where biz_payment_id = #{id} | 192 | where biz_payment_id = #{id} |
| 190 | </update> | 193 | </update> |
| 191 | 194 | ||
| 195 | + <select id="listPaymentOrderByBizOrderIds" resultType="com.diligrp.cashier.mall.model.MallBizPaymentOrder"> | ||
| 196 | + select | ||
| 197 | + <include refid="Base_Column_List" /> | ||
| 198 | + from mall_biz_payment_order | ||
| 199 | + where biz_order_id in | ||
| 200 | + <foreach collection="bizOrderIds" item="bizOrderId" index="index" open="(" close=")" separator=","> | ||
| 201 | + #{bizOrderId} | ||
| 202 | + </foreach> | ||
| 203 | + </select> | ||
| 192 | </mapper> | 204 | </mapper> |