瀏覽代碼

分账功能

zhangbin 1 年之前
父節點
當前提交
0589d2a135

+ 2 - 1
xpgx-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java

@@ -67,6 +67,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         orderInfo.setOutTradeNo(order.getOutTradeNo());
         orderInfo.setTotal(order.getTotal());
         orderInfo.setTradeType(1);
+        orderInfo.setTransactionId(order.getTransactionId());
         orderInfo.setSuccessTime(order.getSuccessTime());
         orderInfo.setPayType(payType);
         orderInfo.setForeType(order.getForeType());
@@ -91,7 +92,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         // 获取当前时间
         Date currentDate = new Date();
         // 添加5分钟
-        long fiveMinutesInMillis = 1 * 60 * 1000; // 5分钟的毫秒数
+        long fiveMinutesInMillis = 2 * 60 * 1000; // 2分钟的毫秒数
         Date nowDate = new Date(currentDate.getTime() - fiveMinutesInMillis);
 
         OrderInfoProfitDto orderInfoProfitDto = new OrderInfoProfitDto();

+ 20 - 31
xpgx-service/src/main/java/com/miaxis/wx/service/impl/WxOrderServiceImpl.java

@@ -98,8 +98,6 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
     @Override
     @Transactional
     public boolean wxAddFenZhang(OrderInfo orderInfo) throws Exception {
-        //查询上级
-        Map<String, Object> accountMap = getAccount(orderInfo);
         String url = "https://api.mch.weixin.qq.com/pay/profitsharingaddreceiver";
 
         String nonceStr = RandomStringUtils.randomAlphanumeric(32);
@@ -112,13 +110,12 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
         Map<String, String> receiverMap = new TreeMap<String, String>();
         receiverMap.put("type", "PERSONAL_OPENID");
 
-        if (accountMap != null) {
-            String account = (String) accountMap.get("account");
-            if (StringUtils.isNotEmpty(account)) {  //如果存在上级,分给上给
-                receiverMap.put("account", account);
-            } else {                               //如果不存在上级,分给固定的
-                receiverMap.put("account", "o7N3j5XxUrgOKE4ulP-HseFpBCiM");
-            }
+
+        String account = getAccount(orderInfo);
+        if (StringUtils.isNotEmpty(account)) {  //如果存在上级,分给上给
+            receiverMap.put("account", account);
+        } else {                               //如果不存在上级,分给固定的
+            receiverMap.put("account", "owfrB65mHzlCe87R19xrchQCU-cY");
         }
 
         receiverMap.put("relation_type", "SERVICE_PROVIDER");  //合作合伙
@@ -173,17 +170,11 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
         receiverMap.put("type", "PERSONAL_OPENID");
 
         //获取上级
-        Map<String, Object> accountMap = getAccount(orderInfo);
-        String account = null;
-        Integer openIdType = null;
-        if (accountMap != null) {
-            account = (String) accountMap.get("account");
-            openIdType = (Integer) accountMap.get("openIdType");
-        }
+        String account = getAccount(orderInfo);
         if (StringUtils.isNotEmpty(account)) {  //如果存在上级,分给上给
             receiverMap.put("account", account);
         } else {                               //如果不存在上级,分给固定的
-            receiverMap.put("account", "o7N3j5XxUrgOKE4ulP-HseFpBCiM");
+            receiverMap.put("account", "owfrB65mHzlCe87R19xrchQCU-cY");
         }
 
         receiverMap.put("amount", amount);
@@ -216,8 +207,8 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
         orderSplit.setOutTradeNo(orderInfo.getOutTradeNo());
         orderSplit.setAmount(amount);
         orderSplit.setOpenId(account);
-        if (openIdType!=null) {
-            orderSplit.setOpenIdType(openIdType);
+        if(account!=null) {
+            orderSplit.setOpenIdType(orderInfo.getForeType());
         } else {
             orderSplit.setOpenIdType(2);
         }
@@ -349,8 +340,8 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
      * @param orderInfo
      * @return
      */
-    private Map<String, Object> getAccount(OrderInfo orderInfo) {
-        Map<String, Object> resultMap = new HashMap<String, Object>();
+    private String getAccount(OrderInfo orderInfo) {
+        int foreType = orderInfo.getForeType(); //前端类型 1:app 2:小程序 3:公众号
 
         String account = null;
         UserInfo userInfo = sysUserService.getStudentByUnionId(orderInfo.getUnionId());
@@ -359,23 +350,21 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
             pUserInfo = sysUserService.getStudentByUnionId(userInfo.getPUnionId());
         }
         if (pUserInfo != null) {
-            if (StringUtils.isNotEmpty(pUserInfo.getXcxOpenid())) {
+
+            if (foreType == 2 && StringUtils.isNotEmpty(pUserInfo.getXcxOpenid())) {
                 account = pUserInfo.getXcxOpenid();
-                resultMap.put("account", account);
-                resultMap.put("openIdType", 2);
-            } else if (StringUtils.isNotEmpty(pUserInfo.getGzhOpenid())) {
+                return account;
+            } else if (foreType == 3 && StringUtils.isNotEmpty(pUserInfo.getGzhOpenid())) {
                 account = pUserInfo.getGzhOpenid();
-                resultMap.put("account", account);
-                resultMap.put("openIdType", 3);
-            } else if (StringUtils.isNotEmpty(pUserInfo.getAppOpenid())) {
+                return account;
+            } else if (foreType == 1 && StringUtils.isNotEmpty(pUserInfo.getAppOpenid())) {
                 account = pUserInfo.getAppOpenid();
-                resultMap.put("account", account);
-                resultMap.put("openIdType", 1);
+                return account;
             } else {
                 return null;
             }
         }
-        return resultMap;
+        return null;
     }