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