Browse Source

feat:“订单推送去除商品名称,增加支付方式“

soobin 1 year ago
parent
commit
a2c911d3c5

+ 10 - 0
src/main/java/com/szwl/constant/HuifuConstant.java

@@ -93,6 +93,16 @@ public class HuifuConstant {
     public static final String SC_TEMPLATE_ID = "NNvPtOznN2nSV2g57y7B0tUZ77-bf0XxG4OaUvk5EZA";
 
     /**
+     * 申泽订单通知新模版ID
+     */
+    public static final String NEW_SZ_TEMPLATE_ID = "Kn37QCyj-JsvKhP9CtNwsZ7-vFkaZZteUXxEobYiIm4";
+
+    /**
+     * 七云订单通知新模版ID
+     */
+    public static final String NEW_SC_TEMPLATE_ID = "NNvPtOznN2nSV2g57y7B0lMWuoXe2qjDNJGwj56iRSU";
+
+    /**
      * >>>>>>>>>>>>> 币种 >>>>>>>>>>>>>
      *
      */

+ 3 - 4
src/main/java/com/szwl/controller/TOrderController.java

@@ -3146,7 +3146,7 @@ public class TOrderController {
                                 String openId = R.getDataIfSuccess(szwlFeign.getOpenId(order.getAdminId()));
                                 // 获取openId
                                 if (StringUtils.isNotEmpty(openId)) {
-                                    orderService.sendWechatMessage(openId, equipment, order, admin.getCompanyType());
+                                    orderService.newSendWechatMessage(openId, equipment, order, admin.getCompanyType());
                                 }
                             }
                         }
@@ -3309,7 +3309,7 @@ public class TOrderController {
                         String openId = R.getDataIfSuccess(szwlFeign.getOpenId(order.getAdminId()));
                         // 获取openId
                         if (StringUtils.isNotEmpty(openId)) {
-                            orderService.sendWechatMessage(openId, equipment, order, admin.getCompanyType());
+                            orderService.newSendWechatMessage(openId, equipment, order, admin.getCompanyType());
                         }
                     }
                 }
