|  |  |  | 
|---|
|  |  |  | package com.doumee.core.wx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
|---|
|  |  |  | import com.doumee.core.constants.Constants; | 
|---|
|  |  |  | 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.Date; | 
|---|
|  |  |  | import java.util.HashMap; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * Created by IntelliJ IDEA. | 
|---|
|  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class SendWxMessage { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static String programUrl = "packagesMine/meetingDetails/meetingDetails?id="; | 
|---|
|  |  |  | private static String goodsOrderUrl = "pages/settlementDetails/settlementDetails?goodsOrderId="; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public  void  bookingsCancel(String openid, String goodsOrderId, String accessToken, String bikeCode, Date startTime, Date endTime){ | 
|---|
|  |  |  | RestTemplate restTemplate = new RestTemplate(); | 
|---|
|  |  |  | 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(openid); | 
|---|
|  |  |  | //订阅消息模板id | 
|---|
|  |  |  | wxMsgVo.setTemplate_id(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIME_OUT_TEMPID).getCode()); | 
|---|
|  |  |  | Map<String, TemplateData> m = new HashMap<>(4); | 
|---|
|  |  |  | m.put("character_string1", new TemplateData(bikeCode)); | 
|---|
|  |  |  | //解锁时间 | 
|---|
|  |  |  | m.put("date3", new TemplateData(DateUtil.getDate(startTime,"yyyy-MM-dd HH:mm"))); | 
|---|
|  |  |  | //上锁时间 | 
|---|
|  |  |  | m.put("date4", new TemplateData(DateUtil.getDate(endTime,"yyyy-MM-dd HH:mm"))); | 
|---|
|  |  |  | //温馨提醒 | 
|---|
|  |  |  | m.put("thing5", new TemplateData("临时锁车已超过最大时长,已自动还车")); | 
|---|
|  |  |  | wxMsgVo.setPage(goodsOrderUrl + goodsOrderId); | 
|---|
|  |  |  | wxMsgVo.setData(m); | 
|---|
|  |  |  | ResponseEntity<String> responseEntity = | 
|---|
|  |  |  | restTemplate.postForEntity(url, wxMsgVo, String.class); | 
|---|
|  |  |  | log.info("微信小程序->微信消息通知 临时锁车超时:{}", JSONObject.toJSONString(responseEntity)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|