|
@ -0,0 +1,455 @@
|
|
|
package com.yihu.jw.care.util;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
|
|
|
import com.yihu.jw.entity.base.org.BaseOrgDO;
|
|
|
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
|
|
|
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
|
|
|
import com.yihu.jw.entity.care.common.GetuiClientDO;
|
|
|
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
|
|
|
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
|
|
|
import com.yihu.jw.entity.care.securitymonitoring.SecurityMonitoringOrderDO;
|
|
|
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
|
|
|
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
|
|
|
import com.yihu.jw.org.dao.BaseOrgDao;
|
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
|
import com.yihu.jw.push.dao.GetuiClientDao;
|
|
|
import com.yihu.jw.push.service.GetuiService;
|
|
|
import com.yihu.jw.sms.service.TXYSmsService;
|
|
|
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
|
|
|
import com.yihu.jw.wechat.dao.WxAccessTokenDao;
|
|
|
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
|
|
|
import com.yihu.jw.wechat.service.WxAccessTokenService;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* Created by liub on 2020/12/28.
|
|
|
*/
|
|
|
@Component
|
|
|
public class MessageUtil {
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(MessageUtil.class);
|
|
|
|
|
|
@Autowired
|
|
|
private WxAccessTokenService wxAccessTokenService;
|
|
|
@Value("${hospital.url}")
|
|
|
private String serverUrl;
|
|
|
@Autowired
|
|
|
private WeixinMessagePushUtils weixinMessagePushUtils;
|
|
|
@Autowired
|
|
|
private WxTemplateConfigDao wxTemplateConfigDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
@Autowired
|
|
|
private SystemMessageDao systemMessageDao;
|
|
|
@Autowired
|
|
|
private WxAccessTokenDao wxAccessTokenDao;
|
|
|
@Autowired
|
|
|
private BaseDoctorDao baseDoctorDao;
|
|
|
@Autowired
|
|
|
private BasePatientDao basePatientDao;
|
|
|
@Autowired
|
|
|
private BaseOrgDao orgDao;
|
|
|
@Autowired
|
|
|
private TXYSmsService txySmsService;
|
|
|
@Autowired
|
|
|
private GetuiService getuiService;
|
|
|
@Autowired
|
|
|
private GetuiClientDao getuiClientDao;
|
|
|
|
|
|
/**
|
|
|
* 您好{1}有一条新的在线报名申请,请及时前往APP消息应用进行处理。
|
|
|
* @param orgCode
|
|
|
*/
|
|
|
@Async
|
|
|
public void sendOnlineRegistSms(String orgCode){
|
|
|
BaseOrgDO orgDO = orgDao.findByCode(orgCode);
|
|
|
if(StringUtils.isNotBlank(orgDO.getMobile())){
|
|
|
sendTXYSJson("976005",orgDO.getMobile(),orgDO.getName());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送医生个推推送消息
|
|
|
* type 1 安防紧急预警 2紧急呼叫 4im 5生日祝福
|
|
|
*/
|
|
|
public void sendDoctorGetuiMessage(String doctorCode,String type,String url,String title,String body){
|
|
|
try {
|
|
|
List<GetuiClientDO> clientDOS = getuiClientDao.findByUser(doctorCode,2);
|
|
|
|
|
|
JSONObject payload = new JSONObject();
|
|
|
payload.put("title",title);
|
|
|
payload.put("body",body);
|
|
|
payload.put("url",url);
|
|
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("title",title);
|
|
|
json.put("body",body);
|
|
|
json.put("url",url);
|
|
|
// json.put("clickType","url");
|
|
|
json.put("platform",getuiService.cloudCareDoctor);
|
|
|
json.put("payload",payload.toString());
|
|
|
for(GetuiClientDO clientDO:clientDOS){
|
|
|
getuiService.push2(clientDO.getClientId(),Integer.valueOf(clientDO.getClientType()),json);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param wechatId
|
|
|
* @param templateName
|
|
|
* @param scene
|
|
|
* @param openId
|
|
|
* @param first
|
|
|
* @param url 跳转链接
|
|
|
* @param remark
|
|
|
* @param type 模板通知类型
|
|
|
* @param json 用于对跳转连接的修改,
|
|
|
* @param keywords
|
|
|
*/
|
|
|
public boolean putTemplateWxMessage(String wechatId, String templateName, String scene, String openId, String first
|
|
|
,String url, String remark, Integer type,JSONObject json,String ...keywords) {
|
|
|
try {
|
|
|
System.out.println(wechatId);
|
|
|
WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById(wechatId);
|
|
|
|
|
|
if (wxAccessTokenDO == null) {
|
|
|
logger.info("wx_access_token表获取为空,wechatId" + wechatId);
|
|
|
return false;
|
|
|
}
|
|
|
WxTemplateConfigDO templateConfig = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, templateName, scene, 1);
|
|
|
WxTemplateConfigDO newConfig = new WxTemplateConfigDO();
|
|
|
BeanUtils.copyProperties(templateConfig,newConfig);
|
|
|
if (newConfig == null) {
|
|
|
logger.info("微信模板不存在!请确认wechatId:" + wechatId + ",templateName:" + templateName + ",scene:" + scene);
|
|
|
return false;
|
|
|
}
|
|
|
logger.info("微信模板推送前");
|
|
|
if (StringUtils.isNoneBlank(first)){
|
|
|
newConfig.setFirst(first);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(url)){
|
|
|
newConfig.setUrl(url);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(remark)){
|
|
|
newConfig.setRemark(remark);
|
|
|
}
|
|
|
newConfig = setTemPlateUrl(newConfig,type,openId,json);
|
|
|
int keyLength = keywords.length;
|
|
|
if (keyLength >= 1) {
|
|
|
if(StringUtils.isNoneBlank(keywords[0])){
|
|
|
newConfig.setKeyword1(keywords[0]);
|
|
|
}
|
|
|
}
|
|
|
if (keyLength >= 2) {
|
|
|
if(StringUtils.isNoneBlank(keywords[1])){
|
|
|
newConfig.setKeyword2(keywords[1]);
|
|
|
}
|
|
|
}
|
|
|
if (keyLength >= 3) {
|
|
|
if(StringUtils.isNoneBlank(keywords[2])){
|
|
|
newConfig.setKeyword3(keywords[2]);
|
|
|
}
|
|
|
}
|
|
|
if (keyLength >= 4) {
|
|
|
if(StringUtils.isNoneBlank(keywords[3])){
|
|
|
newConfig.setKeyword4(keywords[3]);
|
|
|
}
|
|
|
}
|
|
|
if (keyLength >= 5) {
|
|
|
if(StringUtils.isNoneBlank(keywords[4])){
|
|
|
newConfig.setKeyword5(keywords[4]);
|
|
|
}
|
|
|
}
|
|
|
if (keyLength >= 6) {
|
|
|
if(StringUtils.isNoneBlank(keywords[5])){
|
|
|
newConfig.setKeyword6(keywords[5]);
|
|
|
}
|
|
|
}
|
|
|
if (keyLength >= 7) {
|
|
|
if(StringUtils.isNoneBlank(keywords[6])){
|
|
|
newConfig.setKeyword7(keywords[6]);
|
|
|
}
|
|
|
}
|
|
|
//发起微信消息模板推送
|
|
|
weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(), openId, newConfig);
|
|
|
logger.info("微信模板消息推送后");
|
|
|
return true;
|
|
|
} catch (Exception e) {
|
|
|
logger.info("微信模板推送异常");
|
|
|
e.printStackTrace();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Async
|
|
|
public String sendTXYSJson(String templateCode,String mobile,String ...params){
|
|
|
JSONObject sendObj = new JSONObject();
|
|
|
sendObj.put("templateCode",templateCode);
|
|
|
if (params.length>0){
|
|
|
JSONArray paramArr =JSONArray.parseArray(JSON.toJSONString(params));
|
|
|
sendObj.put("templateParamArr",paramArr);
|
|
|
}else {
|
|
|
JSONArray paramArr =new JSONArray();
|
|
|
sendObj.put("templateParamArr",paramArr);
|
|
|
}
|
|
|
return txySmsService.sendMessageJson(mobile,sendObj);
|
|
|
}
|
|
|
|
|
|
public WxTemplateConfigDO setTemPlateUrl(WxTemplateConfigDO wxTemplateConfigDO,Integer type,String openid,JSONObject json){
|
|
|
String url = "taian-wx/html/";
|
|
|
if (json==null){
|
|
|
return wxTemplateConfigDO;
|
|
|
}
|
|
|
switch (type){
|
|
|
case 1:
|
|
|
//咨询回复
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl() + "?sessionId=" + json.getString("sessionId")
|
|
|
+"&type="+json.getString("consultType")+"&orgCode="+json.getString("orgCode")+"&openid="+openid);
|
|
|
break;
|
|
|
case 2:
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl() + "?openid=" + openid+"&id="+json.getString("id"));
|
|
|
break;
|
|
|
case 3:
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl() + "?openid=" + openid);
|
|
|
break;
|
|
|
case 19:
|
|
|
String urlStr= wxTemplateConfigDO.getUrl();
|
|
|
boolean status = urlStr.contains("openid=");
|
|
|
if(!status){
|
|
|
urlStr=json.getString("url")+"?openid=" + openid;
|
|
|
}
|
|
|
wxTemplateConfigDO.setUrl(url + urlStr );
|
|
|
break;
|
|
|
case 26://生日祝福
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid + "&id=" + json.getString("id"));
|
|
|
break;
|
|
|
case 28://视频请求
|
|
|
//?channelName="'&nickName=''&token=' '
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid + "&channelName=" + json.getString("channelName")
|
|
|
+ "&nickName=" + json.getString("nickName")+ "&token=" + json.getString("token")
|
|
|
+ "&userId=" + json.getString("userId")+ "&userName=" + json.getString("userName")
|
|
|
+ "&sessionId=" + json.getString("sessionId"));
|
|
|
break;
|
|
|
case 30:
|
|
|
//反馈通知 测试 TPbq9m0SAiVfRhXtXq17SDmYIfrJ8Whp2NpSrq9wlfI
|
|
|
if(json.containsKey("consult")) {
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl() + "?openid=" + openid + "&consult=" + json.getString("consult"));
|
|
|
}else if (json.containsKey("id")){
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl() + "?openid=" + openid + "&id=" + json.getString("id"));
|
|
|
}else if(json.containsKey("relationCode")){
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl() + "?openid=" + openid );
|
|
|
}else if(json.containsKey("resultCode")){
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl() + "?resultCode=" + json.getString("resultCode"));
|
|
|
}
|
|
|
break;
|
|
|
case 31:
|
|
|
//上门服务医生评分
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl()+"?openid=" + openid + "&id=" + json.getString("id")+ "&finish=" + json.getString("finish"));
|
|
|
break;
|
|
|
case 32:
|
|
|
String url1 = "wx/common/";
|
|
|
wxTemplateConfigDO.setUrl(url1 + wxTemplateConfigDO.getUrl()+"?openid=" + openid + "&consult=" + json.getString("consult") + "&status=" + json.getInteger("status"));
|
|
|
break;
|
|
|
case 34:
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl() + "?openid=" + openid + "&orderId=" + json.getString("orderId")+ "&authorizeImage=" + json.getString("authorizeImage"));
|
|
|
break;
|
|
|
case 35:
|
|
|
wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl()+json.getString("orderId")+"&isMask=1");
|
|
|
break;
|
|
|
case 36://安防、救助工单详情地址
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&id="+json.getString("id")+"&OrderType="+json.getString("OrderType"));
|
|
|
break;
|
|
|
case 37://居民血压血糖列表详情
|
|
|
wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&patientId="+json.getString("patientId")+"&type="+json.getString("type"));
|
|
|
break;
|
|
|
}
|
|
|
return wxTemplateConfigDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
*/
|
|
|
public SystemMessageDO saveSystemMessage(String messageId, String relationCode, String title, String type, String sender, String senderName, String receiver, String receiverName, String idCard, String msg, String over) {
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
if (StringUtils.isBlank(messageId)) {
|
|
|
messageDO.setId(UUID.randomUUID().toString().replace("-", ""));
|
|
|
}
|
|
|
messageDO.setTitle(title);
|
|
|
messageDO.setType(type);
|
|
|
messageDO.setSender(sender);
|
|
|
messageDO.setSenderName(senderName);
|
|
|
messageDO.setRelationCode(relationCode);
|
|
|
messageDO.setReceiver(receiver);
|
|
|
messageDO.setReceiverName(receiverName);
|
|
|
messageDO.setData(msg);
|
|
|
messageDO.setDel("1");
|
|
|
messageDO.setOver(over);
|
|
|
messageDO.setCreateTime(new Date());
|
|
|
systemMessageDao.save(messageDO);
|
|
|
return messageDO;
|
|
|
}
|
|
|
|
|
|
public void createMessage(String title,String type,String sender,String senderName,String relationCode,String Receiver,String ReceiverName,String idCard,String msg){
|
|
|
SystemMessageDO messageDO = new SystemMessageDO();
|
|
|
messageDO.setTitle(title);
|
|
|
messageDO.setType(type);//401为资质申请审核
|
|
|
messageDO.setSender(sender);
|
|
|
messageDO.setSenderName(senderName);
|
|
|
messageDO.setRelationCode(relationCode);
|
|
|
messageDO.setReceiver(Receiver);
|
|
|
messageDO.setReceiverName(ReceiverName);
|
|
|
messageDO.setOver("1");
|
|
|
messageDO.setData(msg);
|
|
|
messageDO.setDel("1");
|
|
|
messageDO.setCreateTime(new Date());
|
|
|
systemMessageDao.save(messageDO);
|
|
|
}
|
|
|
|
|
|
public void updateLifeCareMessage(LifeCareOrderDO orderDO, String[] type, String toType){
|
|
|
String orderId=orderDO.getId();
|
|
|
List<SystemMessageDO> messages = systemMessageDao.queryByRelationCodeAndTypeIn(orderId,type);
|
|
|
if (toType.equals("patientCancel")){//居民取消 消息列表也应该不显示
|
|
|
if(CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前工单没有系统消息!!orderId:" + orderId);
|
|
|
} else {
|
|
|
messages.forEach(
|
|
|
message -> {
|
|
|
message.setOver("0");
|
|
|
systemMessageDao.save(message);
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void updateSecurityMonitoringOrderMessage(SecurityMonitoringOrderDO orderDO, String[] type, String toType){
|
|
|
String orderId=orderDO.getId();
|
|
|
List<SystemMessageDO> messages = systemMessageDao.queryByRelationCodeAndTypeIn(orderId,type);
|
|
|
if (toType.equals("patientCancel")){//居民取消 消息列表也应该不显示
|
|
|
if(CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前安防工单没有系统消息!!orderId:" + orderId);
|
|
|
} else {
|
|
|
messages.forEach(
|
|
|
message -> {
|
|
|
message.setOver("0");
|
|
|
systemMessageDao.save(message);
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//上门辅导消息更新
|
|
|
public void updateDoorCoachMessage(BaseDoorCoachOrderDO doorServiceOrder, String[] type, String toType, String sender, String receiver){
|
|
|
String orderId=doorServiceOrder.getId();
|
|
|
List<SystemMessageDO> messages = systemMessageDao.queryByRelationCodeAndTypeIn(orderId,type);
|
|
|
if (toType.equals("734")){//医生接单
|
|
|
if (CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前工单没有医生待接单消息!orderId:" + orderId);
|
|
|
}else {
|
|
|
messages.forEach(message->{
|
|
|
if (message.getType().equals("703") ) {
|
|
|
BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getDispatcher());//·
|
|
|
String msg=doorServiceOrder.getDispatcherName() + "接受了服务工单"+ doorServiceOrder.getNumber();
|
|
|
saveSystemMessage(message.getId(),message.getRelationCode(),"医生接单","734",doorServiceOrder.getDoctor(),doorServiceOrder.getDoctorName(),
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),null,msg,message.getOver());
|
|
|
}
|
|
|
else{
|
|
|
message.setOver("0");
|
|
|
systemMessageDao.save(message);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
if (toType.equals("735")) {//医生拒单
|
|
|
if (CollectionUtils.isEmpty(messages)) {
|
|
|
logger.error("当前工单没有医生待接单消息!orderId:" + orderId);
|
|
|
} else {
|
|
|
SystemMessageDO message = messages.get(0);
|
|
|
BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getDispatcher());
|
|
|
String msg=doorServiceOrder.getDoctorName() + "拒绝了服务工单" + doorServiceOrder.getNumber() + ", 请重新派单";
|
|
|
saveSystemMessage(message.getId(),message.getRelationCode(),"医生拒单","735",doorServiceOrder.getDoctor(),doorServiceOrder.getDoctorName(),
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),null,msg,message.getOver());
|
|
|
}
|
|
|
}
|
|
|
if (toType.equals("731")) {//调度员派单(派给本社区医生)
|
|
|
if(CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前工单没有 居民新增预约 消息!!orderId:" + orderId);
|
|
|
}else{
|
|
|
// 设置消息处理完毕
|
|
|
messages.forEach(
|
|
|
message -> {
|
|
|
String title = "调度员派单(派给本社区医生)";
|
|
|
if("system".equals(doorServiceOrder.getUpdateUser())){
|
|
|
title = "系统派单(派给服务医生)";
|
|
|
}
|
|
|
if (message.getType() .equals("730")) {
|
|
|
message.setTitle(title);
|
|
|
String msg = doorServiceOrder.getDispatcherName() + "已将服务工单" + doorServiceOrder.getNumber() + "指派给" + doorServiceOrder.getDoctorName() + "医生";
|
|
|
saveSystemMessage(message.getId(),message.getRelationCode(),title,"731",doorServiceOrder.getUpdateUser(),doorServiceOrder.getUpdateUserName(),
|
|
|
doorServiceOrder.getUpdateUser(),doorServiceOrder.getUpdateUserName(),null,msg,message.getOver());
|
|
|
|
|
|
}else{
|
|
|
message.setOver("0");
|
|
|
systemMessageDao.save(message);
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
if (toType.equals("732")){//调度员拒单
|
|
|
if(CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前工单没有系统消息!!orderId:" + orderId);
|
|
|
} else {
|
|
|
// 432 调度员拒单即取消工单-- 李四拒绝了张三的服务工单12345678
|
|
|
messages.forEach(
|
|
|
message -> {
|
|
|
if (message.getType() .equals("730")) {
|
|
|
String msg=doorServiceOrder.getDispatcherName() + "拒绝了"+ doorServiceOrder.getPatientName() +"的服务工单" + doorServiceOrder.getNumber();
|
|
|
saveSystemMessage(message.getId(),message.getRelationCode(),"调度员拒单","732",doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),
|
|
|
doorServiceOrder.getDispatcher(),doorServiceOrder.getDispatcherName(),null,msg,message.getOver());
|
|
|
}else{
|
|
|
message.setOver("0");
|
|
|
systemMessageDao.save(message);
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
if (toType.equals("patientCancel")){//居民取消 消息列表也应该不显示
|
|
|
if(CollectionUtils.isEmpty(messages)){
|
|
|
logger.error("当前工单没有系统消息!!orderId:" + orderId);
|
|
|
} else {
|
|
|
messages.forEach(
|
|
|
message -> {
|
|
|
message.setOver("0");
|
|
|
systemMessageDao.save(message);
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|