From 54beb665319b66742cdec3dffb7e298701d61582 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Tue, 07 Nov 2023 16:45:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into cjl

---
 screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java |    4 
 screen-api/src/main/java/com/moral/api/utils/WechatUtils.java                           |   27 ++++--
 screen-api/src/main/java/com/moral/api/service/UserService.java                         |    4 
 screen-api/src/main/java/com/moral/api/controller/AppUserController.java                |   54 +++++++++---
 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java                |   73 ++++++++++++++++++
 screen-api/src/main/java/com/moral/api/pojo/query/app/AppAllocationPushUserCond.java    |   49 ++++++++++++
 screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java                        |   14 ---
 screen-api/src/main/java/com/moral/api/vo/WxMssVo.java                                  |    6 +
 screen-api/src/main/resources/mapper/DeviceMapper.xml                                   |    2 
 9 files changed, 189 insertions(+), 44 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/AppUserController.java b/screen-api/src/main/java/com/moral/api/controller/AppUserController.java
index 444a080..19b66b0 100644
--- a/screen-api/src/main/java/com/moral/api/controller/AppUserController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/AppUserController.java
@@ -18,9 +18,14 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.validation.Valid;
+
+import com.alibaba.fastjson.JSON;
+import com.moral.api.pojo.query.app.AppAllocationPushUserCond;
 import com.moral.api.service.UserService;
 
-import com.moral.api.utils.HttpClientUtil;
+
+import com.moral.api.utils.WechatUtils;
 import com.moral.api.vo.WxMssVo;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
@@ -65,31 +70,50 @@
         return ResultMessage.ok();
     }
 
-    @GetMapping("pushOneUser")
+    @PostMapping("pushOneUser")
     @ApiOperation(value = "���������������������")
