From 946dc71d5679974538986e38f19c48bb2d1bdcae Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 18:23:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-system/src/main/java/com/ruoyi/system/utils/TemplateMessageSendUtil.java | 257 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 253 insertions(+), 4 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/TemplateMessageSendUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/TemplateMessageSendUtil.java index 233a802..2136200 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/utils/TemplateMessageSendUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/TemplateMessageSendUtil.java @@ -7,6 +7,16 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.utils.wx.model.WeixinProperties; import com.ruoyi.system.utils.wx.template.Template; +import com.ruoyi.system.utils.wx.template.wxTemplateAppealResult.WxTemplateAppealResultRequest; +import com.ruoyi.system.utils.wx.template.wxTemplateAppealResult.WxTemplateAppealResultRequestData; +import com.ruoyi.system.utils.wx.template.wxTemplateDayWork.WxTemplateDayWorkRequest; +import com.ruoyi.system.utils.wx.template.wxTemplateDayWork.WxTemplateDayWorkRequestData; +import com.ruoyi.system.utils.wx.template.wxTemplateMakeCopyRequest.WxTemplateMakeCopyRequest; +import com.ruoyi.system.utils.wx.template.wxTemplateMakeCopyRequest.WxTemplateMakeCopyRequestData; +import com.ruoyi.system.utils.wx.template.wxTemplatePendApproval.WxTemplatePendApprovalRequest; +import com.ruoyi.system.utils.wx.template.wxTemplatePendApproval.WxTemplatePendApprovalRequestData; +import com.ruoyi.system.utils.wx.template.wxTemplateProblemRectificationRequest.WxTemplateProblemRectificationRequest; +import com.ruoyi.system.utils.wx.template.wxTemplateProblemRectificationRequest.WxTemplateProblemRectificationRequestData; import com.ruoyi.system.utils.wx.template.wxTemplateTaskReturn.WxTemplateTaskResultRequest; import com.ruoyi.system.utils.wx.template.wxTemplateTaskReturn.WxTemplateTaskResultRequestData; import com.ruoyi.system.utils.wx.tools.WxAppletTools; @@ -25,7 +35,7 @@ @Slf4j @Component public class TemplateMessageSendUtil implements Serializable { - private final static String ACCESSTOKEN_CACHE_KEY = "accessToken:"; + private final static String ACCESS_TOKEN_CACHE_KEY = "accessToken:"; @Autowired private RedisCache redisCache; @Autowired @@ -42,10 +52,10 @@ * @param auditResult 审核结果 * @param auditPerson 审核人 */ - public void wxTemplateTaskResultRequest(String openId,String taskName,String auditResult,String auditPerson) { + public String wxTemplateTaskResultRequest(String openId,String taskName,String auditResult,String auditPerson) { WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); // 1,获取access_token - String accessToken = redisCache.getCacheObject(ACCESSTOKEN_CACHE_KEY); + String accessToken = redisCache.getCacheObject(ACCESS_TOKEN_CACHE_KEY); if (!StringUtils.hasLength(accessToken)) { accessToken = appletTools.getAccessToken(); } @@ -74,9 +84,248 @@ String url = Constants.TEMPLATE_URL.replace("ACCESS_TOKEN", accessToken); String result = HttpUtils.sendPost(url, JsonUtils.toJsonString(wxTemplateTaskResultRequest)); log.info("任务数据提交结果通知模板消息返回数据:{}", result); + return result; } catch (Exception e) { log.error("任务数据提交结果通知失败;"); } + return null; } - + + /** + * 每日工作未完成提醒 + * @param openId 用户openId + * @param incompleteNum 未完成数 + * @param endTime 截止时间 + */ + public String wxTemplateDayWorkRequest(String openId,String incompleteNum,String endTime) { + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + // 1,获取access_token + String accessToken = redisCache.getCacheObject(ACCESS_TOKEN_CACHE_KEY); + if (!StringUtils.hasLength(accessToken)) { + accessToken = appletTools.getAccessToken(); + } + try { + log.info("每日工作未完成提醒通知:------------------------"); + // 创建请求实体 + WxTemplateDayWorkRequest wxTemplateDayWorkRequest = new WxTemplateDayWorkRequest(); + wxTemplateDayWorkRequest.setTouser(openId); + wxTemplateDayWorkRequest.setTemplate_id(weixinProperties.getDayWorkTemplateId()); + // 未完成数 + Template number3 = new Template(); + number3.setValue(incompleteNum); + // 截止时间 + Template time4 = new Template(); + time4.setValue(endTime); + // 发送模板消息参数实体封装 + WxTemplateDayWorkRequestData wxTemplateDayWorkRequestData = new WxTemplateDayWorkRequestData(); + wxTemplateDayWorkRequestData.setNumber3(number3); + wxTemplateDayWorkRequestData.setTime4(time4); + wxTemplateDayWorkRequest.setData(wxTemplateDayWorkRequestData); + // 4,发送消息给用户 + String url = Constants.TEMPLATE_URL.replace("ACCESS_TOKEN", accessToken); + String result = HttpUtils.sendPost(url, JsonUtils.toJsonString(wxTemplateDayWorkRequest)); + log.info("每日工作未完成提醒模板消息返回数据:{}", result); + return result; + } catch (Exception e) { + log.error("每日工作未完成提醒通知失败;"); + } + return null; + } + + /** + * 申诉结果通知 + * @param openId 用户openId + * @param taskName 任务名称 + * @param appealResult 申诉结果 + * @param handleTime 处理时间 + * @param remark 备注 + */ + public String wxTemplateAppealResultRequest(String openId,String taskName,String appealResult,String handleTime,String remark) { + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + // 1,获取access_token + String accessToken = redisCache.getCacheObject(ACCESS_TOKEN_CACHE_KEY); + if (!StringUtils.hasLength(accessToken)) { + accessToken = appletTools.getAccessToken(); + } + try { + log.info("申诉结果提醒通知:------------------------"); + // 创建请求实体 + WxTemplateAppealResultRequest wxTemplateAppealResultRequest = new WxTemplateAppealResultRequest(); + wxTemplateAppealResultRequest.setTouser(openId); + wxTemplateAppealResultRequest.setTemplate_id(weixinProperties.getAppealResultTemplateId()); + // 任务名称 + Template thing4 = new Template(); + thing4.setValue(taskName); + // 申诉结果 + Template phrase1 = new Template(); + phrase1.setValue(appealResult); + // 处理时间 + Template time2 = new Template(); + time2.setValue(handleTime); + // 备注 + Template thing3 = new Template(); + thing3.setValue(remark); + // 发送模板消息参数实体封装 + WxTemplateAppealResultRequestData wxTemplateAppealResultRequestData = new WxTemplateAppealResultRequestData(); + wxTemplateAppealResultRequestData.setThing4(thing4); + wxTemplateAppealResultRequestData.setPhrase1(phrase1); + wxTemplateAppealResultRequestData.setTime2(time2); + wxTemplateAppealResultRequestData.setThing3(thing3); + wxTemplateAppealResultRequest.setData(wxTemplateAppealResultRequestData); + // 4,发送消息给用户 + String url = Constants.TEMPLATE_URL.replace("ACCESS_TOKEN", accessToken); + String result = HttpUtils.sendPost(url, JsonUtils.toJsonString(wxTemplateAppealResultRequest)); + log.info("申诉结果通知模板消息返回数据:{}", result); + return result; + } catch (Exception e) { + log.error("申诉结果通知失败;"); + } + return null; + } + + /** + * 待审核提醒 + * @param openId 用户openId + * @param applicant 申请人 + * @param applicantTime 申请时间 + * @param type 业务类型 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + public String wxTemplatePendApprovalRequest(String openId,String applicant,String applicantTime,String type,String startTime,String endTime) { + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + // 1,获取access_token + String accessToken = redisCache.getCacheObject(ACCESS_TOKEN_CACHE_KEY); + if (!StringUtils.hasLength(accessToken)) { + accessToken = appletTools.getAccessToken(); + } + try { + log.info("待审核提醒通知:------------------------"); + // 创建请求实体 + WxTemplatePendApprovalRequest wxTemplatePendApprovalRequest = new WxTemplatePendApprovalRequest(); + wxTemplatePendApprovalRequest.setTouser(openId); + wxTemplatePendApprovalRequest.setTemplate_id(weixinProperties.getPendApprovalTemplateId()); + // 申请人 + Template thing2 = new Template(); + thing2.setValue(applicant); + // 申请时间 + Template time3 = new Template(); + time3.setValue(applicantTime); + // 业务类型 + Template thing4 = new Template(); + thing4.setValue(type); + // 开始时间 + Template time26 = new Template(); + time26.setValue(startTime); + // 结束时间 + Template time27 = new Template(); + time27.setValue(endTime); + // 发送模板消息参数实体封装 + WxTemplatePendApprovalRequestData wxTemplatePendApprovalRequestData = new WxTemplatePendApprovalRequestData(); + wxTemplatePendApprovalRequestData.setThing4(thing2); + wxTemplatePendApprovalRequestData.setTime3(time3); + wxTemplatePendApprovalRequestData.setThing4(thing4); + wxTemplatePendApprovalRequestData.setTime26(time26); + wxTemplatePendApprovalRequestData.setTime27(time27); + wxTemplatePendApprovalRequest.setData(wxTemplatePendApprovalRequestData); + // 4,发送消息给用户 + String url = Constants.TEMPLATE_URL.replace("ACCESS_TOKEN", accessToken); + String result = HttpUtils.sendPost(url, JsonUtils.toJsonString(wxTemplatePendApprovalRequest)); + log.info("待审核提醒模板消息返回数据:{}", result); + return result; + } catch (Exception e) { + log.error("待审核提醒通知失败;"); + } + return null; + } + /** + * 审核抄送通知 + * @param openId 用户openId + * @param applicant 申请人 + * @param applicantTime 申请时间 + * @param type 申请类型 + * @return + */ + public String wxTemplateMakeCopyRequest(String openId,String applicant,String applicantTime,String type) { + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + // 1,获取access_token + String accessToken = redisCache.getCacheObject(ACCESS_TOKEN_CACHE_KEY); + if (!StringUtils.hasLength(accessToken)) { + accessToken = appletTools.getAccessToken(); + } + try { + log.info("审核抄送通知:------------------------"); + // 创建请求实体 + WxTemplateMakeCopyRequest wxTemplateMakeCopyRequest = new WxTemplateMakeCopyRequest(); + wxTemplateMakeCopyRequest.setTouser(openId); + wxTemplateMakeCopyRequest.setTemplate_id(weixinProperties.getMakeCopyTemplateId()); + // 申请人 + Template thing1 = new Template(); + thing1.setValue(applicant); + // 申请时间 + Template time2 = new Template(); + time2.setValue(applicantTime); + // 申请类型 + Template thing3 = new Template(); + thing3.setValue(type); + // 发送模板消息参数实体封装 + WxTemplateMakeCopyRequestData wxTemplateMakeCopyRequestData = new WxTemplateMakeCopyRequestData(); + wxTemplateMakeCopyRequestData.setThing1(thing1); + wxTemplateMakeCopyRequestData.setTime2(time2); + wxTemplateMakeCopyRequestData.setThing3(thing3); + wxTemplateMakeCopyRequest.setData(wxTemplateMakeCopyRequestData); + // 4,发送消息给用户 + String url = Constants.TEMPLATE_URL.replace("ACCESS_TOKEN", accessToken); + String result = HttpUtils.sendPost(url, JsonUtils.toJsonString(wxTemplateMakeCopyRequest)); + log.info("审核抄送通知模板消息返回数据:{}", result); + return result; + } catch (Exception e) { + log.error("审核抄送通知失败;"); + } + return null; + } + + /** + * 问题整改通知 + * @param openId 用户openId + * @param locationName 点位名称 + * @param remark 备注 + * @return + */ + public String wxTemplateProblemRectificationRequest(String openId,String locationName,String remark) { + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + // 1,获取access_token + String accessToken = redisCache.getCacheObject(ACCESS_TOKEN_CACHE_KEY); + if (!StringUtils.hasLength(accessToken)) { + accessToken = appletTools.getAccessToken(); + } + try { + log.info("问题整改通知:------------------------"); + // 创建请求实体 + WxTemplateProblemRectificationRequest wxTemplateProblemRectificationRequest = new WxTemplateProblemRectificationRequest(); + wxTemplateProblemRectificationRequest.setTouser(openId); + wxTemplateProblemRectificationRequest.setTemplate_id(weixinProperties.getProblemRectificationTemplateId()); + // 点位名称 + Template thing3 = new Template(); + thing3.setValue(locationName); + // 备注 + Template thing2 = new Template(); + thing2.setValue(remark); + // 发送模板消息参数实体封装 + WxTemplateProblemRectificationRequestData wxTemplateProblemRectificationRequestData = new WxTemplateProblemRectificationRequestData(); + wxTemplateProblemRectificationRequestData.setThing3(thing3); + wxTemplateProblemRectificationRequestData.setThing2(thing2); + wxTemplateProblemRectificationRequest.setData(wxTemplateProblemRectificationRequestData); + // 4,发送消息给用户 + String url = Constants.TEMPLATE_URL.replace("ACCESS_TOKEN", accessToken); + String result = HttpUtils.sendPost(url, JsonUtils.toJsonString(wxTemplateProblemRectificationRequest)); + log.info("问题整改通知模板消息返回数据:{}", result); + return result; + } catch (Exception e) { + log.error("问题整改通知失败;"); + } + return null; + } + } -- Gitblit v1.7.1