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