diff --git a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java index 0f8e1a4..bfa8ca9 100644 --- a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java +++ b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/wxnotice/IWxNoticeApi.java @@ -13,4 +13,6 @@ public interface IWxNoticeApi { int unreadCount(String openId, String clientType); void upRead(WxNoticeEntity dto); + + void sendWechartMinMessage(WxNoticeEntity wxNoticeEntity); } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java index 6459914..6ddb6f8 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java @@ -95,7 +95,8 @@ public class NuEmployeesAdvisoryInfoServiceImpl extends ServiceImpl data = new HashMap<>(); @@ -108,9 +109,9 @@ public class NuEmployeesAdvisoryInfoServiceImpl extends ServiceImpl data = new HashMap<>(); @@ -285,9 +286,12 @@ public class OrgApplyInfoServiceImpl extends ServiceImpl data = new HashMap<>(); - data.put("thing5", "详情请咨询客服进行了解"); // 对应模板中的字段 - data.put("phrase6", "审核通过"); - data.put("date2", DateUtils.now()); +// data.put("thing5", "详情请咨询客服进行了解"); // 对应模板中的字段 +// data.put("phrase6", "审核通过"); +// data.put("date2", DateUtils.now()); + data.put("thing2", "详情请咨询客服进行了解"); // 对应模板中的字段 + data.put("phrase1", "审核通过"); + data.put("date3", DateUtils.now()); // 3. 发送模板消息 String resInfo = TemplateMessageSender.sendTemplateMessage( accessToken, openId, templateId, page, data); diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/weixin/controller/WeixinController.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/weixin/controller/WeixinController.java index 91ba8f0..555e429 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/weixin/controller/WeixinController.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/weixin/controller/WeixinController.java @@ -110,26 +110,26 @@ public class WeixinController { System.out.println("-------------------444444444444444----------"+tokenNode); accessToken = tokenNode.get("session_key").asText(); System.out.println("-------------------55555555555555----------"+accessToken); -// String openId = tokenNode.get("openid").asText(); -// System.out.println("-------------------666666666666666----------"+openId); -// -// String userInfoUrl = String.format( -// "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN", -// accessToken, openId -// ); -// System.out.println("-------------------777777777777777----------"+userInfoUrl); -// -// String userInfoResponse = restTemplate.getForObject(userInfoUrl, String.class); -// System.out.println("-------------------888888888888888----------"+userInfoResponse); -// JsonNode userInfoNode = objectMapper.readTree(userInfoResponse); -// System.out.println("-------------------999999999999999----------"+userInfoNode); -// -// model.addAttribute("openid", openId); -// System.out.println("-------------------999999999999999----------"+openId); + String openId = tokenNode.get("openid").asText(); + System.out.println("-------------------666666666666666----------"+openId); + + String userInfoUrl = String.format( + "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN", + accessToken, openId + ); + System.out.println("-------------------777777777777777----------"+userInfoUrl); + + String userInfoResponse = restTemplate.getForObject(userInfoUrl, String.class); + System.out.println("-------------------888888888888888----------"+userInfoResponse); + JsonNode userInfoNode = objectMapper.readTree(userInfoResponse); + System.out.println("-------------------999999999999999----------"+userInfoNode); + + model.addAttribute("openid", openId); + System.out.println("-------------------999999999999999----------"+openId); // model.addAttribute("nickname", userInfoNode.get("nickname").asText()); // model.addAttribute("headimgurl", userInfoNode.get("headimgurl").asText()); -// model.addAttribute("code", code); -// retJson = tokenNode; + model.addAttribute("code", code); + retJson = tokenNode; } catch (IOException e) { e.printStackTrace(); model.addAttribute("openid", "Error parsing JSON response"); diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java index b528b8a..2430a9a 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/wxnotice/service/impl/WxNoticeServiceImpl.java @@ -1,21 +1,32 @@ package com.nu.modules.wxnotice.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nu.entity.WxNoticeEntity; +import com.nu.modules.weixin.utils.TemplateMessageSender; +import com.nu.modules.weixin.utils.WechatMiniProgramUtils; import com.nu.modules.wxnotice.IWxNoticeApi; import com.nu.modules.wxnotice.entity.WxNotice; import com.nu.modules.wxnotice.mapper.WxNoticeMapper; import com.nu.modules.wxnotice.service.IWxNoticeService; import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.api.ISysBaseAPI; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.base.service.BaseCommonService; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Description: 小程序消息通知 @@ -26,6 +37,11 @@ import java.util.List; @Service public class WxNoticeServiceImpl extends ServiceImpl implements IWxNoticeService, IWxNoticeApi { + @Autowired + private BaseCommonService baseCommonService; + + @Autowired + private ISysBaseAPI sysBaseAPI; @Override public void addNotice(WxNoticeEntity dto) { WxNotice wxNotice = new WxNotice(); @@ -68,4 +84,45 @@ public class WxNoticeServiceImpl extends ServiceImpl i wxNotice.setIzRead("0"); baseMapper.update(wxNotice, uw); } + + @Override + public void sendWechartMinMessage(WxNoticeEntity wxNoticeEntity) { + try { + + // 1. 获取access token + String accessToken = WechatMiniProgramUtils.getAccessToken(); + + // 2. 准备模板消息数据 +// String templateId = "CJ6NDNV4mTTyOdYhbksyA_YjDORVemJRmzEVAUZMBis"; + String templateId = "yvvhlRft1CAdtU-dWlCW8U63VnTwRU8w3gR0BUdqcWw"; + String page = "pages/oldmanindex/companyyaoqing"; // 点击消息跳转的页面 + + com.alibaba.fastjson.JSONObject orgInfo = sysBaseAPI.getOrgInfo(wxNoticeEntity.getOrgCode()); + String companyName = orgInfo.getString("departName"); + String openId = wxNoticeEntity.getOpenId(); + Map data = new HashMap<>(); + String tips = "请及时参加邀约哦"; + data.put("thing1", companyName); // 对应模板中的字段 + data.put("thing4", tips); + data.put("date3", DateUtils.now()); + + // 3. 发送模板消息 + String resInfo = TemplateMessageSender.sendTemplateMessage(accessToken, openId, templateId, page, data); + if (com.alibaba.cloud.commons.lang.StringUtils.equals(resInfo, "error")) { + baseCommonService.addLog("机构邀请员工入驻,发送通知失败-发送消息异常112 " + resInfo, CommonConstant.LOG_TYPE_2, 1); + } + JSONObject jsonObject = new JSONObject(resInfo); + boolean success = jsonObject.getInt("errcode") == 0; + if (success) { + + System.out.println("模板消息发送成功"); + baseCommonService.addLog("机构邀请员工入驻,发送通知成功 ", CommonConstant.LOG_TYPE_2, 1); + } else { + baseCommonService.addLog("机构邀请员工入驻,发送通知失败-发送消息异常121 " + resInfo, CommonConstant.LOG_TYPE_2, 1); + System.out.println("模板消息发送失败"); + } + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java index f34e2b8..c8cbc34 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/mq/employees/listener/EmployeesMQListener.java @@ -169,5 +169,7 @@ public class EmployeesMQListener { wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode()); wxNoticeApi.addNotice(wxNoticeEntity); + wxNoticeApi.sendWechartMinMessage(wxNoticeEntity); + } }