Browse Source

ERP公共询价传入保存时增加消息精准推送

hejq 8 years ago
parent
commit
2d2388cbf8

+ 13 - 1
src/main/java/com/uas/ps/inquiry/entity/MessageModel.java

@@ -3,7 +3,7 @@ package com.uas.ps.inquiry.entity;
 /**
 /**
  * 消息
  * 消息
  */
  */
-public class MessageModel{
+public class MessageModel {
     /**
     /**
      * 消息类型
      * 消息类型
      */
      */
@@ -12,6 +12,10 @@ public class MessageModel{
      * 消息内容
      * 消息内容
      */
      */
     private String content;
     private String content;
+    /**
+     * 备注
+     */
+    private String remark;
     /**
     /**
      * 消息接收者uu
      * 消息接收者uu
      */
      */
@@ -77,6 +81,14 @@ public class MessageModel{
         this.content = content;
         this.content = content;
     }
     }
 
 
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
     public Long getReceiverUu() {
     public Long getReceiverUu() {
         return receiverUu;
         return receiverUu;
     }
     }

+ 54 - 4
src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java

@@ -87,6 +87,36 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
      */
     private final String INQUIRYKIND = "publicInquiry";
     private final String INQUIRYKIND = "publicInquiry";
 
 
+    /**
+     * 消息推送邮件模板id
+     */
+    private final String MAIL_TEMP_ID = "d94e931b-b699-46d7-8bb2-94604a3352c0";
+
+    /**
+     * 消息推送短信模板id
+     */
+    private final String SMS_TEMP_ID = "8cf71d56-09bb-4d60-993e-ed87ce72ec3b";
+
+    /**
+     * 消息推送方式:邮件、短信、im
+     */
+    private final String SMS_TYPE = "MAIL_AND_SM_AND_IM";
+
+    /**
+     * 来源应用,ERP
+     */
+    private final String PRODUCERAPP = "ERP";
+
+    /**
+     * 消费类型: 多个,MULTI
+     */
+    private final String CUST_TYPE = "MULTI";
+
+    /**
+     * 接收应用
+     */
+    private final String CONSUMERAPP = "B2B,MALL,ERP";
+
     /**
     /**
      * 保存公共询价信息
      * 保存公共询价信息
      *
      *
@@ -138,6 +168,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 if (res.getStatusCode() == 200) {
                 if (res.getStatusCode() == 200) {
                     List<ProductUsers> users = FlexJsonUtils.fromJsonArray(res.getResponseText(), ProductUsers.class);
                     List<ProductUsers> users = FlexJsonUtils.fromJsonArray(res.getResponseText(), ProductUsers.class);
                     if (!CollectionUtils.isEmpty(users)) {
                     if (!CollectionUtils.isEmpty(users)) {
+                        List<MessageModel> models = new ArrayList<MessageModel>();
                         for (ProductUsers user : users) {
                         for (ProductUsers user : users) {
                             User u = userDao.findOne(user.getUseruu());
                             User u = userDao.findOne(user.getUseruu());
                             Enterprise e = enterpriseDao.findOne(user.getEnuu());
                             Enterprise e = enterpriseDao.findOne(user.getEnuu());
@@ -145,13 +176,22 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                                 u.setEnterprise(e);
                                 u.setEnterprise(e);
                             }
                             }
                             MessageModel model = new MessageModel();
                             MessageModel model = new MessageModel();
-                            model.setConsumerApp("PublicInquiry");
+                            model.setProducerApp(PRODUCERAPP);
+                            model.setConsumeType(CUST_TYPE);
+                            model.setConsumerApp(CONSUMERAPP);
                             model.setContent("发布公共询价信息,邀请您参与报价");
                             model.setContent("发布公共询价信息,邀请您参与报价");
+                            model.setRemark("公共询价消息精准推送");
                             model.setReceiverEnuu(user.getEnuu());
                             model.setReceiverEnuu(user.getEnuu());
                             model.setReceiverUu(u.getUserUU());
                             model.setReceiverUu(u.getUserUU());
                             model.setSenderEnuu(item.getInquiry().getEnUU());
                             model.setSenderEnuu(item.getInquiry().getEnUU());
                             model.setSenderUu(item.getUserUU());
                             model.setSenderUu(item.getUserUU());
-                            HttpUtil.doPost("http://192.168.253.131:8080", FlexJsonUtils.toJson(model));
+                            model.setSmsType(SMS_TYPE);
+                            model.setMailTemplate(MAIL_TEMP_ID);
+                            model.setSmTemplate(SMS_TEMP_ID);
+                            models.add(model);
+                        }
+                        if (!CollectionUtils.isEmpty(models)) {
+                            sendMessage(models);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -159,12 +199,22 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 e.printStackTrace();
                 e.printStackTrace();
             }
             }
         }
         }
+    }
 
 
+    /**
+     * 发送消息推送
+     *
+     * @param models 封装的消息信息
+     */
+    private void sendMessage(final List<MessageModel> models) {
         ThreadUtils.task(new Runnable() {
         ThreadUtils.task(new Runnable() {
-
             @Override
             @Override
             public void run() {
             public void run() {
-
+                try {
+                    HttpUtil.doPost("http://192.168.253.131:8080", FlexJsonUtils.toJsonDeep(models));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
             }
         }).run();
         }).run();
     }
     }