@@ -4867,8 +4867,7 @@ public class TOrderController {
     @ApiOperation("收钱吧发起退款")
     @PostMapping("/sqbRefund")
     public ResponseModel<?> sqbRefund(@RequestBody TOrder torder) {
-        ResponseModel result = orderService.sqbRefund(torder);
-        return result;
+        return orderService.sqbRefund(torder);
     }
 
     /**

+ 9 - 0
src/main/java/com/szwl/service/TOrderService.java

@@ -102,6 +102,15 @@ public interface TOrderService extends IService<TOrder> {
     void sendWechatMessage(String openId, TEquipment equipment, TOrder order, String companyType);
 
     /**
+     * 新推送微信订单通知,去掉商品名称,增加支付方式
+     * @param openId
+     * @param equipment
+     * @param order
+     * @param companyType
+     */
+    void newSendWechatMessage(String openId, TEquipment equipment, TOrder order, String companyType);
+
+    /**
      * 收钱吧反扫购物车支付
      * @param authCode
      * @param frpCode

+ 75 - 2
src/main/java/com/szwl/service/impl/TOrderServiceImpl.java

@@ -522,7 +522,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                 String openId = R.getDataIfSuccess(szwlFeign.getOpenId(order.getAdminId()));
                 // 获取openId
                 if (StringUtils.isNotEmpty(openId)) {
-                    orderService.sendWechatMessage(openId, equipment, order, admin.getCompanyType());
+                    orderService.newSendWechatMessage(openId, equipment, order, admin.getCompanyType());
                 }
             }
         }
@@ -592,6 +592,61 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         sendMessage(accessToken, restTemplate, sendBody);
     }
 
+    @Override
+    public void newSendWechatMessage(String openId, TEquipment equipment, TOrder order, String companyType) {
+        String accessToken = "";
+        try {
+            if (StringUtils.isEmpty(companyType) || companyType.equals("0")) {
+                TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin("2738"));
+                accessToken = admin.getApiKey();
+                log.info("申泽的accessToken:{}", accessToken);
+            } else {
+                TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin("2739"));
+                accessToken = admin.getApiKey();
+                log.info("七云的accessToken:{}", accessToken);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        // 推送消息
+        // 模板参数
+        Map<String, WeChatTemplateMsg> sendMag = new HashMap();
+        // 转换时间为String类型
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String payTime = format.format(order.getPayDate());
+        // 模版参数
+        // 设备名称
+        if (StringUtils.isNotEmpty(equipment.getName())) {
+            if (equipment.getName().length() > 20) {
+                sendMag.put("thing15", new WeChatTemplateMsg(equipment.getName().substring(0, 15) + "..."));
+            } else {
+                sendMag.put("thing15", new WeChatTemplateMsg(equipment.getName()));
+            }
+        } else {
+            String clientId = equipment.getClientId();
+            sendMag.put("thing15", new WeChatTemplateMsg(clientId.substring(clientId.length() - 6)));
+        }
+        // 订单编号
+        sendMag.put("character_string8", new WeChatTemplateMsg(order.getSn()));
+        // 交易金额
+        sendMag.put("amount29", new WeChatTemplateMsg(order.getPrice().toString()));
+        // 支付方式
+        sendMag.put("const44", new WeChatTemplateMsg(checkPayType(order.getFrpCode())));
+        // 交易时间
+        sendMag.put("time36", new WeChatTemplateMsg(payTime));
+        RestTemplate restTemplate = new RestTemplate();
+        Map<String, Object> sendBody = new HashMap<>();
+        sendBody.put("touser", openId);
+        sendBody.put("topcolor", "#FF0000");
+        sendBody.put("data", sendMag);
+        if (StringUtils.isEmpty(companyType) || companyType.equals("0")) {
+            sendBody.put("template_id", HuifuConstant.NEW_SZ_TEMPLATE_ID);
+        } else {
+            sendBody.put("template_id", HuifuConstant.NEW_SC_TEMPLATE_ID);
+        }
+        sendMessage(accessToken, restTemplate, sendBody);
+    }
+
     public String sqCardPay(String orderNo, BigDecimal amount, String productName, String authCode, TSqbConfig sqbConfig, String userName, String ip) {
         HttpProxy hp = new HttpProxy(ShouQianBaConstant.API_DOMAIN);
         try {
@@ -667,7 +722,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                                 String openId = R.getDataIfSuccess(szwlFeign.getOpenId(order.getAdminId()));
                                 // 获取openId
                                 if (StringUtils.isNotEmpty(openId)) {
-                                    orderService.sendWechatMessage(openId, equipment, order, admin.getCompanyType());
+                                    orderService.newSendWechatMessage(openId, equipment, order, admin.getCompanyType());
                                 }
                             }
                         }
@@ -1780,4 +1835,22 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         return acctSplitBunch;
     }
 
+    /**
+     * 判断支付方式
+     */
+    public String checkPayType(String payType) {
+        if (StrUtil.isNotEmpty(payType)) {
+            if (payType.contains("ALIPAY")) {
+                return "支付宝";
+            } else if (payType.contains("WEIXIN")) {
+                return "微信";
+            } else if (payType.equals("ECNY_CARD")) {
+                return "数字人民币";
+            } else {
+                return "微信";
+            }
+        }
+        return "微信";
+    }
+
 }

+ 3 - 5
src/main/java/com/szwl/service/impl/TWechatPayConfigServiceImpl.java

@@ -5,9 +5,9 @@ import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.alipay.api.AlipayApiException;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.gson.Gson;
 import com.szwl.constant.ConfigConsts;
 import com.szwl.constant.JoinpayConstant;
@@ -15,14 +15,13 @@ import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.constant.WXPayConstants;
 import com.szwl.feign.bean.OrderFeign;
 import com.szwl.feign.bean.SzwlFeign;
+import com.szwl.mapper.TWechatPayConfigMapper;
 import com.szwl.model.bo.JsonMessage;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.*;
-import com.szwl.mapper.TWechatPayConfigMapper;
 import com.szwl.model.utils.PushUtils;
 import com.szwl.service.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.szwl.utils.HuifuUtils;
 import com.szwl.utils.IDGenerator;
 import com.szwl.utils.MyWXPay;
@@ -34,7 +33,6 @@ import com.wechat.pay.java.core.RSAAutoCertificateConfig;
 import com.wechat.pay.java.service.refund.model.AmountReq;
 import com.wechat.pay.java.service.refund.model.CreateRequest;
 import com.wechat.pay.java.service.refund.model.Refund;
-import com.wechat.pay.java.service.refund.model.Status;
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.HttpStatus;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -454,7 +452,7 @@ public class TWechatPayConfigServiceImpl extends ServiceImpl<TWechatPayConfigMap
                             String openId = R.getDataIfSuccess(szwlFeign.getOpenId(order.getAdminId()));
                             // 获取openId
                             if(StringUtils.isNotEmpty(openId)) {
-                                orderService.sendWechatMessage(openId, equipment, order, admin.getCompanyType());
+                                orderService.newSendWechatMessage(openId, equipment, order, admin.getCompanyType());
                             }
                         }
                     }