-    public  ResultMessage pushOneUser(String openid){
-        String body = push("oOCWi6yfVapaK25Jnkk7jKSbMLyw");
-        return ResultMessage.ok(body);
+    public  ResultMessage pushOneUser(@Valid @RequestBody AppAllocationPushUserCond appAllocationPushUserCond){
+        userService.pushOneUser(appAllocationPushUserCond);
+//        String body = push("oOCWi6-_hnzSvrMT8HX5D7Dz7tEA");
+        return ResultMessage.ok();
     }
 
 
     public String push(String openid) {
         RestTemplate restTemplate = new RestTemplate();
         //������������������������������������������������access_token������������������������������access_token������������������������������
-        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + HttpClientUtil.getAccessToken();
+        //���������������
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + WechatUtils.getAccessToken();
+//        String url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" + HttpClientUtil.getAccessToken();
+//        String url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=" + HttpClientUtil.getAccessToken();
+//        String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + HttpClientUtil.getAccessToken();
+          //���������������
+//        String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + HttpClientUtil.getAccessToken();
+
+
         //���������������������
         WxMssVo wxMssVo = new WxMssVo();
         wxMssVo.setTouser(openid);//���������openid���������������������������������������������������������������������
-        wxMssVo.setTemplate_id("sClgB85aEG1hgaiXpnJBopo5LJX6r91DUsyikOmUgv8");//������������������id
-        wxMssVo.setPage("pages/index/index");
+        wxMssVo.setTemplate_id("YNqUZ1MgMvwY3G-NENVbcmIBR5dUotSdnwcz96CWrho");//������������������id
+        wxMssVo.setLang("zh_CN");
+        wxMssVo.setMiniprogramState("formal");
+//        wxMssVo.setPage("pages/index/index");
 
-        Map<String, String> m = new HashMap<>(3);
-        m.put("time2", "2023-10-23");
-        m.put("thing3", "������");
-        m.put("thing7", "������������������");
-        m.put("character_string8", "������������������");
-        m.put("phrase10", "������������������");
-        wxMssVo.setData(m);
+        Map<String, Object> m = new HashMap<>();
+        HashMap<String, Object> map1 = new HashMap<>();
+        HashMap<String, Object> map2 = new HashMap<>();
+        HashMap<String, Object> map3 = new HashMap<>();
+        HashMap<String, Object> map4 = new HashMap<>();
+        map1.put("value","���������2");
+        map2.put("value","ouyanglun");
+        map3.put("value","���������1");
+        map4.put("value","2023-10-16");
+        m.put("thing18", map1);
+        m.put("character_string1", map2);
+        m.put("thing2", map3);
+        m.put("date4", map4);
+        wxMssVo.setData(JSON.toJSON(m));
+
         ResponseEntity<String> responseEntity =
                 restTemplate.postForEntity(url, wxMssVo, String.class);
         return responseEntity.getBody();
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/app/AppAllocationPushUserCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/app/AppAllocationPushUserCond.java
new file mode 100644
index 0000000..25e8813
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/app/AppAllocationPushUserCond.java
@@ -0,0 +1,49 @@
+package com.moral.api.pojo.query.app;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="AppAllocationPushUserCond - ������������������", description="AppAllocationPushUserCond - ������������������")
+public class AppAllocationPushUserCond {
+
+    @ApiModelProperty(value = "������������")
+    @NotNull(message = "���������������������������")
+    private Date escalationTime;
+
+
+    @ApiModelProperty(value = "������������id")
+    @NotNull(message = "���������������������������")
+    private Integer unitId;
+
+
+    @ApiModelProperty(value = "������������id")
+    @NotNull(message = "���������������������������")
+    private Integer escalationUnitId;
+
+
+    @ApiModelProperty(value = "������")
+    @NotNull(message = "���������������������")
+    private Integer state;
+    /**
+     *������������
+     */
+    @ApiModelProperty(value = "������������")
+    @NotNull(message = "���������������������")
+    private String allocationNum;
+
+
+}
+
+
diff --git a/screen-api/src/main/java/com/moral/api/service/UserService.java b/screen-api/src/main/java/com/moral/api/service/UserService.java
index 9a27915..80a183c 100644
--- a/screen-api/src/main/java/com/moral/api/service/UserService.java
+++ b/screen-api/src/main/java/com/moral/api/service/UserService.java
@@ -9,7 +9,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import com.moral.api.pojo.bo.UserBO;
-import com.moral.api.pojo.query.AppUserCond;
+import com.moral.api.pojo.query.app.AppAllocationPushUserCond;
 
 /**
  * <p>
@@ -53,4 +53,6 @@
 
     boolean updateUserId(Integer userId);
 
+    void pushOneUser(AppAllocationPushUserCond appAllocationPushUserCond);
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
index c290dc5..40b13b6 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
@@ -39,6 +39,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.text.DecimalFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -292,6 +293,7 @@
 
             }
         }
+        String str = new DecimalFormat("#.######").format(Double.parseDouble(result.get("a21005").toString()));
         QueryFiveDataByMacVO queryFiveDataByMacVO = new QueryFiveDataByMacVO();
         queryFiveDataByMacVO.setName(device.getName());
         queryFiveDataByMacVO.setDataTime(datas.get("dataTime").toString());
@@ -299,7 +301,7 @@
         queryFiveDataByMacVO.setA34002(result.get("a34002").toString());
         queryFiveDataByMacVO.setA21026(result.get("a21026").toString());
         queryFiveDataByMacVO.setA21004(result.get("a21004").toString());
-        queryFiveDataByMacVO.setA21005(result.get("a21005").toString());
+        queryFiveDataByMacVO.setA21005(str);
         queryFiveDataByMacVO.setA05024(result.get("a05024").toString());
         queryFiveDataByMacVO.setA01008(result.get("a01008").toString());
         queryFiveDataByMacVO.setA01007(result.get("a01007").toString());
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index b112317..5c26173 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -11,14 +11,18 @@
 import com.moral.api.entity.*;
 import com.moral.api.mapper.*;
 import com.moral.api.pojo.bo.UserBO;
+import com.moral.api.pojo.enums.AllocationApproveEnum;
 import com.moral.api.pojo.enums.FileTableEnum;
 import com.moral.api.pojo.enums.StateEnum;
 import com.moral.api.pojo.enums.SysDictTypeEnum;
+import com.moral.api.pojo.query.app.AppAllocationPushUserCond;
 import com.moral.api.pojo.vo.file.FileVo;
 import com.moral.api.service.FileTableService;
+import com.moral.api.service.ResponsibilityUnitService;
 import com.moral.api.service.UserService;
 import com.moral.api.utils.OperationLogUtils;
 import com.moral.api.utils.WechatUtils;
+import com.moral.api.vo.WxMssVo;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.*;
@@ -26,9 +30,12 @@
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.ResponseEntity;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
+import org.springframework.web.client.RestTemplate;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -226,6 +233,72 @@
         sysLog(userId+"������������������",user);
         return true;
     }
+
+
+     @Autowired
+     private ResponsibilityUnitService responsibilityUnitService;
+    /**
+     * ���������������
+     * @param appAllocationPushUserCond
+     */
+    @Override
+    @Async
+    public void pushOneUser(AppAllocationPushUserCond appAllocationPushUserCond) {
+
+        ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(appAllocationPushUserCond.getUnitId());
+        Integer areaCode = responsibilityUnit.getAreaCode();
+
+        List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitService.selectAreaUnit(areaCode.toString().length()>6?responsibilityUnit.getParentCode():responsibilityUnit.getAreaCode());
+        //������unitid
+        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(User::getIsDelete,Constants.NOT_DELETE);
+        Integer state = appAllocationPushUserCond.getState();
+        if (state==20){
+            wrapper.eq(User::getUnitId,appAllocationPushUserCond.getUnitId());
+        }else {
+            wrapper.eq(User::getUnitId,ObjectUtils.isEmpty(responsibilityUnits)?0:responsibilityUnits.get(0).getUnitId());
+        }
+
+        List<User> users = userMapper.selectList(wrapper);
+        if (ObjectUtils.isEmpty(users)){
+            return;
+        }
+
+        String dateString = DateUtils.dateToDateString(appAllocationPushUserCond.getEscalationTime(),"MM���dd���");
+        //������������������������������������������������access_token������������������������������access_token������������������������������
+        //���������������
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + WechatUtils.getAccessToken();
+        //������������
+        for (User user : users) {
+            RestTemplate restTemplate = new RestTemplate();
+            //���������������������
+            WxMssVo wxMssVo = new WxMssVo();
+            wxMssVo.setTouser(user.getOpenId());//���������openid���������������������������������������������������������������������
+            wxMssVo.setTemplate_id("YNqUZ1MgMvwY3G-NENVbcmIBR5dUotSdnwcz96CWrho");//������������������id
+            wxMssVo.setLang("zh_CN");
+            wxMssVo.setMiniprogramState("formal");
+//        wxMssVo.setPage("pages/index/index");
+            Map<String, Object> m = new HashMap<>();
+            HashMap<String, Object> map1 = new HashMap<>();
+            HashMap<String, Object> map2 = new HashMap<>();
+            HashMap<String, Object> map3 = new HashMap<>();
+            HashMap<String, Object> map4 = new HashMap<>();
+            map1.put("value",responsibilityUnit.getUnitName()+dateString+"������������");
+            map2.put("value",appAllocationPushUserCond.getAllocationNum());
+            map3.put("value",state==30? AllocationApproveEnum.IN_APPROVAL.name:AllocationApproveEnum.UNDER_RECTIFICATION.name);
+            map4.put("value",DateUtils.dateToDateString(new Date(),"yyyy���MM���dd���"));
+            m.put("thing18", map1);
+            m.put("character_string1", map2);
+            m.put("thing2", map3);
+            m.put("date4", map4);
+            wxMssVo.setData(JSON.toJSON(m));
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMssVo, String.class);
+            String body = responseEntity.getBody();
+            log.info("������:"+body+"������:"+user.getUserName());
+        }
+    }
+
     private void sysLog(String cont,User user){
         //������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
diff --git a/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java b/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java
index 198c652..ac06c8c 100644
--- a/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java
+++ b/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java
@@ -140,18 +140,4 @@
         return resultString;
     }
 
