Преглед изворни кода

Merge branch 'bgy' of SH-Arbitrate/Mediation-Backend into dev

bgy пре 2 година
родитељ
комит
915b60f43b

+ 15
- 5
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/ShortMessageController.java Прегледај датотеку

@@ -4,12 +4,9 @@ import com.ruoyi.common.annotation.Anonymous;
4 4
 import com.ruoyi.common.core.domain.AjaxResult;
5 5
 import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
6 6
 import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
7
-import com.ruoyi.wisdomarbitrate.service.sendrecord.ShortMessageService;
7
+import com.ruoyi.wisdomarbitrate.service.shortmessage.ShortMessageService;
8 8
 import org.springframework.beans.factory.annotation.Autowired;
9
-import org.springframework.web.bind.annotation.PostMapping;
10
-import org.springframework.web.bind.annotation.RequestBody;
11
-import org.springframework.web.bind.annotation.RequestMapping;
12
-import org.springframework.web.bind.annotation.RestController;
9
+import org.springframework.web.bind.annotation.*;
13 10
 
14 11
 import java.util.Date;
15 12
 
@@ -46,4 +43,17 @@ public class ShortMessageController {
46 43
         }
47 44
         return AjaxResult.error("发送失败");
48 45
     }
46
+
47
+    /**
48
+     * 查询UID好的密钥
49
+     */
50
+    @Anonymous
51
+    @GetMapping("/getMeetingInfo")
52
+    public Object getEncryptInfoByUid(@RequestParam(name = "authId", required = true) String authId) {
53
+        if (authId != null) {
54
+            Object result = shortMessageService.getMeetingInfo(authId);
55
+            return result;
56
+        }
57
+        return AjaxResult.error("查询失败");
58
+    }
49 59
 }

+ 1
- 1
ruoyi-admin/src/main/resources/application.yml Прегледај датотеку

@@ -217,4 +217,4 @@ BMConfig:
217 217
 #    max-tasks-per-process: 100
218 218
 beimingapihost: https://zj.odrcloud.cn
219 219
 beimingapiprefix: /onestop/sync
220
-beimingprivatekey: d7724e72c4be93196a35203e8379ded5
220
+beimingprivatekey: d7724e72c4be93196a35203e8379ded5

+ 12
- 10
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java Прегледај датотеку

@@ -4,11 +4,10 @@ import io.jsonwebtoken.Claims;
4 4
 
5 5
 /**
6 6
  * 通用常量信息
7
- * 
7
+ *
8 8
  * @author ruoyi
9 9
  */
10
-public class Constants
11
-{
10
+public class Constants {
12 11
     /**
13 12
      * UTF-8 字符集
14 13
      */
@@ -71,7 +70,7 @@ public class Constants
71 70
      * 登录失败
72 71
      */
73 72
     public static final String LOGIN_FAIL = "Error";
74
- 
73
+
75 74
     /**
76 75
      * 验证码有效期(分钟)
77 76
      */
@@ -95,6 +94,10 @@ public class Constants
95 94
      * 令牌前缀
96 95
      */
97 96
     public static final String LOGIN_USER_KEY = "login_user_key";
97
+    /**
98
+     * 会议主键Id
99
+     */
100
+    public static final String MEETING_KEY = "meeting_key";
98 101
 
99 102
     /**
100 103
      * 用户ID
@@ -142,23 +145,22 @@ public class Constants
142 145
     public static final String LOOKUP_LDAPS = "ldaps:";
143 146
     public static final String DEFAULT_PASSWORD = "123456";
144 147
     // 英文逗号分隔符
145
-    public static final String SPLIT_COMMA =",";
148
+    public static final String SPLIT_COMMA = ",";
146 149
     // 中文逗号分隔符
147
-    public static final String CN_SPLIT_COMMA =",";
150
+    public static final String CN_SPLIT_COMMA = ",";
148 151
 
149 152
     /**
150 153
      * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
151 154
      */
152
-    public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi" };
155
+    public static final String[] JSON_WHITELIST_STR = {"org.springframework", "com.ruoyi"};
153 156
 
154 157
     /**
155 158
      * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
156 159
      */
157
-    public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };
160
+    public static final String[] JOB_WHITELIST_STR = {"com.ruoyi"};
158 161
 
159 162
     /**
160 163
      * 定时任务违规的字符
161 164
      */
162
-    public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
163
-            "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" };
165
+    public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config"};
164 166
 }

