|
@@ -16,6 +16,7 @@ import com.care.common.mapper.CareEventOrderMapper;
|
|
|
import com.care.common.service.*;
|
|
|
import com.care.common.vo.MySendStatus;
|
|
|
import com.care.common.vo.order.EventStaVO;
|
|
|
+import com.care.common.vo.order.OrderContactorVO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.compress.utils.Lists;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -155,12 +156,68 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
this.careEventOrderHandleHisService.save(his);
|
|
|
List<CareEventOrderChamb> chambList = addChamberlainToOrder(order);
|
|
|
List<CareEventOrderContactStatus> contacts = addContactToOrderContact(order);
|
|
|
+
|
|
|
sendSms(order,chambList,contacts);
|
|
|
sendVoice(order,chambList,contacts);
|
|
|
sendWXToMember(order);
|
|
|
+ sendXiaoxiToContacts(order,contacts);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private void sendXiaoxiToChamb(){
|
|
|
+
|
|
|
+ }
|
|
|
+ private void sendXiaoxiToContacts(CareEventOrder order,List<CareEventOrderContactStatus> contacts){
|
|
|
+ if (CollUtil.isEmpty(contacts)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Object switchSms = redisUtil.get(RedisKeyConstant.SWITCH_SMS);
|
|
|
+ if (switchSms != null) {
|
|
|
+ }
|
|
|
+ //发送微信通知消息
|
|
|
+ sendWXToContacts(order,contacts);
|
|
|
+ }
|
|
|
+ private void sendWXToContacts(CareEventOrder order,List<CareEventOrderContactStatus> contacts){
|
|
|
+ try{
|
|
|
+ for(CareEventOrderContactStatus orderContactorVO : contacts) {
|
|
|
+ CareHouseContact careHouseContact = this.careHouseContactService.getById(orderContactorVO.getContactId());
|
|
|
+ if (careHouseContact == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotEmpty(careHouseContact.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(order.getCreateTime()), "#000000"));
|
|
|
+ data.put("keyword3", new TemplateDataDTO(order.getHouseName(), "#000000"));
|
|
|
+ data.put("remark", new TemplateDataDTO("请尽快联系您的被监护人, 确认现场情况", "#ff5200"));
|
|
|
+ boolean smsResult = this.wxNoticSendService.sendByWxGZHOpenId(careHouseContact.getOpenId(),data);
|
|
|
+ log.info("新事件,给联系人发送WX消息模板: openId: " + careHouseContact.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.WX.getValue());
|
|
|
+ log.setLogObjectId(orderContactorVO.getContactId());
|
|
|
+ String name = careHouseContact.getContactName();
|
|
|
+ if (StrUtil.isNotEmpty(careHouseContact.getContactName())){
|
|
|
+ name = careHouseContact.getContactPhone();
|
|
|
+ }
|
|
|
+ log.setLogObjectName(name);
|
|
|
+ log.setLogResult("微信通知");
|
|
|
+ log.setOpUserRole(UserRoleEnum.SYSTEM.getValue());
|
|
|
+ log.setCreateTime(DateUtil.date());
|
|
|
+ log.setRelationTypeDesc(StrUtil.isEmpty(orderContactorVO.getRelationTypeDesc())?"联系人":orderContactorVO.getRelationTypeDesc());
|
|
|
+ this.careEventOrderHandleHisService.save(log);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("新事件,给联系人发送微信消息失败:工单ID:{}",order.getId(),e);
|
|
|
+ }
|
|
|
+ }
|
|
|
private void sendWXToMember(CareEventOrder order) {
|
|
|
try{
|
|
|
if (order.getMemberId() == null || order.getMemberId() == 0L) {
|
|
@@ -179,8 +236,8 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
data.put("keyword2", new TemplateDataDTO(simpleDateFormat.format(order.getCreateTime()), "#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);
|
|
|
+ boolean smsResult = this.wxNoticSendService.sendByWxXCXOpenId(careMemberInfo.getOpenId(),data);
|
|
|
+ log.info("新事件,给用户发送WX消息模板: openId: " + careMemberInfo.getOpenId() + ", ORDER: " + order.getId() + " 状态: " + smsResult);
|
|
|
if (smsResult) {
|
|
|
CareEventOrderHandleHis log = new CareEventOrderHandleHis();
|
|
|
log.setOrgId(order.getOrgId());
|
|
@@ -206,7 +263,6 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
}catch (Exception e){
|
|
|
log.error("发送微信通知失败:"+ order.getId(),e);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
/**
|
|
|
* 发送短信
|
|
@@ -492,9 +548,68 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
this.saveHisOrder(order, orderDb,true);
|
|
|
cancelEventSMSNotice(order);
|
|
|
cancelEventWXNotice(order);
|
|
|
- //cancelEventVoiceNotic(order);
|
|
|
+ cancelEventSendXiaoxiToContact(order);
|
|
|
return true;
|
|
|
}
|
|
|
+ //事件取消时,给联系人发送消息
|
|
|
+
|
|
|
+ private void cancelEventSendXiaoxiToContact(CareEventOrder order){
|
|
|
+ QueryWrapper<CareEventOrderContactStatus> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(CareEventOrderContactStatus::getOrderId, order.getId()).orderByAsc(CareEventOrderContactStatus::getContactLevel);
|
|
|
+ List<CareEventOrderContactStatus> contacts = this.careEventOrderContactStatusService.list(queryWrapper);
|
|
|
+ if (CollUtil.isEmpty(contacts)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Object switchSms = redisUtil.get(RedisKeyConstant.SWITCH_SMS);
|
|
|
+ if (switchSms != null) {
|
|
|
+ }
|
|
|
+ //发送微信通知消息
|
|
|
+ cancelEventsendWXToContacts(order,contacts);
|
|
|
+ }
|
|
|
+ private void cancelEventsendWXToContacts(CareEventOrder order,List<CareEventOrderContactStatus> contacts){
|
|
|
+ try{
|
|
|
+ for(CareEventOrderContactStatus orderContactorVO : contacts) {
|
|
|
+ CareHouseContact careHouseContact = this.careHouseContactService.getById(orderContactorVO.getContactId());
|
|
|
+ if (careHouseContact == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotEmpty(careHouseContact.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(order.getHouseName(), "#000000"));
|
|
|
+ //data.put("remark", new TemplateDataDTO("请尽快联系您的被监护人, 确认现场情况", "#ff5200"));
|
|
|
+ boolean smsResult = this.wxNoticSendService.sendByWxGZHOpenId(careHouseContact.getOpenId(),data);
|
|
|
+ log.info("取消事件,给用户发送WX消息模板: openId: " + careHouseContact.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.WX.getValue());
|
|
|
+ log.setLogObjectId(order.getMemberId());
|
|
|
+ String name = careHouseContact.getContactName();
|
|
|
+ if (StrUtil.isNotEmpty(careHouseContact.getContactName())) {
|
|
|
+ name = careHouseContact.getContactPhone();
|
|
|
+ }
|
|
|
+
|
|
|
+ log.setLogObjectName(name);
|
|
|
+ log.setLogResult("事件取消微信通知");
|
|
|
+ log.setOpUserRole(UserRoleEnum.SYSTEM.getValue());
|
|
|
+ log.setCreateTime(DateUtil.date());
|
|
|
+ log.setRelationTypeDesc(StrUtil.isEmpty(orderContactorVO.getRelationTypeDesc()) ? "联系人" : orderContactorVO.getRelationTypeDesc());
|
|
|
+ this.careEventOrderHandleHisService.save(log);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("取消事件,给用户发送WX消息模板:工单ID:{}",order.getId(),e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
private void cancelEventWXNotice(CareEventOrder order) {
|
|
|
try{
|
|
|
if (order.getMemberId() == null || order.getMemberId() == 0L) {
|
|
@@ -513,7 +628,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
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);
|
|
|
+ boolean smsResult = this.wxNoticSendService.sendByWxXCXOpenId(careMemberInfo.getOpenId(),data);
|
|
|
log.info("取消事件,发送WX消息模板: openId: " + careMemberInfo.getOpenId() + ", ORDER: " + order.getId() + " 状态: " + smsResult);
|
|
|
if (smsResult) {
|
|
|
CareEventOrderHandleHis log = new CareEventOrderHandleHis();
|