|
@@ -3,9 +3,11 @@ package com.care.common.service.impl;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.care.client.dto.TemplateDataDTO;
|
|
|
import com.care.common.cache.RedisKeyConstant;
|
|
|
import com.care.common.cache.RedisUtil;
|
|
|
import com.care.common.entity.*;
|
|
@@ -19,8 +21,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 事件定单表(CareEventOrder)表服务实现类
|
|
@@ -59,6 +61,10 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
private VoiceSendService voiceSendService;
|
|
|
@Resource
|
|
|
private CareHouseOlderRelService careHouseOlderRelService;
|
|
|
+ @Resource
|
|
|
+ private CareMemberInfoService careMemberInfoService;
|
|
|
+ @Resource
|
|
|
+ private WxNoticSendService wxNoticSendService;
|
|
|
|
|
|
/**
|
|
|
* 统计事件数量
|
|
@@ -150,9 +156,50 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
List<CareEventOrderContactStatus> contacts = addContactToOrderContact(order);
|
|
|
sendSms(order,chambList,contacts);
|
|
|
sendVoice(order,chambList,contacts);
|
|
|
+ sendWXToMember(order);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private void sendWXToMember(CareEventOrder order) {
|
|
|
+ try{
|
|
|
+ if (order.getMemberId() == null || order.getMemberId() == 0L) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
|
+ CareMemberInfo careMemberInfo = this.careMemberInfoService.getById(order.getMemberId());
|
|
|
+ if (careMemberInfo == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotEmpty(careMemberInfo.getOpenId())){
|
|
|
+ Map<String, TemplateDataDTO> data = new HashMap<>();
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ data.put("first", new TemplateDataDTO("新安全事件", "#ff5200"));
|
|
|
+ data.put("keyword1", new TemplateDataDTO(OrderTypeEnum.getCodeToName(order.getOrderType())+"报警", "#000000"));
|
|
|
+ data.put("keyword2", new TemplateDataDTO(simpleDateFormat.format(new Date()), "#000000"));
|
|
|
+ data.put("keyword3", new TemplateDataDTO(house.getAddr(), "#000000"));
|
|
|
+ data.put("remark", new TemplateDataDTO("请尽快联系您的被监护人, 确认现场情况", "#ff5200"));
|
|
|
+ boolean smsResult = this.wxNoticSendService.sendWhenHappen(careMemberInfo.getOpenId(),data);
|
|
|
+ log.info("新事件,发送WX消息模板: openId: " + careMemberInfo.getOpenId() + ", ORDER: " + order.getId() + " 状态: " + smsResult);
|
|
|
+ if (smsResult) {
|
|
|
+ CareEventOrderHandleHis log = new CareEventOrderHandleHis();
|
|
|
+ log.setOrgId(order.getOrgId());
|
|
|
+ log.setStationId(order.getStationId());
|
|
|
+ log.setOrderId(order.getId());
|
|
|
+ log.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
+ log.setLogObjectId(order.getMemberId());
|
|
|
+ log.setLogObjectName(careMemberInfo.getName());
|
|
|
+ log.setLogResult("微信通知");
|
|
|
+ log.setOpUserRole(UserRoleEnum.SYSTEM.getValue());
|
|
|
+ log.setCreateTime(DateUtil.date());
|
|
|
+ log.setRelationTypeDesc("用户");
|
|
|
+ this.careEventOrderHandleHisService.save(log);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("发送微信通知失败:"+ order.getId(),e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
/**
|
|
|
* 发送短信
|
|
|
* @param order
|
|
@@ -416,9 +463,50 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
orderDb.setId(order.getId());
|
|
|
this.saveHisOrder(order, orderDb,true);
|
|
|
cancelEventSMSNotic(order);
|
|
|
+ cancelEventWXNotice(order);
|
|
|
//cancelEventVoiceNotic(order);
|
|
|
return true;
|
|
|
}
|
|
|
+ private void cancelEventWXNotice(CareEventOrder order) {
|
|
|
+ try{
|
|
|
+ if (order.getMemberId() == null || order.getMemberId() == 0L) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
|
+ CareMemberInfo careMemberInfo = this.careMemberInfoService.getById(order.getMemberId());
|
|
|
+ if (careMemberInfo == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotEmpty(careMemberInfo.getOpenId())){
|
|
|
+ Map<String, TemplateDataDTO> data = new HashMap<>();
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ data.put("first", new TemplateDataDTO("安全事件取消", "#ff5200"));
|
|
|
+ data.put("keyword1", new TemplateDataDTO(OrderTypeEnum.getCodeToName(order.getOrderType())+"报警取消", "#000000"));
|
|
|
+ data.put("keyword2", new TemplateDataDTO(simpleDateFormat.format(new Date()), "#000000"));
|
|
|
+ data.put("keyword3", new TemplateDataDTO(house.getAddr(), "#000000"));
|
|
|
+ //data.put("remark", new TemplateDataDTO("请尽快联系您的被监护人, 确认现场情况", "#ff5200"));
|
|
|
+ boolean smsResult = this.wxNoticSendService.sendWhenHappen(careMemberInfo.getOpenId(),data);
|
|
|
+ log.info("取消事件,发送WX消息模板: openId: " + careMemberInfo.getOpenId() + ", ORDER: " + order.getId() + " 状态: " + smsResult);
|
|
|
+ if (smsResult) {
|
|
|
+ CareEventOrderHandleHis log = new CareEventOrderHandleHis();
|
|
|
+ log.setOrgId(order.getOrgId());
|
|
|
+ log.setStationId(order.getStationId());
|
|
|
+ log.setOrderId(order.getId());
|
|
|
+ log.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
+ log.setLogObjectId(order.getMemberId());
|
|
|
+ log.setLogObjectName(careMemberInfo.getName());
|
|
|
+ log.setLogResult("事件取消微信通知");
|
|
|
+ log.setOpUserRole(UserRoleEnum.SYSTEM.getValue());
|
|
|
+ log.setCreateTime(DateUtil.date());
|
|
|
+ log.setRelationTypeDesc("用户");
|
|
|
+ this.careEventOrderHandleHisService.save(log);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("发送取消微信通知失败:"+ order.getId(),e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
/**
|
|
|
* 取消事件,短信通知
|
|
|
* @param order
|