rk
6 小时以前 3b0c9e51e16619e59b58e4ce9870e8f69e89259b
server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
@@ -2,15 +2,19 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.Bookings;
import com.doumee.dao.business.model.SmsEmail;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.awt.print.Book;
import java.util.*;
/**
@@ -70,8 +74,11 @@
     * @param token
     * @param openIds
     */
    public void  sendMeetingBookTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
    public void  sendMeetingBookTemplateNotice(SystemDictDataBiz systemDictDataBiz,Bookings bookings,String tempId, String token, Set<String> openIds){
        if(CollectionUtils.isNotEmpty(openIds)){
            String jumpUrl = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                    Constants.WxUrlParams.MEETING,bookings.getId().toString());
            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
            //整体参数map
            Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -97,6 +104,7 @@
            paramMap.put("data", dataMap);
            for (String openId:openIds) {
                paramMap.clear();
                paramMap.put("url", jumpUrl);
                paramMap.put("template_id", tempId);
                paramMap.put("touser", openId);
                paramMap.put("data", dataMap);
@@ -111,6 +119,113 @@
        }
    }
    public void createBeginWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings, String openId){
        Map<String,Object> map = new HashMap<>();
        //整体参数map
        Map<String, Object> paramMap = new HashMap<String, Object>();
        //消息主题显示相关map
        Map<String, Object> dataMap = new HashMap<String, Object>();
        //会议名称
        Map<String, Object> thing1 = new HashMap<String,Object>();
        thing1.put("value",bookings.getName());
        //会议地点
        Map<String, Object> thing2 = new HashMap<String,Object>();
        thing2.put("value",bookings.getRoomName());
        //会议时间
        Map<String, Object> thing3 = new HashMap<String,Object>();
        thing3.put("value", DateUtil.getFomartDate(bookings.getStartTime(),"yyyy年MM月dd日HH:mm")+"至"+DateUtil.getFomartDate(bookings.getEndTime(),"HH:mm"));
        Integer earlyMin= Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.EARLY_START_WX_NOTICE).getCode());
        Map<String, Object> thing5 = new HashMap<String,Object>();
        thing5.put("value","您所预定的会议室即将在"+earlyMin+"分钟后开始,请准时参加");
        dataMap.put("thing1",thing1);
        dataMap.put("thing2",thing2);
        dataMap.put("thing3",thing3);
        dataMap.put("thing5",thing5);
        paramMap.put("data", dataMap);
        paramMap.put("template_id", "xGFnbHwe8W9sIGlD75XROrbKpzV-6HSRqfRHRfxRR6k");
        paramMap.put("touser", openId);
        paramMap.put("data", dataMap);
        smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
                .eq(SmsEmail::getObjType,Constants.FIVE.toString())
                .eq(SmsEmail::getStatus,Constants.TWO)
                .eq(SmsEmail::getType,Constants.TWO)
                .eq(SmsEmail::getObjId,bookings.getId())
        );
        SmsEmail smsEmail = new SmsEmail();
        smsEmail.setPhone(openId);
        smsEmail.setRemark("等待发送");
        smsEmail.setStatus(Constants.TWO);
        smsEmail.setIsdeleted(Constants.ZERO);
        smsEmail.setType(Constants.TWO);
        smsEmail.setObjType(Constants.FIVE.toString());
        smsEmail.setObjId(bookings.getId());
        smsEmail.setCreateDate(new Date());
        smsEmail.setTitle("会议即将开始提醒");
        smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getStartTime(),-earlyMin),"yyyy-MM-dd HH:mm:ss"));
        smsEmail.setContent(JSONObject.toJSONString(map));
    }
    public void createEndWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings,  String openId){
        Map<String,Object> map = new HashMap<>();
        //整体参数map
        Map<String, Object> paramMap = new HashMap<String, Object>();
        //消息主题显示相关map
        Map<String, Object> dataMap = new HashMap<String, Object>();
        //会议名称
        Map<String, Object> thing1 = new HashMap<String,Object>();
        thing1.put("value",bookings.getName());
        //会议地点
        Map<String, Object> thing6 = new HashMap<String,Object>();
        thing6.put("value",bookings.getRoomName());
        //会议时间
        Map<String, Object> date4 = new HashMap<String,Object>();
        date4.put("value", DateUtil.getFomartDate(bookings.getEndTime(),"yyyy年MM月dd日HH:mm"));
        Map<String, Object> thing7 = new HashMap<String,Object>();
        thing7.put("value","您的会议即将结束,如需继续使用请即使续订");
        dataMap.put("thing1",thing1);
        dataMap.put("thing6",thing6);
        dataMap.put("date4",date4);
        dataMap.put("thing7",thing7);
        paramMap.put("data", dataMap);
        paramMap.put("template_id", "vdIPfwvDCrXOHgQnB6sdE1lGEsJm1oUURfLx6SoLdk0");
        paramMap.put("touser", openId);
        paramMap.put("data", dataMap);
        smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
                .eq(SmsEmail::getObjType,Constants.FIVE.toString())
                .eq(SmsEmail::getStatus,Constants.TWO)
                .eq(SmsEmail::getType,Constants.TWO)
                .eq(SmsEmail::getObjId,bookings.getId())
        );
        SmsEmail smsEmail = new SmsEmail();
        smsEmail.setPhone(openId);
        smsEmail.setRemark("等待发送");
        smsEmail.setStatus(Constants.TWO);
        smsEmail.setIsdeleted(Constants.ZERO);
        smsEmail.setType(Constants.TWO);
        smsEmail.setObjType(Constants.FIVE.toString());
        smsEmail.setObjId(bookings.getId());
        smsEmail.setCreateDate(new Date());
        smsEmail.setTitle("会议即将开始提醒");
        Integer endMin= Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.OVER_NOTICE_WX).getCode());
        smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getEndTime(),-endMin),"yyyy-MM-dd HH:mm:ss"));
        smsEmail.setContent(JSONObject.toJSONString(map));
    }
    /**
     * 会议室取消通知
@@ -119,8 +234,12 @@
     * @param token
     * @param openIds
     */
    public void  sendMeetingBookCancelTemplateNotice(Bookings bookings,String tempId, String token, Set<String> openIds){
    public void  sendMeetingBookCancelTemplateNotice(SystemDictDataBiz systemDictDataBiz,Bookings bookings, String tempId, String token, Set<String> openIds){
        if(CollectionUtils.isNotEmpty(openIds)){
            String jumpUrl = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
                    Constants.WxUrlParams.MEETING,bookings.getId().toString());
            String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
            //整体参数map
            Map<String, Object> paramMap = new HashMap<String, Object>();
@@ -131,7 +250,7 @@
            thing1.put("value",bookings.getName());
            //会议时间
            Map<String, Object> time6 = new HashMap<String,Object>();
            time6.put("value", DateUtil.getDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
            time6.put("value", DateUtil.getFomartDate(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") );
            //会议地点
            Map<String, Object> thing2 = new HashMap<String,Object>();
            thing2.put("value",bookings.getRoomName());
@@ -143,9 +262,10 @@
            dataMap.put("time6",time6);
            dataMap.put("thing2",thing2);
            dataMap.put("thing4",thing4);
            paramMap.put("data", dataMap);
            for (String openId:openIds) {
                paramMap.clear();
                paramMap.put("url", jumpUrl);
                paramMap.put("data", dataMap);
                paramMap.put("template_id", tempId);
                paramMap.put("touser", openId);
                paramMap.put("data", dataMap);