1
0
Quellcode durchsuchen

线下支付时订单增加保存发往微信的订单编号字段

zhang vor 6 Jahren
Ursprung
Commit
a3afd79fbb

+ 3 - 18
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -359,23 +359,9 @@ public class OrderController {
                 orderService.refund(orderInfo, null);
                 //微信支付
             } else if (Dict.payFlag.item_weixin.getItem().equals(orderInfo.getPayFlag())) {
-
-                List<OrderWXPayRecordEntity> orderWXPayRecords =
-                        orderWXPayRecordService.getRecordsByOutTradeNo(orderInfo.getOrderSn());
-                //支付成功的发送到微信的订单编号
-                String paySuccessOutTradeNoWX = null;
-                if (orderWXPayRecords != null) {
-                    for (OrderWXPayRecordEntity orderWXPayRecord : orderWXPayRecords) {
-                        if ("SUCCESS".equals(orderWXPayRecord.getTradeState())) {
-                            paySuccessOutTradeNoWX = orderWXPayRecord.getOutTradeNoWX();
-                            break;
-                        }
-                    }
-                }
-
                 // todo 退款
                 WechatRefundApiResult result = WechatUtil
-                        .wxRefund(paySuccessOutTradeNoWX, orderInfo.getActualPrice().doubleValue(),
+                        .wxRefund(orderInfo.getOrderSnWx(), orderInfo.getActualPrice().doubleValue(),
                                   orderInfo.getActualPrice().doubleValue());
                 if (result.getResult_code().equals("SUCCESS")) {
                     orderService.refund(orderInfo, result);
@@ -448,7 +434,7 @@ public class OrderController {
     @RequestMapping("/confirmPay")
     @RequiresPermissions("order:confirmPay")
     public R confirmPay(@RequestBody Long id) {
-        orderService.confirmPay(id, Dict.payFlag.item_cash);
+        orderService.confirmPay(id, Dict.payFlag.item_cash, null);
 
         return R.ok();
     }
@@ -512,7 +498,6 @@ public class OrderController {
                             orderWXPayRecordCurrent.getOutTradeNoWX(), orderEntity.getActualPrice().doubleValue(),
                             "127.0.0.1", auth_code);
         orderWXPayRecordService.updateRecord(orderWXPayRecordCurrent.getId(), wechatMicropayApiResult);
-        System.out.println(wechatMicropayApiResult);
 
         //当支付成功时,修改订单,并把其他支付记录撤销
         if (WechatUtil.WXTradeState.SUCCESS.getCode().equals(wechatMicropayApiResult.getTrade_state())) {
@@ -541,7 +526,7 @@ public class OrderController {
                     }
                 }
             }
-            orderService.confirmPay(id, Dict.payFlag.item_weixin);
+            orderService.confirmPay(id, Dict.payFlag.item_weixin, orderWXPayRecordCurrent.getOutTradeNoWX());
             r = R.ok();
             //用户支付中
         } else if (WechatUtil.WXTradeState.USERPAYING.getCode().equals(wechatMicropayApiResult.getTrade_state())) {

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderEntity.java

@@ -132,6 +132,16 @@ public class OrderEntity
 
     private String payFlag;
 
+    private String orderSnWx;
+
+    public String getOrderSnWx() {
+        return orderSnWx;
+    }
+
+    public void setOrderSnWx(String orderSnWx) {
+        this.orderSnWx = orderSnWx;
+    }
+
     public String getPayFlag() {
         return payFlag;
     }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java

@@ -87,5 +87,5 @@ public interface OrderService {
 
     Map orderSubmit(List<OfflineCartEntity> offlineCartEntityList,SysUserEntity user);
 
-    int confirmPay(Long id, Dict.payFlag payFlag);
+    int confirmPay(Long id, Dict.payFlag payFlag,String orderSnWx);
 }

+ 4 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -713,7 +713,7 @@ public class OrderServiceImpl
     }
 
     @Override
-    public int confirmPay(Long id, Dict.payFlag payFlag) {
+    public int confirmPay(Long id, Dict.payFlag payFlag,String orderSnWx) {
         SysUserEntity user = ShiroUtils.getUserEntity();
         if (user == null) {
             throw new RRException("用户登录超时,请重新登录");
@@ -738,6 +738,9 @@ public class OrderServiceImpl
         orderEntity.setPayStatus(Integer.parseInt(Dict.payStatus.item_2.getItem()));
         orderEntity.setPayFlag(payFlag.getItem());
         orderEntity.setPayTime(new Date());
+        if(orderSnWx != null){
+            orderEntity.setOrderSnWx(orderSnWx);
+        }
         orderDao.update(orderEntity);
         return 0;
     }

+ 4 - 0
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -57,6 +57,7 @@
         <result property="createTime" column="create_time"/>
         <result property="modTime" column="mod_time"/>
         <result property="isOnfflineOrder" column="is_onffline_order"/>
+        <result property="orderSnWx" column="order_sn_wx"/>
     </resultMap>
 
     <select id="queryObject" resultType="com.kmall.admin.entity.OrderEntity">
@@ -266,6 +267,7 @@
 			`store_id`,
 			`order_biz_type`,
 			`is_onffline_order`,
+			`order_sn_wx`,
 			`pay_flag`,
             `merch_sn`,
             `create_time`,
@@ -309,6 +311,7 @@
 			#{storeId},
 			#{orderBizType},
 			#{isOnfflineOrder},
+			#{orderSnWx},
 			#{payFlag},
             #{merchSn},
             #{createTime},
@@ -354,6 +357,7 @@
             <if test="orderType != null">`order_type` = #{orderType},</if>
             <if test="storeId != null">`store_id` = #{storeId},</if>
             <if test="payFlag != null">`pay_flag` = #{payFlag},</if>
+            <if test="orderSnWx != null">`order_sn_wx` = #{orderSnWx},</if>
             <if test="orderBizType != null">`order_biz_type` = #{orderBizType},</if>
             <if test="merchSn != null">`merch_sn` = #{merchSn},</if>
             <if test="createTime != null">`create_time` = #{createTime},</if>

+ 3 - 5
kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java

@@ -226,13 +226,10 @@ public class QzOrderService {
                 String out_trade_no = MapUtils.getString("merch_order_sn", map);
                 String order_id = MapUtils.getString("order_id", map);
                 Integer is_onffline_order = MapUtils.getInteger("is_onffline_order", map);
-                String order_sn = MapUtils.getString("order_sn", map);
+                String order_sn_wx = MapUtils.getString("order_sn_wx", map);
 
                 if (is_onffline_order == 1) {
-                    List<Map> paySuccessRecords = qzOrderMapper.queryWXPaySuccessRecords(order_sn);
-                    if (paySuccessRecords != null && paySuccessRecords.size() > 0) {
-                        out_trade_no = MapUtils.getString("out_trade_no_wx", paySuccessRecords.get(0));
-                    }
+                    out_trade_no = order_sn_wx;
                 }
 
                 WechatRefundQueryResult result = WechatUtil.wxRefundquery(out_trade_no);
@@ -418,6 +415,7 @@ public class QzOrderService {
                             orderRaram.put("payStatus", 2);//已支付
                             orderRaram.put("orderStatus", 201);//已支付
                             orderRaram.put("payFlag", "weixin");
+                            orderRaram.put("orderSnWx",out_trade_no_wx);
                             orderRaram.put("payTime", new Date());
                             orderRaram.put("orderId", MapUtils.getInteger("id", order));
                             qzOrderMapper.updateOrderInfo(orderRaram);

+ 2 - 1
kmall-schedule/src/main/resources/mybatis/mapper/QzOrderMapper.xml

@@ -48,7 +48,7 @@
 
 
     <select id="queryRefundOrderList" resultType="map">
-        select a.pay_transaction_id,a.merch_order_sn,a.order_sn,a.order_status,a.pay_status,f.out_refund_no,f.refund_id,f.order_id,f.id 'orderRefundId',a.is_onffline_order
+        select a.pay_transaction_id,a.merch_order_sn,a.order_sn,a.order_status,a.pay_status,f.out_refund_no,f.refund_id,f.order_id,f.id 'orderRefundId',a.is_onffline_order,a.order_sn_wx
         from mall_order a
         inner join mall_order_refund f on a.id = f.order_id	where (f.out_refund_no is null or f.refund_id is null
         or f.refund_time is null or f.wechat_refund_status_des is null) and a.order_status = '401' and f.refund_status
@@ -72,6 +72,7 @@
             <if test="orderStatus != null">a.order_status = #{orderStatus},</if>
             <if test="payStatus != null">a.pay_status = #{payStatus},</if>
             <if test="payFlag != null">a.pay_flag = #{payFlag},</if>
+            <if test="orderSnWx != null">a.order_sn_wx = #{orderSnWx},</if>
             <if test="payTransactionId != null">a.pay_transaction_id = #{payTransactionId},</if>
             <if test="payTime != null">a.pay_time = #{payTime},</if>
         </set>