| 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<String, TemplateData> 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<String> 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<String, TemplateData> 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<String> 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<String, TemplateData> 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<String> 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(); | 
| //    } | 
|   | 
| } |