| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | package org.jeecg.modules.message.util;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;import org.jeecg.modules.message.entity.SysMessage;import org.jeecg.modules.message.entity.SysMessageTemplate;import org.jeecg.modules.message.handle.enums.SendMsgStatusEnum;import org.jeecg.modules.message.service.ISysMessageService;import org.jeecg.modules.message.service.ISysMessageTemplateService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.alibaba.fastjson.JSONObject;import java.io.IOException;import java.io.StringWriter;import java.util.Date;import java.util.List;import java.util.Map;/** * 消息生成工具 */@Componentpublic class PushMsgUtil {    @Autowired    private ISysMessageService sysMessageService;    @Autowired    private ISysMessageTemplateService sysMessageTemplateService;    @Autowired    private Configuration freemarkerConfig;    /**     * @param msgType 消息类型 1短信 2邮件 3微信     * @param templateCode    消息模板码     * @param map     消息参数     * @param sentTo  接收消息方     */    public boolean sendMessage(String msgType, String templateCode, Map<String, String> map, String sentTo) {        List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);        SysMessage sysMessage = new SysMessage();        if (sysSmsTemplates.size() > 0) {            SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);            sysMessage.setEsType(msgType);            sysMessage.setEsReceiver(sentTo);            //模板标题            String title = sysSmsTemplate.getTemplateName();            //模板内容            String content = sysSmsTemplate.getTemplateContent();            StringWriter stringWriter = new StringWriter();            Template template = null;            try {                template = new Template("SysMessageTemplate", content, freemarkerConfig);                template.process(map, stringWriter);            } catch (IOException e) {                e.printStackTrace();                return false;            } catch (TemplateException e) {                e.printStackTrace();                return false;            }            content = stringWriter.toString();            sysMessage.setEsTitle(title);            sysMessage.setEsContent(content);            sysMessage.setEsParam(JSONObject.toJSONString(map));            sysMessage.setEsSendTime(new Date());            sysMessage.setEsSendStatus(SendMsgStatusEnum.WAIT.getCode());            sysMessage.setEsSendNum(0);            if(sysMessageService.save(sysMessage)) {				return true;			}        }        return false;    }}
 |