+ 8
- 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/EncryptUtils.java Прегледај датотеку

@@ -112,10 +112,17 @@ public class EncryptUtils {
112 112
   public static void main(String[] args) {
113 113
     String privateKey = "936df5fd9aba3b86adc3c1a1c52dcde1";
114 114
     ObjectNode param = new ObjectMapper().createObjectNode();
115
-    param.put("name", "姓名");
115
+    param.put("userName", "张三");
116
+    param.put("caseNo", "ZC1234125");
117
+    param.put("userId", "124124");
118
+    param.put("roomId", "124125");
119
+    param.put("systemType", "tiaojiexitong");
116 120
     String encryptString = sm4Encrypt(param.toString(), privateKey);
117 121
     System.out.println("加密后的字符串:" + encryptString);
122
+    String uid = UUID.randomUUID().toString().replace("-", "");
123
+    System.out.println("uid:" + uid);
118 124
     System.out.println("解密后的字符串:" + sm4Decrypt(encryptString, privateKey));
125
+
119 126
   }
120 127
 
121 128
 }

+ 60
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/shortmessage/MeetingInfo.java Прегледај датотеку

@@ -0,0 +1,60 @@
1
+package com.ruoyi.system.domain.entity.shortmessage;
2
+
3
+import lombok.AllArgsConstructor;
4
+import lombok.Builder;
5
+import lombok.Data;
6
+import lombok.NoArgsConstructor;
7
+
8
+import javax.persistence.Column;
9
+import javax.persistence.Id;
10
+import javax.persistence.Table;
11
+import java.util.Date;
12
+
13
+@Data
14
+@Builder
15
+@NoArgsConstructor
16
+@AllArgsConstructor
17
+@Table(name = "meeting_info")
18
+public class MeetingInfo {
19
+    /**
20
+     * 主键Id
21
+     */
22
+    @Id
23
+    private String uid;
24
+
25
+    /**
26
+     * 案件Id
27
+     */
28
+    @Column(name = "case_id")
29
+    private Long caseId;
30
+
31
+    /**
32
+     * 用户Id
33
+     */
34
+    @Column(name = "user_id")
35
+    private Long userId;
36
+
37
+    /**
38
+     * 用户名称
39
+     */
40
+    @Column(name = "user_name")
41
+    private String userName;
42
+
43
+    /**
44
+     * 房间Id
45
+     */
46
+    @Column(name = "room_id")
47
+    private String roomId;
48
+
49
+    /**
50
+     * 系统类型
51
+     */
52
+    @Column(name = "system_type")
53
+    private String systemType;
54
+
55
+    /**
56
+     * 创建时间
57
+     */
58
+    @Column(name = "create_time")
59
+    private Date createTime;
60
+}

+ 7
- 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/shortmessage/MeetingInfoMapper.java Прегледај датотеку

@@ -0,0 +1,7 @@
1
+package com.ruoyi.system.mapper.shortmessage;
2
+
3
+import com.ruoyi.system.domain.entity.shortmessage.MeetingInfo;
4
+import tk.mybatis.mapper.common.Mapper;
5
+
6
+public interface MeetingInfoMapper extends Mapper<MeetingInfo> {
7
+}

+ 41
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/shortmessage/MeetingInfoVO.java Прегледај датотеку

@@ -0,0 +1,41 @@
1
+package com.ruoyi.wisdomarbitrate.domain.vo.shortmessage;
2
+
3
+import lombok.AllArgsConstructor;
4
+import lombok.Builder;
5
+import lombok.Data;
6
+import lombok.NoArgsConstructor;
7
+
8
+@Data
9
+@Builder
10
+@NoArgsConstructor
11
+@AllArgsConstructor
12
+public class MeetingInfoVO {
13
+    /**
14
+     * 案件Id
15
+     */
16
+    private Long caseId;
17
+
18
+    /**
19
+     * 用户Id
20
+     */
21
+    private Long userId;
22
+
23
+    /**
24
+     * 用户名称
25
+     */
26
+    private String userName;
27
+
28
+    /**
29
+     * 房间Id
30
+     */
31
+    private String roomId;
32
+
33
+    /**
34
+     * 系统类型
35
+     */
36
+    private String systemType;
37
+    /**
38
+     * 登录认证令牌
39
+     */
40
+    private String token;
41
+}

