Browse Source

微信通知fix

duyj 3 years ago
parent
commit
9965809eb9

+ 28 - 6
suishenbang-wxportal/suishenbang-wxportal-api/src/main/java/com/dgtly/wxportal/controller/WxController.java

@@ -163,14 +163,25 @@ public class WxController extends ApiBaseController {
     public Object sendApproveMessage() {
 
         ParameterObject obj = getParameterObject();
-        obj.checkParameterNotNull("users,chain,order,time");
+        obj.checkParameterNotNull("users,chain,order,time,customerCode");
         String users = obj.getString("users");
         String chain = obj.getString("chain");
         String order = obj.getString("order");
         String time = obj.getString("time");
+        String customerCode = obj.getString("customerCode");
         String temple = configService.selectConfigByKey("wx.notification.approve.one");
         String message = String.format(temple, chain, order, time);
-        qyWxSendMessageUtil.sendApproveProcessMessage(users, message);
+        qyWxSendMessageUtil.sendApproveProcessMessage(users, message, "11");
+
+        //发给经销商
+        Set<String> customerCodes = new HashSet<>();
+        customerCodes.add(customerCode);
+        logger.info("收到需要通知的经销商组织代码:"+customerCode);
+        Map<String,Map<String,Object>> maps = sysUserService.selectLoginNamesByCostumerCode(customerCodes);
+        //消息
+        if(customerCodes.size()>0){
+            qyWxSendMessageUtil.sendMsgToCustomer(customerCodes,maps,message, "11");
+        }
         return AjaxResult.success();
     }
 
@@ -183,14 +194,25 @@ public class WxController extends ApiBaseController {
     public Object sendSmallTonApproveMessage() {
 
         ParameterObject obj = getParameterObject();
-        obj.checkParameterNotNull("users,chain,order,time");
+        obj.checkParameterNotNull("users,chain,order,time,customerCode");
         String users = obj.getString("users");
         String chain = obj.getString("chain");
         String order = obj.getString("order");
         String time = obj.getString("time");
+        String customerCode = obj.getString("customerCode");
         String temple = configService.selectConfigByKey("wx.notification.approve.two");
         String message = String.format(temple, chain, order, time);
-        qyWxSendMessageUtil.sendApproveProcessMessage(users, message);
+        qyWxSendMessageUtil.sendApproveProcessMessage(users, message, "12");
+
+        //发给经销商
+        Set<String> customerCodes = new HashSet<>();
+        customerCodes.add(customerCode);
+        logger.info("收到需要通知的经销商组织代码:"+customerCode);
+        Map<String,Map<String,Object>> maps = sysUserService.selectLoginNamesByCostumerCode(customerCodes);
+        //消息
+        if(customerCodes.size()>0){
+            qyWxSendMessageUtil.sendMsgToCustomer(customerCodes,maps,message, "12");
+        }
         return AjaxResult.success();
     }
 
@@ -215,7 +237,7 @@ public class WxController extends ApiBaseController {
         Map<String,Map<String,Object>> maps = sysUserService.selectLoginNamesByCostumerCode(customerCodes);
         //消息
         if(customerCodes.size()>0){
-            qyWxSendMessageUtil.sendDeliveryMessage(customerCodes,maps,message);
+            qyWxSendMessageUtil.sendMsgToCustomer(customerCodes,maps,message, "13");
         }
         return AjaxResult.success();
     }
@@ -241,7 +263,7 @@ public class WxController extends ApiBaseController {
         Map<String,Map<String,Object>> maps = sysUserService.selectLoginNamesByCostumerCode(customerCodes);
         //消息
         if(customerCodes.size()>0){
-            qyWxSendMessageUtil.sendDeliveryMessage(customerCodes,maps,message);
+            qyWxSendMessageUtil.sendMsgToCustomer(customerCodes,maps,message, "14");
         }
         return AjaxResult.success();
     }

+ 38 - 2
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/utils/qywxutils/QyWxSendMessageUtil.java

@@ -43,7 +43,7 @@ public class QyWxSendMessageUtil {
     private WxSendMessageMapper wxSendMessageMapper;
 
     @Async
-    public void sendApproveProcessMessage(String users, String msg){
+    public void sendApproveProcessMessage(String users, String msg, String form){
         List<WxSendMessage> wmList = new ArrayList<>();
         if (StringUtils.isNotEmpty(users)) {
             Set<String> userList = new HashSet<>(Arrays.asList(users.split(",")));
@@ -57,7 +57,7 @@ public class QyWxSendMessageUtil {
                 try {
                     sendMessage(qyWxTextMessage);
                     wm.setIsSuccess("1");
-                    wm.setForm("1");
+                    wm.setForm(form);
                 } catch (Exception e) {
                     log.error("对" + user + "发送消息失败", e);
                 } finally {
@@ -75,6 +75,42 @@ public class QyWxSendMessageUtil {
         }
     }
 
+    @Async
+    public void sendMsgToCustomer(Set<String> customerCodes,Map<String,Map<String,Object>> maps,String msg, String form){
+        List<WxSendMessage> wmList = new ArrayList<>();
+        if(customerCodes.size()>0){
+            for(String code:customerCodes){
+                if(maps.containsKey(code)&&maps.get(code).get("touser")!=null&&!maps.get(code).get("touser").toString().trim().equals("")){
+                    WxSendMessage wm= new WxSendMessage();
+                    QyWxTextMessage qyWxTextMessage = new QyWxTextMessage();
+                    qyWxTextMessage.setTouser(maps.get(code).get("touser").toString());
+                    wm.setToUser(qyWxTextMessage.getTouser());
+                    qyWxTextMessage.setText(msg);
+                    wm.setSendText(qyWxTextMessage.getText().getContent());
+                    try{
+                        sendMessage(qyWxTextMessage);
+                        wm.setIsSuccess("1");
+                        wm.setForm(form);
+                    }catch (Exception e){
+                        log.error("对"+maps.get(code).get("touser")+"发送消息失败",e);
+                    }finally {
+                        wmList.add(wm);
+                    }
+                }else{
+                    log.error("经销商code为:"+code+"的经销商未发现相应人员!!");
+                }
+            }
+        }
+        if (wmList.size() > 0) {
+            try {
+                wxSendMessageMapper.bathInsertWxSendMessage(wmList);
+            } catch (Exception e) {
+
+                log.error("发送微信信息时插入记录出错!!", e);
+            }
+        }
+    }
+
     @Async
     public void sendDeliveryMessage(Set<String> customerCodes,Map<String,Map<String,Object>> maps,String msg){
         List<WxSendMessage> wmList = new ArrayList<>();