Newspaper před 2 roky
rodič
revize
6273f46f5f

+ 5 - 7
huimv-env-common/src/main/java/com/huimv/env/common/config/WeChatMessage.java

@@ -29,13 +29,11 @@ public class WeChatMessage {
     private static  final  String  secret= "w95K45G9-2xGocleqrtGoHwEGF6ocqSu8EbDBxCQSR0";
     private static  final  String  templateId= "f932c54f1cbd427b10218a0d1cfb88bf";
 
-    private String openid;
-
-    public void sendMsg(String deviceCode, Date uploadDate,String location){
+    public void sendMsg(String deviceCode,String warningContent, Date uploadDate,String location,String openId){
         //1:获取token(接口调用凭证)
         String token = queryToken();
         //2:发送订阅消息
-        send(token,deviceCode,uploadDate,location);
+        send(token,warningContent,deviceCode,uploadDate,location,openId);
     }
 
     // 1: 获取 access_token  (2h过期)
@@ -48,12 +46,12 @@ public class WeChatMessage {
         return token;
     }
 
-    public void send(String token,String deviceCode, Date uploadDate,String location){
+    public void send(String token,String warningContent,String deviceCode, Date uploadDate,String location,String openId){
         String msgUrl="https://api.weixin.qq.com/cgi-bin/message/subscribe/send";
         msgUrl = msgUrl + "?access_token=" + token;
         // 设置模板参数
         HashMap<String, Object> paramMap = new HashMap<>();
-        paramMap.put("touser", openid);                 // 接收方
+        paramMap.put("touser", openId);                 // 接收方
         paramMap.put("template_id", templateId);        // 模板id
         paramMap.put("page","pages/self/self");         // 消息中要跳转的页面
         // 设置data 模板内容
@@ -61,7 +59,7 @@ public class WeChatMessage {
         //报警设备
         data.put("thing1", formatParam(deviceCode));
         //报警类型
-        data.put("thing2", formatParam("断电报警"));
+        data.put("thing2", formatParam(warningContent));
         //报警时间
         data.put("thing3", formatParam(uploadDate.toString()));
         //报警地点

+ 2 - 1
huimv-env-common/src/main/java/com/huimv/env/common/entity/SysAccountMultilevel.java

@@ -71,6 +71,7 @@ public class SysAccountMultilevel implements Serializable {
     private Integer type;
 
     private String farmNames;
-
+    private String wechatId;
+    private Integer subscribe;
 
 }

+ 21 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvWarningServiceImpl.java

@@ -1,13 +1,21 @@
 package com.huimv.env.common.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.config.WeChatMessage;
 import com.huimv.env.common.entity.EnvDevice;
 import com.huimv.env.common.entity.EnvDeviceRecentlyData;
 import com.huimv.env.common.entity.EnvWarning;
+import com.huimv.env.common.entity.SysAccountMultilevel;
+import com.huimv.env.common.mapper.EnvDeviceMapper;
 import com.huimv.env.common.mapper.EnvWarningMapper;
+import com.huimv.env.common.mapper.SysAccountMultilevelMapper;
 import com.huimv.env.common.service.IEnvWarningService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.Date;
 
 /**
@@ -21,6 +29,13 @@ import java.util.Date;
 @Service
 public class EnvWarningServiceImpl extends ServiceImpl<EnvWarningMapper, EnvWarning> implements IEnvWarningService {
 
+    @Resource
+    private WeChatMessage weChatMessage;
+    @Resource
+    private SysAccountMultilevelMapper sysAccountMultilevelMapper;
+    @Resource
+    private EnvDeviceMapper envDeviceMapper;
+
     @Override
     public void saveWarning(Date date, EnvDeviceRecentlyData envDeviceRecentlyData, EnvDevice envDevice, String chipId) {
         EnvWarning envWarning = new EnvWarning();
@@ -36,6 +51,7 @@ public class EnvWarningServiceImpl extends ServiceImpl<EnvWarningMapper, EnvWarn
     }
 
     @Override
+    @Transactional
     public void saveWarnings(EnvDevice envDevice, Date uploadDate, String ordeNumber, String actType) {
         EnvWarning envWarning = new EnvWarning();
         envWarning.setDeviceCode(envDevice.getDeviceSortCode());
@@ -45,6 +61,11 @@ public class EnvWarningServiceImpl extends ServiceImpl<EnvWarningMapper, EnvWarn
         envWarning.setWarningContent(getWarning(ordeNumber,actType));
         envWarning.setWarningType(Integer.parseInt(ordeNumber));
         envWarning.setWarningAct(Integer.parseInt(actType));
+        EnvDevice device = envDeviceMapper.selectOne(new QueryWrapper<EnvDevice>().eq("device_sort_code", envDevice.getDeviceSortCode()));
+        SysAccountMultilevel user = sysAccountMultilevelMapper.selectOne(new QueryWrapper<SysAccountMultilevel>().like("farm_ids", envDevice.getFarmId()));
+        user.setSubscribe(0);
+        sysAccountMultilevelMapper.updateById(user);
+        weChatMessage.sendMsg(envDevice.getDeviceSortCode(),getWarning(ordeNumber,actType),uploadDate,device.getBuildLocation(),user.getWechatId());
         this.save(envWarning);
     }