Procházet zdrojové kódy

短信邮件完善

18792927508 před 2 roky
rodič
revize
3f55cee7e3

+ 7
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsVideoConferenceController.java Zobrazit soubor

@@ -175,6 +175,13 @@ public class MsVideoConferenceController extends BaseController {
175 175
         }
176 176
         return success();
177 177
     }
178
+
179
+    /**
180
+     * 腾讯云短信回调
181
+     * @param body
182
+     * @param request
183
+     * @return
184
+     */
178 185
     @Anonymous
179 186
     @PostMapping("/smsRollBack")
180 187
     public AjaxResult smsRollBack(   @RequestBody String body, HttpServletRequest request) {

+ 9
- 7
ruoyi-admin/src/main/resources/application.yml Zobrazit soubor

@@ -72,7 +72,7 @@ spring:
72 72
     host: 121.40.189.20
73 73
     # 端口,默认为6379
74 74
     port: 6389
75
-    # 数据库索引,测试环境1,正式环境0
75
+    # TODO 数据库索引,测试环境1,正式环境0
76 76
     database: 1
77 77
     # 密码
78 78
     password:
@@ -131,8 +131,8 @@ mybatis:
131 131
   mapperLocations: classpath*:mapper/**/*Mapper.xml
132 132
   # 加载全局的配置文件
133 133
   configLocation: classpath:mybatis/mybatis-config.xml
134
-#  configuration:
135
-#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
134
+  configuration:
135
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
136 136
 # PageHelper分页插件
137 137
 pagehelper:
138 138
   helperDialect: mysql
@@ -166,7 +166,8 @@ elegent:
166 166
     alipay:
167 167
       appId: 2021003141676135
168 168
     callback:
169
-      domain: http://121.40.189.20:9001/
169
+#      TODO
170
+      domain: http://121.40.189.20:7001/
170 171
       watch: true
171 172
       cycle: 10
172 173
 identityAuthentication:
@@ -187,14 +188,15 @@ imConfig:
187 188
   secretId: AKID3xfHgroY4MQHvLXUXMwIQL1UjmbBX1Tv
188 189
   # 腾讯云密钥
189 190
   secretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
190
-# 调解机构代码配置
191
+# TODO 调解机构代码配置
191 192
 organizeConfig:
192 193
   # creditCode
193 194
   creditCode: 910000870060480009
194
-#  引入仲裁系统url配置
195
+#  TODO 引入仲裁系统url配置
195 196
 arbitrateConfig:
196 197
   url: http://121.40.189.20:9001/callArbitrateCaseApplication/generateCaseApplication
197
-# 回调通知
198
+  smsURL: http://121.40.189.20:9001/callArbitrateCaseApplication/sendSms
199
+# TODO 回调通知
198 200
 signSealCallbackConfig:
199 201
   url: http://121.40.189.20:7001/mssignSeal/signSeaalCaseApplicaCallback
200 202
 #  onlyOffice系统url配置

+ 4
- 1
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java Zobrazit soubor

@@ -1,11 +1,13 @@
1 1
 package com.ruoyi.wisdomarbitrate.domain.dto.sendrecord;
2 2
 
3 3
 import com.fasterxml.jackson.annotation.JsonFormat;
4
-import com.ruoyi.common.annotation.Excel;
5 4
 import com.ruoyi.common.core.domain.BaseEntity;
5
+import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach;
6 6
 import lombok.Data;
7 7
 
8 8
 import java.util.Date;
9
+import java.util.List;
10
+
9 11
 @Data
10 12
 public class SendMailRecord   extends BaseEntity {
11 13
     private static final long serialVersionUID = 1L;
@@ -49,6 +51,7 @@ public class SendMailRecord   extends BaseEntity {
49 51
 
50 52
     /** 邮件发件人地址 */
51 53
     private String mailFromAddress;
54
+    private List<MsCaseAttach> caseAttachList;
52 55
 
53 56
 
54 57
     public Integer getSendStatus() {

+ 7
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseAttachMapper.java Zobrazit soubor

@@ -50,4 +50,11 @@ public interface MsCaseAttachMapper {
50 50
      * @return
51 51
      */
52 52
     int countByfileName(@Param("annexName") String fileName,@Param("caseAppliId") Long caseAppliId);
53
+
54
+    /**
55
+     * 根据ids查询
56
+     * @param fileIds
57
+     * @return
58
+     */
59
+    List<MsCaseAttach> selectByIds(@Param("ids") List<String> fileIds);
53 60
 }

+ 1
- 1
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java Zobrazit soubor

@@ -1158,7 +1158,7 @@ public class MsSignSealServiceImpl implements MsSignSealService {
1158 1158
         sendMailRecord.setSendTime(new Date());
1159 1159
         sendMailRecord.setMailSubject("签署后的调解书");
1160 1160
         sendMailRecord.setMailFromAddress(emailFrom);
1161
-        sendMailRecord.setFileIds(fileId != null ? fileId.toString() : null);
1161
+        sendMailRecord.setFileIds(fileId != null ? fileId.toString() : "");
1162 1162
 //        sendMailRecord.setCreateBy(SecurityUtils.getUsername());
1163 1163
         sendMailRecord.setCreateTime(new Date());
1164 1164
         sendMailRecord.setMailFromAddress(emailFrom);

+ 10
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/VideoConferenceServiceImpl.java Zobrazit soubor

@@ -3,6 +3,8 @@ package com.ruoyi.wisdomarbitrate.service.mscase.impl;
3 3
 import cn.hutool.core.collection.CollectionUtil;
4 4
 import cn.hutool.core.io.FileUtil;
5 5
 import cn.hutool.core.util.StrUtil;
6
+import cn.hutool.http.HttpRequest;
7
+import cn.hutool.http.HttpResponse;
6 8
 import cn.hutool.http.HttpUtil;
7 9
 import cn.hutool.json.JSONArray;
8 10
 import cn.hutool.json.JSONUtil;
@@ -108,6 +110,9 @@ public class VideoConferenceServiceImpl implements VideoConferenceService {
108 110
     BeiMingInterfaceService beiMingInterfaceService;
109 111
     @Autowired
110 112
     private SmsRecordMapper smsRecordMapper;
113
+    // 仲裁短信回调
114
+    @Value("${arbitrateConfig.smsURL}")
115
+    private String smsURL;
111 116
 
112 117
     /**
113 118
         视频回调
@@ -173,6 +178,11 @@ public class VideoConferenceServiceImpl implements VideoConferenceService {
173 178
                             smsSendRecord.setReason(description != null ? description.toString() : null);
174 179
                         }
175 180
                         smsRecordMapper.updateStatus(smsSendRecord);
181
+                    }else {
182
+                        // 查找仲裁系统,调用仲裁系统短信接口
183
+                        HttpResponse httpResponse = HttpRequest.post(smsURL)
184
+                                .body(JSONUtil.toJsonStr(jsonObject))
185
+                                .execute();
176 186
                     }
177 187
                 }
178 188
             }

+ 38
- 4
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java Zobrazit soubor

@@ -1,5 +1,8 @@
1 1
 package com.ruoyi.wisdomarbitrate.service.sendrecord.impl;
2 2
 
3
+import cn.hutool.core.collection.CollectionUtil;
4
+import cn.hutool.core.util.ObjectUtil;
5
+import cn.hutool.core.util.StrUtil;
3 6
 import com.ruoyi.common.core.domain.AjaxResult;
4 7
 import com.ruoyi.common.utils.EmailOutUtil;
5 8
 import com.ruoyi.system.domain.entity.shortmessage.MsSendMailHistoryRecord;
@@ -14,10 +17,9 @@ import org.springframework.beans.factory.annotation.Autowired;
14 17
 import org.springframework.stereotype.Service;
15 18
 
16 19
 import java.io.File;
17
-import java.util.Date;
18
-import java.util.HashMap;
19
-import java.util.List;
20
-import java.util.Map;
20
+import java.util.*;
21
+import java.util.function.Function;
22
+import java.util.stream.Collectors;
21 23
 
22 24
 @Service
23 25
 public class SendMailRecordServiceImpl implements ISendMailRecordService {
@@ -28,6 +30,31 @@ public class SendMailRecordServiceImpl implements ISendMailRecordService {
28 30
     @Override
29 31
     public List<SendMailRecord> selectSendMailRecordList(SendMailRecord sendMailRecord) {
30 32
         List<SendMailRecord> records = sendMailRecordMapper.selectSendMailRecord(sendMailRecord);
33
+        if(CollectionUtil.isNotEmpty(records)){
34
+            Map<Long, String> recordmap = records.stream().filter(record -> StrUtil.isNotEmpty(record.getFileIds())).collect(Collectors.toMap(SendMailRecord::getId, SendMailRecord::getFileIds, (k1, k2) -> k2));
35
+            List<String> fileIds = new ArrayList<>(recordmap.values());
36
+            if(CollectionUtil.isNotEmpty(fileIds)){
37
+             List<MsCaseAttach> caseAttaches=   msCaseAttachMapper.selectByIds(fileIds);
38
+             if(CollectionUtil.isNotEmpty(caseAttaches)){
39
+                 Map<Long, MsCaseAttach> attachMap = caseAttaches.stream().collect(Collectors.toMap(MsCaseAttach::getAnnexId, Function.identity(), (k1, k2) -> k2));
40
+                 for (SendMailRecord record : records) {
41
+                     List<MsCaseAttach> msCaseAttaches = new ArrayList<>();
42
+                     if(recordmap.containsKey(record.getId())){
43
+                         String fileIdStr = recordmap.get(record.getId());
44
+                         if(ObjectUtil.isNotNull(fileIdStr) ) {
45
+                             String[] splitFileId = fileIdStr.split(",");
46
+                             for (String fileId : splitFileId) {
47
+                                 if (ObjectUtil.isNotNull(fileId) && attachMap.containsKey(Long.parseLong(fileId))) {
48
+                                     msCaseAttaches.add(attachMap.get(Long.parseLong(fileId)));
49
+                                 }
50
+                             }
51
+                             record.setCaseAttachList(msCaseAttaches);
52
+                         }
53
+                     }
54
+                 }
55
+             }
56
+            }
57
+        }
31 58
         return records;
32 59
     }
33 60
 
@@ -50,6 +77,13 @@ public class SendMailRecordServiceImpl implements ISendMailRecordService {
50 77
                 msSendMailHistoryRecord.setId(null);
51 78
                 msSendMailHistoryRecordMapper.insertSelective(msSendMailHistoryRecord);
52 79
                 sendMailRecord.setUpdateTime(new Date());
80
+                if(CollectionUtil.isNotEmpty(sendMailRecord.getCaseAttachList())){
81
+                    List<Long> fileIdList = sendMailRecord.getCaseAttachList().stream().map(MsCaseAttach::getAnnexId).collect(Collectors.toList());
82
+                    if(CollectionUtil.isNotEmpty(fileIdList)){
83
+                        String fileIdStr = StrUtil.join(",", fileIdList);
84
+                        sendMailRecord.setFileIds(fileIdStr);
85
+                    }
86
+                }
53 87
                 sendMailRecordMapper.updateSendMailRecord(sendMailRecord);
54 88
                 return AjaxResult.success("编辑成功");
55 89
             } else {

+ 8
- 1
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/mscase/MsCaseAttachMapper.xml Zobrazit soubor

@@ -157,5 +157,12 @@
157 157
         </where>
158 158
     </update>
159 159
 
160
-
160
+    <select id="selectByIds" resultMap="CaseAttachResult">
161
+        select *
162
+        from ms_case_attach
163
+        where annex_id in
164
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
165
+            #{id}
166
+        </foreach>
167
+    </select>
161 168
 </mapper>

+ 2
- 2
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml Zobrazit soubor

@@ -21,8 +21,7 @@
21 21
 
22 22
     <select id="selectSendMailRecord" parameterType="com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord"
23 23
             resultMap="SendMailRecordResult">
24
-        SELECT s.id ,s.mail_name ,s.mail_content ,s.mail_address ,s.send_time ,s.case_id ,s.create_time ,s.create_by ,
25
-        s.update_by ,s.update_time , s.send_status ,s.file_ids ,s.mail_subject ,s.mail_from_address ,c.case_num
24
+        SELECT s.* ,c.case_num
26 25
         from ms_send_mail_record s left join ms_case_application c
27 26
         on s.case_id = c.id
28 27
         <where>
@@ -67,6 +66,7 @@
67 66
         <if test="updateTime != null ">,update_time=#{updateTime}</if>
68 67
         <if test="sendTime != null ">,send_time=#{sendTime}</if>
69 68
         <if test="sendStatus != null ">,send_status=#{sendStatus}</if>
69
+        <if test="fileIds != null  and fileIds != ''">,file_ids=#{fileIds}</if>
70 70
         where id = #{id}
71 71
     </update>
72 72
     <select id="querySendMailRecordById" resultMap="SendMailRecordResult">