Procházet zdrojové kódy

短信发送记录功能代码提交

jingyuanchao před 1 rokem
rodič
revize
e1b073835b

+ 3 - 1
project_data/sql/0.1.0/soc/soc.sql

@@ -226,6 +226,7 @@ create table sms_send_record
     id                 bigint       not null comment '主键'
         primary key,
     type               varchar(32)  not null comment '提醒类型,见字典',
+    type_text          varchar(64)  null comment '提醒类型名称',
     time               datetime     not null comment '发送时间',
     tran_type          int          not null comment '交易类型',
     org_id             bigint       not null comment '接收机构id',
@@ -235,7 +236,8 @@ create table sms_send_record
     user_phone         varchar(125) not null comment '接收人联系方式',
     content_data       varchar(225) not null comment '短信内容',
     result             varchar(225) null comment '发送结果',
-    result_description varchar(125) null comment '发送结果描述'
+    result_description varchar(125) null comment '发送结果描述',
+    resp_detail        varchar(225) null comment '短信发送返回详情'
 )
     comment '短信发送记录';
 

+ 11 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/sms/domain/SmsSendRecord.java

@@ -31,6 +31,14 @@ public class SmsSendRecord implements Serializable {
     @TableId("id")
     private Long id;
 
+    @ApiModelProperty(value = "提醒类型")
+    @TableField("type")
+    private String type;
+
+    @ApiModelProperty(value = "提醒类型名称")
+    @TableField("type_text")
+    private String typeText;
+
     @ApiModelProperty(value = "发送时间")
     @TableField("time")
     private LocalDateTime time;
@@ -71,5 +79,7 @@ public class SmsSendRecord implements Serializable {
     @TableField("result_description")
     private String resultDescription;
 
-
+    @ApiModelProperty(value = "返回结果详情")
+    @TableField("resp_detail")
+    private String respDetail;
 }

+ 65 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/iot/SmsNotifyType.java

@@ -0,0 +1,65 @@
+package com.xunmei.common.core.enums.iot;
+
+import cn.hutool.core.util.ObjectUtil;
+import io.netty.util.internal.StringUtil;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Optional;
+
+@Getter
+@AllArgsConstructor
+public enum SmsNotifyType {
+
+    EXPIRY_REMINDER("10100", "临期提醒"),
+
+    OVERDUE_REMINDER("10200", "逾期提醒"),
+
+    WATER_DRAINAGE_ALARM("4184", "水浸告警"),
+
+    HUMIDITY_TEMPERATURE_ALARM("4183", "温湿度告警"),
+
+    SMOKE_ALARM("4182", "烟感告警"),
+
+    Infrared_Alarm("4181", "红外告警"),
+
+    GAS_ALARM("41885", "燃气告警"),
+
+    ALARM_OF_THEFT("41881", "盗情告警"),
+
+    DOOR_MAGNET_ALARM("4188", "门磁告警"),
+
+    ;
+
+    private final String code;
+
+
+    private final String desc;
+
+    private static final Map<String, SmsNotifyType> enumMap = new LinkedHashMap<>();
+
+    static {
+        for (SmsNotifyType enumNode : SmsNotifyType.values()) {
+            enumMap.put(enumNode.code, enumNode);
+        }
+    }
+    //根据key找value
+    public static String getDesc(String code) {
+        SmsNotifyType e = enumMap.get(code);
+        return e != null ? e.getDesc() : "";
+    }
+    //根据value找key
+    public static String getCode(String desc) {
+        Optional<SmsNotifyType> optional = Arrays.stream(SmsNotifyType.values()).filter(r -> ObjectUtil.equal(r.getDesc(), desc)).findAny();
+        return optional.isPresent() ? optional.get().getCode() : StringUtil.EMPTY_STRING;
+    }
+
+    public static SmsNotifyType getSensorTypeEnum(String code) {
+        return enumMap.get(code);
+    }
+
+
+}

+ 3 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmDataServiceImpl.java

@@ -16,6 +16,7 @@ import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
+import com.xunmei.common.core.enums.iot.SmsNotifyType;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.mediator.api.enums.AlarmDataTypeEnum;
@@ -142,7 +143,8 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
                     //需要发送短信
                     LocalDateTime time = alarm.getTime();
                     String timeStr = time.format(formatter);
-                    remoteSmsService.sendSmsIot(iotSensor.getOrgId(),alarm.getSourceTypeDes(), alarm.getContent(), timeStr);
+                    String alarmType = SmsNotifyType.getDesc(iotSensor.getDeviceType());
+                    remoteSmsService.sendSmsIot(iotSensor.getOrgId(),alarmType, alarm.getContent(), timeStr);
                 }
             }
             if (ObjectUtil.notEqual(iotSensor.getState(), 1)) {

+ 4 - 7
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java

@@ -10,15 +10,15 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.iot.domain.IotAlarmDefenceArea;
 import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.domain.iot.domain.IotSensorLog;
-import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.utils.DateUtils;
-import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.mediator.api.mapper.IotSensorMapper;
-import com.xunmei.mediator.api.service.*;
+import com.xunmei.mediator.api.service.IotAlarmDataService;
+import com.xunmei.mediator.api.service.IotSensorLogService;
+import com.xunmei.mediator.api.service.IotSensorService;
+import com.xunmei.mediator.api.service.NorthErrorService;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
 import com.xunmei.system.api.RemoteOrgService;
@@ -35,15 +35,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.TransactionSynchronization;
 import org.springframework.transaction.support.TransactionSynchronizationManager;
 
 import javax.annotation.Resource;
-import java.text.ParseException;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;

+ 3 - 0
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/service/SmsService.java

@@ -216,6 +216,9 @@ public class SmsService implements ISmsService {
     }
 
     private AjaxResult getResult(CompositeData repData) {
+        if (repData==null){
+            return AjaxResult.error("【发送短信】发送短信失败,短信发送返回结果为空");
+        }
         boolean result = false;
         try {
             String retStatus = repData.getStruct("SYS_HEAD")

+ 8 - 0
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/service/impl/SmsSendRecordServiceImpl.java

@@ -11,6 +11,8 @@ import com.xunmei.common.core.domain.reminder.dto.ReminderScheduleMsgDto;
 import com.xunmei.common.core.domain.sms.domain.SmsSendRecord;
 import com.xunmei.common.core.domain.sms.dto.SmsSendRecordPageDto;
 import com.xunmei.common.core.domain.sms.vo.SmsSendRecordPageVo;
+import com.xunmei.common.core.enums.iot.SmsNotifyType;
+import com.xunmei.common.core.utils.JacksonUtils;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.sms.mapper.SmsSendRecordMapper;
@@ -87,8 +89,11 @@ public class SmsSendRecordServiceImpl extends ServiceImpl<SmsSendRecordMapper, S
         record.setUserName(sysUser.getName());
         record.setUserPhone(smsInfoVo.getMobile());
         record.setContentData(smsInfoVo.getBak3());
+        record.setType(SmsNotifyType.getCode(smsInfoVo.getRetMsg()));
+        record.setTypeText(smsInfoVo.getRetMsg());
         record.setResult(result.get(AjaxResult.CODE_TAG).equals(String.valueOf(HttpStatus.SUCCESS)) ? "0" : "1");
         record.setResultDescription(result.get(AjaxResult.MSG_TAG).toString());
+        record.setRespDetail(JacksonUtils.toJSONString(result));
         return record;
     }
 
@@ -104,8 +109,11 @@ public class SmsSendRecordServiceImpl extends ServiceImpl<SmsSendRecordMapper, S
         record.setUserName(msgDto.getRecipientName());
         record.setUserPhone(smsInfoVo.getMobile());
         record.setContentData(smsInfoVo.getBak3());
+        record.setType(SmsNotifyType.getCode(smsInfoVo.getRetMsg()));
+        record.setTypeText(smsInfoVo.getRetMsg());
         record.setResult(result.get(AjaxResult.CODE_TAG).equals(String.valueOf(HttpStatus.SUCCESS)) ? "0" : "1");
         record.setResultDescription(result.get(AjaxResult.MSG_TAG).toString());
+        record.setRespDetail(JacksonUtils.toJSONString(result));
         return record;
     }
 }

+ 1 - 1
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -264,7 +264,7 @@
     </delete>
 
     <select id="selectUserByRoleNameAndOrgId" resultType="com.xunmei.system.api.domain.SysUser">
-        select u.id, u.username,u.phone
+        select u.id, u.username,u.phone,u.name
         from sys_user u
                  inner join sys_org o on u.org_id = o.id and u.deleted=0
                  inner join sys_user_role ur on u.id = ur.user_id