Przeglądaj źródła

优化代码 支持小程序打开通知

java110 5 lat temu
rodzic
commit
6f9710b2e9

+ 27 - 0
java110-bean/src/main/java/com/java110/entity/wechat/Miniprogram.java

@@ -0,0 +1,27 @@
+package com.java110.entity.wechat;
+
+import java.io.Serializable;
+
+public class Miniprogram implements Serializable {
+
+    private String appid;
+
+    private String pagepath;
+
+
+    public String getAppid() {
+        return appid;
+    }
+
+    public void setAppid(String appid) {
+        this.appid = appid;
+    }
+
+    public String getPagepath() {
+        return pagepath;
+    }
+
+    public void setPagepath(String pagepath) {
+        this.pagepath = pagepath;
+    }
+}

+ 10 - 0
java110-bean/src/main/java/com/java110/entity/wechat/PropertyFeeTemplateMessage.java

@@ -13,6 +13,8 @@ public class PropertyFeeTemplateMessage {
 //    private String color;//模板内容字体颜色,不填默认为黑色
     private Data data;//模板数据
 
+    private Miniprogram miniprogram;
+
     public String getTouser() {
         return touser;
     }
@@ -46,4 +48,12 @@ public class PropertyFeeTemplateMessage {
     public void setData(Data data) {
         this.data = data;
     }
+
+    public Miniprogram getMiniprogram() {
+        return miniprogram;
+    }
+
+    public void setMiniprogram(Miniprogram miniprogram) {
+        this.miniprogram = miniprogram;
+    }
 }

+ 17 - 2
service-job/src/main/java/com/java110/job/task/wechat/WeChatPushMessageTemplate.java

@@ -14,6 +14,7 @@ import com.java110.dto.smallWechatAttr.SmallWechatAttrDto;
 import com.java110.dto.task.TaskDto;
 import com.java110.entity.wechat.Content;
 import com.java110.entity.wechat.Data;
+import com.java110.entity.wechat.Miniprogram;
 import com.java110.entity.wechat.PropertyFeeTemplateMessage;
 import com.java110.intf.community.INoticeInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
@@ -307,7 +308,14 @@ public class WeChatPushMessageTemplate extends TaskSystemQuartz {
         JSONObject dataObj = paramOutObj.getJSONObject("data");
         JSONArray openids = dataObj.getJSONArray("openid");
         nextOpenid = paramOutObj.getString("next_openid");
-        String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL") + "/#/pages/notice/detail/detail?noticeId=";
+        String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL");
+        Miniprogram miniprogram = null;
+        if (wechatUrl.startsWith("https://") || wechatUrl.startsWith("http://")) {
+
+        } else {
+            miniprogram = new Miniprogram();
+            miniprogram.setAppid(wechatUrl);
+        }
         for (int openIndex = 0; openIndex < openids.size(); openIndex++) {
             String openId = openids.getString(openIndex);
             Data data = new Data();
@@ -320,7 +328,14 @@ public class WeChatPushMessageTemplate extends TaskSystemQuartz {
             data.setKeyword3(new Content(noticeDto.getContext()));
             data.setRemark(new Content("如有疑问请联系相关物业人员"));
             templateMessage.setData(data);
-            templateMessage.setUrl(wechatUrl + noticeDto.getNoticeId());
+            if (!StringUtil.isEmpty(wechatUrl)) {
+                if (miniprogram == null) {
+                    templateMessage.setUrl(wechatUrl + "/#/pages/notice/detail/detail?noticeId=" + noticeDto.getNoticeId());
+                } else {
+                    miniprogram.setPagepath("/pages/notice/detail/detail?noticeId=" + noticeDto.getNoticeId());
+                    templateMessage.setMiniprogram(miniprogram);
+                }
+            }
             logger.info("发送模板消息内容:{}", JSON.toJSONString(templateMessage));
             ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(sendMsgUrl + accessToken, JSON.toJSONString(templateMessage), String.class);
             logger.info("微信模板返回内容:{}", responseEntity);