瀏覽代碼

Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev

wangqiong123 2 年之前
父節點
當前提交
22ccd19725
共有 62 個文件被更改,包括 2524 次插入1367 次删除
  1. 5
    13
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java
  2. 0
    48
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/SendMailRecordController.java
  3. 49
    0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/SendMailRecordController.java
  4. 143
    0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/ShortMessageController.java
  5. 55
    0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sms/SMSTemplateController.java
  6. 5
    0
      ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
  7. 64
    0
      ruoyi-common/src/main/java/com/ruoyi/common/enums/SMSStatusEnum.java
  8. 97
    81
      ruoyi-common/src/main/java/com/ruoyi/common/utils/EmailOutUtil.java
  9. 0
    78
      ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java
  10. 23
    0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/ThreadUtil.java
  11. 2
    1
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
  12. 7
    2
      ruoyi-system/pom.xml
  13. 0
    45
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SmsSendRecord.java
  14. 15
    2
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java
  15. 78
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SmsSendRecord.java
  16. 32
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsSendHistoryRecordParam.java
  17. 33
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsSendRecordParam.java
  18. 38
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsTemplate.java
  19. 38
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsTemplateParam.java
  20. 60
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/shortmessage/MeetingInfo.java
  21. 111
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/shortmessage/MsSendMailHistoryRecord.java
  22. 98
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/shortmessage/MsSmsSendHistoryRecord.java
  23. 41
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/shortmessage/MeetingInfoVO.java
  24. 34
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/shortmessage/ReSendMessageVO.java
  25. 6
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAttachMapper.java
  26. 0
    15
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SendMailRecordMapper.java
  27. 36
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SendMailRecordMapper.java
  28. 11
    2
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SmsRecordMapper.java
  29. 8
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/shortmessage/MeetingInfoMapper.java
  30. 8
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/shortmessage/MsSendMailHistoryRecordMapper.java
  31. 8
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/shortmessage/MsSmsSendHistoryRecordMapper.java
  32. 22
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsSendHistoryRecordParamMapper.java
  33. 22
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsSendRecordParamMapper.java
  34. 8
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsTemplateMapper.java
  35. 19
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsTemplateParamMapper.java
  36. 2
    7
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java
  37. 0
    15
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ISendMailRecordService.java
  38. 55
    104
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/AdjudicationServiceImpl.java
  39. 4
    24
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java
  40. 80
    335
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
  41. 3
    41
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseArbitrateServiceImpl.java
  42. 6
    35
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseEvidenceServiceImpl.java
  43. 10
    52
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CasePaymentServiceImpl.java
  44. 124
    263
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseZipImportImpl.java
  45. 2
    2
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/DownFileService.java
  46. 4
    5
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/MsSignSealServiceImpl.java
  47. 0
    26
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/SendMailRecordServiceImpl.java
  48. 0
    18
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/VideoServiceImpl.java
  49. 7
    5
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java
  50. 32
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ISendMailRecordService.java
  51. 146
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java
  52. 41
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/shortmessage/ShortMessageService.java
  53. 301
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/shortmessage/impl/ShortMessageServiceImpl.java
  54. 22
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sms/SMSTemplateService.java
  55. 96
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sms/impl/SMSTemplateServiceImpl.java
  56. 4
    4
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/task/CaseZipImportTask.java
  57. 198
    0
      ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SmsUtils.java
  58. 11
    3
      ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAttachMapper.xml
  59. 0
    61
      ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SendMailRecordMapper.xml
  60. 0
    80
      ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SmsRecordMapper.xml
  61. 78
    0
      ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml
  62. 122
    0
      ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SmsRecordMapper.xml

+ 5
- 13
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java 查看文件

@@ -496,17 +496,7 @@ public class CaseApplicationController extends BaseController {
496 496
         return AjaxResult.success(caseApplicationService.updateCaseLockStatus(caseApplication));
497 497
     }
498 498
 
499
-    /**
500
-     * 查询短信发送记录
501
-     * @param smsSendRecord
502
-     * @return
503
-     */
504
-    @PostMapping("/smsRecord")
505
-    public TableDataInfo getSmsSendRecord(@RequestBody SmsSendRecord smsSendRecord){
506
-        startPage();
507
-        List<SmsSendRecord> list = caseApplicationService.getSmsSendRecord(smsSendRecord);
508
-        return getDataTable(list);
509
-    }
499
+
510 500
     /**
511 501
      * 获取userSign
512 502
      * @param userId
@@ -566,12 +556,14 @@ public class CaseApplicationController extends BaseController {
566 556
     /**
567 557
      * 案件压缩包导入
568 558
      * @param file
559
+     * @param applicantType 申请人类型,自然人-1,机构-2
560
+     * @param resType 被申请人类型,自然人-1,机构-2
569 561
      * @return
570 562
      * @throws IOException
571 563
      */
572 564
     @PostMapping("/uploadCaseZipFile")
573
-    public AjaxResult uploadCaseZipFile(@RequestParam("file") MultipartFile file,@RequestParam("templateId")  Long templateId) throws IOException {
574
-        return caseApplicationService.uploadCaseZipFile(file,templateId);
565
+    public AjaxResult uploadCaseZipFile(@RequestParam("file") MultipartFile file,@RequestParam("templateId")  Long templateId,Integer applicantType,Integer resType) throws IOException {
566
+        return caseApplicationService.uploadCaseZipFile(file,templateId,applicantType,resType);
575 567
     }
576 568
 
577 569
     /**

+ 0
- 48
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/SendMailRecordController.java 查看文件

@@ -1,48 +0,0 @@
1
-package com.ruoyi.web.controller.wisdomarbitrate;
2
-
3
-import com.ruoyi.common.core.controller.BaseController;
4
-import com.ruoyi.common.core.page.TableDataInfo;
5
-import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
6
-import com.ruoyi.wisdomarbitrate.domain.SendMailRecord;
7
-import com.ruoyi.wisdomarbitrate.service.ISendMailRecordService;
8
-import org.springframework.beans.factory.annotation.Autowired;
9
-import org.springframework.web.bind.annotation.GetMapping;
10
-import org.springframework.web.bind.annotation.RequestMapping;
11
-import org.springframework.web.bind.annotation.RestController;
12
-
13
-import java.util.List;
14
-
15
-@RestController
16
-@RequestMapping("/sendMailRecord")
17
-public class SendMailRecordController  extends BaseController {
18
-    @Autowired
19
-    private ISendMailRecordService sendMailRecordService;
20
-
21
-    /**
22
-     * 查询发送邮件记录列表
23
-     */
24
-    @GetMapping("/list")
25
-    public TableDataInfo list(SendMailRecord sendMailRecord)
26
-    {
27
-        startPage();
28
-        List<SendMailRecord> list = sendMailRecordService.selectSendMailRecordList(sendMailRecord);
29
-        return getDataTable(list);
30
-    }
31
-
32
-
33
-//    /**
34
-//     * 新增立案数据
35
-//     */
36
-//    @Log(title = "新增立案数据", businessType = BusinessType.INSERT)
37
-//    @PostMapping("/addSendMailRecord")
38
-//    public AjaxResult addSendMailRecord(@Validated @RequestBody SendMailRecord sendMailRecord)
39
-//    {
40
-//
41
-//        return toAjax(sendMailRecordService.addSendMailRecord(sendMailRecord));
42
-//    }
43
-
44
-
45
-
46
-
47
-
48
-}

+ 49
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/SendMailRecordController.java 查看文件

@@ -0,0 +1,49 @@
1
+package com.ruoyi.web.controller.wisdomarbitrate.sendrecord;
2
+
3
+import com.ruoyi.common.core.controller.BaseController;
4
+import com.ruoyi.common.core.domain.AjaxResult;
5
+import com.ruoyi.common.core.page.TableDataInfo;
6
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
7
+import com.ruoyi.wisdomarbitrate.service.sendrecord.ISendMailRecordService;
8
+import org.springframework.beans.factory.annotation.Autowired;
9
+import org.springframework.web.bind.annotation.*;
10
+
11
+import java.util.List;
12
+
13
+@RestController
14
+@RequestMapping("/sendMailRecord")
15
+public class SendMailRecordController extends BaseController {
16
+    @Autowired
17
+    private ISendMailRecordService sendMailRecordService;
18
+
19
+    /**
20
+     * 查询发送邮件记录列表
21
+     */
22
+    @GetMapping("/list")
23
+    public TableDataInfo list(SendMailRecord sendMailRecord) {
24
+        startPage();
25
+        List<SendMailRecord> list = sendMailRecordService.selectSendMailRecordList(sendMailRecord);
26
+        return getDataTable(list);
27
+    }
28
+
29
+    /**
30
+     * 编辑邮件记录
31
+     */
32
+    @PostMapping("/update")
33
+    public AjaxResult update(@RequestBody SendMailRecord sendMailRecord) {
34
+        return sendMailRecordService.updateSendMailRecord(sendMailRecord);
35
+    }
36
+
37
+    /**
38
+     * 重新发送邮件记录
39
+     */
40
+    @PostMapping("/reSendMailRecord")
41
+    public AjaxResult reSendMailRecord(@RequestBody SendMailRecord sendMailRecord) {
42
+        Boolean aBoolean = sendMailRecordService.reSendMailRecord(sendMailRecord);
43
+        if (aBoolean) {
44
+            return AjaxResult.success("发送成功");
45
+        } else {
46
+            return AjaxResult.error("发送失败");
47
+        }
48
+    }
49
+}

+ 143
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/ShortMessageController.java 查看文件

@@ -0,0 +1,143 @@
1
+package com.ruoyi.web.controller.wisdomarbitrate.sendrecord;
2
+
3
+import cn.hutool.core.collection.CollectionUtil;
4
+import com.ruoyi.common.annotation.Anonymous;
5
+import com.ruoyi.common.core.controller.BaseController;
6
+import com.ruoyi.common.core.domain.AjaxResult;
7
+import com.ruoyi.common.core.domain.entity.SysUser;
8
+import com.ruoyi.common.core.domain.model.LoginUser;
9
+import com.ruoyi.common.core.page.TableDataInfo;
10
+import com.ruoyi.framework.web.service.TokenService;
11
+
12
+import com.ruoyi.system.mapper.SysUserMapper;
13
+
14
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
15
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsSendRecordParam;
16
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplateParam;
17
+import com.ruoyi.wisdomarbitrate.domain.shortmessage.MeetingInfo;
18
+import com.ruoyi.wisdomarbitrate.domain.vo.shortmessage.MeetingInfoVO;
19
+import com.ruoyi.wisdomarbitrate.domain.vo.shortmessage.ReSendMessageVO;
20
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
21
+import com.ruoyi.wisdomarbitrate.mapper.shortmessage.MeetingInfoMapper;
22
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsSendHistoryRecordParamMapper;
23
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsSendRecordParamMapper;
24
+import com.ruoyi.wisdomarbitrate.service.shortmessage.ShortMessageService;
25
+import org.springframework.beans.BeanUtils;
26
+import org.springframework.beans.factory.annotation.Autowired;
27
+import org.springframework.web.bind.annotation.*;
28
+import tk.mybatis.mapper.entity.Example;
29
+
30
+import java.util.ArrayList;
31
+import java.util.Date;
32
+import java.util.List;
33
+
34
+@RestController
35
+@RequestMapping("/shortMessage")
36
+public class ShortMessageController extends BaseController {
37
+    @Autowired
38
+    private SmsRecordMapper smsRecordMapper;
39
+    @Autowired
40
+    private ShortMessageService shortMessageService;
41
+    @Autowired
42
+    MsSmsSendRecordParamMapper recordParamMapper;
43
+    @Autowired
44
+    MsSmsSendHistoryRecordParamMapper historyRecordParamMapper;
45
+
46
+    /**
47
+     * 查询短信发送记录
48
+     *
49
+     * @param smsSendRecord
50
+     * @return
51
+     */
52
+    @GetMapping("/recordList")
53
+    public TableDataInfo smsSendRecordList(SmsSendRecord smsSendRecord) {
54
+        startPage();
55
+        List<SmsSendRecord> list = shortMessageService.smsSendRecordList(smsSendRecord);
56
+        return getDataTable(list);
57
+    }
58
+
59
+    @Anonymous
60
+    @PostMapping("/updateSendContent")
61
+    public AjaxResult update(@RequestBody SmsSendRecord smsSendRecord) {
62
+        if (smsSendRecord == null || smsSendRecord.getId() == null || CollectionUtil.isEmpty(smsSendRecord.getTemplateParams())) {
63
+            return AjaxResult.error("参数校验失败");
64
+        }
65
+        // 查询当前版本记录
66
+        SmsSendRecord oldSendRecord = smsRecordMapper.selectById(smsSendRecord.getId());
67
+        smsSendRecord.setUpdateTime(new Date());
68
+        //  更新短信内容,先删除短信记录参数表
69
+        Example recordParamExam = new Example(MsSmsSendRecordParam.class);
70
+        recordParamExam.createCriteria().andEqualTo("smsRecordId", smsSendRecord.getId());
71
+        recordParamMapper.deleteByExample(recordParamExam);
72
+        // 新增短信记录参数表
73
+        List<MsSmsSendRecordParam> recordParams = new ArrayList<>();
74
+        for (MsSmsTemplateParam templateParam : smsSendRecord.getTemplateParams()) {
75
+            MsSmsSendRecordParam recordParam = new MsSmsSendRecordParam();
76
+            recordParam.setSmsRecordId(smsSendRecord.getId());
77
+            recordParam.setParamValue(templateParam.getParamValue());
78
+            recordParams.add(recordParam);
79
+        }
80
+        recordParamMapper.batchInsert(recordParams);
81
+        shortMessageService.insertShortMessageHistoryRecord(oldSendRecord, recordParams);
82
+        return AjaxResult.success();
83
+
84
+    }
85
+
86
+    /**
87
+     * 重新发送短信
88
+     */
89
+    @Anonymous
90
+    @PostMapping("/reSendShortMessage")
91
+    public AjaxResult reSendShortMessage(@RequestBody ReSendMessageVO reSendMessageVO) {
92
+        if (reSendMessageVO != null) {
93
+            AjaxResult result = shortMessageService.reSendShortMessage(reSendMessageVO);
94
+            return result;
95
+        }
96
+        return AjaxResult.error("参数缺失");
97
+    }
98
+
99
+    /**
100
+     * 短信回调
101
+     * @param body
102
+     * @return
103
+     */
104
+    @Anonymous
105
+    @PostMapping("/smsCallBack")
106
+    public AjaxResult smsCallBack(@RequestBody String body) {
107
+       if(body != null){
108
+           return shortMessageService.smsCallBack(body);
109
+       }
110
+        return AjaxResult.error("参数缺失");
111
+    }
112
+
113
+    @Autowired
114
+    MeetingInfoMapper meetingInfoMapper;
115
+    @Autowired
116
+    SysUserMapper sysUserMapper;
117
+    @Autowired
118
+    private TokenService tokenService;
119
+
120
+    /**
121
+     * 查询UID好的密钥
122
+     */
123
+//    @Anonymous
124
+//    @GetMapping("/getMeetingInfo")
125
+//    public Object getEncryptInfoByUid(@RequestParam(name = "authId", required = true) String authId) {
126
+//        MeetingInfoVO result = new MeetingInfoVO();
127
+//        if (authId != null) {
128
+//            MeetingInfo meetingInfo = meetingInfoMapper.selectByPrimaryKey(authId);
129
+//            if (meetingInfo != null && meetingInfo.getUserId() != null) {
130
+//                BeanUtils.copyProperties(meetingInfo, result);
131
+//                SysUser sysUser = sysUserMapper.selectUserById(meetingInfo.getUserId());
132
+//                LoginUser loginUser = new LoginUser();
133
+//                loginUser.setUserId(sysUser.getUserId());
134
+//                loginUser.setUser(sysUser);
135
+//                String token = tokenService.createVideoToken(loginUser, 120);
136
+////                String createToken = createToken(claims);
137
+//                result.setToken(token);
138
+//            }
139
+//            return result;
140
+//        }
141
+//        return AjaxResult.error("查询失败");
142
+//    }
143
+}

+ 55
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sms/SMSTemplateController.java 查看文件

@@ -0,0 +1,55 @@
1
+package com.ruoyi.web.controller.wisdomarbitrate.sms;
2
+
3
+import com.ruoyi.common.core.controller.BaseController;
4
+import com.ruoyi.common.core.domain.AjaxResult;
5
+import com.ruoyi.common.core.page.TableDataInfo;
6
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplate;
7
+import com.ruoyi.wisdomarbitrate.service.sms.SMSTemplateService;
8
+import org.springframework.beans.factory.annotation.Autowired;
9
+import org.springframework.web.bind.annotation.*;
10
+
11
+import java.util.List;
12
+
13
+/**
14
+ * 短信模板控制器
15
+ */
16
+@RestController
17
+@RequestMapping("/smsTemplate")
18
+public class SMSTemplateController extends BaseController {
19
+    @Autowired
20
+    private SMSTemplateService templateService;
21
+
22
+    /**
23
+     * 查询
24
+     * @param
25
+     * @return
26
+     */
27
+    @GetMapping("/page")
28
+    public TableDataInfo page( ){
29
+        startPage();
30
+        List<MsSmsTemplate> list = templateService.page();
31
+        return getDataTable(list);
32
+    }
33
+    /**
34
+     * 新增或者修改
35
+     * @param
36
+     * @return
37
+     */
38
+    @PostMapping("/insert")
39
+    public AjaxResult insert(@RequestBody MsSmsTemplate template){
40
+        return templateService.insert(template);
41
+    }
42
+    /**
43
+     * 删除
44
+     * @param
45
+     * @return
46
+     */
47
+    @PostMapping("/delete")
48
+    public AjaxResult delete(@RequestBody MsSmsTemplate template){
49
+        if(template.getId()==null){
50
+            return AjaxResult.warn("id不能为空");
51
+        }
52
+        return templateService.delete(template.getId());
53
+    }
54
+
55
+}

+ 5
- 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java 查看文件

@@ -156,4 +156,9 @@ public class Constants
156 156
             "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" };
157 157
     // 中文逗号分隔符
158 158
     public static final String CN_SPLIT_COMMA = ",";
159
+    /**
160
+     * 会议主键Id
161
+     */
162
+    public static final String MEETING_KEY = "meeting_key";
163
+
159 164
 }

+ 64
- 0
ruoyi-common/src/main/java/com/ruoyi/common/enums/SMSStatusEnum.java 查看文件

@@ -0,0 +1,64 @@
1
+package com.ruoyi.common.enums;
2
+
3
+
4
+
5
+/**
6
+ * @author wangqiong
7
+ * @description 短信状态枚举
8
+ * @date 2023-11-17 14:05
9
+ */
10
+public enum SMSStatusEnum
11
+{
12
+    SUCCESS(1, "成功"),
13
+    SENDING(2, "发送中"),
14
+    FAIL(3, "失败"),
15
+
16
+    ;
17
+
18
+    private final Integer code;
19
+    private final String text;
20
+
21
+    SMSStatusEnum(Integer code, String text)
22
+    {
23
+        this.code = code;
24
+        this.text = text;
25
+    }
26
+
27
+    public Integer getCode()
28
+    {
29
+        return code;
30
+    }
31
+
32
+    public String getText()
33
+    {
34
+        return text;
35
+    }
36
+
37
+    /**
38
+     * 根据code获取text
39
+     * @param codeNo
40
+     * @return
41
+     */
42
+    public static String getTextByCode(Integer codeNo){
43
+        for (SMSStatusEnum value : SMSStatusEnum.values()) {
44
+            if (value.getCode().equals(codeNo)){
45
+                return value.getText();
46
+            }
47
+        }
48
+        return codeNo.toString();
49
+    }
50
+
51
+    /**
52
+     * 根据text获取code
53
+     * @param textStr
54
+     * @return
55
+     */
56
+    public static String getCodeByText(String textStr){
57
+        for (SMSStatusEnum value : SMSStatusEnum.values()) {
58
+            if (value.getText().equals(textStr)){
59
+                return value.getText();
60
+            }
61
+        }
62
+        return textStr;
63
+    }
64
+}

+ 97
- 81
ruoyi-common/src/main/java/com/ruoyi/common/utils/EmailOutUtil.java 查看文件

@@ -2,10 +2,12 @@ package com.ruoyi.common.utils;
2 2
 
3 3
 
4 4
 
5
+import cn.hutool.core.util.StrUtil;
5 6
 import com.ruoyi.common.utils.uuid.UUID;
6 7
 import lombok.Data;
7 8
 import lombok.extern.slf4j.Slf4j;
8 9
 import org.springframework.beans.factory.annotation.Value;
10
+import org.springframework.mail.MailException;
9 11
 import org.springframework.mail.SimpleMailMessage;
10 12
 
11 13
 import org.springframework.mail.javamail.JavaMailSender;