+ 3
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java Прегледај датотеку

@@ -2277,6 +2277,9 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService {
2277 2277
                 }
2278 2278
                 // 电话号不为空,发送短信,否则发邮箱
2279 2279
                 if (StrUtil.isNotEmpty(sysUser.getPhonenumber())) {
2280
+                    //TODO 发送调解时视频会议链接地址,模板id为2125909
2281
+                    //短信模板:尊敬的{1}用户,您的{2}会议链接https://txroom.xayunmei.com/#/home?{3},请点击链接参加会议,如非本人操作,请忽略本短信
2282
+
2280 2283
                     // todo 短信
2281 2284
 //                    cn.hutool.json.JSONObject jsonObject = SmsUtils.sendSms(application.getId(), templateId, sysUser.getPhonenumber(),
2282 2285
 //                            new String[]{caseApplication.getCaseNum(), application.getHearDate()});

+ 0
- 19
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ShortMessageService.java Прегледај датотеку

@@ -1,19 +0,0 @@
1
-package com.ruoyi.wisdomarbitrate.service.sendrecord;
2
-
3
-import com.ruoyi.common.core.domain.AjaxResult;
4
-import com.ruoyi.system.domain.entity.shortmessage.MsSmsSendHistoryRecord;
5
-import com.ruoyi.system.mapper.shortmessage.MsSmsSendHistoryRecordMapper;
6
-import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
7
-
8
-public interface ShortMessageService {
9
-    /**
10
-     * 新增发送历史记录
11
-     */
12
-    void insertShortMessageHistoryRecord(SmsSendRecord smsSendRecord);
13
-
14
-    /**
15
-     * 重新发送短信
16
-     * @param smsSendRecord
17
-     */
18
-    AjaxResult reSendShortMessage(SmsSendRecord smsSendRecord);
19
-}

+ 0
- 54
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/ShortMessageServiceImpl.java Прегледај датотеку

@@ -1,54 +0,0 @@
1
-package com.ruoyi.wisdomarbitrate.service.sendrecord.impl;
2
-
3
-import cn.hutool.json.JSONObject;
4
-import com.ruoyi.common.core.domain.AjaxResult;
5
-import com.ruoyi.common.enums.SMSStatusEnum;
6
-import com.ruoyi.common.utils.SmsUtils;
7
-import com.ruoyi.system.domain.entity.shortmessage.MsSmsSendHistoryRecord;
8
-import com.ruoyi.system.mapper.shortmessage.MsSmsSendHistoryRecordMapper;
9
-import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
10
-import com.ruoyi.wisdomarbitrate.service.sendrecord.ShortMessageService;
11
-import org.springframework.beans.BeanUtils;
12
-import org.springframework.beans.factory.annotation.Autowired;
13
-import org.springframework.stereotype.Service;
14
-
15
-@Service
16
-public class ShortMessageServiceImpl implements ShortMessageService {
17
-    @Autowired
18
-    MsSmsSendHistoryRecordMapper msSmsSendHistoryRecordMapper;
19
-    /**
20
-     * 新增发送历史记录
21
-     *
22
-     * @param smsSendRecord
23
-     */
24
-    @Override
25
-    public void insertShortMessageHistoryRecord(SmsSendRecord smsSendRecord) {
26
-        if(smsSendRecord!=null){
27
-            MsSmsSendHistoryRecord historyRecord=new MsSmsSendHistoryRecord();
28
-            BeanUtils.copyProperties(smsSendRecord,historyRecord);
29
-            historyRecord.setId(null);
30
-            historyRecord.setParentId(smsSendRecord.getId());
31
-            msSmsSendHistoryRecordMapper.insert(historyRecord);
32
-        }
33
-    }
34
-
35
-    /**
36
-     * 重新发送短信
37
-     *
38
-     * @param smsSendRecord
39
-     */
40
-    @Override
41
-    public AjaxResult reSendShortMessage(SmsSendRecord smsSendRecord) {
42
-        SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
43
-        //TODO 模版id待替换
44
-        request.setTemplateId("1955047");
45
-        request.setPhone(smsSendRecord.getPhone());
46
-        request.setTemplateParamSet(new String[]{ smsSendRecord.getSendContent()});
47
-        JSONObject resultObj = SmsUtils.sendSms(request);
48
-        if(resultObj.get("status")!=null && !resultObj.get("status").equals(SMSStatusEnum.FAIL.getCode())){
49
-            return AjaxResult.success("短信发送成功");
50
-        }else {
51
-            return AjaxResult.warn("短信发送失败");
52
-        }
53
-    }
54
-}

+ 32
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/shortmessage/ShortMessageService.java Прегледај датотеку

@@ -0,0 +1,32 @@
1
+package com.ruoyi.wisdomarbitrate.service.shortmessage;
2
+
3
+import com.ruoyi.common.core.domain.AjaxResult;
4
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
5
+import com.ruoyi.wisdomarbitrate.domain.vo.shortmessage.MeetingInfoVO;
6
+
7
+public interface ShortMessageService {
8
+    /**
9
+     * 新增发送历史记录
10
+     */
11
+    void insertShortMessageHistoryRecord(SmsSendRecord smsSendRecord);
12
+
13
+    /**
14
+     * 重新发送短信
15
+     *
16
+     * @param smsSendRecord
17
+     */
18
+    AjaxResult reSendShortMessage(SmsSendRecord smsSendRecord);
19
+
20
+    /**
21
+     * 根据信息生成加密信息记录
22
+     *
23
+     * @param meetingInfoVO
24
+     * @return
25
+     */
26
+    String buildMeetingInfoRecord(MeetingInfoVO meetingInfoVO);
27
+
28
+    /**
29
+     * 通过UID查询加密信息并解密成明文对象
30
+     */
31
+    Object getMeetingInfo(String uid);
32
+}

+ 117
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/shortmessage/impl/ShortMessageServiceImpl.java Прегледај датотеку

@@ -0,0 +1,117 @@
1
+package com.ruoyi.wisdomarbitrate.service.shortmessage.impl;
2
+
3
+import cn.hutool.json.JSONObject;
4
+import com.ruoyi.common.constant.Constants;
5
+import com.ruoyi.common.core.domain.AjaxResult;
6
+import com.ruoyi.common.enums.SMSStatusEnum;
7
+import com.ruoyi.common.utils.SmsUtils;
8
+import com.ruoyi.system.domain.entity.shortmessage.MeetingInfo;
9
+import com.ruoyi.system.domain.entity.shortmessage.MsSmsSendHistoryRecord;
10
+import com.ruoyi.system.mapper.shortmessage.MeetingInfoMapper;
11
+import com.ruoyi.system.mapper.shortmessage.MsSmsSendHistoryRecordMapper;
12
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
13
+import com.ruoyi.wisdomarbitrate.domain.vo.shortmessage.MeetingInfoVO;
14
+import com.ruoyi.wisdomarbitrate.service.shortmessage.ShortMessageService;
15
+import io.jsonwebtoken.Jwts;
16
+import io.jsonwebtoken.SignatureAlgorithm;
17
+import org.springframework.beans.BeanUtils;
18
+import org.springframework.beans.factory.annotation.Autowired;
19
+import org.springframework.beans.factory.annotation.Value;
20
+import org.springframework.stereotype.Service;
21
+
22
+import java.util.Date;
23
+import java.util.HashMap;
24
+import java.util.Map;
25
+import java.util.UUID;
26
+
27
+@Service
28
+public class ShortMessageServiceImpl implements ShortMessageService {
29
+    @Autowired
30
+    MsSmsSendHistoryRecordMapper msSmsSendHistoryRecordMapper;
31
+    @Autowired
32
+    MeetingInfoMapper meetingInfoMapper;
33
+
34
+    /**
35
+     * 新增发送历史记录
36
+     *
37
+     * @param smsSendRecord
38
+     */
39
+    @Override
40
+    public void insertShortMessageHistoryRecord(SmsSendRecord smsSendRecord) {
41
+        if (smsSendRecord != null) {
42
+            MsSmsSendHistoryRecord historyRecord = new MsSmsSendHistoryRecord();
43
+            BeanUtils.copyProperties(smsSendRecord, historyRecord);
44
+            historyRecord.setId(null);
45
+            historyRecord.setParentId(smsSendRecord.getId());
46
+            msSmsSendHistoryRecordMapper.insert(historyRecord);
47
+        }
48
+    }
49
+
50
+    /**
51
+     * 重新发送短信
52
+     *
53
+     * @param smsSendRecord
54
+     */
55
+    @Override
56
+    public AjaxResult reSendShortMessage(SmsSendRecord smsSendRecord) {
57
+        SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
58
+        //TODO 模版id待替换
59
+        request.setTemplateId("1955047");
60
+        request.setPhone(smsSendRecord.getPhone());
61
+        request.setTemplateParamSet(new String[]{smsSendRecord.getSendContent()});
62
+        JSONObject resultObj = SmsUtils.sendSms(request);
63
+        if (resultObj.get("status") != null && !resultObj.get("status").equals(SMSStatusEnum.FAIL.getCode())) {
64
+            return AjaxResult.success("短信发送成功");
65
+        } else {
66
+            return AjaxResult.warn("短信发送失败");
67
+        }
68
+    }
69
+
70
+    /**
71
+     * 根据信息生成加密信息记录
72
+     *
73
+     * @param meetingInfoVO
74
+     * @return
75
+     */
76
+    @Override
77
+    public String buildMeetingInfoRecord(MeetingInfoVO meetingInfoVO) {
78
+        String uid = UUID.randomUUID().toString().replace("-", "");
79
+        MeetingInfo meetingInfo = MeetingInfo.builder().userId(meetingInfoVO.getUserId()).userName(meetingInfoVO.getUserName()).caseId(meetingInfoVO.getCaseId()).roomId(meetingInfoVO.getRoomId()).systemType(meetingInfoVO.getSystemType()).createTime(new Date()).uid(uid).build();
80
+        meetingInfo.setUid(uid);
81
+        meetingInfoMapper.insertSelective(meetingInfo);
82
+        return uid;
83
+    }
84
+
85
+    /**
86
+     * 通过UID查询加密信息并解密成明文对象
87
+     *
88
+     * @param uid
89
+     */
90
+    @Override
91
+    public Object getMeetingInfo(String uid) {
92
+        MeetingInfoVO result = new MeetingInfoVO();
93
+        MeetingInfo meetingInfo = meetingInfoMapper.selectByPrimaryKey(uid);
94
+        if (meetingInfo != null) {
95
+            BeanUtils.copyProperties(meetingInfo, result);
96
+            if (result != null) {
97
+                Map<String, Object> claims = new HashMap<>();
98
+                claims.put("userName", meetingInfo.getUserName());
99
+                claims.put("userId", meetingInfo.getUserId());
100
+                claims.put(Constants.MEETING_KEY, uid);
101
+                String createToken = createToken(claims);
102
+                result.setToken(createToken);
103
+            }
104
+            return result;
105
+        }
106
+        return null;
107
+    }
108
+
109
+    // 令牌秘钥
110
+    @Value("${token.secret}")
111
+    private String secret;
112
+
113
+    private String createToken(Map<String, Object> claims) {
114
+        String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact();
115
+        return token;
116
+    }
117
+}

+ 16
- 0
ruoyi-system/src/main/resources/com/ruoyi/system/mapper/shortmessage/MeetingInfoMapper.xml Прегледај датотеку

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.ruoyi.system.mapper.shortmessage.MeetingInfoMapper">
4
+  <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.entity.shortmessage.MeetingInfo">
5
+    <!--
6
+      WARNING - @mbg.generated
7
+    -->
8
+    <id column="uid" jdbcType="VARCHAR" property="uid" />
9
+    <result column="case_id" jdbcType="BIGINT" property="caseId" />
10
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
11
+    <result column="user_name" jdbcType="VARCHAR" property="userName" />
12
+    <result column="room_id" jdbcType="VARCHAR" property="roomId" />
13
+    <result column="system_type" jdbcType="VARCHAR" property="systemType" />
14
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
15
+  </resultMap>
16
+</mapper>

+ 1
- 1
tkgenerator/src/main/resources/generator/config.properties Прегледај датотеку

@@ -7,6 +7,6 @@ targetprojectpath=D:/WorkCode/TJ/Mediation-Backend/ruoyi-system
7 7
 #模块名称
8 8
 moduleName=shortmessage
9 9
 #表名
10
-tableName=ms_sms_send_history_record
10
+tableName=encryptend_info
11 11
 #主键
12 12
 premaryId=id