package com.doumee.core.wx; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.DateUtil; import com.doumee.dao.system.model.SystemUser; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2022/12/7 17:27 */ @Service @Slf4j public class SendWxMessage { private static String programUrl = "packagesMine/meetingDetails/meetingDetails?id="; @Autowired private SystemDictDataBiz systemDictDataBiz; // /** // * 会议开始通知 // * @param systemUser 用户 // * @param bookings 会议信息 // * @param rooms 会议室信息 // */ // public void bookingsStart(SystemUser systemUser, Bookings bookings, Rooms rooms){ // RestTemplate restTemplate = new RestTemplate(); // String accessToken = systemDictDataBiz.queryCodeById(106); // log.info("微信小程序 会议开始订阅消息发送日志 -> accessToken:{}",accessToken); // //这里简单起见我们每次都获取最新的access_token(时间开发中,应该在access_token快过期时再重新获取) // String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; // //拼接推送的模版 // WxMsgVO wxMsgVo = new WxMsgVO(); // //用户的openid(要发送给那个用户) // wxMsgVo.setTouser(systemUser.getOpenid()); // //订阅消息模板id // wxMsgVo.setTemplate_id("di_lWUtlqvWAo7aWKZCH8Kzs1Cv2z3H6fOkKI4RwJzg"); // Map m = new HashMap<>(4); // //会议主题 // m.put("thing1", new TemplateData(bookings.getName())); // //会议地点 // m.put("thing2", new TemplateData(rooms.getName())); // //时间 // m.put("thing3", new TemplateData(DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd"))); // //主持人 // m.put("name4", new TemplateData(systemUser.getRealname())); // wxMsgVo.setPage(programUrl +bookings.getId()); // wxMsgVo.setData(m); // ResponseEntity responseEntity = // restTemplate.postForEntity(url, wxMsgVo, String.class); // log.info("微信小程序-> 取消通知订阅消息发送日志:{}",JSONObject.toJSONString(responseEntity)); // } // // /** // * 会议取消通知 // * @param systemUser 用户 // * @param bookings 会议信息 // * @param rooms 会议室信息 // */ // public void bookingsCancel(SystemUser systemUser, Bookings bookings, Rooms rooms){ // RestTemplate restTemplate = new RestTemplate(); // String accessToken = systemDictDataBiz.queryCodeById(106); // log.info("微信小程序 会议开始订阅消息发送日志 -> accessToken:{}",accessToken); // //这里简单起见我们每次都获取最新的access_token(时间开发中,应该在access_token快过期时再重新获取) // String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; // //拼接推送的模版 // WxMsgVO wxMsgVo = new WxMsgVO(); // //用户的openid(要发送给那个用户) // wxMsgVo.setTouser(systemUser.getOpenid()); // //订阅消息模板id // wxMsgVo.setTemplate_id("6A79DG8Fd9CjUDHhxJVv8dWcqww0v9_wwQLr7_ZuNqU"); // Map m = new HashMap<>(4); // //会议名称 // m.put("thing4", new TemplateData(bookings.getName())); // //会议时间 // m.put("time2", new TemplateData(DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd"))); //// m.put("time4", new TemplateData( //// DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd")+ //// " " + DateUtil.getDate(bookings.getStartTime(),"HH:mm")+ //// " 至 " + DateUtil.getDate(bookings.getEndTime(),"HH:mm") ) ); // //会议室 // m.put("thing1", new TemplateData(rooms.getName())); // //备注 // m.put("thing3", new TemplateData(bookings.getRemark())); // wxMsgVo.setPage(programUrl +bookings.getId()); // wxMsgVo.setData(m); // ResponseEntity responseEntity = // restTemplate.postForEntity(url, wxMsgVo, String.class); // log.info("微信小程序->取消通知订阅消息发送日志:{}",JSONObject.toJSONString(responseEntity)); // } // // // /** // * 会议预约成功通知 // * @param systemUser 用户 // * @param bookings 会议信息 // * @param rooms 会议室信息 // */ // public void bookingsReservation(SystemUser systemUser, Bookings bookings, Rooms rooms){ // RestTemplate restTemplate = new RestTemplate(); // String accessToken = systemDictDataBiz.queryCodeById(106); // log.info("微信小程序 会议开始订阅消息发送日志 -> accessToken:{}",accessToken); // // //这里简单起见我们每次都获取最新的access_token(时间开发中,应该在access_token快过期时再重新获取) // String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; // //拼接推送的模版 // WxMsgVO wxMsgVo = new WxMsgVO(); // //用户的openid(要发送给那个用户) // wxMsgVo.setTouser(systemUser.getOpenid()); // //订阅消息模板id // wxMsgVo.setTemplate_id("usZxJqJ2AYPg24ViPMuY2lI-YRjdSD2JvFY3gY5kqh4"); // Map m = new HashMap<>(4); // //会议主题 // m.put("thing3", new TemplateData(bookings.getName())); // //会议时间 // m.put("time1", new TemplateData( // DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd") //// + //// " " + DateUtil.getDate(bookings.getStartTime(),"HH:mm")+ //// " 至 " + DateUtil.getDate(bookings.getEndTime(),"HH:mm") // ) ); // //会议地点 // m.put("thing2", new TemplateData(rooms.getName())); // //发起人 // m.put("thing4", new TemplateData(systemUser.getRealname())); // wxMsgVo.setPage(programUrl +bookings.getId()); // wxMsgVo.setData(m); // ResponseEntity responseEntity = // restTemplate.postForEntity(url, wxMsgVo, String.class); // log.info("微信小程序-> 会议预约成功订阅消息发送日志:{}",JSONObject.toJSONString(responseEntity)); // } // /** // * 获取token // */ // private static String getAccessToken() { // //发送请求获取token // JSONObject token = null; // try { // token = JSONObject.parseObject(HttpsUtil.get(APP_ACCESS_TOKEN_URL,false)); // } catch (Exception e) { // e.printStackTrace(); // } // JSONObject jsonObject = token; // String accessToken = (String) jsonObject.get("access_token"); // Integer expiresIn = (Integer) jsonObject.get("expires_in"); // //创建token对象,并存储 // return new AccessToken(accessToken,String.valueOf(expiresIn)).getAccessToken(); // } }