@@ -49,12 +51,12 @@ public class EmailOutUtil {
49 51
 //    private static String fromOut;
50 52
     @Value("${spring.mail.host}")
51 53
     private String hostOut;
52
-//    @Value("${spring.mail.username}")
53
-//    private String usernameOut;
54
-    private String usernameOut="wq18792927508@163.com";
55
-//    @Value("${spring.mail.password}")
56
-//    private String passwordOut;
57
-    private String passwordOut= "WDFHKSEMCKVRELEA";
54
+    @Value("${spring.mail.username}")
55
+    private String usernameOut;
56
+
57
+    @Value("${spring.mail.password}")
58
+    private String passwordOut;
59
+
58 60
     @Value("${spring.mail.port}")
59 61
     private Integer portOut;
60 62
 
@@ -76,18 +78,29 @@ public class EmailOutUtil {
76 78
      * @param subject 邮件主题
77 79
      * @param content 邮件内容(发送内容)
78 80
      */
79
-    public void sendMessage(String to, String subject, String content, String from, JavaMailSender mailSender) {
80
-        // 创建一个邮件对象
81
-        SimpleMailMessage msg = new SimpleMailMessage();
82
-        msg.setFrom(from);
83
-        msg.setTo(to);
84
-        // 设置邮件主题
85
-        msg.setSubject(subject);
86
-        // 设置邮件内容
87
-        msg.setText(content);
88
-        // 发送邮件
89
-        mailSender.send(msg);
90
-        ////System.out.println("发送成功:" + from + ":to:" + to);
81
+    public Boolean sendMessage(String to, String subject, String content, String from, JavaMailSender mailSender) {
82
+        try {
83
+            if(mailSender==null){
84
+                mailSender=  rebuildMailSender();
85
+            }
86
+            // 创建一个邮件对象
87
+            SimpleMailMessage msg = new SimpleMailMessage();
88
+            if(StrUtil.isEmpty(from)){
89
+                msg.setFrom(usernameOut);
90
+            }else {
91
+                msg.setFrom(from);
92
+            }
93
+            msg.setTo(to);
94
+            // 设置邮件主题
95
+            msg.setSubject(subject);
96
+            // 设置邮件内容
97
+            msg.setText(content);
98
+            // 发送邮件
99
+            mailSender.send(msg);
100
+        } catch (MailException e) {
101
+            return false;
102
+        }
103
+        return true;
91 104
     }
92 105
 
93 106
     /**
@@ -95,14 +108,14 @@ public class EmailOutUtil {
95 108
      * @param message  邮件内容
96 109
      * @param subject  邮件主题
97 110
      * @param fileList 邮件附件
111
+     * @param fileNameMap 附件名称map,附件路径-附件名称
98 112
      */
99
-    public  Boolean sendEmil(String to, String message, String subject, List<File> fileList, File file) {
113
+    public  Boolean sendEmil(String to, String message, String subject, List<File> fileList, File file,Map<String,String> fileNameMap) {
100 114
         try {
101 115
             String messageContent = "<html><body><p style=\"font-family: Arial, sans-serif; font-size: 18px;\">"+message+"。</p></body></html>";
102 116
             MimeBodyPart messageBodyPart = new MimeBodyPart();
103 117
             messageBodyPart.setContent(messageContent, "text/html;charset=utf-8");
104 118
             messageBodyPart.setContentID(UUID.randomUUID().toString());
105
-            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
106 119
             final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
107 120
             //设置邮件会话参数
108 121
             Properties props = new Properties();
@@ -154,7 +167,10 @@ public class EmailOutUtil {
154 167
                     for (File tempfile : fileList) {
155 168
                         MimeBodyPart attachmentPart = new MimeBodyPart();
156 169
                         attachmentPart.attachFile(tempfile);
157
-                        attachmentPart.setFileName(MimeUtility.encodeText(tempfile.getName()));
170
+                        // 设置附件名称
171
+                        if(fileNameMap!=null && fileNameMap.containsKey(tempfile.getPath())) {
172
+                            attachmentPart.setFileName(MimeUtility.encodeText(fileNameMap.get(tempfile.getPath())));
173
+                        }
158 174
                         multipart.addBodyPart(attachmentPart);
159 175
                     }
160 176
                     msg.setContent(multipart);
@@ -273,40 +289,40 @@ public class EmailOutUtil {
273 289
         }
274 290
         return flag;
275 291
     }
276
-public  void buildReceiveConnect() throws Exception {
277
-
278
-    //POP3主机名
279
-    String host = "pop3.163.com";
280
-    //设置传输协议
281
-    String protocol = "pop3";
282
-    //用户账号
283
-    String username = "wq18792927508@163.com";
284
-    //密码或者授权码
285
-    String password = "WDFHKSEMCKVRELEA";
286
-    /*
287
-     * 获取Session
288
-     */
289
-    Properties props = new Properties();
290
-    //协议
291
-    props.setProperty("mail.store.protocol", protocol);
292
-    //POP3主机名
293
-    props.setProperty("mail.pop3.host", host);
294
-    props.setProperty("mail.smtp.auth", "true");
295
-    props.setProperty("mail.pop3.default-encoding", "UTF-8");
296
-    Session session = Session.getDefaultInstance(props, new Authenticator() {
297
-        @Override
298
-        protected PasswordAuthentication getPasswordAuthentication() {
299
-            return new PasswordAuthentication(usernameOut, passwordOut);
300
-        }
301
-    });
302
-    URLName urlName = new URLName(protocol, host, 110, null, username, password);
303
-    Store store = session.getStore(urlName);
304
-    store.connect(username, password);
292
+    public  void buildReceiveConnect() throws Exception {
293
+
294
+        //POP3主机名
295
+        String host = "pop3.163.com";
296
+        //设置传输协议
297
+        String protocol = "pop3";
298
+        //用户账号
299
+        String username = "wq18792927508@163.com";
300
+        //密码或者授权码
301
+        String password = "WDFHKSEMCKVRELEA";
302
+        /*
303
+         * 获取Session
304
+         */
305
+        Properties props = new Properties();
306
+        //协议
307
+        props.setProperty("mail.store.protocol", protocol);
308
+        //POP3主机名
309
+        props.setProperty("mail.pop3.host", host);
310
+        props.setProperty("mail.smtp.auth", "true");
311
+        props.setProperty("mail.pop3.default-encoding", "UTF-8");
312
+        Session session = Session.getDefaultInstance(props, new Authenticator() {
313
+            @Override
314
+            protected PasswordAuthentication getPasswordAuthentication() {
315
+                return new PasswordAuthentication(usernameOut, passwordOut);
316
+            }
317
+        });
318
+        URLName urlName = new URLName(protocol, host, 110, null, username, password);
319
+        Store store = session.getStore(urlName);
320
+        store.connect(username, password);
305 321
 
306 322
 
307
-    Folder folder = store.getFolder("INBOX");
323
+        Folder folder = store.getFolder("INBOX");
308 324
 
309
-    folder.open(Folder.READ_ONLY);
325
+        folder.open(Folder.READ_ONLY);
310 326
 
311 327
     }
312 328
     /**
@@ -350,14 +366,14 @@ public  void buildReceiveConnect() throws Exception {
350 366
             Folder folder = store.getFolder("INBOX");
351 367
             folder.open(Folder.READ_ONLY);
352 368
             SearchTerm orTerm = new SubjectTerm("退信");
353
-        //    Message[] messages = folder.search(orTerm);
369
+            //    Message[] messages = folder.search(orTerm);
354 370
             Date  endTime= new Date();
355 371
             long oneDayMillis=24*60*60*1000L;
356 372
             Date startTime=new Date(endTime.getTime()-oneDayMillis);
357
-         //   SearchTerm comparisonTermGe = new SentDateTerm(ComparisonTerm.GE, startTime);
358
-         //   SearchTerm comparisonTermLe = new SentDateTerm(ComparisonTerm.LE, endTime);
359
-        //    SearchTerm comparisonAndTerm = new AndTerm(comparisonTermGe, comparisonTermLe);
360
-          //  SearchTerm searchTerm = new AndTerm(comparisonAndTerm, orTerm);
373
+            //   SearchTerm comparisonTermGe = new SentDateTerm(ComparisonTerm.GE, startTime);
374
+            //   SearchTerm comparisonTermLe = new SentDateTerm(ComparisonTerm.LE, endTime);
375
+            //    SearchTerm comparisonAndTerm = new AndTerm(comparisonTermGe, comparisonTermLe);
376
+            //  SearchTerm searchTerm = new AndTerm(comparisonAndTerm, orTerm);
361 377
             Message[] messages = folder.search(orTerm);
362 378
             if (messages != null) {
363 379
 
@@ -376,7 +392,7 @@ public  void buildReceiveConnect() throws Exception {
376 392
             folder.close(false);
377 393
             store.close();
378 394
         } catch (Exception e) {
379
-           return messageIds;
395
+            return messageIds;
380 396
         }
381 397
         return messageIds;
382 398
     }
@@ -397,32 +413,32 @@ public  void buildReceiveConnect() throws Exception {
397 413
         }
398 414
     }
399 415
     public static String getMessageId(Part part) throws Exception {
400
-               if (!part.isMimeType("multipart/*")) {
401
-                    return "";
402
-                }
416
+        if (!part.isMimeType("multipart/*")) {
417
+            return "";
418
+        }
403 419
 
404
-            Multipart multipart = (Multipart) part.getContent();
405
-            for (int i = 0; i < multipart.getCount(); i++) {
406
-                    BodyPart bodyPart = multipart.getBodyPart(i);
407
-
408
-                    if (part.isMimeType("message/rfc822")) {
409
-                         return getMessageId((Part) part.getContent());
410
-                     }
411
-                    InputStream inputStream = bodyPart.getInputStream();
412
-
413
-                    try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) {
414
-                         String strLine;
415
-                         while ((strLine = br.readLine()) != null) {
416
-                             if (strLine.startsWith("Message_Id:")) {
417
-                                     String[] split = strLine.split("Message_Id:");
418
-                                     return split.length > 1 ? split[1].trim() : null;
419
-                                 }
420
-                         }
421
-                     }
422
-                }
420
+        Multipart multipart = (Multipart) part.getContent();
421
+        for (int i = 0; i < multipart.getCount(); i++) {
422
+            BodyPart bodyPart = multipart.getBodyPart(i);
423 423
 
424
-                return "";
424
+            if (part.isMimeType("message/rfc822")) {
425
+                return getMessageId((Part) part.getContent());
425 426
             }
427
+            InputStream inputStream = bodyPart.getInputStream();
428
+
429
+            try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) {
430
+                String strLine;
431
+                while ((strLine = br.readLine()) != null) {
432
+                    if (strLine.startsWith("Message_Id:")) {
433
+                        String[] split = strLine.split("Message_Id:");
434
+                        return split.length > 1 ? split[1].trim() : null;
435
+                    }
436
+                }
437
+            }
438
+        }
439
+
440
+        return "";
441
+    }
426 442
 
427 443
 
428 444
 //检查退信邮件

+ 0
- 78
ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java 查看文件

@@ -1,78 +0,0 @@
1
-package com.ruoyi.common.utils;
2
-
3
-import com.tencentcloudapi.common.Credential;
4
-import com.tencentcloudapi.common.exception.TencentCloudSDKException;
5
-import com.tencentcloudapi.common.profile.ClientProfile;
6
-import com.tencentcloudapi.common.profile.HttpProfile;
7
-import com.tencentcloudapi.cvm.v20170312.CvmClient;
8
-import com.tencentcloudapi.cvm.v20170312.models.DescribeRegionsRequest;
9
-import com.tencentcloudapi.cvm.v20170312.models.DescribeRegionsResponse;
10
-import com.tencentcloudapi.sms.v20210111.SmsClient;
11
-import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
12
-import com.tencentcloudapi.sms.v20210111.models.SendStatus;
13
-import lombok.Data;
14
-import lombok.extern.slf4j.Slf4j;
15
-import lombok.var;
16
-
17
-import java.util.Objects;
18
-
19
-@Slf4j
20
-public class SmsUtils {
21
-    //应用id
22
-    private static final String SDK_APP_ID = "1400854852";
23
-    //API的SecretId
24
-    private static final String SECRET_ID = "AKIDeEf2A8uX1HSainvvnXAc3X9ZlhtyvkMp";
25
-    //API的SecretKey
26
-    private static final String SECRET_KEY = "QjphKo8zkHZigT8j9PVtFPJyfIvO3d6V";
27
-    //签名内容
28
-    private static final String SIGN_NAME = "乙巢智慧仲裁网";
29
-
30
-    public static Boolean sendSms(SendSmsRequest request) {
31
-        Credential cred = new Credential(SECRET_ID, SECRET_KEY );
32
-
33
-        SmsClient client = new SmsClient(cred, "ap-guangzhou");
34
-
35
-        final var req = new com.tencentcloudapi.sms.v20210111.models.SendSmsRequest();
36
-        req.setPhoneNumberSet(new String[]{"+86" + request.getPhone()});
37
-        req.setSmsSdkAppId(SDK_APP_ID );
38
-        req.setSignName(SIGN_NAME);
39
-        req.setTemplateId(request.getTemplateId());
40
-        req.setTemplateParamSet(request.getTemplateParamSet());
41
-        SendSmsResponse res = null;
42
-        try {
43
-            res = client.SendSms(req);
44
-        } catch (TencentCloudSDKException e) {
45
-            log.error("发送短信出错:", e);
46
-            return Boolean.FALSE;
47
-        }
48
-        SendStatus sendStatus = res.getSendStatusSet()[0];
49
-        log.info("发送短信结果:Code={}, Message={}", sendStatus.getCode(), sendStatus.getMessage());
50
-
51
-        if (Objects.nonNull(res.getSendStatusSet()) && res.getSendStatusSet().length > 0 && "Ok".equals(res.getSendStatusSet()[0].getCode())){
52
-            return Boolean.TRUE;
53
-        }
54
-        return Boolean.FALSE;
55
-    }
56
-    /**
57
-     * 参数对象
58
-     */
59
-    @Data
60
-    public static class SendSmsRequest {
61
-        /**
62
-         * 电话
63
-         */
64
-        private String phone;
65
-
66
-        /**
67
-         * 模板 ID: 必须填写已审核通过的模板 ID
68
-         */
69
-        private String templateId;
70
-
71
-        /**
72
-         * 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空
73
-         */
74
-        private String[] templateParamSet;
75
-        private Long caseId;
76
-
77
-    }
78
-}

+ 23
- 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/ThreadUtil.java 查看文件

@@ -0,0 +1,23 @@
1
+package com.ruoyi.common.utils;
2
+
3
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
4
+
5
+import java.util.concurrent.*;
6
+
7
+/**
8
+ * @Author: ymbgy
9
+ * @Date: 2022-09-23 10:06
10
+ */
11
+public class ThreadUtil {
12
+    public static ExecutorService createThreadPool() {
13
+        //获取系统处理器个数,作为线程池数量
14
+        int nThreads = Runtime.getRuntime().availableProcessors();
15
+        ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
16
+                .setNameFormat("demo-pool-%d").build();
17
+        //Thread Pool
18
+        ExecutorService executor = new ThreadPoolExecutor(nThreads, 200,
19
+                0L, TimeUnit.MILLISECONDS,
20
+                new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
21
+        return executor;
22
+    }
23
+}

+ 2
- 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java 查看文件

@@ -1,11 +1,12 @@
1 1
 package com.ruoyi.framework.config;
2 2
 
3 3
 import java.util.TimeZone;
4
-import org.mybatis.spring.annotation.MapperScan;
4
+//import org.mybatis.spring.annotation.MapperScan;
5 5
 import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
6 6
 import org.springframework.context.annotation.Bean;
7 7
 import org.springframework.context.annotation.Configuration;
8 8
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
9
+import tk.mybatis.spring.annotation.MapperScan;
9 10
 
10 11
 /**
11 12
  * 程序注解配置

+ 7
- 2
ruoyi-system/pom.xml 查看文件

@@ -12,11 +12,16 @@
12 12
     <artifactId>ruoyi-system</artifactId>
13 13
 
14 14
     <description>
15
-        system系统模块
15
+<!--        system系统模块-->
16 16
     </description>
17 17
 
18 18
     <dependencies>
19
-
19
+        <!--通用mapper-->
20
+        <dependency>
21
+            <groupId>tk.mybatis</groupId>
22
+            <artifactId>mapper-spring-boot-starter</artifactId>
23
+            <version>2.1.5</version>
24
+        </dependency>
20 25
         <!-- 通用工具-->
21 26
         <dependency>
22 27
             <groupId>com.ruoyi</groupId>

+ 0
- 45
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SmsSendRecord.java 查看文件

@@ -1,45 +0,0 @@
1
-package com.ruoyi.wisdomarbitrate.domain;
2
-
3
-import com.fasterxml.jackson.annotation.JsonFormat;
4
-import com.ruoyi.common.core.domain.BaseEntity;
5
-import lombok.AllArgsConstructor;
6
-import lombok.Data;
7
-import lombok.NoArgsConstructor;
8
-
9
-import java.util.Date;
10
-
11
-@Data
12
-@AllArgsConstructor
13
-@NoArgsConstructor
14
-public class SmsSendRecord extends BaseEntity {
15
-    /**
16
-     * ID
17
-     */
18
-    private Long id;
19
-    /**
20
-     * 案件申请id
21
-     */
22
-    private Long caseId;
23
-    /**
24
-     * 案件编号
25
-     */
26
-    private String caseNum;
27
-    /**
28
-     * 手机号
29
-     */
30
-    private String phone;
31
-    /**
32
-     * 发送时间
33
-     */
34
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
35
-    private Date sendTime;
36
-    /**
37
-     * 发送内容
38
-     */
39
-    private String sendContent;
40
-
41
-    /**
42
-     * 发送状态
43
-     */
44
-    private Integer sendStatus;
45
-}

ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/SendMailRecord.java → ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java 查看文件

@@ -1,11 +1,14 @@
1
-package com.ruoyi.wisdomarbitrate.domain;
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.CaseAttach;
6
+import lombok.Data;
6 7
 
7 8
 import java.util.Date;
9
+import java.util.List;
8 10
 
11
+@Data
9 12
 public class SendMailRecord   extends BaseEntity {
10 13
     private static final long serialVersionUID = 1L;
11 14
 
@@ -40,6 +43,16 @@ public class SendMailRecord   extends BaseEntity {
40 43
     private Integer sendStatus;
41 44
 
42 45
 
46
+    /** 附件id */
47
+    private String fileIds;
48
+
49
+    /** 邮件主题 */
50
+    private String mailSubject;
51
+
52
+    /** 邮件发件人地址 */
53
+    private String mailFromAddress;
54
+    private List<CaseAttach> caseAttachList;
55
+
43 56
 
44 57
     public Integer getSendStatus() {
45 58
         return sendStatus;

+ 78
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SmsSendRecord.java 查看文件

@@ -0,0 +1,78 @@
1
+package com.ruoyi.wisdomarbitrate.domain.dto.sendrecord;
2
+
3
+import com.fasterxml.jackson.annotation.JsonFormat;
4
+import com.ruoyi.common.core.domain.BaseEntity;
5
+
6
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplateParam;
7
+import lombok.AllArgsConstructor;
8
+import lombok.Data;
9
+import lombok.NoArgsConstructor;
10
+
11
+import java.util.Date;
12
+import java.util.List;
13
+
14
+@Data
15
+@AllArgsConstructor
16
+@NoArgsConstructor
17
+public class SmsSendRecord extends BaseEntity {
18
+    /**
19
+     * ID
20
+     */
21
+    private Long id;
22
+    /**
23
+     * 短信模板主键id
24
+     */
25
+    private Long msSmsTemplateId;
26
+    /**
27
+     * 案件申请id
28
+     */
29
+    private Long caseId;
30
+    /**
31
+     * 案件编号
32
+     */
33
+    private String caseNum;
34
+    /**
35
+     * 手机号
36
+     */
37
+    private String phone;
38
+    /**
39
+     * 发送时间
40
+     */
41
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
42
+    private Date sendTime;
43
+
44
+    /**
45
+     * 发送状态
46
+     */
47
+    private Integer sendStatus;
48
+    /**
49
+     * 短信sid,发送的唯一标识
50
+     */
51
+    private String sid;
52
+    /**
53
+     * 失败原因
54
+     */
55
+    private String reason;
56
+    /**
57
+     * 短信内容
58
+     */
59
+    private String sendContent;
60
+    /**
61
+     * 腾讯云模板id
62
+     */
63
+    private String templateId;
64
+    /**
65
+     * 模板内容
66
+     */
67
+    private String templateContent;
68
+    private List<MsSmsTemplateParam> templateParams;
69
+
70
+    public SmsSendRecord(Long caseId, String caseNum, String phone, Date sendTime, String sendContent,String sid) {
71
+        this.caseId = caseId;
72
+        this.caseNum = caseNum;
73
+        this.phone = phone;
74
+        this.sendTime = sendTime;
75
+        this.sendContent = sendContent;
76
+        this.sid = sid;
77
+    }
78
+}

+ 32
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsSendHistoryRecordParam.java 查看文件

@@ -0,0 +1,32 @@
1
+package com.ruoyi.wisdomarbitrate.domain.entity.sms;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+import lombok.ToString;
6
+
7
+import javax.persistence.Column;
8
+import javax.persistence.GeneratedValue;
9
+import javax.persistence.Id;
10
+import javax.persistence.Table;
11
+
12
+@Getter
13
+@Setter
14
+@ToString
15
+@Table(name = "sms_send_history_record_param")
16
+public class MsSmsSendHistoryRecordParam {
17
+    @Id
18
+    @GeneratedValue(generator = "JDBC")
19
+    private Long id;
20
+
21
+    /**
22
+     * 短信历史记录表id
23
+     */
24
+    @Column(name = "sms_record_history_id")
25
+    private Long smsRecordHistoryId;
26
+
27
+    /**
28
+     * 参数值
29
+     */
30
+    @Column(name = "param_value")
31
+    private String paramValue;
32
+}

+ 33
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsSendRecordParam.java 查看文件

@@ -0,0 +1,33 @@
1
+package com.ruoyi.wisdomarbitrate.domain.entity.sms;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+import lombok.ToString;
6
+
7
+import javax.persistence.Column;
8
+import javax.persistence.GeneratedValue;
9
+import javax.persistence.Id;
10
+import javax.persistence.Table;
11
+
12
+@Getter
13
+@Setter
14
+@ToString
15
+@Table(name = "sms_send_record_param")
16
+public class MsSmsSendRecordParam {
17
+    @Id
18
+    @GeneratedValue(generator = "JDBC")
19
+    private Integer id;
20
+
21
+    /**
22
+     * 短信记录表id
23
+     */
24
+    @Column(name = "sms_record_id")
25
+    private Long smsRecordId;
26
+
27
+
28
+    /**
29
+     * 参数值
30
+     */
31
+    @Column(name = "param_value")
32
+    private String paramValue;
33
+}

+ 38
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsTemplate.java 查看文件

@@ -0,0 +1,38 @@
1
+package com.ruoyi.wisdomarbitrate.domain.entity.sms;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+import lombok.ToString;
6
+
7
+import javax.persistence.*;
8
+import java.util.List;
9
+
10
+@Getter
11
+@Setter
12
+@ToString
13
+@Table(name = "sms_template")
14
+public class MsSmsTemplate {
15
+    @Id
16
+    @GeneratedValue(generator = "JDBC")
17
+    private Long id;
18
+
19
+    /**
20
+     * 腾讯云模板id
21
+     */
22
+    @Column(name = "template_id")
23
+    private String templateId;
24
+
25
+    /**
26
+     * 模板名称
27
+     */
28
+    private String name;
29
+    /**
30
+     * 模板内容
31
+     */
32
+    private String content;
33
+    /**
34
+     * 模板参数
35
+     */
36
+    @Transient
37
+    private List<MsSmsTemplateParam> templateParams;
38
+}

+ 38
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/sms/MsSmsTemplateParam.java 查看文件

@@ -0,0 +1,38 @@
1
+package com.ruoyi.wisdomarbitrate.domain.entity.sms;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+import lombok.ToString;
6
+
7
+import javax.persistence.*;
8
+
9
+@Getter
10
+@Setter
11
+@ToString
12
+@Table(name = "sms_template_param")
13
+public class MsSmsTemplateParam {
14
+    @Id
15
+    @GeneratedValue(generator = "JDBC")
16
+    private Long id;
17
+
18
+    /**
19
+     * ms_sms_template表id
20
+     */
21
+    @Column(name = "sms_template_id")
22
+    private Long smsTemplateId;
23
+
24
+    /**
25
+     * 参数
26
+     */
27
+    private String param;
28
+    /**
29
+     * 参数名
30
+     */
31
+    @Column(name = "param_name")
32
+    private String paramName;
33
+    /**
34
+     * 参数值
35
+     */
36
+    @Transient
37
+    private String paramValue;
38
+}

+ 60
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/shortmessage/MeetingInfo.java 查看文件

@@ -0,0 +1,60 @@
1
+package com.ruoyi.wisdomarbitrate.domain.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
+}

+ 111
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/shortmessage/MsSendMailHistoryRecord.java 查看文件

@@ -0,0 +1,111 @@
1
+package com.ruoyi.wisdomarbitrate.domain.shortmessage;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+import lombok.ToString;
6
+
7
+import javax.persistence.Column;
8
+import javax.persistence.GeneratedValue;
9
+import javax.persistence.Id;
10
+import javax.persistence.Table;
11
+import java.util.Date;
12
+
13
+@Getter
14
+@Setter
15
+@ToString
16
+@Table(name = "send_mail_history_record")
17
+public class MsSendMailHistoryRecord {
18
+    @Id
19
+    @GeneratedValue(generator = "JDBC")
20
+    private Long id;
21
+
22
+    /**
23
+     * 邮件名称
24
+     */
25
+    @Column(name = "mail_name")
26
+    private String mailName;
27
+
28
+    /**
29
+     * 邮件接收地址
30
+     */
31
+    @Column(name = "mail_address")
32
+    private String mailAddress;
33
+
34
+    /**
35
+     * 发送时间
36
+     */
37
+    @Column(name = "send_time")
38
+    private Date sendTime;
39
+
40
+    /**
41
+     * 案件编号
42
+     */
43
+    @Column(name = "case_num")
44
+    private String caseNum;
45
+
46
+    /**
47
+     * 发送状态
48
+     */
49
+    @Column(name = "send_status")
50
+    private Long sendStatus;
51
+
52
+    /**
53
+     * 立案申请id
54
+     */
55
+    @Column(name = "case_id")
56
+    private Long caseId;
57
+
58
+    /**
59
+     * 创建时间
60
+     */
61
+    @Column(name = "create_time")
62
+    private Date createTime;
63
+
64
+    /**
65
+     * 创建者
66
+     */
67
+    @Column(name = "create_by")
68
+    private String createBy;
69
+
70
+    /**
71
+     * 更新者
72
+     */
73
+    @Column(name = "update_by")
74
+    private String updateBy;
75
+
76
+    /**
77
+     * 更新时间
78
+     */
79
+    @Column(name = "update_time")
80
+    private Date updateTime;
81
+
82
+    /**
83
+     * 附件id用英文逗号隔开
84
+     */
85
+    @Column(name = "file_ids")
86
+    private String fileIds;
87
+
88
+    /**
89
+     * 邮件主题
90
+     */
91
+    @Column(name = "mail_subject")
92
+    private String mailSubject;
93
+
94
+    /**
95
+     * 邮件发送地址
96
+     */
97
+    @Column(name = "mail_from_address")
98
+    private String mailFromAddress;
99
+
100
+    /**
101
+     * 邮件父类id
102
+     */
103
+    @Column(name = "parent_id")
104
+    private Long parentId;
105
+
106
+    /**
107
+     * 邮件内容
108
+     */
109
+    @Column(name = "mail_content")
110
+    private String mailContent;
111
+}

+ 98
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/shortmessage/MsSmsSendHistoryRecord.java 查看文件

@@ -0,0 +1,98 @@
1
+package com.ruoyi.wisdomarbitrate.domain.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.GeneratedValue;
10
+import javax.persistence.Id;
11
+import javax.persistence.Table;
12
+import java.util.Date;
13
+
14
+@Data
15
+@AllArgsConstructor
16
+@NoArgsConstructor
17
+@Builder
18
+@Table(name = "sms_send_history_record")
19
+public class MsSmsSendHistoryRecord {
20
+    @Id
21
+    @GeneratedValue(generator = "JDBC")
22
+    private Long id;
23
+
24
+    /**
25
+     * 案件id
26
+     */
27
+    @Column(name = "case_appli_id")
28
+    private Long caseAppliId;
29
+    /**
30
+     * 短信模板表主键id
31
+     */
32
+    @Column(name = "ms_sms_template_id")
33
+    private Long msSmsTemplateId;
34
+
35
+    /**
36
+     * 案件编号
37
+     */
38
+    @Column(name = "case_num")
39
+    private String caseNum;
40
+
41
+    /**
42
+     * 手机号
43
+     */
44
+    private String phone;
45
+
46
+    /**
47
+     * 发送时间
48
+     */
49
+    @Column(name = "send_time")
50
+    private Date sendTime;
51
+
52
+    /**
53
+     * 发送状态,0-失败,1-成功
54
+     */
55
+    @Column(name = "send_status")
56
+    private Long sendStatus;
57
+
58
+
59
+    /**
60
+     * 创建时间
61
+     */
62
+    @Column(name = "create_time")
63
+    private Date createTime;
64
+
65
+    /**
66
+     * 更新时间
67
+     */
68
+    @Column(name = "update_time")
69
+    private Date updateTime;
70
+
71
+    /**
72
+     * 创建人
73
+     */
74
+    @Column(name = "create_by")
75
+    private String createBy;
76
+
77
+    /**
78
+     * 更新者
79
+     */
80
+    @Column(name = "update_by")
81
+    private String updateBy;
82
+
83
+    /**
84
+     * 发送短信唯一标识
85
+     */
86
+    private String sid;
87
+
88
+    /**
89
+     * 父类短信id
90
+     */
91
+    @Column(name = "parent_id")
92
+    private Long parentId;
93
+
94
+    /**
95
+     * 失败原因
96
+     */
97
+    private String reason;
98
+}

+ 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
+}

+ 34
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/shortmessage/ReSendMessageVO.java 查看文件

@@ -0,0 +1,34 @@
1
+package com.ruoyi.wisdomarbitrate.domain.vo.shortmessage;
2
+
3
+
4
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplateParam;
5
+import lombok.AllArgsConstructor;
6
+import lombok.Builder;
7
+import lombok.Data;
8
+import lombok.NoArgsConstructor;
9
+
10
+import java.util.List;
11
+
12
+@Data
13
+@Builder
14
+@NoArgsConstructor
15
+@AllArgsConstructor
16
+public class ReSendMessageVO {
17
+    /**
18
+     * 短信模版Id
19
+     */
20
+    private String templateId;
21
+    /**
22
+     * 手机号
23
+     */
24
+    private String phone;
25
+    /**
26
+     * 短信id
27
+     */
28
+    private Long id;
29
+    /**
30
+     * 短信模版参数值
31
+     */
32
+    private List<MsSmsTemplateParam> templateParams;
33
+
34
+}

+ 6
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAttachMapper.java 查看文件

@@ -43,4 +43,10 @@ public interface CaseAttachMapper {
43 43
      * @param annexId 附件id
44 44
      */
45 45
     void deleteCaseAttach(@Param("caseId")Long caseId, @Param("type")int type,@Param("annexId") Long annexId);
46
+    /**
47
+     * 根据ids查询
48
+     * @param fileIds
49
+     * @return
50
+     */
51
+    List<CaseAttach> selectByIds(@Param("ids") List<String> fileIds);
46 52
 }

+ 0
- 15
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SendMailRecordMapper.java 查看文件

@@ -1,15 +0,0 @@
1
-package com.ruoyi.wisdomarbitrate.mapper;
2
-
3
-import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
4
-import com.ruoyi.wisdomarbitrate.domain.SendMailRecord;
5
-
6
-import java.util.List;
7
-
8
-public interface SendMailRecordMapper {
9
-    int saveSendMailRecord(SendMailRecord sendMailRecord);
10
-
11
-    List<SendMailRecord>  selectSendMailRecord(SendMailRecord sendMailRecord);
12
-
13
-
14
-
15
-}

+ 36
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SendMailRecordMapper.java 查看文件

@@ -0,0 +1,36 @@
1
+package com.ruoyi.wisdomarbitrate.mapper.sendrecord;
2
+
3
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
4
+
5
+import java.util.List;
6
+
7
+public interface SendMailRecordMapper {
8
+    /**
9
+     * 新增发送邮件记录
10
+     *
11
+     * @param sendMailRecord 发送邮件记录
12
+     * @return 结果
13
+     */
14
+
15
+    int saveSendMailRecord(SendMailRecord sendMailRecord);
16
+/**
17
+     * 查询发送邮件记录
18
+     *
19
+     * @param sendMailRecord 发送邮件记录
20
+     * @return 结果
21
+     */
22
+    List<SendMailRecord>  selectSendMailRecord(SendMailRecord sendMailRecord);
23
+/**
24
+     * 修改发送邮件记录
25
+     *
26
+     * @param sendMailRecord 发送邮件记录
27
+     * @return 结果
28
+     */
29
+   int updateSendMailRecord(SendMailRecord sendMailRecord);
30
+
31
+    /**
32
+     * 根据id查询发送邮件记录
33
+     * @param id
34
+     */
35
+    SendMailRecord querySendMailRecordById(Long id);
36
+}

ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/SmsRecordMapper.java → ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SmsRecordMapper.java 查看文件

@@ -1,6 +1,6 @@
1
-package com.ruoyi.wisdomarbitrate.mapper;
1
+package com.ruoyi.wisdomarbitrate.mapper.sendrecord;
2 2
 
3
-import com.ruoyi.wisdomarbitrate.domain.SmsSendRecord;
3
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
4 4
 import org.apache.ibatis.annotations.Mapper;
5 5
 import org.apache.ibatis.annotations.Param;
6 6
 
@@ -19,4 +19,13 @@ public interface SmsRecordMapper {
19 19
      * @return
20 20
      */
21 21
     int batchSaveSmsSendRecord(@Param("list") List<SmsSendRecord> smsSendRecordList);
22
+    SmsSendRecord selectBySId(@Param("sid") String sid);
23
+    void updateStatus (SmsSendRecord smsSendRecord);
24
+
25
+    /**
26
+     * 通过id查询短信发送记录
27
+     */
28
+    SmsSendRecord selectById(@Param("id") Long id);
29
+
30
+    void update(SmsSendRecord smsSendRecord);
22 31
 }

+ 8
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/shortmessage/MeetingInfoMapper.java 查看文件

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

+ 8
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/shortmessage/MsSendMailHistoryRecordMapper.java 查看文件

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

+ 8
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/shortmessage/MsSmsSendHistoryRecordMapper.java 查看文件

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

+ 22
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsSendHistoryRecordParamMapper.java 查看文件

@@ -0,0 +1,22 @@
1
+package com.ruoyi.wisdomarbitrate.mapper.sms;
2
+
3
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsSendHistoryRecordParam;
4
+import org.apache.ibatis.annotations.Param;
5
+import org.apache.ibatis.annotations.Select;
6
+import tk.mybatis.mapper.common.Mapper;
7
+
8
+import java.util.List;
9
+
10
+public interface MsSmsSendHistoryRecordParamMapper extends Mapper<MsSmsSendHistoryRecordParam> {
11
+    /**
12
+     * 批量新增
13
+     * @param historyRecordParams
14
+     */
15
+    @Select("<script> INSERT INTO sms_send_history_record_param (sms_record_history_id, param_value)\n" +
16
+            "       VALUES\n" +
17
+            "       <foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">\n" +
18
+            "           (#{item.smsRecordHistoryId}, #{item.paramValue})\n" +
19
+            "       </foreach> " +
20
+            "</script>")
21
+    void batchInsert(@Param("list") List<MsSmsSendHistoryRecordParam> historyRecordParams);
22
+}

+ 22
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsSendRecordParamMapper.java 查看文件

@@ -0,0 +1,22 @@
1
+package com.ruoyi.wisdomarbitrate.mapper.sms;
2
+
3
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsSendRecordParam;
4
+import org.apache.ibatis.annotations.Param;
5
+import org.apache.ibatis.annotations.Select;
6
+import tk.mybatis.mapper.common.Mapper;
7
+
8
+import java.util.List;
9
+
10
+public interface MsSmsSendRecordParamMapper extends Mapper<MsSmsSendRecordParam> {
11
+    /**
12
+     * 批量插入
13
+     * @param list
14
+     */
15
+    @Select("<script> INSERT INTO sms_send_record_param (sms_record_id, param_value)\n" +
16
+            "       VALUES\n" +
17
+            "       <foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">\n" +
18
+            "           (#{item.smsRecordId}, #{item.paramValue})\n" +
19
+            "       </foreach> " +
20
+            "</script>")
21
+    void batchInsert(@Param("list") List<MsSmsSendRecordParam> list);
22
+}

+ 8
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsTemplateMapper.java 查看文件

@@ -0,0 +1,8 @@
1
+package com.ruoyi.wisdomarbitrate.mapper.sms;
2
+
3
+
4
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplate;
5
+import tk.mybatis.mapper.common.Mapper;
6
+
7
+public interface MsSmsTemplateMapper extends Mapper<MsSmsTemplate> {
8
+}

+ 19
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sms/MsSmsTemplateParamMapper.java 查看文件

@@ -0,0 +1,19 @@
1
+package com.ruoyi.wisdomarbitrate.mapper.sms;
2
+
3
+
4
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplateParam;
5
+import org.apache.ibatis.annotations.Param;
6
+import org.apache.ibatis.annotations.Select;
7
+import tk.mybatis.mapper.common.Mapper;
8
+
9
+import java.util.List;
10
+
11
+public interface MsSmsTemplateParamMapper extends Mapper<MsSmsTemplateParam> {
12
+    @Select("<script> INSERT INTO sms_template_param (sms_template_id, param,param_name)\n" +
13
+            "       VALUES\n" +
14
+            "       <foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">\n" +
15
+            "           (#{item.smsTemplateId}, #{item.param}, #{item.paramName})\n" +
16
+            "       </foreach> " +
17
+            "</script>")
18
+    void batchInsert(@Param("list") List<MsSmsTemplateParam> templateParams);
19
+}

+ 2
- 7
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java 查看文件

@@ -76,12 +76,7 @@ public interface ICaseApplicationService {
76 76
     int updateCaseLockStatus(CaseApplication caseApplication);
77 77
 
78 78
     AjaxResult uploadZipFile(MultipartFile file, Long id, String username, Long userId);
79
-    /**
80
-     * 查询短信发送记录
81
-     * @param smsSendRecord
82
-     * @return
83
-     */
84
-    List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord);
79
+
85 80
 
86 81
     /**
87 82
      * 获取userSign
@@ -113,7 +108,7 @@ public interface ICaseApplicationService {
113 108
 
114 109
     AjaxResult deleteRoom(  String roomId);
115 110
 
116
-    AjaxResult uploadCaseZipFile(MultipartFile file,Long templateId);
111
+    AjaxResult uploadCaseZipFile(MultipartFile file,Long templateId,Integer applicantType,Integer resType);
117 112
 
118 113
     /**
119 114
      * 根据附件id修改案件id

+ 0
- 15
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ISendMailRecordService.java 查看文件

@@ -1,15 +0,0 @@
1
-package com.ruoyi.wisdomarbitrate.service;
2
-
3
-import com.ruoyi.wisdomarbitrate.domain.SendMailRecord;
4
-
5
-import java.util.List;
6
-
7
-public interface ISendMailRecordService {
8
-
9
-
10
-    List<SendMailRecord> selectSendMailRecordList(SendMailRecord sendMailRecord);
11
-
12
-
13
-
14
-
15
-}

+ 55
- 104
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/AdjudicationServiceImpl.java 查看文件

@@ -2,15 +2,11 @@ package com.ruoyi.wisdomarbitrate.service.impl;
2 2
 
3 3
 import cn.hutool.core.collection.CollectionUtil;
4 4
 import cn.hutool.core.util.StrUtil;
5
-import com.alibaba.fastjson.JSON;
6 5
 import com.alibaba.fastjson.JSONArray;
7 6
 import com.alibaba.fastjson.JSONObject;
8
-import com.deepoove.poi.data.PictureRenderData;
9 7
 import com.google.gson.Gson;
10
-import com.google.gson.JsonArray;
11 8
 import com.google.gson.JsonObject;
12 9
 import com.ruoyi.common.constant.CaseApplicationConstants;
13
-import com.ruoyi.common.constant.FileTransformation;
14 10
 import com.ruoyi.common.core.domain.AjaxResult;
15 11
 import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
16 12
 import com.ruoyi.common.core.domain.entity.SysDictData;
@@ -19,19 +15,20 @@ import com.ruoyi.common.exception.EsignDemoException;
19 15
 import com.ruoyi.common.exception.ServiceException;
20 16
 import com.ruoyi.common.utils.EmailOutUtil;
21 17
 import com.ruoyi.common.utils.ObjectFieldUtils;
22
-import com.ruoyi.common.utils.SmsUtils;
18
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
19
+import com.ruoyi.wisdomarbitrate.domain.shortmessage.MsSendMailHistoryRecord;
20
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SendMailRecordMapper;
21
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
22
+import com.ruoyi.wisdomarbitrate.mapper.shortmessage.MsSendMailHistoryRecordMapper;
23
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
23 24
 import com.ruoyi.common.utils.WordUtil;
24
-import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
25 25
 import com.ruoyi.common.utils.thread.MultipleThreadListParam;
26 26
 import com.ruoyi.system.mapper.SysDictDataMapper;
27 27
 import com.ruoyi.wisdomarbitrate.StringIdsReq;
28 28
 import com.ruoyi.wisdomarbitrate.domain.*;
29
-import com.ruoyi.wisdomarbitrate.domain.dto.CaseApplicationDTO;
30 29
 import com.ruoyi.wisdomarbitrate.domain.entity.CaseAffiliateEntity;
31
-import com.ruoyi.wisdomarbitrate.domain.vo.ArchivesDetailVO;
32 30
 import com.ruoyi.wisdomarbitrate.domain.vo.BookSendVO;
33 31
 import com.ruoyi.wisdomarbitrate.domain.vo.ColumnValue;
34
-import com.ruoyi.wisdomarbitrate.domain.vo.LogisticsInfoVO;
35 32
 import com.ruoyi.wisdomarbitrate.mapper.*;
36 33
 import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
37 34
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
@@ -41,6 +38,7 @@ import com.ruoyi.wisdomarbitrate.utils.SignAward;
41 38
 import lombok.extern.slf4j.Slf4j;
42 39
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
43 40
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
41
+import org.springframework.beans.BeanUtils;
44 42
 import org.springframework.beans.factory.annotation.Autowired;
45 43
 import org.springframework.beans.factory.annotation.Value;
46 44
 import org.springframework.mail.MailSendException;
@@ -49,9 +47,6 @@ import org.springframework.stereotype.Service;
49 47
 import org.springframework.transaction.annotation.Transactional;
50 48
 
51 49
 import java.io.*;
52
-import java.net.HttpURLConnection;
53
-import java.net.URL;
54
-import java.net.URLEncoder;
55 50
 import java.nio.file.Files;
56 51
 import java.nio.file.Path;
57 52
 import java.nio.file.StandardCopyOption;
@@ -63,7 +58,6 @@ import java.util.regex.Matcher;
63 58
 import java.util.regex.Pattern;
64 59
 import java.util.stream.Collectors;
65 60
 
66
-import static com.google.common.io.Files.getFileExtension;
67 61
 import static com.ruoyi.common.utils.SecurityUtils.getUsername;
68 62
 import static com.ruoyi.wisdomarbitrate.utils.CaseLogUtils.insertCaseLog;
69 63
 
@@ -108,6 +102,10 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
108 102
 
109 103
     @Autowired
110 104
     private IAdjudicationService adjudicationService;
105
+    @Value("${spring.mail.username}")
106
+    private String emailFrom;
107
+    @Autowired
108
+    private MsSendMailHistoryRecordMapper   sendMailHistoryRecordMapper;
111 109
     // 仲裁反请求模板内容
112 110
     private final String counterclaim = "在《2022年版仲裁规则》第十八条第(一)项规定的期限内,被申请人向秘书处提交了" + "《仲裁反请求申请书》及证据材料。仲裁委依据《2022年版仲裁规则》第十八条的规定受理了该仲裁反请求案申请。" + "仲裁反请求案件受理后,秘书处向被申请人发送了仲裁反请求通知书及附件,向申请人发送了仲裁反请求通知书及附件、仲裁反请求申请书及附件。";
113 111
     // 财产保全内容
@@ -804,7 +802,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
804 802
         if (caseApplication1 == null) {
805 803
             return AjaxResult.error("未查询到相关案件");
806 804
         }
807
-        Integer currentNode = caseApplication1.getCaseStatus();
805
+        String caseNum = caseApplication1.getCaseNum();
808 806
         List<CaseAttach> caseAttachList = caseAttachMapper.queryCaseAttachList(caseApplication1);
809 807
         Boolean isExistPdf = false;
810 808
         String path=null;
@@ -872,38 +870,10 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
872 870
         caseApplication1.setCaseStatus(CaseApplicationConstants.CASE_FILING);
873 871
         caseApplicationMapper.submitCaseApplication(caseApplication1);
874 872
         //申请人发送邮件
875
-        boolean appEmailFlag = sendCaseEmail(appEmail, path);
876
-        SendMailRecord sendMailRecord = new SendMailRecord();
877
-        sendMailRecord.setCaseId(id);
878
-        sendMailRecord.setMailAddress(appEmail);
879
-        sendMailRecord.setMailContent("您好,审核后的裁决书在附件中请查阅");
880
-//        sendMailRecord.setMailContent("您好,您的{"+caseApplication1.getCaseNum()+"}案件,审核后的裁决书在附件中请查阅");
881
-        sendMailRecord.setMailName("签署后的裁决书");
882
-        sendMailRecord.setSendTime(new Date());
883
-        sendMailRecord.setCreateBy(getUsername());
884
-        if (appEmailFlag) {
885
-            sendMailRecord.setSendStatus(1);
886
-        } else {
887
-            sendMailRecord.setSendStatus(0);
888
-        }
889
-        sendMailRecordMapper.saveSendMailRecord(sendMailRecord);
873
+        boolean appEmailFlag = sendCaseEmail(caseApplication1, appEmail, caseAttachList,caseNum);
874
+
890 875
         // 被申请人发送邮件
891
-        boolean resEmailFlag = sendCaseEmail( resEmail, path);
892
-
893
-        SendMailRecord sendMailRecord1 = new SendMailRecord();
894
-        sendMailRecord1.setCaseId(id);
895
-        sendMailRecord1.setMailAddress(resEmail);
896
-//        sendMailRecord.setMailContent("您好,您的{"+caseApplication1.getCaseNum()+"}案件,审核后的裁决书在附件中请查阅");
897
-        sendMailRecord1.setMailContent("您好,审核后的裁决书在附件中请查阅");
898
-        sendMailRecord1.setMailName("签署后的裁决书");
899
-        sendMailRecord1.setSendTime(new Date());
900
-        sendMailRecord1.setCreateBy(getUsername());
901
-        if (resEmailFlag) {
902
-            sendMailRecord1.setSendStatus(1);
903
-        } else {
904
-            sendMailRecord1.setSendStatus(0);
905
-        }
906
-        sendMailRecordMapper.saveSendMailRecord(sendMailRecord1);
876
+        boolean resEmailFlag = sendCaseEmail(caseApplication1, appEmail, caseAttachList,caseNum);
907 877
         if (!appEmailFlag && !resEmailFlag) {
908 878
             throw new ServiceException("裁决书发送失败");
909 879
         }
@@ -931,28 +901,9 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
931 901
                 operatorList.add(resAffiliateOpt.get());
932 902
             }
933 903
             if (CollectionUtil.isNotEmpty(operatorList)) {
934
-                SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
935
-                request.setTemplateId("1990362");
936 904
                 for (CaseAffiliateEntity affiliate : operatorList) {
937
-                    String telphone = affiliate.getPhone();
938
-                    request.setPhone(telphone);
939
-                    request.setTemplateParamSet(new String[]{affiliate.getName(), caseApplication1.getCaseNum()});
940
-                    Boolean aBoolean = SmsUtils.sendSms(request);
941
-                    // 保存短信发送记录
942
-                    SmsSendRecord smsSendRecord = new SmsSendRecord();
943
-                    smsSendRecord.setCaseId(id);
944
-                    smsSendRecord.setCaseNum(caseApplication1.getCaseNum());
945
-                    smsSendRecord.setPhone(request.getPhone());
946
-                    smsSendRecord.setSendTime(new Date());
947
-                    smsSendRecord.setSendContent("尊敬的" + affiliate.getName() + "用户,您的" + caseApplication1.getCaseNum() + "仲裁案件,裁决书已送达,请知晓,如非本人操作,请忽略本短信。");
948
-                    smsSendRecord.setCreateBy(getUsername());
949
-                    if (aBoolean) {
950
-                        smsSendRecord.setSendStatus(1);
951
-                    } else {
952
-                        smsSendRecord.setSendStatus(0);
953
-                    }
954
-                    smsRecordMapper.saveSmsSendRecord(smsSendRecord);
955 905
 
906
+                    SmsUtils.sendSms(caseApplication1, "1990362", affiliate.getPhone(), new String[]{affiliate.getName(),caseApplication1.getCaseNum()});
956 907
 
957 908
                 }
958 909
 
@@ -967,69 +918,69 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
967 918
         return AjaxResult.success("裁决书送达成功");
968 919
     }
969 920
 
921
+
922
+
970 923
     /**
971 924
      * 通过邮件发送裁决书文件
972 925
      *
973
-     * @param caseApplication1
926
+     * @param
974 927
      */
975
-    private boolean sendCaseEmail(CaseApplication caseApplication1, String email, List<CaseAttach> caseAttachList) {
928
+    private boolean sendCaseEmail(CaseApplication caseApplication, String email, List<CaseAttach> caseAttachList,  String caseNum) {
976 929
         List<File> fileList = new ArrayList<>();
977 930
         File file = null;
931
+        Long fileId = null;
932
+        Map<String,String> fileNameMap = new HashMap<>();
978 933
         if (caseAttachList != null && caseAttachList.size() > 0) {
979 934
             for (CaseAttach caseAttach : caseAttachList) {
980
-                if (caseAttach.getAnnexType() == 3) {
981
-                    String annexName = caseAttach.getAnnexName();
982
-                    String prefix = "/profile/upload/";
983
-                    int startIndex = prefix.length();
984
-                    String path = caseAttach.getAnnexPath() + annexName.substring(startIndex);
985
-                    // todo 部署放开
935
+                if (Objects.equals(caseAttach.getAnnexType(), 3)) {
936
+                    String annexPath = caseAttach.getAnnexPath();
937
+                    String path = annexPath.replace("/profile/upload/","/home/ruoyi/uploadPath/upload/");
986 938
                     file = new File(path);
987
-//                    file = new File("D:\\home\\ruoyi\\uploadPath\\upload\\2023\\09\\b10b20d66cfa44df8995c3999e3b6266.pdf");
988 939
                     fileList.add(file);
940
+                    fileId = caseAttach.getAnnexId();
941
+                    fileNameMap.put(file.getPath(), caseAttach.getAnnexName());
989 942
                     System.out.println("文件长度==================:" + file.length());
990 943
                 }
991 944
             }
992 945
         }
946
+        SendMailRecord sendMailRecord = new SendMailRecord();
947
+        sendMailRecord.setCaseId(caseApplication.getId());
948
+        sendMailRecord.setCaseNum(caseNum);
949
+        sendMailRecord.setMailAddress(email);
950
+        sendMailRecord.setMailContent("您好,审核后的调解书在附件中请查阅");
951
+        sendMailRecord.setMailName("签署后的调解书");
952
+        sendMailRecord.setSendTime(new Date());
953
+        sendMailRecord.setMailSubject("签署后的调解书");
954
+        sendMailRecord.setMailFromAddress(emailFrom);
955
+        sendMailRecord.setFileIds(fileId != null ? fileId.toString() : "");
956
+//        sendMailRecord.setCreateBy(SecurityUtils.getUsername());
957
+        sendMailRecord.setCreateTime(new Date());
958
+        sendMailRecord.setMailFromAddress(emailFrom);
993 959
 
994 960
         if (file != null && file.exists()) {
995 961
             try {
996
-                Boolean aBoolean = emailOutUtil.sendEmil(email, "您好,审核后的裁决书在附件中请查阅", "签署后的裁决书", fileList, null);
997
-                if (aBoolean) {
998
-                    return Boolean.TRUE;
999
-                }
1000
-            } catch (Exception e) {
1001
-                System.out.println("邮件发送失败++++++++++++++++++++++++++++++++");
1002
-                System.out.println(e.toString());
1003
-                return Boolean.FALSE;
1004
-            }
1005
-        }
1006
-        return Boolean.FALSE;
1007
-    }
962
+                Boolean aBoolean = emailOutUtil.sendEmil(email, "您好,审核后的调解书在附件中请查阅", "签署后的调解书", fileList, null,fileNameMap);
1008 963
 
1009
-    /**
1010
-     * 通过邮件发送裁决书文件
1011
-     *
1012
-     * @param
1013
-     */
1014
-    private boolean sendCaseEmail(String email, String path) {
1015
-        if(StrUtil.isEmpty(path)){
1016
-            return Boolean.FALSE;
1017
-        }
1018
-        List<File> fileList = new ArrayList<>();
1019
-        File   file = new File(path);
1020
-        fileList.add(file);
1021
-        System.out.println("文件长度==================:" + file.length());
1022
-
1023
-
1024
-        if (file != null && file.exists()) {
1025
-            try {
1026
-                Boolean aBoolean = emailOutUtil.sendEmil(email, "您好,审核后的裁决书在附件中请查阅", "签署后的裁决书", fileList, null);
1027 964
                 if (aBoolean) {
965
+                    sendMailRecord.setSendStatus(1);
966
+                    sendMailRecordMapper.saveSendMailRecord(sendMailRecord);
967
+                    MsSendMailHistoryRecord msSendMailHistoryRecord = new MsSendMailHistoryRecord();
968
+                    BeanUtils.copyProperties(sendMailRecord, msSendMailHistoryRecord);
969
+                    msSendMailHistoryRecord.setParentId(sendMailRecord.getId());
970
+                    msSendMailHistoryRecord.setId(null);
971
+                    sendMailHistoryRecordMapper.insertSelective(msSendMailHistoryRecord);
1028 972
                     return Boolean.TRUE;
1029 973
                 }
1030 974
             } catch (Exception e) {
1031 975
                 System.out.println("邮件发送失败++++++++++++++++++++++++++++++++");
1032 976
                 System.out.println(e.toString());
977
+                sendMailRecord.setSendStatus(0);
978
+                MsSendMailHistoryRecord msSendMailHistoryRecord = new MsSendMailHistoryRecord();
979
+                BeanUtils.copyProperties(sendMailRecord, msSendMailHistoryRecord);
980
+                msSendMailHistoryRecord.setParentId(sendMailRecord.getId());
981
+                msSendMailHistoryRecord.setId(null);
982
+                sendMailHistoryRecordMapper.insertSelective(msSendMailHistoryRecord);
983
+                sendMailRecordMapper.saveSendMailRecord(sendMailRecord);
1033 984
                 return Boolean.FALSE;
1034 985
             }
1035 986
         }

+ 4
- 24
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java 查看文件

@@ -3,15 +3,14 @@ package com.ruoyi.wisdomarbitrate.service.impl;
3 3
 import cn.hutool.core.collection.CollectionUtil;
4 4
 import cn.hutool.core.util.StrUtil;
5 5
 import com.ruoyi.common.core.domain.AjaxResult;
6
-import com.ruoyi.common.core.domain.entity.SysDept;
7 6
 import com.ruoyi.common.enums.UpdateSubmitStatus;
8 7
 import com.ruoyi.common.enums.YesOrNoEnum;
9 8
 import com.ruoyi.common.utils.ObjectFieldUtils;
10
-import com.ruoyi.common.utils.SmsUtils;
9
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
10
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
11 11
 import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
12 12
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
13 13
 import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
14
-import com.ruoyi.wisdomarbitrate.domain.SmsSendRecord;
15 14
 import com.ruoyi.wisdomarbitrate.domain.vo.ColumnValue;
16 15
 import com.ruoyi.wisdomarbitrate.domain.vo.CompareCaseVO;
17 16
 import com.ruoyi.wisdomarbitrate.domain.vo.UpdateSubmitVO;
@@ -210,30 +209,11 @@ public class CaseApplicationLogServiceImpl implements CaseApplicationLogService
210 209
             return AjaxResult.success();
211 210
         }
212 211
 
213
-        SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
214
-        request.setTemplateId("1996949");
215
-        request.setPhone(caseAffiliate.getContactTelphone());
216
-        request.setTemplateParamSet(new String[]{caseAffiliate.getName(), logCase.getCaseNum(),vo.getReason()});
217
-        Boolean aBoolean = SmsUtils.sendSms(request);
218
-        //保存短信发送记录
219
-        SmsSendRecord smsSendRecord = new SmsSendRecord();
220
-        smsSendRecord.setCaseId(caseAffiliate.getCaseAppliId());
221 212
         CaseApplication caseApplication = new CaseApplication();
222 213
         caseApplication.setId(caseAffiliate.getCaseAppliId());
223 214
         caseApplication = caseApplicationMapper.selectCaseApplication(caseApplication);
224
-        smsSendRecord.setCaseNum(caseApplication.getCaseNum());
225
-        smsSendRecord.setPhone(request.getPhone());
226
-        smsSendRecord.setSendTime(new Date());
227
-        // 1996949 审核案件结果通知 尊敬的{1}用户,您的{2}仲裁案件,审核未通过,理由为{3},请知晓,如非本人操作,请忽略本短信
228
-        String content = "尊敬的" + caseAffiliate.getName() + ",您的"+logCase.getCaseNum()+"仲裁案件,审核未通过,理由为"+vo.getReason()+",请知晓,如非本人操作,请忽略本短信。";
229
-        smsSendRecord.setSendContent(content);
230
-        smsSendRecord.setCreateBy(getUsername());
231
-        if (aBoolean) {
232
-            smsSendRecord.setSendStatus(1);
233
-        } else {
234
-            smsSendRecord.setSendStatus(0);
235
-        }
236
-        smsRecordMapper.saveSmsSendRecord(smsSendRecord);
215
+
216
+        SmsUtils.sendSms(caseApplication, "1996949", caseAffiliate.getContactTelphone(), new String[]{caseAffiliate.getName(),caseApplication.getCaseNum(),vo.getReason()});
237 217
         return AjaxResult.success();
238 218
     }
239 219
 

+ 80
- 335
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java 查看文件

@@ -33,30 +33,25 @@ import com.ruoyi.wisdomarbitrate.domain.entity.CaseAffiliateEntity;
33 33
 import com.ruoyi.wisdomarbitrate.domain.vo.*;
34 34
 import com.ruoyi.wisdomarbitrate.domain.*;
35 35
 import com.ruoyi.wisdomarbitrate.mapper.*;
36
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
36 37
 import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
37 38
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
38 39
 import com.ruoyi.wisdomarbitrate.utils.SignAward;
40
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
39 41
 import com.ruoyi.wisdomarbitrate.utils.UnZipFileUtils;
40 42
 import com.ruoyi.wisdomarbitrate.utils.ZipFileUtils;
41 43
 import com.tencentyun.TLSSigAPIv2;
42 44
 
43
-import org.springframework.beans.BeanUtils;
44 45
 import org.springframework.beans.factory.annotation.Autowired;
45 46
 import org.springframework.beans.factory.annotation.Value;
46 47
 import org.springframework.stereotype.Service;
47 48
 import org.springframework.transaction.annotation.Transactional;
48 49
 import org.springframework.web.multipart.MultipartFile;
49
-import tk.mybatis.mapper.entity.Example;
50 50
 
51 51
 import java.io.*;
52 52
 import java.math.BigDecimal;
53
-import java.math.RoundingMode;
54
-import java.nio.file.Files;
55
-import java.nio.file.Path;
56
-import java.nio.file.StandardCopyOption;
57 53
 import java.text.SimpleDateFormat;
58 54
 import java.time.LocalDate;
59
-import java.time.ZoneId;
60 55
 import java.util.*;
61 56
 import java.util.List;
62 57
 import java.util.concurrent.atomic.AtomicInteger;
@@ -65,8 +60,6 @@ import java.util.regex.Pattern;
65 60
 import java.util.stream.Collectors;
66 61
 import java.util.zip.ZipOutputStream;
67 62
 
68
-import static cn.hutool.system.SystemUtil.getUserInfo;
69
-import static com.google.common.io.Files.getFileExtension;
70 63
 import static com.ruoyi.common.constant.CaseApplicationConstants.HEAD_CHECK_ARBITRATION;
71 64
 import static com.ruoyi.common.core.domain.AjaxResult.error;
72 65
 import static com.ruoyi.common.core.domain.AjaxResult.success;
@@ -206,7 +199,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
206 199
             ) {
207 200
                 roleIds = null;
208 201
             }
209
-            if ("申请人".equals(role.getRoleName()) || "被申请人".equals(role.getRoleName())) {
202
+            if ("申请人" .equals(role.getRoleName()) || "被申请人" .equals(role.getRoleName())) {
210 203
                 caseApplication.setUserId(userId);
211 204
             }
212 205
             if (StrUtil.contains(role.getRoleName(), "代理")) {
@@ -272,8 +265,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
272 265
         List<Long> caseIds = list.stream().map(CaseApplication::getId).collect(Collectors.toList());
273 266
         List<CaseAffiliateEntity> affiliatesList = caseAffiliateMapper.selectCaseAffiliateByCaseIds(caseIds);
274 267
         // 根据案件id分组
275
-        Map<Long, List<CaseAffiliateEntity>> affiliateMap=new HashMap<>();
276
-        if(CollectionUtil.isNotEmpty(affiliatesList)){
268
+        Map<Long, List<CaseAffiliateEntity>> affiliateMap = new HashMap<>();
269
+        if (CollectionUtil.isNotEmpty(affiliatesList)) {
277 270
             affiliateMap = affiliatesList.stream().collect(Collectors.groupingBy(CaseAffiliateEntity::getCaseAppliId));
278 271
         }
279 272
         for (CaseApplication vo : list) {
@@ -289,7 +282,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
289 282
                     vo.setAgentFlag(0);
290 283
                 } else {
291 284
                     // todo 如果案件流程id变了需要改
292
-                    if (StrUtil.equals(SecurityUtils.getUsername(), vo.getCreateBy()) && agentFlag ) {
285
+                    if (StrUtil.equals(SecurityUtils.getUsername(), vo.getCreateBy()) && agentFlag) {
293 286
                         vo.setAgentFlag(1);
294 287
                     } else {
295 288
                         vo.setAgentFlag(0);
@@ -299,7 +292,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
299 292
                 vo.setAgentFlag(0);
300 293
             }
301 294
             // 设置申请人和被申请人
302
-            if ( affiliateMap.containsKey(vo.getId())) {
295
+            if (affiliateMap.containsKey(vo.getId())) {
303 296
                 List<CaseAffiliateEntity> affiliates = affiliateMap.get(vo.getId());
304 297
                 StringBuilder applicantName = new StringBuilder();
305 298
                 StringBuilder respondentName = new StringBuilder();
@@ -353,7 +346,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
353 346
         CaseApplication caseApplication = new CaseApplication();
354 347
         List<Integer> caseStatusList = new ArrayList<>();
355 348
         if (StrUtil.equals(SecurityUtils.getUsername(), "admin")) {
356
-            caseApplication.setCreateBy(String.valueOf(sysUser.getUserName()));
349
+           // caseApplication.setCreateBy(String.valueOf(sysUser.getUserName()));
357 350
             toDoCount = caseApplicationMapper.selectTodoCountByRole(caseApplication, caseStatusList, null);
358 351
             if (toDoCount == null) {
359 352
                 toDoCount = new ToDoCount();
@@ -382,7 +375,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
382 375
                 ) {
383 376
                     roleIds = null;
384 377
                 }
385
-                if ("申请人".equals(role.getRoleName()) || "被申请人".equals(role.getRoleName())) {
378
+                if ("申请人" .equals(role.getRoleName()) || "被申请人" .equals(role.getRoleName())) {
386 379
                     caseApplication.setUserId(userId);
387 380
                 }
388 381
                 if (StrUtil.contains(role.getRoleName(), "代理")) {
@@ -508,18 +501,15 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
508 501
     @Override
509 502
     @Transactional
510 503
     public int updateHeardate(CaseApplication caseApplication) {
511
-     //   Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
504
+        //   Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
512 505
 //        caseApplication.setCaseStatus(CaseApplicationConstants.PENDING_OPENCOURT_HEAR);
513 506
         caseApplication.setCaseStatus(CaseApplicationConstants.PENDING_OPENCOURT_HEAR);
514 507
         caseApplication.setLockStatus(1);
515 508
         int rows = caseApplicationMapper.submitCaseApplication(caseApplication);
516 509
         //1975139	修改开庭时间通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已改为{3},请知晓,如非本人操作,请忽略本短信
517
-        //发送短信通知
518
-        SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
519
-        request.setTemplateId("1975139");
520 510
 
521 511
         // 发送开庭日期通知短信
522
-        sendHearDateMessage(caseApplication, request, "1975139");
512
+        sendHearDateMessage(caseApplication, "1975139");
523 513
         // 新增日志
524 514
         insertCaseLog(caseApplication.getId(), CaseApplicationConstants.MODIFY_HEARDATE, "");
525 515
         return rows;
@@ -676,9 +666,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
676 666
 
677 667
                     String substrTwo = filestr.substring(allindex.get(6) + 1, allindex.get(7));
678 668
                     Integer annexType = null;
679
-                    if ("申请书".equals(substrTwo)) {
669
+                    if ("申请书" .equals(substrTwo)) {
680 670
                         annexType = 1;
681
-                    } else if ("证据材料".equals(substrTwo)) {
671
+                    } else if ("证据材料" .equals(substrTwo)) {
682 672
                         annexType = 2;
683 673
                     }
684 674
                     String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
@@ -720,10 +710,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
720 710
 
721 711
     }
722 712
 
723
-    @Override
724
-    public List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord) {
725
-        return smsRecordMapper.getSmsSendRecord(smsSendRecord);
726
-    }
713
+
727 714
 
728 715
 
729 716
     /**
@@ -1176,98 +1163,6 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1176 1163
 //    }
1177 1164
 
1178 1165
 
1179
-    /**
1180
-     * 组装申请代理人信息
1181
-     *
1182
-     * @param caseAffiliate
1183
-     */
1184
-    private String buildAgentInfo(CaseAffiliate caseAffiliate, Long roleId) {
1185
-        if (caseAffiliate.getIdentityType() == 1 && StrUtil.isNotEmpty(caseAffiliate.getNameAgent())) {
1186
-
1187
-            // 组装申请机构代理人信息,用户表新增并且和部门关联
1188
-            // 根据代理人手机号去用户表查询,有修改,么有新增
1189
-            SysUser agentUser = sysUserMapper.selectUserByPhone(caseAffiliate.getContactTelphoneAgent());
1190
-            if (agentUser == null) {
1191
-                agentUser = new SysUser();
1192
-                agentUser.setIdCard(caseAffiliate.getIdentityNumAgent());
1193
-                agentUser.setNickName(caseAffiliate.getNameAgent());
1194
-                agentUser.setUserName(caseAffiliate.getContactTelphoneAgent());
1195
-                agentUser.setPhonenumber(caseAffiliate.getContactTelphoneAgent());
1196
-                agentUser.setPassword(SecurityUtils.encryptPassword("abc123456"));
1197
-                agentUser.setDeptId(Long.valueOf(caseAffiliate.getApplicationOrganId()));
1198
-                int insertUserRow = sysUserMapper.insertUser(agentUser);
1199
-                // 新增角色为申请人
1200
-                ArrayList<SysUserRole> sysUserRoles = new ArrayList<>();
1201
-                SysUserRole sysUserRole = new SysUserRole();
1202
-                sysUserRole.setUserId(agentUser.getUserId());
1203
-                sysUserRole.setRoleId(roleId);
1204
-                sysUserRoles.add(sysUserRole);
1205
-                if (CollectionUtil.isNotEmpty(sysUserRoles)) {
1206
-                    userRoleMapper.batchUserRole(sysUserRoles);
1207
-                }
1208
-                if (insertUserRow > 0) {
1209
-                    caseAffiliate.setApplicantAgentUserId(String.valueOf(agentUser.getUserId()));
1210
-                    // 尊敬的{1},您的代理的案件已接入仲裁系统,复制访问https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 进入小程序进行认证注册。如非本人操作,请忽略本短信
1211
-                    SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
1212
-                    request.setCaseId(caseAffiliate.getCaseAppliId());
1213
-                    request.setTemplateId("1956159");
1214
-                    request.setPhone(agentUser.getPhonenumber());
1215
-                    request.setTemplateParamSet(new String[]{agentUser.getNickName()});
1216
-                    Boolean aBoolean = SmsUtils.sendSms(request);
1217
-
1218
-                    //保存短信发送记录
1219
-                    SmsSendRecord smsSendRecord = new SmsSendRecord();
1220
-                    smsSendRecord.setCaseId(caseAffiliate.getCaseAppliId());
1221
-                    CaseApplication caseApplication = new CaseApplication();
1222
-                    caseApplication.setId(caseAffiliate.getCaseAppliId());
1223
-                    caseApplication = caseApplicationMapper.selectCaseApplication(caseApplication);
1224
-                    smsSendRecord.setCaseNum(caseApplication.getCaseNum());
1225
-                    smsSendRecord.setPhone(request.getPhone());
1226
-                    smsSendRecord.setSendTime(new Date());
1227
-                    String content = "尊敬的" + agentUser.getNickName() + ",您的代理的案件已接入仲裁系统,复制访问https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 进入小程序进行认证注册。如非本人操作,请忽略本短信";
1228
-                    smsSendRecord.setSendContent(content);
1229
-                    smsSendRecord.setCreateBy(getUsername());
1230
-                    if (aBoolean) {
1231
-                        smsSendRecord.setSendStatus(1);
1232
-                    } else {
1233
-                        smsSendRecord.setSendStatus(0);
1234
-                    }
1235
-                    smsRecordMapper.saveSmsSendRecord(smsSendRecord);
1236
-                }
1237
-            } else if (null != agentUser.getDeptId() && !String.valueOf(agentUser.getDeptId()).equals(caseAffiliate.getApplicationOrganId())) {
1238
-//                return "该申请代理人已在"+agentUser.getDeptName()+"申请机构下存在,请检查填写信息是否正确";
1239
-                if (null != agentUser.getDept() && StrUtil.isNotEmpty(agentUser.getDept().getDeptName())) {
1240
-                    return "该申请代理人已在【" + agentUser.getDept().getDeptName() + "】申请机构下存在,请检查填写信息是否正确";
1241
-                } else {
1242
-                    return "该申请代理人已存在,与申请机构不匹配,请检查填写信息是否正确";
1243
-                }
1244
-            } else if (null != agentUser.getDeptId() && String.valueOf(agentUser.getDeptId()).equals(caseAffiliate.getApplicationOrganId())) {
1245
-                // 同步用户表和案件关联人表的手机号和名称
1246
-                caseAffiliate.setContactTelphoneAgent(agentUser.getPhonenumber());
1247
-                caseAffiliate.setNameAgent(agentUser.getNickName());
1248
-                caseAffiliate.setApplicantAgentUserId(String.valueOf(agentUser.getUserId()));
1249
-                if (StrUtil.isNotEmpty(agentUser.getIdCard())) {
1250
-                    caseAffiliate.setIdentityNumAgent(agentUser.getIdCard());
1251
-                } else {
1252
-                    caseAffiliate.setIdentityNumAgent(caseAffiliate.getIdentityNumAgent());
1253
-                }
1254
-                List<Long> longList = new ArrayList<>();
1255
-                // 新增角色为申请人
1256
-                if (CollectionUtil.isNotEmpty(agentUser.getRoles())) {
1257
-                    longList = agentUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList());
1258
-                    if (!longList.contains(roleId)) {
1259
-                        insertAgentUserRole(agentUser, roleId);
1260
-                    }
1261
-                } else {
1262
-
1263
-                    insertAgentUserRole(agentUser, roleId);
1264
-                }
1265
-
1266
-            }
1267
-
1268
-        }
1269
-        return null;
1270
-    }
1271 1166
 
1272 1167
     /**
1273 1168
      * 新增角色为申请人
@@ -1301,7 +1196,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1301 1196
             // 转换为Map<CaseId,List<CaseAffiliate>>形式
1302 1197
             Map<Long, List<CaseAffiliateEntity>> caseAffiliateMap = caseAffiliates.stream().collect(Collectors.groupingBy(CaseAffiliateEntity::getCaseAppliId));
1303 1198
             for (Long id : ids) {
1304
-            //    Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(id);
1199
+                //    Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(id);
1305 1200
                 // 必填校验
1306 1201
                 CaseApplication caseApplication = applicationMap.get(id);
1307 1202
                 // 基本字段校验
@@ -1401,15 +1296,11 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1401 1296
         if (caseAttachList != null && caseAttachList.size() > 0) {
1402 1297
             for (CaseAttach caseAttach : caseAttachList) {
1403 1298
                 String annexPath = caseAttach.getAnnexPath();
1404
-                if(StrUtil.isEmpty(annexPath)){
1299
+                if (StrUtil.isEmpty(annexPath)) {
1405 1300
                     continue;
1406 1301
                 }
1407
-                //    String annexPath =annexName.replace("/profile/","/home/ruoyi/uploadPath/");
1408
-
1409
-                    caseAttach.setAnnexPath(annexPath);
1410
-                    caseAttach.setAnnexName(caseAttach.getAnnexName());
1411
-
1412
-
1302
+                caseAttach.setAnnexPath(annexPath);
1303
+                caseAttach.setAnnexName(caseAttach.getAnnexName());
1413 1304
             }
1414 1305
         }
1415 1306
         caseApplicationselect.setCaseAttachList(caseAttachList);
@@ -1423,8 +1314,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1423 1314
             List<CaseAffiliateBase> resList = new ArrayList<>();
1424 1315
             affiliateVO.setApplicant(applicantList);
1425 1316
             affiliateVO.setRes(resList);
1426
-            StringBuffer applicantName=new StringBuffer();
1427
-            StringBuffer respondentName=new StringBuffer();
1317
+            StringBuffer applicantName = new StringBuffer();
1318
+            StringBuffer respondentName = new StringBuffer();
1428 1319
             affliateMap.forEach((k, v) -> {
1429 1320
                 CaseAffiliateBase affiliateBase = null;
1430 1321
 
@@ -1445,7 +1336,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1445 1336
                                 }
1446 1337
                             } else {
1447 1338
                                 // 组织机构
1448
-                                if ( StrUtil.isNotEmpty(affiliate.getApplicantOrgName())
1339
+                                if (StrUtil.isNotEmpty(affiliate.getApplicantOrgName())
1449 1340
                                         && !applicantName.toString().contains(affiliate.getApplicantOrgName() + Constants.CN_SPLIT_COMMA)) {
1450 1341
                                     applicantName.append(affiliate.getApplicantOrgName()).append(Constants.CN_SPLIT_COMMA);
1451 1342
                                 }
@@ -1463,14 +1354,14 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1463 1354
                             }
1464 1355
                             resBase.setRes(affiliate);
1465 1356
                             if (affiliate.getOrganizeFlag() == null || affiliate.getOrganizeFlag() != 1) {
1466
-                                if ( StrUtil.isNotEmpty(affiliate.getName())
1357
+                                if (StrUtil.isNotEmpty(affiliate.getName())
1467 1358
                                         && !respondentName.toString().contains(affiliate.getName() + Constants.CN_SPLIT_COMMA)) {
1468 1359
 
1469 1360
                                     respondentName.append(affiliate.getName()).append(Constants.CN_SPLIT_COMMA);
1470 1361
                                 }
1471 1362
                             } else {
1472 1363
                                 // 组织机构
1473
-                                if ( StrUtil.isNotEmpty(affiliate.getApplicantOrgName()) && !respondentName.toString().contains(affiliate.getApplicantOrgName() + Constants.CN_SPLIT_COMMA)) {
1364
+                                if (StrUtil.isNotEmpty(affiliate.getApplicantOrgName()) && !respondentName.toString().contains(affiliate.getApplicantOrgName() + Constants.CN_SPLIT_COMMA)) {
1474 1365
                                     respondentName.append(affiliate.getApplicantOrgName()).append(Constants.CN_SPLIT_COMMA);
1475 1366
                                 }
1476 1367
                             }
@@ -1495,8 +1386,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1495 1386
                 }
1496 1387
             });
1497 1388
             caseApplicationselect.setAffiliate(affiliateVO);
1498
-            caseApplicationselect.setApplicantName(removeLastComma(applicantName.toString(),Constants.CN_SPLIT_COMMA));
1499
-            caseApplicationselect.setRespondentName(removeLastComma(respondentName.toString(),Constants.CN_SPLIT_COMMA));
1389
+            caseApplicationselect.setApplicantName(removeLastComma(applicantName.toString(), Constants.CN_SPLIT_COMMA));
1390
+            caseApplicationselect.setRespondentName(removeLastComma(respondentName.toString(), Constants.CN_SPLIT_COMMA));
1500 1391
         }
1501 1392
         caseApplicationselect.setArbitrateRecord(arbitrateRecordselect);
1502 1393
         if (arbitrateRecordselect != null) {
@@ -1715,7 +1606,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1715 1606
         if (caseApplicationselect == null) {
1716 1607
             throw new ServiceException("案件不存在");
1717 1608
         }
1718
-    //    Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1609
+        //    Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1719 1610
         for (Arbitrator arbitrator : caseApplication.getArbitrators()) {
1720 1611
 
1721 1612
             caseApplication.setCaseStatus(CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL);
@@ -1736,7 +1627,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1736 1627
     @Override
1737 1628
     @Transactional
1738 1629
     public int verificationArbitrateRecord(CaseApplication caseApplication) {
1739
-      //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1630
+        //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1740 1631
         // 秘书核验裁决书,流转到待仲裁员审核裁决书
1741 1632
         caseApplication.setCaseStatus(HEAD_CHECK_ARBITRATION);
1742 1633
         int rows = caseApplicationMapper.submitCaseApplication(caseApplication);
@@ -1758,7 +1649,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1758 1649
     @Transactional
1759 1650
     public AjaxResult checkArbitrateRecord(CaseApplication caseApplication) {
1760 1651
         int rows = 0;
1761
-       // Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1652
+        // Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1762 1653
         ArbitrateRecord arbitrateRecord = caseApplication.getArbitrateRecord();
1763 1654
         arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecord);
1764 1655
         Integer agreeOrNotCheck = caseApplication.getAgreeOrNotCheck();
@@ -1771,10 +1662,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1771 1662
                     for (CaseAttach caseAttach : caseAttachList) {
1772 1663
                         if (caseAttach.getAnnexType() == 3) {
1773 1664
                             String annexPath = caseAttach.getAnnexPath();
1774
-                            if(StrUtil.isEmpty(annexPath)){
1665
+                            if (StrUtil.isEmpty(annexPath)) {
1775 1666
                                 throw new ServiceException("文件找不到");
1776 1667
                             }
1777
-                            String path = annexPath.replace("/profile/","/home/ruoyi/uploadPath/");
1668
+                            String path = annexPath.replace("/profile/", "/home/ruoyi/uploadPath/");
1778 1669
                             // System.out.println("这是查询到的裁决书路径" + path);
1779 1670
                             // String path = "D:\\home\\新裁决书模板.docx";
1780 1671
                             //获取文件上传地址
@@ -1974,7 +1865,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
1974 1865
     @Override
1975 1866
     @Transactional
1976 1867
     public AjaxResult arbitratorCheckArbitrateRecord(CaseApplication caseApplication) {
1977
-      //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1868
+        //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
1978 1869
         // 同意后状态改为待部门长审核裁决书(CHECK_ARBITRATION = 12),拒绝改为待秘书核验裁决书(VERPRIF_ARBITRATION = 11)
1979 1870
         int rows = 0;
1980 1871
         Integer agreeOrNotCheck = caseApplication.getAgreeOrNotCheck();
@@ -2011,7 +1902,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2011 1902
         //提交立案审查
2012 1903
         int rows = 0;
2013 1904
         for (Long id : ids) {
2014
-       //     Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(id);
1905
+            //     Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(id);
2015 1906
             String notes = "";
2016 1907
             CaseApplication caseApplication = new CaseApplication();
2017 1908
             caseApplication.setId(id);
@@ -2038,7 +1929,6 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2038 1929
                 //查询案件详细信息
2039 1930
                 CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
2040 1931
                 //发短信给申请人
2041
-                SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
2042 1932
                 List<CaseAffiliateEntity> affiliates = selectAfflicatesByCaseId(id);
2043 1933
                 if (affiliates != null && affiliates.size() > 0) {
2044 1934
                     // 申请操作人
@@ -2047,27 +1937,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2047 1937
 
2048 1938
                         CaseAffiliateEntity affiliate = applicantAffiliateOpt.get();
2049 1939
                         String caseName = "仲裁";
2050
-                        String caseNum = caseApplication1.getCaseNum();
2051
-                        request.setPhone(affiliate.getPhone());
2052
-                        request.setTemplateId("2018697");
2053
-                        String name = affiliate.getName();
2054
-                        request.setTemplateParamSet(new String[]{name, caseName, caseNum, caseCheckReject});
2055
-                        Boolean aBoolean = SmsUtils.sendSms(request);
2056
-                        //保存短信发送记录
2057
-                        SmsSendRecord smsSendRecord = new SmsSendRecord();
2058
-                        smsSendRecord.setCaseId(caseApplication.getId());
2059
-                        smsSendRecord.setCaseNum(caseNum);
2060
-                        smsSendRecord.setPhone(request.getPhone());
2061
-                        smsSendRecord.setSendTime(new Date());
2062
-                        String content = "尊敬的" + name + "用户,您的" + caseName + "案件" + caseNum + "已拒绝,拒接原因:" + caseCheckReject;
2063
-                        smsSendRecord.setSendContent(content);
2064
-                        smsSendRecord.setCreateBy(getUsername());
2065
-                        if (aBoolean) {
2066
-                            smsSendRecord.setSendStatus(1);
2067
-                        } else {
2068
-                            smsSendRecord.setSendStatus(0);
2069
-                        }
2070
-                        smsRecordMapper.saveSmsSendRecord(smsSendRecord);
1940
+                        SmsUtils.sendSms(caseApplication1, "2018697",affiliate.getPhone(), new String[]{affiliate.getName(),caseName,caseApplication1.getCaseNum(),caseCheckReject});
1941
+
2071 1942
                     }
2072 1943
                 }
2073 1944
             }
@@ -2098,7 +1969,6 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2098 1969
         }
2099 1970
         String returnResult = "短信发送成功";
2100 1971
         // 需要申请模板,申请人,被申请人发送短信通知
2101
-        SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
2102 1972
         String startFormat = "";
2103 1973
         String endFormat = "";
2104 1974
         // 创建房间短信通知
@@ -2113,40 +1983,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2113 1983
             endFormat = sdf.format(endDate);
2114 1984
         }
2115 1985
         // 预约会议短信模板
2116
-        request.setTemplateId("1983711");
2117
-
2118
-
2119 1986
         for (CaseAffiliateEntity affiliate : afflicates) {
2120 1987
             if (affiliate.getOperatorFlag() == 1) {
2121 1988
                 // 操作人发送短信短信
2122
-
2123
-                request.setPhone(affiliate.getPhone());
2124
-                //  1983711 开庭审理预约会议短信通知  尊敬的{1}用户,您的{2}仲裁案件,开庭审理房间号为{3},会议时间为{4},请点击https://txroom.xayunmei.com/#/home, 请知晓,如非本人操作,请忽略本短信。
2125
-                request.setTemplateParamSet(new String[]{affiliate.getName(), caseApplicationselect.getCaseNum(), messageVO.getRoomNo(), startFormat + "-" + endFormat});
2126
-
2127
-                Boolean aBoolean = SmsUtils.sendSms(request);
2128
-                //保存短信发送记录
2129
-                SmsSendRecord smsSendRecord = new SmsSendRecord();
2130
-                smsSendRecord.setCaseId(messageVO.getId());
2131
-                smsSendRecord.setCaseNum(caseApplicationselect.getCaseNum());
2132
-                smsSendRecord.setPhone(request.getPhone());
2133
-                smsSendRecord.setSendTime(new Date());
2134
-                String content = "尊敬的" + affiliate.getName() + "用户,您的" + caseApplicationselect.getCaseNum() + "仲裁案件,开庭审理房间号为" + messageVO.getRoomNo() + "会议时间为" + startFormat + "-" + endFormat + ",请点击https://txroom.xayunmei.com/#/home, 请知晓,如非本人操作,请忽略本短信。";
2135
-                smsSendRecord.setSendContent(content);
2136
-
2137
-                String userName;
2138
-                try {
2139
-                    userName = getUsername();
2140
-                } catch (Exception e) {
2141
-                    userName = "admin";
2142
-                }
2143
-                smsSendRecord.setCreateBy(userName);
2144
-                if (aBoolean) {
2145
-                    smsSendRecord.setSendStatus(1);
2146
-                } else {
2147
-                    smsSendRecord.setSendStatus(0);
2148
-                }
2149
-                smsRecordMapper.saveSmsSendRecord(smsSendRecord);
1989
+                SmsUtils.sendSms(caseApplicationselect, "1983711", affiliate.getPhone(), new String[]{affiliate.getName(), caseApplicationselect.getCaseNum(), messageVO.getRoomNo(), startFormat + "-" + endFormat});
2150 1990
             }
2151 1991
         }
2152 1992
         return returnResult;
@@ -2517,7 +2357,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2517 2357
         List<CaseApplication> caseApplications1 = caseApplicationMapper.listCaseApplicationByBatchNumber(caseApplication1);
2518 2358
         if (caseApplications1 != null && caseApplications1.size() > 0) {
2519 2359
             for (CaseApplication caseApplicationse : caseApplications1) {
2520
-              //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2360
+                //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2521 2361
                 //同意组庭
2522 2362
                 if (isAgreePendTral != null && isAgreePendTral == 1) {
2523 2363
 
@@ -2549,7 +2389,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2549 2389
                     }
2550 2390
                 }
2551 2391
                 // 新增日志
2552
-                insertCaseLog(caseApplication.getId(),CaseApplicationConstants. CONFIRMDED_PENDING_TRIAL_SUBMMIT, "");
2392
+                insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL_SUBMMIT, "");
2553 2393
 
2554 2394
             }
2555 2395
         } else {
@@ -2569,30 +2409,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2569 2409
         List<CaseApplication> caseApplications = caseApplicationMapper.listCaseApplicationByBatchNumber(caseApplication1);
2570 2410
         if (caseApplications != null && caseApplications.size() > 0) {
2571 2411
             for (CaseApplication caseApplicationse : caseApplications) {
2572
-              //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2573
-                caseApplicationse.setCaseStatus(CaseApplicationConstants.CHECK_ARBITRATION_METHOD);
2574
-                caseApplicationse.setIsAgreePendTral(isAgreePendTral);
2575
-                if (isAgreePendTral != null && isAgreePendTral == 1) {
2576
-                    rows += caseApplicationMapper.submitCaseApplication(caseApplicationse);
2577
-                } else {
2578
-                    List<Arbitrator> arbitrators = caseApplication.getArbitrators();
2579
-                    // 仲裁员信息
2580
-                    if (arbitrators != null && arbitrators.size() > 0) {
2581
-                        List<Long> ids = arbitrators.stream().map(Arbitrator::getId).collect(Collectors.toList());
2582
-                        List<String> arbitratorNames = arbitrators.stream().map(Arbitrator::getArbitratorName).collect(Collectors.toList());
2583
-                        String idstr = ids.stream().map(Object::toString).collect(Collectors.joining(","));
2584
-                        String arbitratorNamestr = arbitratorNames.stream().map(Object::toString).collect(Collectors.joining(","));
2585
-                        caseApplicationse.setArbitratorId(idstr);
2586
-                        caseApplicationse.setArbitratorName(arbitratorNamestr);
2587
-                        rows += caseApplicationMapper.submitCaseApplication(caseApplicationse);
2588
-                    }
2589
-                }
2590
-
2591
-                SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
2592
-                request.setTemplateId("2033619");
2593
-                sendHearDateMessage(caseApplicationse, request, "2033619");
2594
-                // 新增日志
2595
-                insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL, "");
2412
+                caseApplicationService.pendTralSure(caseApplicationse);
2596 2413
 
2597 2414
             }
2598 2415
         } else {
@@ -2611,14 +2428,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2611 2428
         int rows = 0;
2612 2429
         if (caseApplications != null && caseApplications.size() > 0) {
2613 2430
             for (CaseApplication caseApplicationse : caseApplications) {
2614
-              //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2615
-                // 秘书核验裁决书,流转到待仲裁员审核裁决书
2616
-                caseApplicationse.setCaseStatus(HEAD_CHECK_ARBITRATION);
2617
-                rows += caseApplicationMapper.submitCaseApplication(caseApplicationse);
2618
-//                ArbitrateRecord arbitrateRecord = caseApplication.getArbitrateRecord();
2619
-//                arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecord);
2620
-                // 新增日志
2621
-                insertCaseLog(caseApplicationse.getId(), CaseApplicationConstants.VERPRIF_ARBITRATION, "");
2431
+               caseApplicationService.verificationArbitrateRecord(caseApplicationse);
2622 2432
             }
2623 2433
         } else {
2624 2434
             throw new ServiceException("这个批号没有批量核验裁决书的案件");
@@ -2639,38 +2449,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2639 2449
         List<CaseApplication> caseApplications1 = caseApplicationMapper.listCaseApplicationByBatchNumber(caseApplicationsel);
2640 2450
         if (caseApplications1 != null && caseApplications1.size() > 0) {
2641 2451
             for (CaseApplication caseApplicationse : caseApplications1) {
2642
-              //  Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2643
-                if (agreeOrNotCheck.intValue() == 1) {
2644
-                    caseApplicationse.setCaseStatus(CaseApplicationConstants.CHECK_ARBITRATION);
2645
-
2646
-                    rows += caseApplicationMapper.submitCaseApplication(caseApplicationse);
2647
-                    // 新增日志
2648
-                    insertCaseLog(caseApplication.getId(), CaseApplicationConstants.HEAD_CHECK_ARBITRATION, "");
2649
-                } else if (agreeOrNotCheck.intValue() == 2) {//拒绝审核
2650
-                    ArbitrateRecord arbitrateRecord = caseApplication.getArbitrateRecord();
2651
-
2652
-                    ArbitrateRecord arbitrateRecordsel = new ArbitrateRecord();
2653
-                    arbitrateRecordsel.setCaseAppliId(caseApplicationse.getId());
2654
-                    ArbitrateRecord arbitrateRecordnew = arbitrateRecordMapper.selectArbitrateRecord(arbitrateRecordsel);
2655
-                    if (arbitrateRecordnew != null) {
2656
-                        arbitrateRecordnew.setCheckOpinion(arbitrateRecord.getCheckOpinion());
2657
-                        arbitrateRecordnew.setArbitrateReject(arbitrateRecord.getArbitrateReject());
2658
-                        arbitrateRecordMapper.updataArbitrateRecord(arbitrateRecordnew);
2659
-                    } else {
2660
-                        arbitrateRecordnew.setCheckOpinion(arbitrateRecord.getCheckOpinion());
2661
-                        arbitrateRecordnew.setArbitrateReject(arbitrateRecord.getArbitrateReject());
2662
-                        arbitrateRecordMapper.insertArbitrateRecord(arbitrateRecordsel);
2663
-                    }
2664
-                    caseApplicationse.setCaseStatus(CaseApplicationConstants.VERPRIF_ARBITRATION);
2452
+               caseApplicationService.arbitratorCheckArbitrateRecord(caseApplicationse);
2665 2453
 
2666
-                    rows += caseApplicationMapper.submitCaseApplication(caseApplicationse);
2667
-                    String notes = "";
2668
-                    if (caseApplication.getArbitrateRecord() != null && StrUtil.isNotEmpty(caseApplication.getArbitrateRecord().getArbitrateReject())) {
2669
-                        notes = "仲裁员驳回裁决书,驳回原因:" + caseApplication.getArbitrateRecord().getArbitrateReject();
2670
-                    }
2671
-                    // 新增日志
2672
-                    insertCaseLog(caseApplication.getId(), CaseApplicationConstants.HEAD_CHECK_ARBITRATION, notes);
2673
-                }
2674 2454
             }
2675 2455
 
2676 2456
         } else {
@@ -2722,7 +2502,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
2722 2502
         List<CaseApplication> caseApplications1 = caseApplicationMapper.listCaseApplicationByBatchNumber(caseApplicationsel);
2723 2503
         if (caseApplications1 != null && caseApplications1.size() > 0) {
2724 2504
             for (CaseApplication caseApplicationse : caseApplications1) {
2725
-            //    Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2505
+                //    Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplicationse.getId());
2726 2506
                 if (agreeOrNotCheck.intValue() == 1) {
2727 2507
                     try {
2728 2508
                         //获取当前案件的裁决书
@@ -3041,7 +2821,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3041 2821
     @Transactional
3042 2822
     public int pendTralSure(CaseApplication caseApplication) {
3043 2823
 //        caseApplication.setCaseStatus(CaseApplicationConstants.CHECK_ARBITRATION_METHOD);
3044
-     //   Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
2824
+        //   Integer currentStatus = caseApplicationMapper.selectCaseApplicationCaseStatus(caseApplication.getId());
3045 2825
         caseApplication.setCaseStatus(CaseApplicationConstants.CHECK_ARBITRATION_METHOD);
3046 2826
         caseApplication.setLockStatus(1);
3047 2827
         Integer isAgreePendTral = caseApplication.getIsAgreePendTral();
@@ -3064,10 +2844,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3064 2844
         }
3065 2845
 
3066 2846
         //发送短信通知 1947342 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。
3067
-        SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
3068
-        request.setTemplateId("2033619");
3069 2847
         // 发送开庭日期通知短信
3070
-        sendHearDateMessage(caseApplication, request, "2033619");
2848
+        sendHearDateMessage(caseApplication, "2033619");
3071 2849
         // 新增日志
3072 2850
         insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL, "");
3073 2851
 
@@ -3079,9 +2857,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3079 2857
      * 发送开庭日期通知短信
3080 2858
      *
3081 2859
      * @param caseApplication
3082
-     * @param request
2860
+     * @param
3083 2861
      */
3084
-    private void sendHearDateMessage(CaseApplication caseApplication, SmsUtils.SendSmsRequest request, String templateId) {
2862
+    private void sendHearDateMessage(CaseApplication caseApplication,  String templateId) {
3085 2863
         CaseApplication caseApplicationselect = caseApplicationMapper.selectCaseApplication(caseApplication);
3086 2864
         if (caseApplicationselect == null) {
3087 2865
             throw new ServiceException("案件不存在");
@@ -3109,39 +2887,17 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3109 2887
             List<SysUser> userList = sysUserMapper.selectUserListByIds(idList);
3110 2888
             if (CollectionUtil.isNotEmpty(userList)) {
3111 2889
                 for (SysUser user : userList) {
3112
-                    //给仲裁员发送短信通知
3113
-                    request.setPhone(user.getPhonenumber());
3114
-                    // 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。
3115
-                    String name = user.getNickName();
3116 2890
                     if (templateId.equals("2033619")) {
3117
-                        request.setTemplateParamSet(new String[]{name, caseNum});
3118
-                    }
3119
-                    if (templateId.equals("1975139")) {
3120
-                        request.setTemplateParamSet(new String[]{name, caseNum, hearDatestr});
3121
-                    }
3122 2891
 
3123
-                    Boolean aBoolean = SmsUtils.sendSms(request);
3124
-                    //保存短信发送记录
3125
-                    SmsSendRecord smsSendRecord = new SmsSendRecord();
3126
-                    smsSendRecord.setCaseId(caseApplicationselect.getId());
3127
-                    smsSendRecord.setCaseNum(caseApplicationselect.getCaseNum());
3128
-                    smsSendRecord.setPhone(request.getPhone());
3129
-                    smsSendRecord.setSendTime(new Date());
3130
-                    String content = "";
3131
-                    if (templateId.equals("2033619")) {
3132
-                        content = "尊敬的" + name + "用户,您的" + caseNum + "仲裁案件,已组庭,请知晓,如非本人操作,请忽略本短信。";
2892
+                        SmsUtils.sendSms(caseApplicationselect, "2033619", user.getPhonenumber(), new String[]{user.getNickName(),caseApplicationselect.getCaseNum()});
2893
+
3133 2894
                     }
3134 2895
                     if (templateId.equals("1975139")) {
3135
-                        content = "尊敬的" + name + "用户,您的" + caseNum + "仲裁案件,开庭日期已改为" + hearDatestr + ",请知晓,如非本人操作,请忽略本短信。";
3136
-                    }
3137
-                    smsSendRecord.setSendContent(content);
3138
-                    smsSendRecord.setCreateBy(getUsername());
3139
-                    if (aBoolean) {
3140
-                        smsSendRecord.setSendStatus(1);
3141
-                    } else {
3142
-                        smsSendRecord.setSendStatus(0);
2896
+
2897
+                        SmsUtils.sendSms(caseApplicationselect, "1975139", user.getPhonenumber(), new String[]{user.getNickName(),caseApplicationselect.getCaseNum(),hearDatestr});
2898
+
3143 2899
                     }
3144
-                    smsRecordMapper.saveSmsSendRecord(smsSendRecord);
2900
+
3145 2901
                 }
3146 2902
             }
3147 2903
 
@@ -3151,38 +2907,16 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3151 2907
         for (int j = 0; j < afflicates.size(); j++) {
3152 2908
             CaseAffiliateEntity caseAffiliateselect = afflicates.get(j);
3153 2909
             if (caseAffiliateselect.getOperatorFlag() != null && caseAffiliateselect.getOperatorFlag().equals(1) && StrUtil.isNotEmpty(caseAffiliateselect.getPhone())) {
3154
-                //给申请人、被申请人发送短信通知
3155
-                request.setPhone(caseAffiliateselect.getPhone());
3156 2910
                 // 1947342 普通短信 开庭日期通知 尊敬的{1}用户,您的{2}仲裁案件,开庭日期已确定为{3},请知晓,如非本人操作,请忽略本短信。
3157
-                String name = caseAffiliateselect.getName();
3158
-                if (templateId.equals("2033619")) {
3159
-                    request.setTemplateParamSet(new String[]{name, caseNum});
3160
-                }
3161
-                if (templateId.equals("1975139")) {
3162
-                    request.setTemplateParamSet(new String[]{name, caseNum, hearDatestr});
3163
-                }
3164
-                Boolean aBoolean = SmsUtils.sendSms(request);
3165
-                //保存短信发送记录
3166
-                SmsSendRecord smsSendRecord = new SmsSendRecord();
3167
-                smsSendRecord.setCaseId(caseApplication.getId());
3168
-                smsSendRecord.setCaseNum(caseApplicationselect.getCaseNum());
3169
-                smsSendRecord.setPhone(request.getPhone());
3170
-                smsSendRecord.setSendTime(new Date());
3171
-                String content = "";
3172 2911
                 if (templateId.equals("2033619")) {
3173
-                    content = "尊敬的" + name + "用户,您的" + caseNum + "仲裁案件,已组庭,请知晓,如非本人操作,请忽略本短信。";
2912
+                    SmsUtils.sendSms(caseApplicationselect, "2033619",caseAffiliateselect.getPhone(), new String[]{caseAffiliateselect.getName(),caseApplicationselect.getCaseNum()});
2913
+
3174 2914
                 }
3175 2915
                 if (templateId.equals("1975139")) {
3176
-                    content = "尊敬的" + name + "用户,您的" + caseNum + "仲裁案件,开庭日期已改为" + hearDatestr + ",请知晓,如非本人操作,请忽略本短信。";
3177
-                }
3178
-                smsSendRecord.setSendContent(content);
3179
-                smsSendRecord.setCreateBy(getUsername());
3180
-                if (aBoolean) {
3181
-                    smsSendRecord.setSendStatus(1);
3182
-                } else {
3183
-                    smsSendRecord.setSendStatus(0);
2916
+
2917
+                    SmsUtils.sendSms(caseApplicationselect, "1975139",caseAffiliateselect.getPhone(), new String[]{caseAffiliateselect.getName(),caseApplicationselect.getCaseNum(),hearDatestr});
2918
+
3184 2919
                 }
3185
-                smsRecordMapper.saveSmsSendRecord(smsSendRecord);
3186 2920
             }
3187 2921
 
3188 2922
         }
@@ -3446,8 +3180,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3446 3180
 
3447 3181
     @Transactional
3448 3182
     @Override
3449
-    public AjaxResult uploadCaseZipFile(MultipartFile file, Long templateId) {
3450
-        return caseZipImportImpl.zipImport(file, templateId);
3183
+    public AjaxResult uploadCaseZipFile(MultipartFile file, Long templateId, Integer applicantType, Integer resType) {
3184
+        return caseZipImportImpl.zipImport(file, templateId, applicantType, resType);
3451 3185
     }
3452 3186
 
3453 3187
 
@@ -3477,7 +3211,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3477 3211
             caseAttach.setAnnexPath(replace);
3478 3212
 
3479 3213
         }
3480
-     //   caseAttach.setAnnexPath("/home/ruoyi/uploadPath/onlyoffice/");
3214
+        //   caseAttach.setAnnexPath("/home/ruoyi/uploadPath/onlyoffice/");
3481 3215
 
3482 3216
         caseAttach.setAnnexType(3);
3483 3217
         caseAttach.setUserId(SecurityUtils.getUserId());
@@ -3527,6 +3261,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3527 3261
         caseApplication.setCreateTime(new Date());
3528 3262
         caseApplication.setRegisterDate(new Date());
3529 3263
         caseApplication.setCaseStatus(CaseApplicationConstants.CASE_APPLICATION);
3264
+
3530 3265
         // 设置编码
3531 3266
         caseApplication.setCaseNum(generateCaseNum());
3532 3267
         // 设置批号
@@ -3627,7 +3362,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3627 3362
         }
3628 3363
         affiliate.setCaseAppliId(caseApplication.getId());
3629 3364
         boolean b = affiliate.getOrganizeFlag() != 1 && (affiliate.getRoleType() == 1 || affiliate.getRoleType() == 3) && StrUtil.isEmpty(affiliate.getEmail());
3630
-        if (b || StrUtil.isEmpty(affiliate.getName())) {
3365
+        boolean importFlag= caseApplication.getImportFlag() != null && !caseApplication.getImportFlag().equals( 2 );
3366
+        if ((b || StrUtil.isEmpty(affiliate.getName())) && importFlag) {
3631 3367
             return operatorCount;
3632 3368
         }
3633 3369
         affiliate.setGroupOrder(groupOrder);
@@ -3748,7 +3484,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3748 3484
     @Transactional
3749 3485
     public void insertAfficateUser(CaseAffiliateEntity affiliate, List<Long> roleIdList, boolean updateFlag) {
3750 3486
 
3751
-        if (StrUtil.isEmpty(affiliate.getEmail())) {
3487
+        if (StrUtil.isEmpty(affiliate.getEmail()) && StrUtil.isEmpty(affiliate.getPhone())) {
3752 3488
             return;
3753 3489
         }
3754 3490
         SysUser user = null;
@@ -3759,8 +3495,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3759 3495
             // 修改案件则根据userId查用户
3760 3496
             if (affiliate.getUserId() != null) {
3761 3497
                 user = sysUserMapper.selectUserById(affiliate.getUserId());
3762
-            } else {
3498
+            } else if(StrUtil.isNotEmpty(affiliate.getEmail())){
3763 3499
                 user = sysUserMapper.selectUserByEmail(affiliate.getEmail());
3500
+            }else if(StrUtil.isNotEmpty(affiliate.getPhone())){
3501
+                user = sysUserMapper.selectUserByPhone(affiliate.getPhone());
3764 3502
             }
3765 3503
         }
3766 3504
         // 判断该用户是否存在
@@ -3769,7 +3507,11 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3769 3507
             user = new SysUser();
3770 3508
             user.setPosition(affiliate.getPosition());
3771 3509
             user.setPassword(SecurityUtils.encryptPassword("abc123456"));
3772
-            user.setUserName(affiliate.getEmail());
3510
+            if(StrUtil.isNotEmpty(affiliate.getPhone())){
3511
+                user.setUserName(affiliate.getPhone());
3512
+            }else if(StrUtil.isNotEmpty(affiliate.getEmail())) {
3513
+                user.setUserName(affiliate.getEmail());
3514
+            }
3773 3515
             user.setNickName(affiliate.getName());
3774 3516
             user.setEmail(affiliate.getEmail());
3775 3517
             user.setHome(affiliate.getHome());
@@ -3787,7 +3529,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3787 3529
             // 查询该角色是否存在申请人角色
3788 3530
             List<Long> roleIds = userRoleMapper.selectRoleIdsByUserId(user.getUserId());
3789 3531
             for (Long roleId : roleIdList) {
3790
-                if(roleId==null){
3532
+                if (roleId == null) {
3791 3533
                     continue;
3792 3534
                 }
3793 3535
                 if (CollectionUtil.isEmpty(roleIds) && !roleIds.contains(roleId)) {
@@ -3815,7 +3557,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3815 3557
             // 查询该角色是否存在申请人角色
3816 3558
             List<Long> roleIds = userRoleMapper.selectRoleIdsByUserId(user.getUserId());
3817 3559
             for (Long roleId : roleIdList) {
3818
-                if(roleId==null){
3560
+                if (roleId == null) {
3819 3561
                     continue;
3820 3562
                 }
3821 3563
                 if (CollectionUtil.isEmpty(roleIds) || !roleIds.contains(roleId)) {
@@ -3846,9 +3588,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3846 3588
         }
3847 3589
         if (CollectionUtil.isNotEmpty(res)) {
3848 3590
             for (int i = 0; i < res.size(); i++) {
3849
-                // 申请人
3591
+                // 申请人
3850 3592
                 resOperatorCount = setCaseAfflicate(affliates, caseApplication, res.get(i).getRes(), i, resOperatorCount, false);
3851
-                // 申请人代理人
3593
+                // 申请人代理人
3852 3594
                 resOperatorCount = setCaseAfflicate(affliates, caseApplication, res.get(i).getResAgent(), i, resOperatorCount, false);
3853 3595
             }
3854 3596
         }
@@ -3905,6 +3647,9 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3905 3647
      * @return
3906 3648
      */
3907 3649
     private BigDecimal calculateFee(BigDecimal caseSubjectAmount) {
3650
+        if(caseSubjectAmount==null){
3651
+            return BigDecimal.ZERO;
3652
+        }
3908 3653
         if (caseSubjectAmount.equals(BigDecimal.ZERO)) {
3909 3654
             return BigDecimal.ZERO;
3910 3655
         }
@@ -3955,7 +3700,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3955 3700
         // 保存附件
3956 3701
         if (CollectionUtil.isNotEmpty(caseApplication.getCaseAttachList())) {
3957 3702
             for (CaseAttach caseAttach : caseApplication.getCaseAttachList()) {
3958
-                if(caseAttach==null){
3703
+                if (caseAttach == null) {
3959 3704
                     continue;
3960 3705
                 }
3961 3706
                 caseAttach.setCaseAppliId(caseApplication.getId());
@@ -3998,7 +3743,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
3998 3743
             }
3999 3744
             // 插入附件表日志
4000 3745
             if (CollectionUtil.isNotEmpty(caseApplication.getCaseAttachList())) {
4001
-                List<CaseAttach> filterList = caseApplication.getCaseAttachList().stream().filter(c -> c!=null && c.getAnnexType().equals(2)).collect(Collectors.toList());
3746
+                List<CaseAttach> filterList = caseApplication.getCaseAttachList().stream().filter(c -> c != null && c.getAnnexType().equals(2)).collect(Collectors.toList());
4002 3747
                 // 插入日志附件表
4003 3748
                 if (CollectionUtil.isNotEmpty(filterList)) {
4004 3749
                     for (CaseAttach caseAttach : filterList) {

+ 3
- 41
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseArbitrateServiceImpl.java 查看文件

@@ -1,39 +1,24 @@
1 1
 package com.ruoyi.wisdomarbitrate.service.impl;
2 2
 
3
-import cn.hutool.core.collection.CollectionUtil;
4 3
 import cn.hutool.core.util.StrUtil;
5
-import com.deepoove.poi.data.PictureRenderData;
6 4
 import com.ruoyi.common.constant.CaseApplicationConstants;
7 5
 import com.ruoyi.common.core.domain.AjaxResult;
8 6
 import com.ruoyi.common.core.redis.RedisCache;
9 7
 import com.ruoyi.common.exception.ServiceException;
10
-import com.ruoyi.common.utils.WordUtil;
11 8
 import com.ruoyi.wisdomarbitrate.domain.*;
12 9
 import com.ruoyi.wisdomarbitrate.domain.entity.CaseAffiliateEntity;
13 10
 import com.ruoyi.wisdomarbitrate.mapper.*;
11
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
14 12
 import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
15 13
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
16 14
 import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
17
-import com.ruoyi.common.utils.SmsUtils;
15
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
18 16
 import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
19
-import org.apache.poi.xwpf.usermodel.XWPFDocument;
20 17
 import org.springframework.beans.factory.annotation.Autowired;
21 18
 import org.springframework.stereotype.Service;
22 19
 import org.springframework.transaction.annotation.Transactional;
23 20
 
24
-import java.io.File;
25
-import java.io.FileInputStream;
26
-import java.io.IOException;
27
-import java.io.InputStream;
28
-import java.nio.file.Files;
29
-import java.nio.file.Path;
30
-import java.nio.file.StandardCopyOption;
31
-import java.text.SimpleDateFormat;
32
-import java.time.LocalDate;
33
-import java.time.ZoneId;
34 21
 import java.util.*;
35
-import java.util.function.Function;
36
-import java.util.regex.Pattern;
37 22
 import java.util.stream.Collectors;
38 23
 
39 24
 import static com.ruoyi.common.utils.SecurityUtils.getUsername;
@@ -126,8 +111,6 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
126 111
         int i = caseApplicationMapper.submitCaseApplication(caseApplication1);
127 112
         if (i > 0) {
128 113
             String arbitratMethodStr = caseApplication1.getArbitratMethod() == 1 ? "开庭审理" : "书面审理";
129
-            //发送短信通知
130
-            SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
131 114
             //获取案件关联人信息
132 115
             List<CaseAffiliateEntity> caseAffiliates = caseApplicationService.selectAfflicatesByCaseId(caseApplication1.getId());
133 116
             if (caseAffiliates != null && caseAffiliates.size() > 0) {
@@ -142,28 +125,7 @@ public class CaseArbitrateServiceImpl implements ICaseArbitrateService {
142 125
                 operatorList.add(applicantAffiliateOpt.get());
143 126
                 operatorList.add(resAffiliateOpt.get());
144 127
                 for (CaseAffiliateEntity affiliate : operatorList) {
145
-                    request.setTemplateId("1931000");
146
-                    request.setPhone(affiliate.getPhone());
147
-                    // 这个值,要看你的模板中是否预留了占位符,如果没有则不需要设置
148
-                    // 1931000 尊敬的{1}用户,您的{2}仲裁案件,仲裁方式已确定为{3},请知晓,如非本人操作,请忽略本短信。
149
-                    String name = affiliate.getName();
150
-                    request.setTemplateParamSet(new String[]{name, caseNum, arbitratMethodStr});
151
-                    Boolean aBoolean = SmsUtils.sendSms(request);
152
-                    //保存短信发送记录
153
-                    SmsSendRecord smsSendRecord = new SmsSendRecord();
154
-                    smsSendRecord.setCaseId(caseApplication.getId());
155
-                    smsSendRecord.setCaseNum(caseApplication1.getCaseNum());
156
-                    smsSendRecord.setPhone(request.getPhone());
157
-                    smsSendRecord.setSendTime(new Date());
158
-                    String content = "尊敬的" + name + "用户,您的" + caseNum + "仲裁案件,仲裁方式已确定为" + arbitratMethodStr + ",请知晓,如非本人操作,请忽略本短信。";
159
-                    smsSendRecord.setSendContent(content);
160
-                    smsSendRecord.setCreateBy(getUsername());
161
-                    if (aBoolean) {
162
-                        smsSendRecord.setSendStatus(1);
163
-                    } else {
164
-                        smsSendRecord.setSendStatus(0);
165
-                    }
166
-                    smsRecordMapper.saveSmsSendRecord(smsSendRecord);
128
+                    SmsUtils.sendSms(caseApplication1, "1931000", affiliate.getPhone(), new String[]{affiliate.getName(),caseApplication1.getCaseNum(),arbitratMethodStr});
167 129
                 }
168 130
             }
169 131
         }

+ 6
- 35
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseEvidenceServiceImpl.java 查看文件

@@ -1,6 +1,5 @@
1 1
 package com.ruoyi.wisdomarbitrate.service.impl;
2 2
 
3
-import cn.hutool.core.bean.BeanUtil;
4 3
 import cn.hutool.core.collection.CollectionUtil;
5 4
 import cn.hutool.core.util.StrUtil;
6 5
 import com.alibaba.fastjson.JSONArray;
@@ -8,13 +7,10 @@ import com.alibaba.fastjson.JSONObject;
8 7
 import com.ruoyi.common.config.RuoYiConfig;
9 8
 import com.ruoyi.common.constant.CaseApplicationConstants;
10 9
 import com.ruoyi.common.core.domain.AjaxResult;
11
-import com.ruoyi.common.core.domain.entity.SysRole;
12 10
 import com.ruoyi.common.core.domain.entity.SysUser;
13
-import com.ruoyi.common.core.domain.model.LoginUser;
14
-import com.ruoyi.common.utils.SecurityUtils;
15
-import com.ruoyi.common.utils.SmsUtils;
11
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
12
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
16 13
 import com.ruoyi.common.utils.StringUtils;
17
-import com.ruoyi.common.utils.file.FileUtils;
18 14
 import com.ruoyi.common.utils.spring.SpringUtils;
19 15
 import com.ruoyi.system.mapper.SysUserMapper;
20 16
 import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceDirectoryVO;
@@ -23,11 +19,8 @@ import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
23 19
 import com.ruoyi.common.utils.file.FileUploadUtils;
24 20
 import com.ruoyi.wisdomarbitrate.domain.*;
25 21
 import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
26
-import com.ruoyi.wisdomarbitrate.domain.vo.CaseDetailVO;
27
-import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
28 22
 import com.ruoyi.wisdomarbitrate.mapper.*;
29 23
 import com.ruoyi.wisdomarbitrate.service.ICaseEvidenceService;
30
-import org.springframework.beans.BeanUtils;
31 24
 import org.springframework.beans.factory.annotation.Autowired;
32 25
 import org.springframework.stereotype.Service;
33 26
 import org.springframework.transaction.annotation.Transactional;
@@ -54,8 +47,8 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
54 47
     private CaseEvidenceDirectoryMapper caseEvidenceDirectoryMapper;
55 48
     @Autowired
56 49
     private SysUserMapper sysUserMapper;
57
-    @Autowired
58
-    private SmsRecordMapper smsRecordMapper;
50
+//    @Autowired
51
+//    private SmsRecordMapper smsRecordMapper;
59 52
     @Autowired
60 53
     private ICaseApplicationService caseApplicationService;
61 54
 
@@ -359,33 +352,11 @@ public class CaseEvidenceServiceImpl implements ICaseEvidenceService {
359 352
         SysUser user= sysUserMapper.selectUserByRole("法律顾问");
360 353
         if(user!=null){
361 354
             // 新增短信记录
362
-            SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
363
-            //  1992106	普通短信	修改证据资料通知	尊敬的{1}用户,您的{2}仲裁案件,有新的证据上传,请知晓,如非本人操作,请忽略本短信。
364
-            request.setTemplateId("1992106");
355
+
365 356
             CaseApplication caseApplication = new CaseApplication();
366 357
             caseApplication.setId(id);
367 358
             caseApplication = caseApplicationMapper.selectCaseApplication(caseApplication);
368
-
369
-                request.setPhone(user.getPhonenumber());
370
-                request.setTemplateParamSet(new String[]{user.getNickName(),caseApplication.getCaseNum()});
371
-                Boolean aBoolean = SmsUtils.sendSms(request);
372
-                //保存短信发送记录
373
-                SmsSendRecord smsSendRecord = new SmsSendRecord();
374
-                smsSendRecord.setCaseId(id);
375
-
376
-                smsSendRecord.setCaseNum(caseApplication.getCaseNum());
377
-                smsSendRecord.setPhone(request.getPhone());
378
-                smsSendRecord.setSendTime(new Date());
379
-                String content = "尊敬的" + user.getNickName() + ",您的"+caseApplication.getCaseNum()+"仲裁案件,有新的证据上传,请知晓,如非本人操作,请忽略本短信。";
380
-                smsSendRecord.setSendContent(content);
381
-                smsSendRecord.setCreateBy(getUsername());
382
-                if (aBoolean) {
383
-                    smsSendRecord.setSendStatus(1);
384
-                } else {
385
-                    smsSendRecord.setSendStatus(0);
386
-                }
387
-                smsRecordMapper.saveSmsSendRecord(smsSendRecord);
388
-
359
+            SmsUtils.sendSms(caseApplication, "1992106", user.getPhonenumber(), new String[]{user.getNickName(),caseApplication.getCaseNum()});
389 360
 
390 361
         }
391 362
 

+ 10
- 52
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CasePaymentServiceImpl.java 查看文件

@@ -5,25 +5,22 @@ import cn.hutool.core.collection.CollectionUtil;
5 5
 import cn.hutool.core.util.StrUtil;
6 6
 import com.ruoyi.ElegentPay;
7 7
 import com.ruoyi.common.constant.CaseApplicationConstants;
8
-import com.ruoyi.common.constant.HttpStatus;
9 8
 import com.ruoyi.common.core.domain.AjaxResult;
10
-import com.ruoyi.common.core.domain.model.LoginUser;
11 9
 import com.ruoyi.common.exception.ServiceException;
12
-import com.ruoyi.common.utils.SecurityUtils;
13 10
 import com.ruoyi.common.utils.StringUtils;
14 11
 import com.ruoyi.wisdomarbitrate.domain.*;
15 12
 import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
16 13
 import com.ruoyi.wisdomarbitrate.domain.entity.CaseAffiliateEntity;
17 14
 import com.ruoyi.wisdomarbitrate.domain.vo.CasePayListVO;
18 15
 import com.ruoyi.wisdomarbitrate.mapper.*;
16
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
19 17
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
20 18
 import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
21
-import com.ruoyi.common.utils.SmsUtils;
19
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
22 20
 import com.ruoyi.dto.PayRequest;
23 21
 import com.ruoyi.dto.PayResponse;
24 22
 import com.ruoyi.wisdomarbitrate.domain.dto.CasePayDTO;
25 23
 import com.ruoyi.wisdomarbitrate.service.ICasePaymentService;
26
-import org.springframework.beans.BeanUtils;
27 24
 import org.springframework.beans.factory.annotation.Autowired;
28 25
 import org.springframework.stereotype.Service;
29 26
 import org.springframework.transaction.annotation.Transactional;
@@ -153,8 +150,6 @@ public class CasePaymentServiceImpl implements ICasePaymentService {
153 150
             }
154 151
 
155 152
             caseApplicationMapper.submitCaseApplication(caseApplication);
156
-            //发送短信通知
157
-            SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
158 153
             List<CaseAffiliateEntity> caseAffiliates = caseApplicationService.selectAfflicatesByCaseId(caseApplication.getId());
159 154
             if (caseAffiliates != null && caseAffiliates.size() > 0) {
160 155
                 // 申请操作人
@@ -170,58 +165,21 @@ public class CasePaymentServiceImpl implements ICasePaymentService {
170 165
                 CaseAffiliateEntity app = applicantAffiliateOpt.get();
171 166
                 CaseAffiliateEntity res = resAffiliateOpt.get();
172 167
                 //申请人
173
-                        String name = app.getName();
174
-                        request.setPhone(app.getPhone());
175
-                        Boolean aBoolean = SmsUtils.sendSms(request);
176
-                        //保存短信发送记录
177
-                        SmsSendRecord smsSendRecord = new SmsSendRecord();
178
-                        smsSendRecord.setCaseId(caseApplication.getId());
179
-                        smsSendRecord.setCaseNum(caseNum);
180
-                        smsSendRecord.setPhone(request.getPhone());
181
-                        smsSendRecord.setSendTime(new Date());
182 168
                         if(batchCaseApplication.getAgreeOrNotCheck().equals(1)){
183
-                            // 同意
184
-                            request.setTemplateId("1928003"); //案件受理通知
185
-                            request.setTemplateParamSet(new String[]{name, caseName, caseNum});
186
-                            smsSendRecord.setSendContent("尊敬的" + name + "用户,您的" + caseName + "案件" + caseNum + "已成功受理。");
169
+                            SmsUtils.sendSms(caseApplication1, "1928003", app.getPhone(), new String[]{app.getName(),caseName,caseApplication1.getCaseNum()});
187 170
                         }else {
188
-                            //拒绝 2074402,尊敬的{1}用户,您的{2}案件,确认缴费未通过,理由为{3},请知晓,如非本人操作,请忽略本短信
189
-                            request.setTemplateId("2074402"); //确认缴费不通过通知
190
-                            request.setTemplateParamSet(new String[]{name,  caseNum,batchCaseApplication.getCaseCheckReject()});
191
-                            smsSendRecord.setSendContent("尊敬的" + name + "用户,您的" + caseNum + "案件,确认缴费未通过,理由为" + batchCaseApplication.getCaseCheckReject() + ",请知晓,如非本人操作,请忽略本短信。");
192
-                        }
171
+                            SmsUtils.sendSms(caseApplication1, "2074402", app.getPhone(), new String[]{app.getName(),caseApplication1.getCaseNum(),batchCaseApplication.getCaseCheckReject()});
193 172
 
194
-                        smsSendRecord.setCreateBy(getUsername());
195
-                        if (aBoolean) {
196
-                            smsSendRecord.setSendStatus(1);
197
-                        } else {
198
-                            smsSendRecord.setSendStatus(0);
199 173
                         }
200
-                        smsRecordMapper.saveSmsSendRecord(smsSendRecord);
174
+
175
+
176
+
177
+
201 178
                          //被申请人
202 179
                         if(batchCaseApplication.getAgreeOrNotCheck().equals(1)) {
203 180
 
204
-                            request.setPhone(res.getPhone());
205
-                            request.setTemplateId("1952840");
206
-                            // 1952840 尊敬的{1}用户,您的{2}案件{3}已成功受理,请点击链接:https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 选择是否应诉。如非本人操作,请忽略本短信
207
-                             name = res.getName();
208
-                            request.setTemplateParamSet(new String[]{name, caseName, caseNum});
209
-                             aBoolean = SmsUtils.sendSms(request);
210
-                            //保存短信发送记录
211
-                             smsSendRecord = new SmsSendRecord();
212
-                            smsSendRecord.setCaseId(caseApplication.getId());
213
-                            smsSendRecord.setCaseNum(caseNum);
214
-                            smsSendRecord.setPhone(request.getPhone());
215
-                            smsSendRecord.setSendTime(new Date());
216
-                            String content = "尊敬的" + name + "用户,您的" + caseName + "案件" + caseNum + "已成功受理,请点击链接:https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 选择是否应诉。如非本人操作,请忽略本短信";
217
-                            smsSendRecord.setSendContent(content);
218
-                            smsSendRecord.setCreateBy(getUsername());
219
-                            if (aBoolean) {
220
-                                smsSendRecord.setSendStatus(1);
221
-                            } else {
222
-                                smsSendRecord.setSendStatus(0);
223
-                            }
224
-                            smsRecordMapper.saveSmsSendRecord(smsSendRecord);
181
+                            SmsUtils.sendSms(caseApplication1, "1952840", res.getPhone(), new String[]{res.getName(),caseName,caseApplication1.getCaseNum()});
182
+
225 183
                         }
226 184
 
227 185
 

+ 124
- 263
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseZipImportImpl.java 查看文件

@@ -25,8 +25,13 @@ import com.ruoyi.common.utils.thread.ThreadPoolUtil;
25 25
 import com.ruoyi.system.domain.SysUserRole;
26 26
 import com.ruoyi.system.mapper.*;
27 27
 import com.ruoyi.wisdomarbitrate.domain.*;
28
+import com.ruoyi.wisdomarbitrate.domain.dto.CaseApplicationDTO;
29
+import com.ruoyi.wisdomarbitrate.domain.entity.CaseAffiliateEntity;
30
+import com.ruoyi.wisdomarbitrate.domain.vo.CaseAffiliateBase;
31
+import com.ruoyi.wisdomarbitrate.domain.vo.CaseAffiliateVO;
28 32
 import com.ruoyi.wisdomarbitrate.domain.vo.ColumnValue;
29 33
 import com.ruoyi.wisdomarbitrate.mapper.*;
34
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
30 35
 import com.ruoyi.wisdomarbitrate.task.CaseZipImportTask;
31 36
 import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
32 37
 import com.ruoyi.wisdomarbitrate.utils.OCRUtils;
@@ -100,9 +105,17 @@ public class CaseZipImportImpl {
100 105
     @Autowired
101 106
     private CaseZipImportImpl caseZipImportImpl;
102 107
 
103
-
104
-@Transactional
105
-    public AjaxResult zipImport(MultipartFile file, Long templateId) {
108
+    /**
109
+     *      * @param applicantType 申请人类型,自然人-1,机构-2
110
+     *      * @param resType 被申请人类型,自然人-1,机构-2
111
+     * @param file
112
+     * @param templateId
113
+     * @param applicantType
114
+     * @param resType
115
+     * @return
116
+     */
117
+    @Transactional
118
+    public AjaxResult zipImport(MultipartFile file, Long templateId,Integer applicantType,Integer resType) {
106 119
         UUID uuid = UUID.randomUUID();
107 120
 
108 121
         String targetPath = "/home/ruoyi/uploadPath/upload/unzipFile/" + uuid + "/";
@@ -133,24 +146,9 @@ public class CaseZipImportImpl {
133 146
         SysDictData sysDictData = new SysDictData();
134 147
         sysDictData.setDictType("case_built_type");
135 148
         List<SysDictData> dictDataList = dictDataMapper.selectDictDataList(sysDictData);
136
-        // 查询所有的组织机构,组装成map
137
-        List<SysDept> deptList = sysDeptMapper.selectDeptList(new SysDept());
138
-        // 所有部门
139
-        Map<String, Long> deptMap = new HashMap<>();
140
-        if (CollectionUtil.isNotEmpty(deptList)) {
141
-            deptMap = deptList.stream().collect(Collectors.toMap(SysDept::getDeptName, SysDept::getDeptId, (oldV, newV) -> newV));
142 149
 
143
-        }
144 150
         // 查询申请人角色id
145 151
         roleId = roleMapper.selectRoleIdByName("申请人");
146
-        /**
147
-         * 用户表已存在的用户
148
-         */
149
-        List<SysUser> existUsers = userMapper.selectUserList(new SysUser());
150
-        Map<String, SysUser> userMap = new HashMap<>();
151
-        if (CollectionUtil.isNotEmpty(existUsers)) {
152
-            userMap = existUsers.stream().collect(Collectors.toMap(SysUser::getPhonenumber, Function.identity(), (n1, n2) -> n2));
153
-        }
154 152
         //查询出当天的案件编号的最大值
155 153
         String currentDay = DateUtils.dateTime();
156 154
         String caseNum = "zc" + currentDay;
@@ -171,13 +169,13 @@ public class CaseZipImportImpl {
171 169
 
172 170
     File[] files = directory.listFiles();
173 171
         // todo
174
-    List<CaseApplication> caseApplications = new ArrayList<>();
172
+    List<CaseApplicationDTO> caseApplications = new ArrayList<>();
175 173
     for (File file1 : files) {
176 174
         if (file1.isDirectory() && file1.listFiles() != null) {
177 175
 
178 176
             for (File file2 : file1.listFiles()) {
179 177
 
180
-                CaseApplication caseApplication = caseZipImportImpl.buildCaseInfo(file2, templateId, fatchRuleList, fatchRuleMap, userMap, dictDataList, deptMap, SecurityUtils.getLoginUser());
178
+                CaseApplicationDTO caseApplication = caseZipImportImpl.buildCaseInfo(file2, templateId, fatchRuleList, fatchRuleMap, dictDataList, applicantType,resType);
181 179
                 if (caseApplication != null) {
182 180
                     caseApplications.add(caseApplication);
183 181
                 }
@@ -206,19 +204,24 @@ public class CaseZipImportImpl {
206 204
 
207 205
 
208 206
     }
207
+
208
+    /**
209
+     * 组装案件内置字段
210
+     * @param file
211
+     * @param templateId
212
+     * @param fatchRuleList
213
+     * @param fatchRuleMap
214
+     * @param dictDataList
215
+     * @param applicantType 申请人类型,自然人-1,机构-2
216
+     * @param resType 被申请人类型,自然人-1,机构-2
217
+     * @return
218
+     */
209 219
     @Transactional
210
-    public CaseApplication buildCaseInfo(File file, Long templateId, List<FatchRule> fatchRuleList, Map<String, List<FatchRule>> fatchRuleMap,  Map<String, SysUser> userMap, List<SysDictData> dictDataList, Map<String, Long> deptMap,LoginUser loginUser) {
220
+    public CaseApplicationDTO buildCaseInfo(File file, Long templateId, List<FatchRule> fatchRuleList, Map<String, List<FatchRule>> fatchRuleMap,
221
+                                          List<SysDictData> dictDataList,
222
+                                         Integer applicantType,Integer resType) {
211 223
         // fileMap<caseId, List<File>>
212 224
         Map<String, String> fatchMap = new HashMap<>();
213
-        Integer batchNumber = caseApplicationMapper.selectMaxBatchNumber();
214
-        AtomicInteger maxBatchNumber = new AtomicInteger();
215
-        if (batchNumber == null) {
216
-            maxBatchNumber.set(1);
217
-
218
-        } else {
219
-            maxBatchNumber.set(batchNumber+1);
220
-
221
-        }
222 225
         Map<String, String> fileMap = findFile(file, fatchRuleList);
223 226
         if (fileMap != null && fileMap.size()> 0) {
224 227
             // 根据抓取规则循环抓取
@@ -228,15 +231,9 @@ public class CaseZipImportImpl {
228 231
             }
229 232
 
230 233
             if (fatchMap.size() > 0) {
231
-
232
-                // 尊敬的{1},您的代理的案件已接入仲裁系统,复制访问https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 进入小程序进行认证注册。如非本人操作,请忽略本短信
233
-//                SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
234
-//                request.setTemplateId("1956159");
235
-
236 234
                 // 新增的案件
237 235
                 // 组装案件内置字段主表内容
238
-                CaseApplication caseApplication = new CaseApplication();
239
-                caseApplication.setId(IdWorkerUtil.getId());
236
+                CaseApplicationDTO caseApplication = new CaseApplicationDTO();
240 237
                 caseApplication.setTemplateId(templateId);
241 238
                 Map<Integer, List<FatchRule>> defaultRuleMap = fatchRuleList.stream().collect(Collectors.groupingBy(FatchRule::getIsDefault));
242 239
                 // 自定义字段,组装columnValue表
@@ -252,39 +249,13 @@ public class CaseZipImportImpl {
252 249
                         columnValue.setCaseId(caseApplication.getId());
253 250
                         columnValueList.add(columnValue);
254 251
                     });
255
-                    caseApplication.setColumnValues(columnValueList);
252
+                    caseApplication.setColumnValueList(columnValueList);
256 253
                 }
257
-
258
-                // 角色用户
259
-                List<SysUserRole> userRoleList = new ArrayList<>();
260
-
261
-                // 组装机构
262
-                List<SysDept> sysDepts = new ArrayList<>();
263 254
                 // 案件附件
264 255
                 List<CaseAttach> caseAttachs = new ArrayList<>();
265
-                //发送短信列表
266
-                List<SmsSendRecord> smsSendRecordList = new ArrayList<>();
267
-                // 短信记录
268
-                List<SmsUtils.SendSmsRequest> smsRequestList = new ArrayList<>();
269
-
270
-                // 需要新增的用户
271
-                List<SysUser> addUsers = new ArrayList<>();
272
-              //  caseApplication.setCaseStatus(CaseApplicationConstants.CASE_APPLICATION);
273
-                caseApplication.setCaseLogId(IdWorkerUtil.getId());
274
-                caseApplication.setUpdateSubmitStatus(UpdateSubmitStatus.UNCOMMITTED.getCode());
275
-                caseApplication.setCaseAppliId(caseApplication.getId());
276
-
277
-                // 设置批号
278
-                caseApplication.setBatchNumber(maxBatchNumber.get());
279
-                // 设置编号
280
-                String maxCaseNumStr = generateCaseNum();
281
-                caseApplication.setCaseNum(maxCaseNumStr);
282
-                caseApplication.setCreateBy(loginUser!=null?loginUser.getUsername():"admin");
283
-                caseApplication.setVersion(1);
284 256
                 // 组装案件内置字段主表内容
285
-
286 257
                 // 组装内置字段
287
-                buildDefaultColumn(caseApplication, dictDataList, fatchMap, deptMap, sysDepts, userMap, addUsers, userRoleList, smsSendRecordList, smsRequestList);
258
+                buildDefaultColumn(caseApplication, dictDataList, fatchMap, applicantType,resType);
288 259
                 // 组装附件
289 260
                 for (Map.Entry<String, String> entry : fileMap.entrySet()) {
290 261
                     String fileUrl = entry.getValue();
@@ -332,7 +303,7 @@ public class CaseZipImportImpl {
332 303
 
333 304
                         CaseAttach caseAttach = new CaseAttach();
334 305
                         caseAttach.setCaseAppliId(caseApplication.getId());
335
-                        filePath=filePath.replace("home/ruoyi/uploadPath/","profile/");
306
+                        filePath=fileUrl.replace("home/ruoyi/uploadPath/","profile/");
336 307
                         caseAttach.setAnnexPath(filePath);
337 308
 
338 309
                         caseAttach.setAnnexName(name);
@@ -350,59 +321,12 @@ public class CaseZipImportImpl {
350 321
                     }
351 322
                 }
352 323
                 caseApplication.setCaseAttachList(caseAttachs);
324
+
353 325
                 // 案件压缩包导入
354 326
                 caseApplication.setImportFlag(2);
355
-                // 多线程执行
356
-//                List<MultipleThreadListParam> execList = new ArrayList<>();
357
-//                if (CollectionUtil.isNotEmpty(addUsers)) {
358
-//                    Function<List<SysUser>, Integer> function = userMapper::batchSave;
359
-//                    execList.add(new MultipleThreadListParam(function, addUsers));
360
-//                }
361
-
362
-                // 多线程执行
363
-//                ThreadPoolUtil.execute(() -> {
364
-                    try {
365
-
366
-                        caseApplicationMapper.insertCaseApplication(caseApplication);
367
-                        // 新增日志
368
-                     //   CaseLogUtils.insertCaseLog(caseApplication.getId(), CaseApplicationConstants.CASE_INSERT, "",loginUser);
369
-                        caseApplicationLogMapper.insert(caseApplication);
370
-                        // 多线程执行
371
-                        if (CollectionUtil.isNotEmpty(addUsers)) {
372
-                            userMapper.batchSave(addUsers);
373
-
374
-                        }
375
-                        if (CollectionUtil.isNotEmpty(userRoleList)) {
376
-                            userRoleMapper.batchUserRole(userRoleList);
377
-
378
-                        }
379
-                        if (CollectionUtil.isNotEmpty(sysDepts)) {
380
-                            sysDeptMapper.batchSave(sysDepts);
381
-
382
-                        }
383
-// todo
384
-//                        if (CollectionUtil.isNotEmpty(caseApplication.getCaseAffiliates())) {
385
-//
386
-//                            caseAffiliateMapper.batchCaseAffiliate(caseApplication.getCaseAffiliates());
387
-//                            //todo
388
-////                            caseAffiliateLogMapper.batchCaseAffiliate(caseApplication.getCaseAffiliates());
389
-//                        }
390
-                        if (CollectionUtil.isNotEmpty(caseAttachs)) {
391
-                            caseAttachMapper.batchSave(caseAttachs);
392
-                            caseAttachLogMapper.batchSave(caseAttachs);
393
-
394
-                        }
395
-                        if (CollectionUtil.isNotEmpty(columnValueList)) {
396
-                            columnValueMapper.batchSave(columnValueList);
397
-                            columnValueLogMapper.batchSave(columnValueList);
398
-                        }
399
-
400
-                    } catch (Exception e) {
401
-                        e.printStackTrace();
402
-                        throw new RuntimeException("案件导入失败");
403
-                    }
404 327
 
405
-//                });
328
+                // 新增
329
+                caseApplicationService.insertOrUpdate(caseApplication);
406 330
                 return caseApplication;
407 331
             }
408 332
         }
@@ -712,33 +636,68 @@ public class CaseZipImportImpl {
712 636
      * @param caseApplication 案件信息
713 637
      * @param dictDataList    内置字段
714 638
      * @param fatchMap        抓取字段内容
639
+     * @param applicantType 申请人类型,自然人-1,机构-2
640
+     * @param resType 被申请人类型,自然人-1,机构-2
715 641
      */
716
-    private void buildDefaultColumn(CaseApplication caseApplication, List<SysDictData> dictDataList, Map<String, String> fatchMap,
717
-                                    Map<String, Long> deptMap, List<SysDept> sysDepts,
718
-                                    Map<String, SysUser> userMap, List<SysUser> addUsers, List<SysUserRole> userRoleList,
719
-                                    List<SmsSendRecord> smsSendRecords, List<SmsUtils.SendSmsRequest> smsRequestList) {
642
+    private void buildDefaultColumn(CaseApplicationDTO caseApplication, List<SysDictData> dictDataList, Map<String, String> fatchMap,
643
+                                    Integer applicantType,Integer resType) {
720 644
         // 组装内置字段
721 645
         if (CollectionUtil.isEmpty(dictDataList)) {
722 646
             return;
723 647
         }
724
-        List<CaseAffiliate> caseAffiliates = new ArrayList<>();
725
-        // 被申请人
726
-        CaseAffiliate debtorAffiliate = new CaseAffiliate();
727
-        debtorAffiliate.setCaseAppliId(caseApplication.getId());
728
-        debtorAffiliate.setCaseAppliLogId(caseApplication.getCaseLogId());
729
-        // 申请人
730
-        CaseAffiliate affiliate = new CaseAffiliate();
731
-        affiliate.setCaseAppliLogId(caseApplication.getCaseLogId());
732
-        affiliate.setCaseAppliId(caseApplication.getId());
648
+        CaseAffiliateVO affiliateVO = new CaseAffiliateVO();
649
+        List<CaseAffiliateBase> applicantList = new ArrayList<>();
650
+        List<CaseAffiliateBase> resList = new ArrayList<>();
651
+        affiliateVO.setApplicant(applicantList);
652
+        affiliateVO.setRes(resList);
653
+        CaseAffiliateBase affiliateBase = new CaseAffiliateBase();
654
+
655
+        CaseAffiliateBase resBase = new CaseAffiliateBase();
656
+        CaseAffiliateEntity applicant = new CaseAffiliateEntity();
657
+        applicant.setRoleType(1);
658
+        if(applicantType.equals(1)){
659
+            // 自然人
660
+            applicant.setOrganizeFlag(0);
661
+            applicant.setOperatorFlag(1);
662
+        }else {
663
+            // 机构
664
+            applicant.setOrganizeFlag(1);
665
+        }
666
+        CaseAffiliateEntity applicantAgent = new CaseAffiliateEntity();
667
+        applicantAgent.setRoleType(2);
668
+        applicantAgent.setOrganizeFlag(0);
669
+        applicantAgent.setOperatorFlag(1);
670
+        CaseAffiliateEntity res = new CaseAffiliateEntity();
671
+        res.setRoleType(3);
672
+        if(resType.equals(1)){
673
+            // 自然人
674
+            res.setOrganizeFlag(0);
675
+            res.setOperatorFlag(1);
676
+        }else {
677
+            // 机构
678
+            res.setOrganizeFlag(1);
679
+        }
680
+        CaseAffiliateEntity resAgent = new CaseAffiliateEntity();
681
+        resAgent.setRoleType(4);
682
+        resAgent.setOrganizeFlag(0);
683
+        resAgent.setOperatorFlag(1);
684
+        affiliateBase.setApplicant(applicant);
685
+        affiliateBase.setApplicantAgent(applicantAgent);
686
+        resBase.setRes(res);
687
+        resBase.setResAgent(resAgent);
688
+        applicantList.add(affiliateBase);
689
+        resList.add(resBase);
690
+        affiliateVO.setApplicant(applicantList);
691
+        affiliateVO.setRes(resList);
733 692
         for (SysDictData dictData : dictDataList) {
734 693
             if (StrUtil.isNotEmpty(dictData.getDictLabel())) {
735 694
                 if (dictData.getDictLabel().contains("被申请人")) {
736 695
                     // 组装被申请人内置自段
737
-                    buildDebtorColumn(dictData, fatchMap, debtorAffiliate, caseApplication.getId());
696
+                    buildDebtorColumn(dictData, fatchMap,  res,resAgent);
738 697
                 } else if (dictData.getDictLabel().contains("申请人") || dictData.getDictLabel().contains("统一社会信用代码")
739 698
                         || dictData.getDictLabel().contains("法定代表人") || dictData.getDictLabel().contains("委托代理人")) {
740 699
                     // 组装申请人内置自段
741
-                    buildAffilcateColumn(dictData, fatchMap, affiliate, deptMap, sysDepts, userMap, addUsers, userRoleList, caseApplication, smsSendRecords, smsRequestList);
700
+                    buildAffilcateColumn(dictData, fatchMap,   caseApplication,applicant,applicantAgent);
742 701
                 } else if (dictData.getDictLabel().contains("合同编号")) {
743 702
                     // 合同编号
744 703
                     String contractNumber = fatchMap.get("合同编号" );
@@ -754,13 +713,10 @@ public class CaseZipImportImpl {
754 713
                         try {
755 714
                             BigDecimal bigDecimal = new BigDecimal(caseSubjectAmount);
756 715
                             caseApplication.setCaseSubjectAmount(bigDecimal);
757
-                                //todo 暂时设置计费比率为0.01
758
-                                BigDecimal feeRate = new BigDecimal(0.01);
759
-                                BigDecimal feePayable = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2, BigDecimal.ROUND_HALF_UP);
760
-                                caseApplication.setFeePayable(feePayable);
761
-
762 716
                         } catch (Exception e) {
763 717
                         }
718
+                    }else {
719
+                        caseApplication.setCaseSubjectAmount(BigDecimal.ZERO);
764 720
                     }
765 721
 
766 722
                 } else {
@@ -773,14 +729,7 @@ public class CaseZipImportImpl {
773 729
             }
774 730
 
775 731
         }
776
-        if (ObjectUtil.isNotEmpty(affiliate)) {
777
-            caseAffiliates.add(affiliate);
778
-        }
779
-        if (ObjectUtil.isNotEmpty(debtorAffiliate)) {
780
-            caseAffiliates.add(debtorAffiliate);
781
-        }
782
-        // todo
783
-//        caseApplication.setCaseAffiliates(caseAffiliates);
732
+        caseApplication.setAffiliate(affiliateVO);
784 733
 
785 734
     }
786 735
 
@@ -789,134 +738,43 @@ public class CaseZipImportImpl {
789 738
      *
790 739
      * @param dictData  内置字段
791 740
      * @param fatchMap  抓取内容
792
-     * @param affiliate 案件人员
741
+     * @param applicant  申请人
742
+     * @param applicantAgent  申请代理人
793 743
      */
794
-    private void buildAffilcateColumn(SysDictData dictData, Map<String, String> fatchMap, CaseAffiliate affiliate,
795
-                                      Map<String, Long> deptMap, List<SysDept> sysDepts,
796
-                                      Map<String, SysUser> userMap, List<SysUser> addUsers, List<SysUserRole> userRoleList, CaseApplication caseApplication,
797
-                                      List<SmsSendRecord> smsSendRecords, List<SmsUtils.SendSmsRequest> smsRequestList) {
798
-
799
-        affiliate.setIdentityType(1);
800
-
744
+    private void buildAffilcateColumn(SysDictData dictData, Map<String, String> fatchMap,
745
+                                      CaseApplicationDTO caseApplication,CaseAffiliateEntity applicant,
746
+                                      CaseAffiliateEntity applicantAgent) {
801 747
         // 申请人
802 748
         switch (dictData.getDictLabel()) {
803 749
             case "申请人姓名":
804
-                affiliate.setName((fatchMap.get(dictData.getDictLabel())));
805
-                if (StrUtil.isNotEmpty(affiliate.getName())) {
806
-                    // 组装申请机构
807
-                    // 将组织机构id设为申请人名称
808
-                    if (deptMap.containsKey(affiliate.getName())) {
809
-                        affiliate.setApplicationOrganId(String.valueOf(deptMap.get(affiliate.getName())));
810
-                        affiliate.setApplicationOrganName(affiliate.getName());
811
-                    } else {
812
-                        // 如果不存在则新增
813
-                        SysDept dept = new SysDept();
814
-                        dept.setParentId(0L);
815
-                        dept.setDeptName(affiliate.getName());
816
-                        dept.setAncestors("0");
817
-                        dept.setOrderNum(1);
818
-                        dept.setStatus("0");
819
-                        dept.setDelFlag("0");
820
-                     //   dept.setCreateBy(getUsername());
821
-                     //   dept.setUpdateBy(getUsername());
822
-                        dept.setDeptId(Long.valueOf(IdWorkerUtil.getId()));
823
-                        sysDepts.add(dept);
824
-                        deptMap.put(dept.getDeptName(), dept.getDeptId());
825
-                        affiliate.setApplicationOrganId(String.valueOf(dept.getDeptId()));
826
-                        affiliate.setApplicationOrganName(affiliate.getName());
827
-
828
-                    }
829
-                }
750
+                applicant.setName((fatchMap.get(dictData.getDictLabel())));
830 751
                 break;
831 752
             case "统一社会信用代码":
832
-                affiliate.setIdentityNum((fatchMap.get(dictData.getDictLabel())));
753
+                applicant.setCode((fatchMap.get(dictData.getDictLabel())));
754
+                break;
755
+            case "身份证号":
756
+                applicant.setIdCard((fatchMap.get(dictData.getDictLabel())));
833 757
                 break;
834 758
             case "法定代表人":
835
-                affiliate.setCompLegalPerson(fatchMap.get(dictData.getDictLabel()));
759
+                applicant.setCompLegalPerson(fatchMap.get(dictData.getDictLabel()));
836 760
                 break;
837 761
             case "法定代表人职位":
838
-                affiliate.setCompLegalperPost((fatchMap.get(dictData.getDictLabel())));
762
+                applicant.setPosition((fatchMap.get(dictData.getDictLabel())));
839 763
                 break;
840 764
             case "申请人住所":
841
-                affiliate.setResidenAffili((fatchMap.get(dictData.getDictLabel())));
765
+                applicant.setHome((fatchMap.get(dictData.getDictLabel())));
842 766
                 break;
843 767
             case "申请人联系地址":
844
-                affiliate.setContactAddress(fatchMap.get(dictData.getDictLabel()));
768
+                applicant.setAddress(fatchMap.get(dictData.getDictLabel()));
845 769
                 break;
846 770
             case "委托代理人姓名":
847
-                affiliate.setNameAgent(fatchMap.get(dictData.getDictLabel()));
771
+                applicantAgent.setName(fatchMap.get(dictData.getDictLabel()));
848 772
                 break;
849 773
             case "委托代理人联系电话":
850
-                affiliate.setContactTelphoneAgent(fatchMap.get(dictData.getDictLabel()));
851
-                if (StrUtil.isNotEmpty(affiliate.getContactTelphoneAgent())) {
852
-                    SysUser agentUser = null;
853
-                    // 用户已存在
854
-                    if (userMap.containsKey(affiliate.getContactTelphoneAgent())) {
855
-                        agentUser = userMap.get(affiliate.getContactTelphoneAgent());
856
-                        if (null != agentUser.getDeptId() && String.valueOf(agentUser.getDeptId()).equals(affiliate.getApplicationOrganId())) {
857
-                            // 同步用户表和案件关联人表的手机号和名称
858
-                            affiliate.setContactTelphoneAgent(agentUser.getPhonenumber());
859
-                            affiliate.setNameAgent(agentUser.getNickName());
860
-                            affiliate.setApplicantAgentUserId(String.valueOf(agentUser.getUserId()));
861
-                            if (StrUtil.isNotEmpty(agentUser.getIdCard())) {
862
-                                affiliate.setIdentityNumAgent(agentUser.getIdCard());
863
-                            } else {
864
-                                affiliate.setIdentityNumAgent(affiliate.getIdentityNumAgent());
865
-                            }
866
-                            List<Long> longList = new ArrayList<>();
867
-                            // 新增角色为申请人
868
-                            if (CollectionUtil.isNotEmpty(agentUser.getRoles())) {
869
-                                longList = agentUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList());
870
-                                if (!longList.contains(roleId)) {
871
-                                    insertAgentUserRole(agentUser, roleId, userRoleList);
872
-                                }
873
-                            } else {
874
-
875
-                                insertAgentUserRole(agentUser, roleId, userRoleList);
876
-                            }
877
-
878
-                        }
879
-                    } else {
880
-                        // 用户不存在,新增
881
-                        agentUser = new SysUser();
882
-                        agentUser.setUserId(Long.valueOf(IdWorkerUtil.getId()));
883
-                        agentUser.setIdCard(affiliate.getIdentityNumAgent());
884
-                        agentUser.setNickName(affiliate.getNameAgent());
885
-                        agentUser.setUserName(affiliate.getContactTelphoneAgent());
886
-                        agentUser.setPhonenumber(affiliate.getContactTelphoneAgent());
887
-                        agentUser.setPassword(SecurityUtils.encryptPassword("abc123456"));
888
-                        agentUser.setDeptId(Long.valueOf(affiliate.getApplicationOrganId()));
889
-                        addUsers.add(agentUser);
890
-                        userMap.put(agentUser.getPhonenumber(), agentUser);
891
-                        insertAgentUserRole(agentUser, roleId, userRoleList);
892
-
893
-                    }
894
-//                    if (addUsers != null) {
895
-//                        SysUser finalAgentUser = agentUser;
896
-//                        if (CollectionUtil.isNotEmpty(smsRequestList) && smsRequestList.stream().noneMatch(smsSendRecord -> smsSendRecord.getPhone().equals(finalAgentUser.getPhonenumber()))) {
897
-//                            SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
898
-//                            request.setTemplateId("1956159");
899
-//                            request.setPhone(agentUser.getPhonenumber());
900
-//                            request.setTemplateParamSet(new String[]{agentUser.getNickName()});
901
-//                            smsRequestList.add(request);
902
-//                            SmsSendRecord smsSendRecord = new SmsSendRecord();
903
-//                            smsSendRecord.setCaseId(caseApplication.getId());
904
-//                            smsSendRecord.setCaseNum(caseApplication.getCaseNum());
905
-//                            smsSendRecord.setPhone(request.getPhone());
906
-//                            smsSendRecord.setSendTime(new Date());
907
-//                            String content = "尊敬的" + agentUser.getNickName() + ",您的代理的案件已接入仲裁系统,复制访问https://miniapp-3gpama6l759911ef-1321289474.tcloudbaseapp.com/jump-mp.html 进入小程序进行认证注册。如非本人操作,请忽略本短信";
908
-//                            smsSendRecord.setSendContent(content);
909
-//                          //  smsSendRecord.setCreateBy(getUsername());
910
-//                            smsSendRecords.add(smsSendRecord);
911
-//                        }
912
-//
913
-//
914
-//                    }
915
-
916
-                }
774
+                applicantAgent.setPhone(fatchMap.get(dictData.getDictLabel()));
917 775
                 break;
918 776
             case "委托代理人电子邮件":
919
-                affiliate.setAgentEmail(StrUtil.isNotEmpty(fatchMap.get(dictData.getDictLabel())) ? fatchMap.get(dictData.getDictLabel()).replace("\n", "").replaceAll("\\s", "") : null);
777
+                applicantAgent.setEmail(StrUtil.isNotEmpty(fatchMap.get(dictData.getDictLabel())) ? fatchMap.get(dictData.getDictLabel()).replace("\n", "").replaceAll("\\s", "") : null);
920 778
                 break;
921 779
             default:
922 780
                 ObjectFieldUtils.setValue(caseApplication, dictData.getDictValue(), fatchMap.get(dictData.getDictLabel() ));
@@ -944,19 +802,22 @@ public class CaseZipImportImpl {
944 802
      *
945 803
      * @param dictData        内置字段
946 804
      * @param fatchMap        抓取内容
947
-     * @param debtorAffiliate 被申请人
805
+     * @param res 被申请人
806
+     * @param resAgent 被申请人代理
948 807
      */
949
-    private void buildDebtorColumn(SysDictData dictData, Map<String, String> fatchMap, CaseAffiliate debtorAffiliate, Long caseId) {
808
+    private void buildDebtorColumn(SysDictData dictData, Map<String, String> fatchMap,CaseAffiliateEntity res,CaseAffiliateEntity resAgent) {
950 809
 
951
-        debtorAffiliate.setIdentityType(2);
952
-        // 被申请人
810
+        // 被申请人在。
953 811
         switch (dictData.getDictLabel()) {
954 812
             case "被申请人姓名":
955
-                debtorAffiliate.setName(fatchMap.get(dictData.getDictLabel() ));
813
+                res.setName(fatchMap.get(dictData.getDictLabel() ));
814
+                break;
815
+            case "被申请人":
816
+                res.setName(fatchMap.get(dictData.getDictLabel() ));
956 817
                 break;
957 818
             case "被申请人身份证号":
958 819
                 String identityNum = fatchMap.get(dictData.getDictLabel() );
959
-                debtorAffiliate.setIdentityNum(fatchMap.get(dictData.getDictLabel() ));
820
+                res.setIdCard(fatchMap.get(dictData.getDictLabel() ));
960 821
                 // 出生年月日,从身份证抓取
961 822
                 if (StrUtil.isNotEmpty(identityNum)) {
962 823
                     identityNum = identityNum.replace("\n", "");
@@ -970,21 +831,21 @@ public class CaseZipImportImpl {
970 831
                         } catch (Exception e) {
971 832
                             e.printStackTrace();
972 833
                         }
973
-                        debtorAffiliate.setResponBirth(birthdayDate);
834
+                        res.setBirth(birthdayDate);
974 835
                     }
975 836
                     //从身份证抓取性别
976
-                    debtorAffiliate.setResponSex(identityNumMap.get("sexCode"));
837
+                    res.setSex(identityNumMap.get("sexCode"));
977 838
                 }
978 839
 
979 840
                 break;
980 841
             case "被申请人住所":
981
-                debtorAffiliate.setResidenAffili(fatchMap.get(dictData.getDictLabel() ));
842
+                res.setHome(fatchMap.get(dictData.getDictLabel() ));
982 843
                 break;
983 844
             case "被申请人联系电话":
984
-                debtorAffiliate.setContactTelphone(fatchMap.get(dictData.getDictLabel() ));
845
+                res.setPhone(fatchMap.get(dictData.getDictLabel() ));
985 846
                 break;
986 847
             case "被申请人电子邮件":
987
-                debtorAffiliate.setEmail(StrUtil.isNotEmpty(fatchMap.get(dictData.getDictLabel() )) ? fatchMap.get(dictData.getDictLabel() ).replace("\n", "").replaceAll("\\s", "") : null);
848
+                res.setEmail(StrUtil.isNotEmpty(fatchMap.get(dictData.getDictLabel() )) ? fatchMap.get(dictData.getDictLabel() ).replace("\n", "").replaceAll("\\s", "") : null);
988 849
 
989 850
                 break;
990 851
             default:

+ 2
- 2
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/DownFileService.java 查看文件

@@ -65,8 +65,8 @@ public class DownFileService {
65 65
                 CaseAttach caseAttach = new CaseAttach();
66 66
                 caseAttach.setCaseAppliId(caseAppliId);
67 67
                 caseAttach.setAnnexType(3);
68
-                caseAttach.setAnnexPath(savePath);
69
-                caseAttach.setAnnexName(saveName);
68
+                caseAttach.setAnnexPath(saveName);
69
+                caseAttach.setAnnexName("裁决书.pdf");
70 70
                 caseAttachMapper.save(caseAttach);
71 71
             }
72 72
 

+ 4
- 5
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/MsSignSealServiceImpl.java 查看文件

@@ -144,7 +144,6 @@ public class MsSignSealServiceImpl implements MsSignSealService {
144 144
                         String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
145 145
                         String fileName = UUID.randomUUID().toString().replace("-", "") + ".pdf";
146 146
                         String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
147
-                        String savePath = "/home/ruoyi/uploadPath/upload/";
148 147
 
149 148
                         // 创建日期目录
150 149
                         File saveFolder = new File(saveFolderPath);
@@ -163,8 +162,8 @@ public class MsSignSealServiceImpl implements MsSignSealService {
163 162
                             CaseAttach caseAttach = new CaseAttach();
164 163
                             caseAttach.setCaseAppliId(caseAppliId);
165 164
                             caseAttach.setAnnexType(3);
166
-                            caseAttach.setAnnexPath(savePath);
167
-                            caseAttach.setAnnexName(saveName);
165
+                            caseAttach.setAnnexPath(saveName);
166
+                            caseAttach.setAnnexName("裁决书.pdf");
168 167
                             //caseAttach.setUserName(SecurityUtils.getUsername());
169 168
                             //caseAttach.setUserId(SecurityUtils.getUserId());
170 169
                             // 删除已存在的
@@ -247,8 +246,8 @@ public class MsSignSealServiceImpl implements MsSignSealService {
247 246
                         if (downLoadFile) {
248 247
                             CaseAttach caseAttach = new CaseAttach();
249 248
                             caseAttach.setAnnexType(10);  //10代表印章图片
250
-                            caseAttach.setAnnexPath(savePath);
251
-                            caseAttach.setAnnexName(saveName);
249
+                            caseAttach.setAnnexPath(saveName);
250
+                            caseAttach.setAnnexName(fileName);
252 251
                             int i1 = caseAttachMapper.save(caseAttach);
253 252
                             if (i1 > 0) {
254 253
                                 //将附件id保存到公章管理表里

+ 0
- 26
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/SendMailRecordServiceImpl.java 查看文件

@@ -1,26 +0,0 @@
1
-package com.ruoyi.wisdomarbitrate.service.impl;
2
-
3
-import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
4
-import com.ruoyi.wisdomarbitrate.domain.SendMailRecord;
5
-import com.ruoyi.wisdomarbitrate.mapper.SendMailRecordMapper;
6
-import com.ruoyi.wisdomarbitrate.service.ISendMailRecordService;
7
-import org.springframework.beans.factory.annotation.Autowired;
8
-import org.springframework.stereotype.Service;
9
-
10
-import java.util.List;
11
-
12
-@Service
13
-public class SendMailRecordServiceImpl implements ISendMailRecordService {
14
-    @Autowired
15
-    private SendMailRecordMapper sendMailRecordMapper;
16
-
17
-
18
-    @Override
19
-    public List<SendMailRecord> selectSendMailRecordList(SendMailRecord sendMailRecord) {
20
-        List<SendMailRecord> records = sendMailRecordMapper.selectSendMailRecord(sendMailRecord);
21
-        return records;
22
-    }
23
-
24
-
25
-
26
-}

+ 0
- 18
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/VideoServiceImpl.java 查看文件

@@ -8,32 +8,20 @@ import com.alibaba.fastjson.JSON;
8 8
 import com.alibaba.fastjson.JSONArray;
9 9
 import com.alibaba.fastjson.JSONObject;
10 10
 import com.ruoyi.common.config.RuoYiConfig;
11
-import com.ruoyi.common.constant.CacheConstants;
12 11
 import com.ruoyi.common.core.domain.AjaxResult;
13 12
 import com.ruoyi.common.core.domain.entity.SysRole;
14 13
 import com.ruoyi.common.core.domain.entity.SysUser;
15
-import com.ruoyi.common.core.domain.model.LoginUser;
16
-import com.ruoyi.common.core.redis.RedisCache;
17 14
 import com.ruoyi.common.utils.PdfUtils;
18 15
 import com.ruoyi.common.utils.SecurityUtils;
19
-import com.ruoyi.common.utils.SmsUtils;
20
-import com.ruoyi.common.utils.StringUtils;
21
-import com.ruoyi.common.utils.file.FileUploadUtils;
22
-import com.ruoyi.common.utils.spring.SpringUtils;
23 16
 import com.ruoyi.system.mapper.SysRoleMapper;
24 17
 import com.ruoyi.system.mapper.SysUserMapper;
25
-import com.ruoyi.system.mapper.SysUserRoleMapper;
26
-import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
27 18
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
28 19
 import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
29
-import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
30 20
 import com.ruoyi.wisdomarbitrate.domain.entity.CaseAffiliateEntity;
31 21
 import com.ruoyi.wisdomarbitrate.domain.vo.ReservedConferenceVO;
32
-import com.ruoyi.wisdomarbitrate.domain.vo.WeChatUserVO;
33 22
 import com.ruoyi.wisdomarbitrate.mapper.*;
34 23
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
35 24
 import com.ruoyi.wisdomarbitrate.service.VideoService;
36
-import com.ruoyi.wisdomarbitrate.service.WeChatUserService;
37 25
 import com.tencentcloudapi.common.Credential;
38 26
 import com.tencentcloudapi.common.exception.TencentCloudSDKException;
39 27
 import com.tencentcloudapi.common.profile.ClientProfile;
@@ -49,19 +37,13 @@ import org.springframework.beans.factory.annotation.Autowired;
49 37
 import org.springframework.beans.factory.annotation.Value;
50 38
 import org.springframework.stereotype.Service;
51 39
 import org.springframework.transaction.annotation.Transactional;
52
-import org.springframework.util.ResourceUtils;
53 40
 
54 41
 import javax.crypto.Mac;
55 42
 import javax.crypto.spec.SecretKeySpec;
56 43
 import javax.servlet.http.HttpServletRequest;
57
-import java.io.File;
58 44
 import java.io.IOException;
59 45
 import java.nio.file.Paths;
60
-import java.text.SimpleDateFormat;
61 46
 import java.util.*;
62
-import java.util.concurrent.ExecutorService;
63
-import java.util.concurrent.Executors;
64
-import java.util.concurrent.TimeUnit;
65 47
 
66 48
 import static com.ruoyi.common.core.domain.AjaxResult.error;
67 49
 import static com.ruoyi.common.core.domain.AjaxResult.success;

+ 7
- 5
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java 查看文件

@@ -1,12 +1,14 @@
1 1
 package com.ruoyi.wisdomarbitrate.service.impl;
2 2
 
3 3
 import cn.hutool.core.util.StrUtil;
4
+import cn.hutool.json.JSONObject;
4 5
 import com.ruoyi.common.constant.CacheConstants;
5 6
 import com.ruoyi.common.core.domain.AjaxResult;
6 7
 import com.ruoyi.common.core.domain.entity.SysUser;
7 8
 import com.ruoyi.common.core.redis.RedisCache;
9
+import com.ruoyi.common.enums.SMSStatusEnum;
8 10
 import com.ruoyi.common.utils.SecurityUtils;
9
-import com.ruoyi.common.utils.SmsUtils;
11
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
10 12
 import com.ruoyi.common.utils.StringUtils;
11 13
 import com.ruoyi.common.utils.spring.SpringUtils;
12 14
 import com.ruoyi.system.mapper.SysUserMapper;
@@ -48,9 +50,9 @@ public class WeChatUserServiceImpl implements WeChatUserService {
48 50
         //  1954926 普通短信 短信验证码 验证码:,为了保证您的账户安全,请勿想他人泄露验证码信息。如非本人操作,请忽略本短信。
49 51
         request.setPhone(userVO.getPhone());
50 52
         request.setTemplateParamSet(new String[]{ code});
51
-        Boolean flag = SmsUtils.sendSms(request);
52
-        if(flag){
53
-            setCodeCache(userVO.getPhone(),code);
53
+        JSONObject resultObj = SmsUtils.sendSms(request);
54
+        if(resultObj.get("status")!=null && !resultObj.get("status").equals(SMSStatusEnum.FAIL.getCode())){
55
+            setCodeCache(CacheConstants.WE_CHAT_SMS_VERIFY_CODE_KEY + userVO.getPhone(),code);
54 56
             return AjaxResult.success("短信发送成功");
55 57
         }else {
56 58
             return AjaxResult.warn("短信发送失败");
@@ -90,7 +92,7 @@ public class WeChatUserServiceImpl implements WeChatUserService {
90 92
     @Transactional
91 93
     @Override
92 94
     public AjaxResult registerUser(IdentityAuthentication ientityAuthentication) {
93
-        String codeCache = getCodeCache(ientityAuthentication.getPhone());
95
+        String codeCache = getVerifyCodeCacheKey(ientityAuthentication.getPhone());
94 96
         // 校验短信验证码
95 97
         if(StrUtil.isEmpty(codeCache)){
96 98
             return AjaxResult.warn("验证码校验失败");

+ 32
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ISendMailRecordService.java 查看文件

@@ -0,0 +1,32 @@
1
+package com.ruoyi.wisdomarbitrate.service.sendrecord;
2
+
3
+import com.ruoyi.common.core.domain.AjaxResult;
4
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
5
+
6
+import java.util.List;
7
+
8
+public interface ISendMailRecordService {
9
+    /**
10
+     * 查询邮件发送记录
11
+     *
12
+     * @param sendMailRecord
13
+     * @return
14
+     */
15
+
16
+    List<SendMailRecord> selectSendMailRecordList(SendMailRecord sendMailRecord);
17
+
18
+    /**
19
+     * 编辑邮件记录
20
+     *
21
+     * @param sendMailRecord
22
+     */
23
+    AjaxResult updateSendMailRecord(SendMailRecord sendMailRecord);
24
+
25
+    /**
26
+     * 重新发送邮件
27
+     *
28
+     * @param sendMailRecord
29
+     * @return
30
+     */
31
+    Boolean reSendMailRecord(SendMailRecord sendMailRecord);
32
+}

+ 146
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java 查看文件

@@ -0,0 +1,146 @@
1
+package com.ruoyi.wisdomarbitrate.service.sendrecord.impl;
2
+
3
+import cn.hutool.core.collection.CollectionUtil;
4
+import cn.hutool.core.util.ObjectUtil;
5
+import cn.hutool.core.util.StrUtil;
6
+import com.ruoyi.common.core.domain.AjaxResult;
7
+import com.ruoyi.common.utils.EmailOutUtil;
8
+import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
9
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
10
+
11
+import com.ruoyi.wisdomarbitrate.domain.shortmessage.MsSendMailHistoryRecord;
12
+import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
13
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SendMailRecordMapper;
14
+import com.ruoyi.wisdomarbitrate.mapper.shortmessage.MsSendMailHistoryRecordMapper;
15
+import com.ruoyi.wisdomarbitrate.service.sendrecord.ISendMailRecordService;
16
+import org.springframework.beans.BeanUtils;
17
+import org.springframework.beans.factory.annotation.Autowired;
18
+import org.springframework.stereotype.Service;
19
+
20
+import java.io.File;
21
+import java.util.*;
22
+import java.util.function.Function;
23
+import java.util.stream.Collectors;
24
+
25
+@Service
26
+public class SendMailRecordServiceImpl implements ISendMailRecordService {
27
+    @Autowired
28
+    private SendMailRecordMapper sendMailRecordMapper;
29
+
30
+
31
+    @Override
32
+    public List<SendMailRecord> selectSendMailRecordList(SendMailRecord sendMailRecord) {
33
+        List<SendMailRecord> records = sendMailRecordMapper.selectSendMailRecord(sendMailRecord);
34
+        if(CollectionUtil.isNotEmpty(records)){
35
+            Map<Long, String> recordmap = records.stream().filter(record -> StrUtil.isNotEmpty(record.getFileIds())).collect(Collectors.toMap(SendMailRecord::getId, SendMailRecord::getFileIds, (k1, k2) -> k2));
36
+            List<String> fileIds = new ArrayList<>(recordmap.values());
37
+            if(CollectionUtil.isNotEmpty(fileIds)){
38
+             List<CaseAttach> caseAttaches=   msCaseAttachMapper.selectByIds(fileIds);
39
+             if(CollectionUtil.isNotEmpty(caseAttaches)){
40
+                 Map<Long, CaseAttach> attachMap = caseAttaches.stream().collect(Collectors.toMap(CaseAttach::getAnnexId, Function.identity(), (k1, k2) -> k2));
41
+                 for (SendMailRecord record : records) {
42
+                     List<CaseAttach> msCaseAttaches = new ArrayList<>();
43
+                     if(recordmap.containsKey(record.getId())){
44
+                         String fileIdStr = recordmap.get(record.getId());
45
+                         if(ObjectUtil.isNotNull(fileIdStr) ) {
46
+                             String[] splitFileId = fileIdStr.split(",");
47
+                             for (String fileId : splitFileId) {
48
+                                 if (ObjectUtil.isNotNull(fileId) && attachMap.containsKey(Long.parseLong(fileId))) {
49
+                                     msCaseAttaches.add(attachMap.get(Long.parseLong(fileId)));
50
+                                 }
51
+                             }
52
+                             record.setCaseAttachList(msCaseAttaches);
53
+                         }
54
+                     }
55
+                 }
56
+             }
57
+            }
58
+        }
59
+        return records;
60
+    }
61
+
62
+    @Autowired
63
+    MsSendMailHistoryRecordMapper msSendMailHistoryRecordMapper;
64
+
65
+    /**
66
+     * 编辑邮件记录
67
+     *
68
+     * @param sendMailRecord
69
+     */
70
+    @Override
71
+    public AjaxResult updateSendMailRecord(SendMailRecord sendMailRecord) {
72
+        try {
73
+            if (sendMailRecord != null && sendMailRecord.getId() != null) {
74
+                SendMailRecord old = sendMailRecordMapper.querySendMailRecordById(sendMailRecord.getId());
75
+                MsSendMailHistoryRecord msSendMailHistoryRecord = new MsSendMailHistoryRecord();
76
+                BeanUtils.copyProperties(old, msSendMailHistoryRecord);
77
+                msSendMailHistoryRecord.setParentId(old.getId());
78
+                msSendMailHistoryRecord.setId(null);
79
+                msSendMailHistoryRecordMapper.insertSelective(msSendMailHistoryRecord);
80
+                sendMailRecord.setUpdateTime(new Date());
81
+                if(CollectionUtil.isNotEmpty(sendMailRecord.getCaseAttachList())){
82
+                    List<Long> fileIdList = sendMailRecord.getCaseAttachList().stream().map(CaseAttach::getAnnexId).collect(Collectors.toList());
83
+                    if(CollectionUtil.isNotEmpty(fileIdList)){
84
+                        String fileIdStr = StrUtil.join(",", fileIdList);
85
+                        sendMailRecord.setFileIds(fileIdStr);
86
+                    }
87
+                }
88
+                sendMailRecordMapper.updateSendMailRecord(sendMailRecord);
89
+                return AjaxResult.success("编辑成功");
90
+            } else {
91
+                return AjaxResult.error("编辑失败");
92
+            }
93
+        } catch (Exception e) {
94
+            e.printStackTrace();
95
+            return AjaxResult.error("编辑失败");
96
+        }
97
+    }
98
+
99
+    @Autowired
100
+    private EmailOutUtil emailOutUtil;
101
+    @Autowired
102
+    CaseAttachMapper msCaseAttachMapper;
103
+
104
+    /**
105
+     * 重新发送邮件
106
+     *
107
+     * @param sendMailRecord
108
+     * @return
109
+     */
110
+    @Override
111
+    public Boolean reSendMailRecord(SendMailRecord sendMailRecord) {
112
+        List<File> fileList = null;
113
+        // 附件名称map,路径-附件名称
114
+        Map<String,String> fileNameMap=new HashMap<>();
115
+        if (sendMailRecord.getFileIds() != null && sendMailRecord.getFileIds() != "") {
116
+            String[] fileIds = sendMailRecord.getFileIds().split(",");
117
+            for (int i = 0; i < fileIds.length; i++) {
118
+                String fileId = fileIds[i];
119
+                try {
120
+                    Long id = Long.parseLong(fileId);
121
+                    CaseAttach CaseAttach = msCaseAttachMapper.queryAnnexById(id);
122
+                    String annexPath = CaseAttach.getAnnexPath();
123
+                    if (annexPath != null && annexPath != "") {
124
+                        String prefix = "/profile";
125
+                        int startIndex = prefix.length();
126
+                        String path = "/home/ruoyi/uploadPath/" + annexPath.substring(startIndex + 1);
127
+                        File file = new File(path);
128
+                        fileList.add(file);
129
+                        fileNameMap.put(file.getPath(), CaseAttach.getAnnexName());
130
+                    }
131
+                } catch (Exception e) {
132
+                    e.printStackTrace();
133
+                }
134
+            }
135
+        }
136
+        Boolean flag = emailOutUtil.sendEmil(sendMailRecord.getMailAddress(), sendMailRecord.getMailContent(), sendMailRecord.getMailSubject(), fileList, null,fileNameMap);
137
+       //发送成功后更细邮件记录的发送时间和发送状态
138
+        if (flag) {
139
+            sendMailRecord.setSendStatus(1);
140
+            sendMailRecord.setSendTime(new Date());
141
+            sendMailRecord.setUpdateTime(new Date());
142
+            sendMailRecordMapper.updateSendMailRecord(sendMailRecord);
143
+        }
144
+        return flag;
145
+    }
146
+}

+ 41
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/shortmessage/ShortMessageService.java 查看文件

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

+ 301
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/shortmessage/impl/ShortMessageServiceImpl.java 查看文件

@@ -0,0 +1,301 @@
1
+package com.ruoyi.wisdomarbitrate.service.shortmessage.impl;
2
+
3
+import cn.hutool.core.collection.CollectionUtil;
4
+import cn.hutool.http.HttpRequest;
5
+import cn.hutool.http.HttpResponse;
6
+import cn.hutool.json.JSONObject;
7
+import cn.hutool.json.JSONUtil;
8
+import com.ruoyi.common.constant.Constants;
9
+import com.ruoyi.common.core.domain.AjaxResult;
10
+import com.ruoyi.common.enums.SMSStatusEnum;
11
+
12
+import com.ruoyi.wisdomarbitrate.utils.SmsUtils;
13
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
14
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsSendHistoryRecordParam;
15
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsSendRecordParam;
16
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplate;
17
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplateParam;
18
+import com.ruoyi.wisdomarbitrate.domain.shortmessage.MeetingInfo;
19
+import com.ruoyi.wisdomarbitrate.domain.shortmessage.MsSmsSendHistoryRecord;
20
+
21
+import com.ruoyi.wisdomarbitrate.domain.vo.shortmessage.MeetingInfoVO;
22
+import com.ruoyi.wisdomarbitrate.domain.vo.shortmessage.ReSendMessageVO;
23
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
24
+import com.ruoyi.wisdomarbitrate.mapper.shortmessage.MeetingInfoMapper;
25
+import com.ruoyi.wisdomarbitrate.mapper.shortmessage.MsSmsSendHistoryRecordMapper;
26
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsSendHistoryRecordParamMapper;
27
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsSendRecordParamMapper;
28
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsTemplateMapper;
29
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsTemplateParamMapper;
30
+import com.ruoyi.wisdomarbitrate.service.shortmessage.ShortMessageService;
31
+
32
+import io.jsonwebtoken.Jwts;
33
+import io.jsonwebtoken.SignatureAlgorithm;
34
+import org.springframework.beans.BeanUtils;
35
+import org.springframework.beans.factory.annotation.Autowired;
36
+import org.springframework.beans.factory.annotation.Value;
37
+import org.springframework.stereotype.Service;
38
+import org.springframework.transaction.annotation.Transactional;
39
+import tk.mybatis.mapper.entity.Example;
40
+
41
+import java.text.MessageFormat;
42
+import java.util.*;
43
+import java.util.stream.Collectors;
44
+
45
+@Service
46
+public class ShortMessageServiceImpl implements ShortMessageService {
47
+    @Autowired
48
+    MsSmsSendHistoryRecordMapper msSmsSendHistoryRecordMapper;
49
+    @Autowired
50
+    MeetingInfoMapper meetingInfoMapper;
51
+    @Autowired
52
+    SmsRecordMapper smsRecordMapper;
53
+    @Autowired
54
+    MsSmsTemplateMapper templateMapper;
55
+    @Autowired
56
+    MsSmsTemplateParamMapper templateParamMapper;
57
+    @Autowired
58
+    MsSmsSendRecordParamMapper recordParamMapper;
59
+    @Autowired
60
+    MsSmsSendHistoryRecordParamMapper historyRecordParamMapper;
61
+
62
+    @Override
63
+    public List<SmsSendRecord> smsSendRecordList(SmsSendRecord smsSendRecord) {
64
+        List<SmsSendRecord> records = smsRecordMapper.getSmsSendRecord(smsSendRecord);
65
+        if (CollectionUtil.isEmpty(records)) {
66
+            return null;
67
+        }
68
+        List<Long> templateIds = records.stream().map(SmsSendRecord::getMsSmsTemplateId).collect(Collectors.toList());
69
+        if (CollectionUtil.isEmpty(templateIds)) {
70
+            return records;
71
+        }
72
+        List<Long> ids = records.stream().map(SmsSendRecord::getId).collect(Collectors.toList());
73
+        // 查询记录表参数值
74
+        Example recordParamExam = new Example(MsSmsSendRecordParam.class);
75
+        recordParamExam.createCriteria().andIn("smsRecordId", ids);
76
+        List<MsSmsSendRecordParam> recordParams = recordParamMapper.selectByExample(recordParamExam);
77
+        if (CollectionUtil.isEmpty(recordParams)) {
78
+            return records;
79
+        }
80
+        // 根据模板id查询模板参数
81
+        Example templateParamExam = new Example(MsSmsTemplateParam.class);
82
+        templateParamExam.createCriteria().andIn("smsTemplateId", templateIds);
83
+        List<MsSmsTemplateParam> templateParams = templateParamMapper.selectByExample(templateParamExam);
84
+        if (CollectionUtil.isEmpty(templateParams)) {
85
+            return records;
86
+        }
87
+        // 根据模板id对模板参数分组
88
+        Map<Long, List<MsSmsTemplateParam>> templateParamMap = templateParams.stream().collect(Collectors.groupingBy(MsSmsTemplateParam::getSmsTemplateId));
89
+
90
+        // 根据记录id分组
91
+        Map<Long, List<String>> recordParamContentMap = new HashMap<>();
92
+        for (MsSmsSendRecordParam recordParam : recordParams) {
93
+            List<String> list = recordParamContentMap.get(recordParam.getSmsRecordId());
94
+            if (CollectionUtil.isEmpty(list)) {
95
+                list = new ArrayList<>();
96
+            }
97
+            list.add(recordParam.getParamValue());
98
+            recordParamContentMap.put(recordParam.getSmsRecordId(), list);
99
+        }
100
+        // 根据模板id查询模板
101
+        Example templateExam = new Example(MsSmsTemplate.class);
102
+        templateExam.createCriteria().andIn("id", templateIds);
103
+        List<MsSmsTemplate> templates = templateMapper.selectByExample(templateExam);
104
+        if (CollectionUtil.isEmpty(templates)) {
105
+            return records;
106
+        }
107
+        // 根据主键id获取模板内容
108
+        Map<Long, String> templateMap = templates.stream().collect(Collectors.toMap(MsSmsTemplate::getId, MsSmsTemplate::getContent, (k1, k2) -> k2));
109
+        Map<Long, String> templateIdMap = templates.stream().collect(Collectors.toMap(MsSmsTemplate::getId, MsSmsTemplate::getTemplateId, (k1, k2) -> k2));
110
+        // 组装模板内容
111
+        for (SmsSendRecord record : records) {
112
+            if (record.getMsSmsTemplateId() == null) {
113
+                continue;
114
+            }
115
+            if (!templateMap.containsKey(record.getMsSmsTemplateId())) {
116
+                continue;
117
+            }
118
+
119
+            if (!recordParamContentMap.containsKey(record.getId())) {
120
+                continue;
121
+            }
122
+            if (templateIdMap.containsKey(record.getMsSmsTemplateId())) {
123
+                record.setTemplateId(templateIdMap.get(record.getMsSmsTemplateId()));
124
+            }
125
+            String templateContent = templateMap.get(record.getMsSmsTemplateId());
126
+            record.setTemplateContent(templateContent);
127
+            List<String> recordParamList = recordParamContentMap.get(record.getId());
128
+            if (recordParamContentMap.containsKey(record.getId()) && templateParamMap.containsKey(record.getMsSmsTemplateId())) {
129
+                List<MsSmsTemplateParam> templateParamList = templateParamMap.get(record.getMsSmsTemplateId());
130
+                ArrayList<MsSmsTemplateParam> copyParamList = new ArrayList<>();
131
+                for (int i = 0; i < templateParamList.size(); i++) {
132
+                    MsSmsTemplateParam templateParam = templateParamList.get(i);
133
+                    MsSmsTemplateParam msSmsTemplateParam = new MsSmsTemplateParam();
134
+                    msSmsTemplateParam.setParam(templateParam.getParam());
135
+                    msSmsTemplateParam.setSmsTemplateId(templateParam.getSmsTemplateId());
136
+                    msSmsTemplateParam.setParamName(templateParam.getParamName());
137
+                    msSmsTemplateParam.setId(templateParam.getId());
138
+                    msSmsTemplateParam.setParamValue(recordParamContentMap.get(record.getId()).get(i));
139
+                    copyParamList.add(msSmsTemplateParam);
140
+                }
141
+                record.setTemplateParams(copyParamList);
142
+
143
+            }
144
+            // 按顺序替换占位符
145
+            if (CollectionUtil.isNotEmpty(recordParamList)) {
146
+                recordParamList.add(0, "0");
147
+
148
+                // 将List<String>转换为String[]数组
149
+                String[] paramArray = recordParamList.toArray(new String[recordParamList.size()]);
150
+                String formattedMessage = MessageFormat.format(templateContent, paramArray);
151
+                record.setSendContent(formattedMessage);
152
+            }
153
+
154
+
155
+        }
156
+
157
+        return records;
158
+    }
159
+
160
+    /**
161
+     * 新增发送历史记录
162
+     *
163
+     * @param smsSendRecord
164
+     */
165
+    @Transactional
166
+    @Override
167
+    public void insertShortMessageHistoryRecord(SmsSendRecord smsSendRecord, List<MsSmsSendRecordParam> recordParams) {
168
+        if (smsSendRecord != null) {
169
+            MsSmsSendHistoryRecord historyRecord = new MsSmsSendHistoryRecord();
170
+            BeanUtils.copyProperties(smsSendRecord, historyRecord);
171
+            historyRecord.setId(null);
172
+            historyRecord.setParentId(smsSendRecord.getId());
173
+            int i = msSmsSendHistoryRecordMapper.insert(historyRecord);
174
+            if (i > 0 && CollectionUtil.isNotEmpty(recordParams)) {
175
+                // 新增参数表
176
+                List<MsSmsSendHistoryRecordParam> historyRecordParams = new ArrayList<>();
177
+                for (MsSmsSendRecordParam templateParam : recordParams) {
178
+                    MsSmsSendHistoryRecordParam recordParam = new MsSmsSendHistoryRecordParam();
179
+                    BeanUtils.copyProperties(templateParam, recordParam);
180
+                    recordParam.setId(null);
181
+                    recordParam.setSmsRecordHistoryId(historyRecord.getId());
182
+                    historyRecordParams.add(recordParam);
183
+                }
184
+                historyRecordParamMapper.batchInsert(historyRecordParams);
185
+            }
186
+        }
187
+    }
188
+
189
+    /**
190
+     * 重新发送短信
191
+     *
192
+     * @param reSendMessageVO
193
+     */
194
+    @Override
195
+    public AjaxResult reSendShortMessage(ReSendMessageVO reSendMessageVO) {
196
+        if (reSendMessageVO != null && reSendMessageVO.getTemplateId() != null && reSendMessageVO.getPhone() != null && reSendMessageVO.getTemplateParams() != null && reSendMessageVO.getTemplateParams().size() > 0 && reSendMessageVO.getId() != null) {
197
+            // 根据id查询短信记录
198
+            SmsSendRecord smsSendRecord = smsRecordMapper.selectById(reSendMessageVO.getId());
199
+            if (smsSendRecord == null) {
200
+                return AjaxResult.warn("短信记录不存在");
201
+            }
202
+
203
+            SmsUtils.SendSmsRequest request = new SmsUtils.SendSmsRequest();
204
+            request.setTemplateId(reSendMessageVO.getTemplateId());
205
+            request.setPhone(reSendMessageVO.getPhone());
206
+            List<String> paramsList = reSendMessageVO.getTemplateParams().stream().map(MsSmsTemplateParam::getParamValue).collect(Collectors.toList());
207
+            String[] messageContent = paramsList.toArray(new String[0]);
208
+            request.setTemplateParamSet(messageContent);
209
+            JSONObject resultObj = SmsUtils.sendSms(request);
210
+            smsSendRecord.setSendTime(new Date());
211
+            // 修改sid和状态
212
+            if (resultObj.get("status") != null && !resultObj.get("status").equals(SMSStatusEnum.FAIL.getCode())) {
213
+                smsSendRecord.setSendStatus(SMSStatusEnum.SENDING.getCode());
214
+                smsSendRecord.setSid(resultObj.get("sid") == null ? null : resultObj.get("sid").toString());
215
+                smsSendRecord.setReason(null);
216
+                // 修改
217
+                smsRecordMapper.update(smsSendRecord);
218
+
219
+                return AjaxResult.success("重新发送成功");
220
+            } else {
221
+                smsSendRecord.setSid(resultObj.get("sid") == null ? null : resultObj.get("sid").toString());
222
+                smsSendRecord.setSendStatus(SMSStatusEnum.FAIL.getCode());
223
+                smsSendRecord.setSid(resultObj.get("reason") == null ? null : resultObj.get("reason").toString());
224
+                // 修改
225
+                smsRecordMapper.update(smsSendRecord);
226
+                return AjaxResult.warn("重新发送失败");
227
+            }
228
+        } else {
229
+            return AjaxResult.warn("参数缺失");
230
+        }
231
+    }
232
+
233
+    /**
234
+     * 根据信息生成加密信息记录
235
+     *
236
+     * @param meetingInfoVO
237
+     * @return
238
+     */
239
+    @Override
240
+    public String buildMeetingInfoRecord(MeetingInfoVO meetingInfoVO) {
241
+        String uid = UUID.randomUUID().toString().replace("-", "");
242
+        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();
243
+        meetingInfo.setUid(uid);
244
+        meetingInfoMapper.insertSelective(meetingInfo);
245
+        return uid;
246
+    }
247
+
248
+    /**
249
+     * 通过UID查询加密信息并解密成明文对象
250
+     *
251
+     * @param uid
252
+     */
253
+    @Override
254
+    public Object getMeetingInfo(String uid) {
255
+        MeetingInfoVO result = new MeetingInfoVO();
256
+        MeetingInfo meetingInfo = meetingInfoMapper.selectByPrimaryKey(uid);
257
+        if (meetingInfo != null) {
258
+            BeanUtils.copyProperties(meetingInfo, result);
259
+            if (result != null) {
260
+                Map<String, Object> claims = new HashMap<>();
261
+                claims.put("userName", meetingInfo.getUserName());
262
+                claims.put("userId", meetingInfo.getUserId());
263
+                claims.put(Constants.MEETING_KEY, uid);
264
+                String createToken = createToken(claims);
265
+                result.setToken(createToken);
266
+            }
267
+            return result;
268
+        }
269
+        return null;
270
+    }
271
+
272
+    @Override
273
+    public AjaxResult smsCallBack(String body) {
274
+        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(body);
275
+        if (jsonObject.get("sid") != null) {
276
+            Object description = jsonObject.get("description");
277
+            System.out.println(description);
278
+            // 查询sid对应的短信,更新短信状态
279
+            SmsSendRecord smsSendRecord = smsRecordMapper.selectBySId(jsonObject.getStr("sid"));
280
+            if (smsSendRecord != null) {
281
+                if (jsonObject.get("report_status") != null && jsonObject.getStr("report_status").equals("SUCCESS")) {
282
+                    smsSendRecord.setSendStatus(SMSStatusEnum.SUCCESS.getCode());
283
+                } else {
284
+                    smsSendRecord.setSendStatus(SMSStatusEnum.FAIL.getCode());
285
+                    smsSendRecord.setReason(description != null ? description.toString() : null);
286
+                }
287
+                smsRecordMapper.updateStatus(smsSendRecord);
288
+            }
289
+        }
290
+        return AjaxResult.success();
291
+    }
292
+
293
+    // 令牌秘钥
294
+    @Value("${token.secret}")
295
+    private String secret;
296
+
297
+    private String createToken(Map<String, Object> claims) {
298
+        String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact();
299
+        return token;
300
+    }
301
+}

+ 22
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sms/SMSTemplateService.java 查看文件

@@ -0,0 +1,22 @@
1
+package com.ruoyi.wisdomarbitrate.service.sms;
2
+
3
+import com.ruoyi.common.core.domain.AjaxResult;
4
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplate;
5
+
6
+
7
+import java.util.List;
8
+
9
+/**
10
+ * @Classname SMSTemplateService
11
+ * @Description
12
+ * @Version 1.0.0
13
+ * @Date 2024/4/16 11:39
14
+ * @Created wangqiong
15
+ */
16
+public interface SMSTemplateService {
17
+    List<MsSmsTemplate> page();
18
+
19
+    AjaxResult insert(MsSmsTemplate template);
20
+
21
+    AjaxResult delete(Long id);
22
+}

+ 96
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sms/impl/SMSTemplateServiceImpl.java 查看文件

@@ -0,0 +1,96 @@
1
+package com.ruoyi.wisdomarbitrate.service.sms.impl;
2
+
3
+import cn.hutool.core.collection.CollectionUtil;
4
+import com.ruoyi.common.core.domain.AjaxResult;
5
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplate;
6
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplateParam;
7
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsTemplateMapper;
8
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsTemplateParamMapper;
9
+import com.ruoyi.wisdomarbitrate.service.sms.SMSTemplateService;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.stereotype.Service;
12
+import tk.mybatis.mapper.entity.Example;
13
+
14
+import java.util.List;
15
+import java.util.Map;
16
+import java.util.stream.Collectors;
17
+
18
+/**
19
+ * @Classname SMSTemplateServiceImpl
20
+ * @Description
21
+ * @Version 1.0.0
22
+ * @Date 2024/4/16 11:40
23
+ * @Created wangqiong
24
+ */
25
+@Service
26
+public class SMSTemplateServiceImpl implements SMSTemplateService {
27
+    @Autowired
28
+    private MsSmsTemplateMapper templateMapper;
29
+    @Autowired
30
+    private MsSmsTemplateParamMapper templateParamMapper;
31
+
32
+    @Override
33
+    public List<MsSmsTemplate> page() {
34
+        // 分页查询模板
35
+        Example templateExam = new Example(MsSmsTemplate.class);
36
+        List<MsSmsTemplate> templates = templateMapper.selectByExample(templateExam);
37
+        if(CollectionUtil.isEmpty(templates)){
38
+            return null;
39
+        }
40
+
41
+        List<Long> templateIds = templates.stream().map(MsSmsTemplate::getId).collect(Collectors.toList());
42
+        // 查询参数
43
+        Example templateParamExam = new Example(MsSmsTemplateParam.class);
44
+        templateParamExam.createCriteria().andIn("smsTemplateId", templateIds);
45
+        List<MsSmsTemplateParam> templateParams = templateParamMapper.selectByExample(templateParamExam);
46
+        // 根据模板id对模板参数分组
47
+        Map<Long, List<MsSmsTemplateParam>> templateParamMap = templateParams.stream().collect(Collectors.groupingBy(MsSmsTemplateParam::getSmsTemplateId));
48
+        for (MsSmsTemplate template : templates) {
49
+            if(templateParamMap.containsKey(template.getId())){
50
+                template.setTemplateParams(templateParamMap.get(template.getId()));
51
+            }
52
+        }
53
+        return templates;
54
+    }
55
+
56
+    /**
57
+     * 新增或者修改
58
+     * @param template
59
+     * @return
60
+     */
61
+    @Override
62
+    public AjaxResult insert(MsSmsTemplate template) {
63
+        if(template.getId() == null){
64
+            templateMapper.insert(template);
65
+
66
+        }else{
67
+            templateMapper.updateByPrimaryKey(template);
68
+            for (MsSmsTemplateParam templateParam : template.getTemplateParams()) {
69
+                templateParam.setSmsTemplateId(template.getId());
70
+            }
71
+            //  先删除
72
+            Example paramExam = new Example(MsSmsTemplateParam.class);
73
+            paramExam.createCriteria().andEqualTo("smsTemplateId", template.getId());
74
+            templateParamMapper.deleteByExample(paramExam);
75
+        }
76
+        // 新增参数表
77
+        if(CollectionUtil.isNotEmpty(template.getTemplateParams())){
78
+            for (MsSmsTemplateParam templateParam : template.getTemplateParams()) {
79
+                templateParam.setSmsTemplateId(template.getId());
80
+            }
81
+            templateParamMapper.batchInsert(template.getTemplateParams());
82
+        }
83
+        return AjaxResult.success();
84
+    }
85
+
86
+    @Override
87
+    public AjaxResult delete(Long id) {
88
+        // 删除
89
+        templateMapper.deleteByPrimaryKey(id);
90
+        // 删除参数表
91
+        Example paramExam = new Example(MsSmsTemplateParam.class);
92
+        paramExam.createCriteria().andEqualTo("smsTemplateId", id);
93
+        templateParamMapper.deleteByExample(paramExam);
94
+        return AjaxResult.success();
95
+    }
96
+}

+ 4
- 4
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/task/CaseZipImportTask.java 查看文件

@@ -54,10 +54,10 @@ public class CaseZipImportTask implements Callable<List<CaseApplication>> {
54 54
                 if (file1.isDirectory() && file1.listFiles() != null) {
55 55
 
56 56
                     for (File file2 : file1.listFiles()) {
57
-                        CaseApplication caseApplication = caseZipImportImpl.buildCaseInfo(file2, templateId, fatchRuleList, fatchRuleMap, userMap, dictDataList, deptMap, loginUser);
58
-                        if (caseApplication != null) {
59
-                            caseApplications.add(caseApplication);
60
-                        }
57
+                    //    CaseApplication caseApplication = caseZipImportImpl.buildCaseInfo(file2, templateId, fatchRuleList, fatchRuleMap, userMap, dictDataList, deptMap, loginUser);
58
+//                        if (caseApplication != null) {
59
+//                            caseApplications.add(caseApplication);
60
+//                        }
61 61
                     }
62 62
                 }
63 63
             }

+ 198
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/SmsUtils.java 查看文件

@@ -0,0 +1,198 @@
1
+package com.ruoyi.wisdomarbitrate.utils;
2
+
3
+import cn.hutool.core.collection.CollectionUtil;
4
+import cn.hutool.core.util.StrUtil;
5
+import cn.hutool.extra.spring.SpringUtil;
6
+import cn.hutool.json.JSONObject;
7
+import com.ruoyi.common.enums.SMSStatusEnum;
8
+import com.ruoyi.common.utils.ThreadUtil;
9
+import com.ruoyi.system.mapper.SysRoleMapper;
10
+import com.ruoyi.system.mapper.SysUserMapper;
11
+import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
12
+import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord;
13
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsSendRecordParam;
14
+import com.ruoyi.wisdomarbitrate.domain.entity.sms.MsSmsTemplate;
15
+import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper;
16
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsSendRecordParamMapper;
17
+import com.ruoyi.wisdomarbitrate.mapper.sms.MsSmsTemplateMapper;
18
+import com.ruoyi.wisdomarbitrate.service.shortmessage.ShortMessageService;
19
+import com.tencentcloudapi.common.Credential;
20
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
21
+import com.tencentcloudapi.common.profile.ClientProfile;
22
+import com.tencentcloudapi.common.profile.HttpProfile;
23
+import com.tencentcloudapi.cvm.v20170312.CvmClient;
24
+import com.tencentcloudapi.cvm.v20170312.models.DescribeRegionsRequest;
25
+import com.tencentcloudapi.cvm.v20170312.models.DescribeRegionsResponse;
26
+import com.tencentcloudapi.sms.v20210111.SmsClient;
27
+import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
28
+import com.tencentcloudapi.sms.v20210111.models.SendStatus;
29
+import lombok.AllArgsConstructor;
30
+import lombok.Data;
31
+import lombok.NoArgsConstructor;
32
+import lombok.extern.slf4j.Slf4j;
33
+import lombok.var;
34
+import tk.mybatis.mapper.entity.Example;
35
+
36
+import java.util.ArrayList;
37
+import java.util.Date;
38
+import java.util.List;
39
+import java.util.Objects;
40
+import java.util.concurrent.CompletableFuture;
41
+import java.util.concurrent.ExecutorService;
42
+
43
+@Slf4j
44
+public class SmsUtils {
45
+    //应用id
46
+    private static final String SDK_APP_ID = "1400854852";
47
+    //API的SecretId
48
+    private static final String SECRET_ID = "AKIDeEf2A8uX1HSainvvnXAc3X9ZlhtyvkMp";
49
+    //API的SecretKey
50
+    private static final String SECRET_KEY = "QjphKo8zkHZigT8j9PVtFPJyfIvO3d6V";
51
+    //签名内容
52
+    private static final String SIGN_NAME = "乙巢智慧仲裁网";
53
+    private static SmsRecordMapper recordMapper = SpringUtil.getBean(SmsRecordMapper.class);
54
+    private static MsSmsSendRecordParamMapper recordParamMapper = SpringUtil.getBean(MsSmsSendRecordParamMapper.class);
55
+    private static MsSmsTemplateMapper templateMapper = SpringUtil.getBean(MsSmsTemplateMapper.class);
56
+    private static SysUserMapper sysUserMapper = SpringUtil.getBean(SysUserMapper.class);
57
+    private static SysRoleMapper roleMapper = SpringUtil.getBean(SysRoleMapper.class);
58
+    private static ShortMessageService shortMessageService = SpringUtil.getBean(ShortMessageService.class);
59
+
60
+    public static JSONObject sendSms(SendSmsRequest request) {
61
+        JSONObject jsonObject = new JSONObject();
62
+        Credential cred = new Credential(SECRET_ID, SECRET_KEY);
63
+
64
+        SmsClient client = new SmsClient(cred, "ap-guangzhou");
65
+
66
+        final var req = new com.tencentcloudapi.sms.v20210111.models.SendSmsRequest();
67
+        req.setPhoneNumberSet(new String[]{"+86" + request.getPhone()});
68
+        req.setSmsSdkAppId(SDK_APP_ID);
69
+        req.setSignName(SIGN_NAME);
70
+        req.setTemplateId(request.getTemplateId());
71
+        req.setTemplateParamSet(request.getTemplateParamSet());
72
+        SendSmsResponse res = null;
73
+        try {
74
+            res = client.SendSms(req);
75
+        } catch (TencentCloudSDKException e) {
76
+            log.error("发送短信出错:", e);
77
+            jsonObject.set("status", SMSStatusEnum.FAIL.getCode());
78
+            jsonObject.set("reason",e.getMessage());
79
+            return jsonObject;
80
+        }
81
+        SendStatus sendStatus = res.getSendStatusSet()[0];
82
+        log.info("发送短信结果:Code={}, Message={}", sendStatus.getCode(), sendStatus.getMessage());
83
+
84
+        if (Objects.nonNull(res.getSendStatusSet()) && res.getSendStatusSet().length > 0 && "Ok".equals(res.getSendStatusSet()[0].getCode())) {
85
+            jsonObject.set("status", SMSStatusEnum.SENDING.getCode());
86
+        } else {
87
+            jsonObject.set("status", SMSStatusEnum.FAIL.getCode());
88
+        }
89
+        jsonObject.set("sid", sendStatus.getSerialNo());
90
+        return jsonObject;
91
+    }
92
+
93
+    public static void sendSms(CaseApplication application, String templateId, String phone, String[] templateParamSet) {
94
+        if(application==null||StrUtil.isEmpty(templateId)||StrUtil.isEmpty(phone)||templateParamSet==null||templateParamSet.length==0){
95
+            return;
96
+        }
97
+        Example templateExam = new Example(MsSmsTemplate.class);
98
+        templateExam.createCriteria().andEqualTo("templateId", templateId);
99
+        List<MsSmsTemplate> templates = templateMapper.selectByExample(templateExam);
100
+        if (CollectionUtil.isEmpty(templates)) {
101
+            return ;
102
+        }
103
+        MsSmsTemplate template = templates.get(0);
104
+        SendSmsRequest request = new SendSmsRequest(phone, templateId, templateParamSet, application.getId());
105
+        Credential cred = new Credential(SECRET_ID, SECRET_KEY);
106
+
107
+        SmsClient client = new SmsClient(cred, "ap-guangzhou");
108
+
109
+        final var req = new com.tencentcloudapi.sms.v20210111.models.SendSmsRequest();
110
+        req.setPhoneNumberSet(new String[]{"+86" + request.getPhone()});
111
+        req.setSmsSdkAppId(SDK_APP_ID);
112
+        req.setSignName(SIGN_NAME);
113
+        req.setTemplateId(request.getTemplateId());
114
+        req.setTemplateParamSet(request.getTemplateParamSet());
115
+        sendSms(client,template,application,phone, templateParamSet,req);
116
+    }
117
+
118
+
119
+    private static void sendSms(SmsClient client,MsSmsTemplate template, CaseApplication application, String phone, String[] templateParamSet, com.tencentcloudapi.sms.v20210111.models.SendSmsRequest req) {
120
+        SmsSendRecord smsSendRecord=new SmsSendRecord();
121
+        smsSendRecord.setMsSmsTemplateId(template.getId());
122
+        smsSendRecord.setCaseId(application.getId());
123
+        smsSendRecord.setCaseNum(application.getCaseNum());
124
+        smsSendRecord.setSendTime(new Date());
125
+        smsSendRecord.setPhone(phone);
126
+        smsSendRecord.setCreateTime(new Date());
127
+//        smsSendRecord.setCreateBy(SecurityUtils.getUsername());
128
+        //    SendSmsRequest request = new SendSmsRequest(phone, template.getTemplateId(), templateParamSet, application.getId());
129
+        req.setPhoneNumberSet(new String[]{"+86" + phone});
130
+        req.setTemplateId(template.getTemplateId());
131
+        req.setTemplateParamSet(templateParamSet);
132
+        try {
133
+            SendSmsResponse res=client.SendSms(req);
134
+            SendStatus sendStatus = res.getSendStatusSet()[0];
135
+            if (Objects.nonNull(res.getSendStatusSet()) && res.getSendStatusSet().length > 0 && "Ok".equals(res.getSendStatusSet()[0].getCode())) {
136
+                smsSendRecord.setSendStatus( SMSStatusEnum.SENDING.getCode());
137
+            } else {
138
+                smsSendRecord.setSendStatus(SMSStatusEnum.FAIL.getCode());
139
+                smsSendRecord.setReason(sendStatus.getMessage());
140
+            }
141
+            smsSendRecord.setSid(sendStatus.getSerialNo());
142
+        } catch (TencentCloudSDKException e) {
143
+            smsSendRecord.setSendStatus(SMSStatusEnum.FAIL.getCode());
144
+            smsSendRecord.setReason(e.getMessage());
145
+        }
146
+        int i = recordMapper.saveSmsSendRecord(smsSendRecord);
147
+        if(i>0){
148
+            List<MsSmsSendRecordParam> recordParams=new ArrayList<>();
149
+            for (String paramValue : templateParamSet) {
150
+                // 新增参数
151
+                MsSmsSendRecordParam recordParam = new MsSmsSendRecordParam();
152
+                recordParam.setSmsRecordId(smsSendRecord.getId());
153
+                recordParam.setParamValue(paramValue);
154
+                recordParams.add(recordParam);
155
+            }
156
+//            recordParamMapper.batchInsert(recordParams);
157
+//            shortMessageService.insertShortMessageHistoryRecord(smsSendRecord,recordParams);
158
+            ExecutorService executor = ThreadUtil.createThreadPool();
159
+            CompletableFuture.runAsync(() -> {
160
+                recordParamMapper.batchInsert(recordParams);
161
+
162
+            }, executor);
163
+            // 新增历史记录表
164
+            CompletableFuture.runAsync(() -> {
165
+                shortMessageService.insertShortMessageHistoryRecord(smsSendRecord,recordParams);
166
+
167
+            }, executor);
168
+
169
+        }
170
+    }
171
+
172
+    /**
173
+     * 参数对象
174
+     */
175
+    @Data
176
+    @NoArgsConstructor
177
+    @AllArgsConstructor
178
+    public static class SendSmsRequest {
179
+        /**
180
+         * 电话
181
+         */
182
+        private String phone;
183
+
184
+        /**
185
+         * 模板 ID: 必须填写已审核通过的模板 ID
186
+         */
187
+        private String templateId;
188
+
189
+        /**
190
+         * 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空
191
+         */
192
+        private String[] templateParamSet;
193
+        private Long caseId;
194
+
195
+    }
196
+
197
+
198
+}

+ 11
- 3
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAttachMapper.xml 查看文件

@@ -3,7 +3,7 @@
3 3
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 4
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 5
 <mapper namespace="com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper">
6
-    <resultMap type="CaseAttach" id="CaseAttachResult">
6
+    <resultMap type="com.ruoyi.wisdomarbitrate.domain.CaseAttach" id="CaseAttachResult">
7 7
         <id     property="annexId"       column="annex_id"      />
8 8
         <result property="caseAppliId"       column="case_appli_id"      />
9 9
         <result property="annexName"     column="annex_name"    />
@@ -97,14 +97,14 @@
97 97
         </where>
98 98
     </select>
99 99
 
100
-    <update id="updateCaseAttach" parameterType="CaseAttach">
100
+    <update id="updateCaseAttach" parameterType="com.ruoyi.wisdomarbitrate.domain.CaseAttach">
101 101
         update case_attach
102 102
         set
103 103
         case_appli_id= #{caseAppliId}
104 104
         where annex_id = #{annexId}
105 105
     </update>
106 106
 
107
-    <update id="updateCaseAttachBycaseid" parameterType="CaseAttach" >
107
+    <update id="updateCaseAttachBycaseid" parameterType="com.ruoyi.wisdomarbitrate.domain.CaseAttach" >
108 108
         update case_attach
109 109
         <set>
110 110
             <if test="annexName != null and annexName != ''">annex_name = #{annexName},</if>
@@ -127,4 +127,12 @@
127 127
         where case_appli_id = #{caseId}
128 128
           and annex_type = #{type} and annex_id!=#{annexId}
129 129
     </delete>
130
+    <select id="selectByIds" resultMap="CaseAttachResult">
131
+        select *
132
+        from  case_attach
133
+        where annex_id in
134
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
135
+            #{id}
136
+        </foreach>
137
+    </select>
130 138
 </mapper>

+ 0
- 61
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SendMailRecordMapper.xml 查看文件

@@ -1,61 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8" ?>
2
-<!DOCTYPE mapper
3
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
-<mapper namespace="com.ruoyi.wisdomarbitrate.mapper.SendMailRecordMapper">
6
-
7
-    <resultMap type="SendMailRecord" id="SendMailRecordResult">
8
-        <id     property="id"       column="id"      />
9
-        <result property="mailName"       column="mail_name"      />
10
-        <result property="mailContent"     column="mail_content"    />
11
-        <result property="mailAddress"     column="mail_address"    />
12
-        <result property="sendTime"        column="send_time"        />
13
-        <result property="caseId"  column="case_id"  />
14
-        <result property="caseNum"  column="case_num"  />
15
-        <result property="sendStatus"  column="send_status"  />
16
-
17
-    </resultMap>
18
-
19
-    <select id="selectSendMailRecord" parameterType="SendMailRecord" resultMap="SendMailRecordResult">
20
-        SELECT s.id ,s.mail_name ,s.mail_content ,s.mail_address ,s.send_time ,s.case_id ,s.create_time ,s.create_by ,
21
-        s.update_by ,s.update_time , s.send_status ,c.case_num
22
-        from send_mail_record s left join case_application c
23
-        on s.case_id  = c.id
24
-        <where>
25
-            <if test="caseNum != null and caseNum != ''">
26
-                AND c.case_num = #{caseNum}
27
-            </if>
28
-        </where>
29
-        order by s.send_time desc
30
-    </select>
31
-
32
-    <insert id="saveSendMailRecord">
33
-        insert into send_mail_record(
34
-        <if test="mailName != null and mailName != ''">mail_name,</if>
35
-        <if test="mailContent != null and mailContent != ''">mail_content,</if>
36
-        <if test="mailAddress != null and mailAddress != ''">mail_address,</if>
37
-        <if test="sendTime != null ">send_time,</if>
38
-        <if test="caseId != null ">case_id,</if>
39
-        <if test="sendStatus != null ">send_status,</if>
40
-        <if test="createBy != null  and createBy != ''">create_by,</if>
41
-        create_time
42
-        )values(
43
-        <if test="mailName != null and mailName != ''">#{mailName},</if>
44
-        <if test="mailContent != null and mailContent != ''">#{mailContent},</if>
45
-        <if test="mailAddress != null and mailAddress != ''">#{mailAddress},</if>
46
-        <if test="sendTime != null ">#{sendTime},</if>
47
-        <if test="caseId != null ">#{caseId},</if>
48
-        <if test="sendStatus != null ">#{sendStatus},</if>
49
-        <if test="createBy != null  and createBy != ''">#{createBy},</if>
50
-        sysdate()
51
-        )
52
-    </insert>
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-</mapper>

+ 0
- 80
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/SmsRecordMapper.xml 查看文件

@@ -1,80 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8" ?>
2
-<!DOCTYPE mapper
3
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
-
6
-<mapper namespace="com.ruoyi.wisdomarbitrate.mapper.SmsRecordMapper">
7
-    <resultMap type="SmsSendRecord" id="SmsSendRecordResult">
8
-        <id     property="id"       column="id"      />
9
-        <result property="caseId"       column="case_appli_id"      />
10
-        <result property="caseNum"       column="case_num"      />
11
-        <result property="phone"     column="phone"    />
12
-        <result property="sendTime"     column="send_time"    />
13
-        <result property="sendContent"        column="send_content"        />
14
-        <result property="createTime"   column="create_time"  />
15
-        <result property="updateTime"   column="update_time"  />
16
-        <result property="createBy"   column="create_by"  />
17
-        <result property="updateBy"   column="update_by"  />
18
-        <result property="sendStatus"   column="send_status"  />
19
-    </resultMap>
20
-    <insert id="saveSmsSendRecord" parameterType="SmsSendRecord" useGeneratedKeys="true" keyProperty="id">
21
-
22
-        insert into sms_send_record(
23
-        <if test="caseId != null ">case_appli_id,</if>
24
-        <if test="caseNum != null ">case_num,</if>
25
-        <if test="phone != null and phone != ''">phone,</if>
26
-        <if test="sendTime != null ">send_time,</if>
27
-        <if test="sendContent != null ">send_content,</if>
28
-        <if test="createBy != null and createBy != ''">create_by,</if>
29
-        <if test="sendStatus != null ">send_status,</if>
30
-        create_time
31
-        )values(
32
-        <if test="caseId != null ">#{caseId},</if>
33
-        <if test="caseNum != null ">#{caseNum},</if>
34
-        <if test="phone != null and phone != ''">#{phone},</if>
35
-        <if test="sendTime != null ">#{sendTime},</if>
36
-        <if test="sendContent != null ">#{sendContent},</if>
37
-        <if test="createBy != null  and createBy != ''">#{createBy},</if>
38
-        <if test="sendStatus != null ">#{sendStatus},</if>
39
-        sysdate()
40
-        )
41
-    </insert>
42
-    <insert id="batchSaveSmsSendRecord">
43
-
44
-        insert into sms_send_record(
45
-       case_appli_id,
46
-       case_num,
47
-       phone,
48
-       send_time,
49
-       send_content,
50
-       create_by,
51
-       send_status,
52
-        create_time
53
-        )values
54
-        <foreach item="item" index="index" collection="list" separator=",">
55
-        (
56
-        #{item.caseId},
57
-        #{item.caseNum},
58
-        #{item.phone},
59
-        #{item.sendTime},
60
-        #{item.sendContent},
61
-        #{item.createBy},
62
-        #{item.sendStatus},
63
-        sysdate()
64
-        )
65
-        </foreach>
66
-    </insert>
67
-
68
-    <select id="getSmsSendRecord" parameterType="SmsSendRecord" resultMap="SmsSendRecordResult">
69
-
70
-        select id ,case_appli_id ,case_num ,phone ,send_time ,send_content,send_status
71
-        from sms_send_record
72
-        <where>
73
-            <if test="caseNum != null and caseNum != ''">
74
-                AND case_num = #{caseNum}
75
-            </if>
76
-        </where>
77
-        order by send_time desc
78
-    </select>
79
-</mapper>
80
-

+ 78
- 0
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml 查看文件

@@ -0,0 +1,78 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper
3
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
+<mapper namespace="com.ruoyi.wisdomarbitrate.mapper.sendrecord.SendMailRecordMapper">
6
+
7
+    <resultMap type="com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord" id="SendMailRecordResult">
8
+        <id property="id" column="id"/>
9
+        <result property="mailName" column="mail_name"/>
10
+        <result property="mailContent" column="mail_content"/>
11
+        <result property="mailAddress" column="mail_address"/>
12
+        <result property="sendTime" column="send_time"/>
13
+        <result property="caseId" column="case_id"/>
14
+        <result property="caseNum" column="case_num"/>
15
+        <result property="sendStatus" column="send_status"/>
16
+        <result property="fileIds" column="file_ids"/>
17
+        <result property="mailSubject" column="mail_subject"/>
18
+        <result property="mailFromAddress" column="mail_from_address"/>
19
+
20
+    </resultMap>
21
+
22
+    <select id="selectSendMailRecord" parameterType="com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord"
23
+            resultMap="SendMailRecordResult">
24
+        SELECT s.*
25
+        from send_mail_record s
26
+        <where>
27
+            <if test="caseNum != null and caseNum != ''">
28
+                AND s.case_num = #{caseNum}
29
+            </if>
30
+        </where>
31
+        order by s.send_time desc
32
+    </select>
33
+
34
+    <insert id="saveSendMailRecord">
35
+        insert into send_mail_record(
36
+        <if test="mailName != null and mailName != ''">mail_name,</if>
37
+        <if test="mailContent != null and mailContent != ''">mail_content,</if>
38
+        <if test="mailAddress != null and mailAddress != ''">mail_address,</if>
39
+        <if test="sendTime != null ">send_time,</if>
40
+        <if test="caseId != null ">case_id,</if>
41
+        <if test="sendStatus != null ">send_status,</if>
42
+        <if test="createBy != null  and createBy != ''">create_by,</if>
43
+        <if test="fileIds != null  and fileIds != ''">file_ids,</if>
44
+        <if test="mailSubject != null  and mailSubject != ''">mail_subject,</if>
45
+        <if test="mailFromAddress != null  and mailFromAddress != ''">mail_from_address,</if>
46
+        <if test="caseNum != null  and caseNum != ''">case_num,</if>
47
+        create_time
48
+        )values(
49
+        <if test="mailName != null and mailName != ''">#{mailName},</if>
50
+        <if test="mailContent != null and mailContent != ''">#{mailContent},</if>
51
+        <if test="mailAddress != null and mailAddress != ''">#{mailAddress},</if>
52
+        <if test="sendTime != null ">#{sendTime},</if>
53
+        <if test="caseId != null ">#{caseId},</if>
54
+        <if test="sendStatus != null ">#{sendStatus},</if>
55
+        <if test="createBy != null  and createBy != ''">#{createBy},</if>
56
+        <if test="fileIds != null  and fileIds != ''">#{fileIds},</if>
57
+        <if test="mailSubject != null  and mailSubject != ''">#{mailSubject},</if>
58
+        <if test="mailFromAddress != null  and mailFromAddress != ''">#{mailFromAddress},</if>
59
+        <if test="caseNum != null  and caseNum != ''">#{caseNum},</if>
60
+        sysdate()
61
+        )
62
+    </insert>
63
+    <update id="updateSendMailRecord">
64
+        update send_mail_record
65
+        set
66
+        <if test="mailContent != null ">mail_content= #{mailContent}</if>
67
+        <if test="updateTime != null ">,update_time=#{updateTime}</if>
68
+        <if test="sendTime != null ">,send_time=#{sendTime}</if>
69
+        <if test="sendStatus != null ">,send_status=#{sendStatus}</if>
70
+        <if test="fileIds != null  and fileIds != ''">,file_ids=#{fileIds}</if>
71
+        where id = #{id}
72
+    </update>
73
+    <select id="querySendMailRecordById" resultMap="SendMailRecordResult">
74
+        select *
75
+        from send_mail_record
76
+        where id = #{id}
77
+    </select>
78
+</mapper>

+ 122
- 0
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SmsRecordMapper.xml 查看文件

@@ -0,0 +1,122 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper
3
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
+
6
+<mapper namespace="com.ruoyi.wisdomarbitrate.mapper.sendrecord.SmsRecordMapper">
7
+    <resultMap type="com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord" id="SmsSendRecordResult">
8
+        <id     property="id"       column="id"      />
9
+        <result property="caseId"       column="case_appli_id"      />
10
+        <result property="msSmsTemplateId"       column="ms_sms_template_id"      />
11
+        <result property="caseNum"       column="case_num"      />
12
+        <result property="phone"     column="phone"    />
13
+        <result property="sendTime"     column="send_time"    />
14
+        <result property="createTime"   column="create_time"  />
15
+        <result property="updateTime"   column="update_time"  />
16
+        <result property="createBy"   column="create_by"  />
17
+        <result property="updateBy"   column="update_by"  />
18
+        <result property="sendStatus"   column="send_status"  />
19
+        <result property="sid"   column="sid"  />
20
+    </resultMap>
21
+    <insert id="saveSmsSendRecord" parameterType="com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord" useGeneratedKeys="true" keyProperty="id">
22
+
23
+        insert into  sms_send_record(
24
+        <if test="caseId != null ">case_appli_id,</if>
25
+        <if test="caseNum != null ">case_num,</if>
26
+        <if test="phone != null and phone != ''">phone,</if>
27
+        <if test="sendTime != null ">send_time,</if>
28
+        <if test="msSmsTemplateId != null ">ms_sms_template_id,</if>
29
+        <if test="createBy != null and createBy != ''">create_by,</if>
30
+        <if test="sendStatus != null ">send_status,</if>
31
+        sid,
32
+        reason,
33
+        create_time
34
+        )values(
35
+        <if test="caseId != null ">#{caseId},</if>
36
+        <if test="caseNum != null ">#{caseNum},</if>
37
+        <if test="phone != null and phone != ''">#{phone},</if>
38
+        <if test="sendTime != null ">#{sendTime},</if>
39
+        <if test="msSmsTemplateId != null ">#{msSmsTemplateId},</if>
40
+        <if test="createBy != null  and createBy != ''">#{createBy},</if>
41
+        <if test="sendStatus != null ">#{sendStatus},</if>
42
+        #{sid},
43
+        #{reason},
44
+        sysdate()
45
+        )
46
+    </insert>
47
+    <insert id="batchSaveSmsSendRecord">
48
+
49
+        insert into  sms_send_record(
50
+       case_appli_id,
51
+       case_num,
52
+       phone,
53
+       send_time,
54
+       sms_template_id,
55
+       create_by,
56
+       send_status,
57
+        create_time,
58
+        sid,reason
59
+        )values
60
+        <foreach item="item" index="index" collection="list" separator=",">
61
+        (
62
+        #{item.caseId},
63
+        #{item.caseNum},
64
+        #{item.phone},
65
+        #{item.sendTime},
66
+        #{item.msSmsTemplateId},
67
+        #{item.createBy},
68
+        #{item.sendStatus},
69
+        sysdate(),#{sid},#{reason}
70
+        )
71
+        </foreach>
72
+    </insert>
73
+
74
+    <select id="getSmsSendRecord" parameterType="com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SmsSendRecord"
75
+            resultMap="SmsSendRecordResult">
76
+
77
+        select *
78
+        from  sms_send_record
79
+        <where>
80
+            <if test="caseNum != null and caseNum != ''">
81
+                AND case_num = #{caseNum}
82
+            </if>
83
+        </where>
84
+        order by send_time desc
85
+    </select>
86
+
87
+    <select id="selectBySId" resultMap="SmsSendRecordResult">
88
+        select *
89
+        from  sms_send_record
90
+        where sid = #{sid}
91
+    </select>
92
+
93
+    <update id="updateStatus">
94
+        update  sms_send_record
95
+        set send_status= #{sendStatus},
96
+            reason=#{reason}
97
+        where sid = #{sid}
98
+    </update>
99
+    <update id="update">
100
+        update  sms_send_record
101
+        <set>
102
+            <if test="caseId != null ">case_appli_id = #{caseId},</if>
103
+            <if test="caseNum != null and caseNum != '' ">case_num = #{caseNum},</if>
104
+            <if test="phone != null and phone != ''">phone = #{phone},</if>
105
+
106
+            <if test="sendTime != null ">send_time = #{sendTime},</if>
107
+            <if test="msSmsTemplateId != null ">ms_sms_template_id = #{msSmsTemplateId},
108
+            </if>
109
+            <if test="sendStatus != null ">send_status = #{sendStatus},</if>
110
+            <if test="sid != null and sid != '' ">sid = #{sid},</if>
111
+            reason = #{reason}
112
+        </set>
113
+        where id = #{id}
114
+    </update>
115
+
116
+    <select id="selectById" resultMap="SmsSendRecordResult">
117
+        select *
118
+        from  sms_send_record
119
+        where id = #{id}
120
+    </select>
121
+</mapper>
122
+