-    public static String getAccessToken() {
-        RestTemplate restTemplate = new RestTemplate();
-        Map<String, String> params = new HashMap<>();
-        params.put("APPID", "wx7c54942dfc87f4d8");  //
-        params.put("APPSECRET", "5873a729c365b65ab42bb5fc82d2ed49");  //
-        ResponseEntity<String> responseEntity = restTemplate.getForEntity(
-                "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}", String.class, params);
-        String body = responseEntity.getBody();
-        JSONObject object = JSON.parseObject(body);
-        String Access_Token = object.getString("access_token");
-        String expires_in = object.getString("expires_in");
-        System.out.println("������������expires_in���" + expires_in);
-        return Access_Token;
-    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java b/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java
index bdafa35..8471c56 100644
--- a/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java
+++ b/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java
@@ -3,16 +3,9 @@
 
 
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
+
 import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestClientException;
+
 import org.springframework.web.client.RestTemplate;
 
 import java.util.HashMap;
@@ -20,7 +13,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.moral.api.service.UserLogService;
+
 
 public class WechatUtils {
 
@@ -46,4 +39,18 @@
 
         return jsonObject;
     }
+
+    public static String getAccessToken() {
+        RestTemplate restTemplate = new RestTemplate();
+        Map<String, String> params = new HashMap<>();
+        params.put("APPID", APPID);  //
+        params.put("APPSECRET", SECRET);  //
+        ResponseEntity<String> responseEntity = restTemplate.getForEntity(
+                "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}", String.class, params);
+        String body = responseEntity.getBody();
+        JSONObject object = JSON.parseObject(body);
+        String Access_Token = object.getString("access_token");
+//        String expires_in = object.getString("expires_in");
+        return Access_Token;
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/vo/WxMssVo.java b/screen-api/src/main/java/com/moral/api/vo/WxMssVo.java
index 706aa87..2520ace 100644
--- a/screen-api/src/main/java/com/moral/api/vo/WxMssVo.java
+++ b/screen-api/src/main/java/com/moral/api/vo/WxMssVo.java
@@ -8,6 +8,8 @@
 public class WxMssVo {
     private String touser;//������openid
     private String template_id;//������������������id
-    private String page = "pages/index/index";//���������������������������
-    private Map<String, String> data;//������������
+//    private String page = "pages/index/index";//���������������������������
+    private Object data;//������������
+    private  String miniprogramState;
+    private  String lang;
 }
diff --git a/screen-api/src/main/resources/mapper/DeviceMapper.xml b/screen-api/src/main/resources/mapper/DeviceMapper.xml
index 238bf81..959ae30 100644
--- a/screen-api/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-api/src/main/resources/mapper/DeviceMapper.xml
@@ -199,7 +199,7 @@
         <if test="organizationId !=null">
             AND organization_id = #{organizationId}
         </if>
-           and mac LIKE "%"#{mac}"%" AND is_delete = 0
+           and mac LIKE "%"#{mac}"%" or `name` like "%"#{mac}"%" AND is_delete = 0
         union
         SELECT sd.id,sd.`name`,sd.mac,sd.special_type FROM special_device  as sd
         WHERE 1=1

--
Gitblit v1.8.0