From e31a75558bd7b8ac200194d11d181d0c6e319aa9 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 13 十月 2023 11:44:21 +0800
Subject: [PATCH] 对接第三方分账接口

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   95 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 78 insertions(+), 17 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 8635275..383a92c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -906,6 +906,56 @@
     }
 
 
+
+
+    /**
+     * 小程序支付下单API
+     * @param appPlaceOrderVo
+     * @param userId
+     * @param shopId
+     * @param goodsName
+     * @param outTradeNo
+     * @param orderId
+     * @param payMoney
+     * @param openid
+     * @param payerClientIp
+     */
+
+    private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
+                                 String goodsName, String outTradeNo,
+                                 String orderId, BigDecimal payMoney,
+                                 String openid, String payerClientIp){
+        try {
+
+
+
+            // 支付相关信息返回
+            appPlaceOrderVo.setAppId(result.getAppId());
+            appPlaceOrderVo.setMchId(config.getMchId());
+            appPlaceOrderVo.setTimeStamp(result.getTimeStamp());
+            appPlaceOrderVo.setNonceStr(result.getNonceStr());
+            appPlaceOrderVo.setPackageStr(result.getPackageValue());
+            appPlaceOrderVo.setSignType(result.getSignType());
+            appPlaceOrderVo.setPaySign(result.getPaySign());
+            appPlaceOrderVo.setPrepayId(result.getPackageValue());
+
+            // 保存支付订单统一下单日志
+            paymentMessageService.savePaymentMessage("1", orderId, payRequestJson, payResponseJson);
+
+            // 保存支付订单统一下单支付记录
+            orderPaymentService.saveOrderPayment(userId, shopId, mainMchId, orderId, outTradeNo, payMoney,
+                    appPlaceOrderVo.getEndTime(), "Y", openid,
+                    goodsName, result.getPackageValue());
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+    }
+
+
+
+
+
     /**
      * @param appPlaceActivityDto
      * @return AppPlaceOrderVo
@@ -1988,29 +2038,37 @@
         MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo();
         // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象
         List<Goods> goodsList = verifyCouponGetVo.getGoodsList();
+        String relGoodsIds = memberCoupon.getRelGoodsIds();
+        String[] relGoodsIdArr = relGoodsIds.split(",");
+        if(relGoodsIdArr.length!=goodsList.size()){
+            throw new ServiceException(AppErrorConstant.GOODS_DOWN);
+        }
         merVerifyCouponVo.setUserName(member.getRealName());
         merVerifyCouponVo.setUserMobile(member.getMobile());
         merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom());
         merVerifyCouponVo.setCouponName(memberCoupon.getCouponName());
         merVerifyCouponVo.setCreateTime(memberCoupon.getReceiveTime());
         // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性
-        List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream()
-                .map(goods -> {
-                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
-                    merCouponGoods.setGoodsId(goods.getGoodsId());
-                    merCouponGoods.setGoodsName(goods.getGoodsName());
-                    if (goods.getGoodsType() == 1) {
-                        merCouponGoods.setGoodsType("周期");
-                    } else if (goods.getGoodsType() == 2) {
-                        merCouponGoods.setGoodsType("服务");
-                    } else if (goods.getGoodsType() == 3) {
-                        merCouponGoods.setGoodsType("体验");
-                    } else if (goods.getGoodsType() == 4) {
-                        merCouponGoods.setGoodsType("单品");
-                    }
-                    // 设置其他属性
-                    return merCouponGoods;
-                }).collect(Collectors.toList());
+        List<MerCouponGoodsListVo> merCouponGoodsList = new ArrayList<>();
+        MerCouponGoodsListVo merCouponGoods;
+        for(Goods goods : goodsList){
+            if(goods.getGoodsStatus()!=1){
+                throw new ServiceException(AppErrorConstant.GOODS_DOWN);
+            }
+            merCouponGoods = new MerCouponGoodsListVo();
+            merCouponGoods.setGoodsId(goods.getGoodsId());
+            merCouponGoods.setGoodsName(goods.getGoodsName());
+            if (goods.getGoodsType() == 1) {
+                merCouponGoods.setGoodsType("周期");
+            } else if (goods.getGoodsType() == 2) {
+                merCouponGoods.setGoodsType("服务");
+            } else if (goods.getGoodsType() == 3) {
+                merCouponGoods.setGoodsType("体验");
+            } else if (goods.getGoodsType() == 4) {
+                merCouponGoods.setGoodsType("单品");
+            }
+            merCouponGoodsList.add(merCouponGoods);
+        }
         // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
         merVerifyCouponVo.setGoodsList(merCouponGoodsList);
         //生成服务
@@ -2266,6 +2324,9 @@
             SysUser sysUser;
             if (member != null) {
                 sysUser = remoteUserService.getSysUser(member.getUserId()).getData();
+                if(member.getBindingFlag()==1&&!member.getRelationShopId().equals(merNewOrderDto.getShopId())){
+                    throw new ServiceException(AppErrorConstant.USER_BINDING_ERROR);
+                }
             } else {
                 //创建新用户
                 String memberId = IdUtils.simpleUUID();

--
Gitblit v1.7.1