From 429615c304035bf573297d69ce6a17e086e4f6fa Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 07 七月 2023 17:26:56 +0800
Subject: [PATCH] 文件管理,在线聊天,短信代码提交,
---
smartor/src/main/java/com/smartor/domain/DingTalkReqVo.java | 6
smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java | 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java | 90 ++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java | 53 +
ruoyi-common/src/main/java/com/ruoyi/common/utils/MinioClientUtils.java | 3
smartor/src/main/java/com/smartor/domain/SocketMessage.java | 25 +
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/WebSocketConfig.java | 24 +
smartor/src/main/java/com/smartor/domain/BaseSmsRequest.java | 45 ++
smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java | 239 +++++++++++-
smartor/pom.xml | 22 +
smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml | 95 +++-
smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java | 20
smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java | 83 +++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java | 157 ++++++-
smartor/src/main/java/com/smartor/service/impl/MinioFileServiceImpl.java | 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java | 9
smartor/src/main/java/com/smartor/domain/BatchBaseSmsRequest.java | 41 ++
ruoyi-admin/pom.xml | 17
smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java | 8
smartor/src/main/java/com/smartor/service/IMinioFileService.java | 1
smartor/src/main/java/com/smartor/domain/WeChatSendVo.java | 9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java | 25
ruoyi-admin/src/main/resources/application-druid.yml | 12
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java | 2
smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java | 33 +
smartor/src/main/java/com/smartor/domain/SvyLibTopic.java | 14
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java | 2
smartor/src/main/java/com/smartor/domain/TemplateSmsRequest.java | 59 +++
smartor/src/main/java/com/smartor/domain/SvyLibTitle.java | 11
30 files changed, 937 insertions(+), 179 deletions(-)
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index dd37057..5308411 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -80,6 +80,11 @@
<artifactId>core</artifactId>
<version>2.0</version>
</dependency>
+ <dependency>
+ <groupId>org.json</groupId>
+ <artifactId>json</artifactId>
+ <version>20210307</version>
+ </dependency>
</dependencies>
<build>
@@ -99,15 +104,15 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.1.0</version>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
- </configuration>
- </plugin>
+ </configuration>
+ </plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
new file mode 100644
index 0000000..678eec7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
@@ -0,0 +1,90 @@
+package com.ruoyi.web.controller.hanler;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.smartor.domain.SocketMessage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.socket.BinaryMessage;
+import org.springframework.web.socket.CloseStatus;
+import org.springframework.web.socket.TextMessage;
+import org.springframework.web.socket.WebSocketSession;
+import org.springframework.web.socket.handler.AbstractWebSocketHandler;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@Slf4j
+@Component
+public class ChatWebSocketHandler extends AbstractWebSocketHandler {
+
+ // 鐢ㄤ簬瀛樺偍鐢ㄦ埛ID鍜學ebSocketSession鐨勬槧灏勫叧绯�
+ private static Map<String, WebSocketSession> sessions = new ConcurrentHashMap<>();
+
+
+ @Override
+ public void afterConnectionEstablished(WebSocketSession session) throws Exception {
+ // 鑾峰彇鐢ㄦ埛ID锛屽彲浠ヤ粠session涓幏鍙栨垨鑰呴�氳繃鍏朵粬鏂瑰紡鑾峰彇
+ String userId = extractUserId(session);
+
+ // 灏嗙敤鎴稩D鍜學ebSocketSession瀛樺偍鍒版槧灏勮〃涓�
+ sessions.put(userId, session);
+
+ }
+
+ @Override
+ protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
+ // 澶勭悊鏀跺埌鐨勬秷鎭�
+ String userId = extractUserId(session);
+ String payload = message.getPayload().toString();
+ log.info("-----------------锛歿}", payload);
+ // 瑙f瀽娑堟伅绫诲瀷
+ ObjectMapper mapper = new ObjectMapper();
+ SocketMessage parsedMessage = mapper.readValue(payload, SocketMessage.class);
+ if (parsedMessage != null) {
+ sendMessageToUser(parsedMessage.getUserId(), parsedMessage.getContent());
+ }
+
+ }
+
+ @Override
+ protected void handleBinaryMessage(WebSocketSession session, BinaryMessage message) throws Exception {
+ log.info("鍙戦�佷簩杩涘埗");
+ }
+
+ @Override
+ public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
+ // 鍏抽棴杩炴帴鏃讹紝浠庢槧灏勮〃涓Щ闄ゅ搴旂殑鐢ㄦ埛ID鍜學ebSocketSession
+ String userId = extractUserId(session);
+ sessions.remove(userId);
+ }
+
+ @Override
+ public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
+ // 澶勭悊浼犺緭閿欒锛屼緥濡傝繛鎺ユ柇寮�鎴栧彂鐢熷紓甯�
+ String userId = extractUserId(session);
+ sessions.remove(userId);
+ }
+
+ @Override
+ public boolean supportsPartialMessages() {
+ // 鏀寔閮ㄥ垎娑堟伅澶勭悊
+ return false;
+ }
+
+ private String extractUserId(WebSocketSession session) {
+ // 鍦ㄥ疄闄呮儏鍐典笅锛屼綘鍙互鏍规嵁闇�瑕佷粠session涓彁鍙栫敤鎴稩D锛屽彲浠ョ洿鎺ユ嬁褰撳墠鐧婚檯浜虹殑userId
+ String userId = session.getUri().getQuery().split("=")[1];
+// return session.getAttributes().get("userId").toString();
+ return userId;
+ }
+
+ private void sendMessageToUser(String userId, String message) throws IOException {
+ WebSocketSession session = sessions.get(userId);
+ if (session != null && session.isOpen()) {
+ session.sendMessage(new TextMessage(message));
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java
index cefbdfe..abc76de 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java
@@ -1,36 +1,36 @@
-package com.smartor.controller;
+package com.ruoyi.web.controller.smartor;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.smartor.domain.BaseSmsaccount;
-import com.smartor.service.IBaseSmsaccountService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.BaseSmsRequest;
+import com.smartor.domain.BaseSmsaccount;
+import com.smartor.domain.BatchBaseSmsRequest;
+import com.smartor.domain.TemplateSmsRequest;
+import com.smartor.service.IBaseSmsaccountService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
/**
* 鐭俊璐﹀彿Controller
- *
+ *
* @author smartor
* @date 2023-03-06
*/
+@Api(description = "鐭俊")
@RestController
@RequestMapping("/smartor/smsaccount")
-public class BaseSmsaccountController extends BaseController
-{
+public class BaseSmsaccountController extends BaseController {
@Autowired
private IBaseSmsaccountService baseSmsaccountService;
@@ -39,8 +39,7 @@
*/
@PreAuthorize("@ss.hasPermi('smartor:smsaccount:list')")
@GetMapping("/list")
- public TableDataInfo list(BaseSmsaccount baseSmsaccount)
- {
+ public TableDataInfo list(BaseSmsaccount baseSmsaccount) {
startPage();
List<BaseSmsaccount> list = baseSmsaccountService.selectBaseSmsaccountList(baseSmsaccount);
return getDataTable(list);
@@ -52,8 +51,7 @@
@PreAuthorize("@ss.hasPermi('smartor:smsaccount:export')")
@Log(title = "鐭俊璐﹀彿", businessType = BusinessType.EXPORT)
@PostMapping("/export")
- public void export(HttpServletResponse response, BaseSmsaccount baseSmsaccount)
- {
+ public void export(HttpServletResponse response, BaseSmsaccount baseSmsaccount) {
List<BaseSmsaccount> list = baseSmsaccountService.selectBaseSmsaccountList(baseSmsaccount);
ExcelUtil<BaseSmsaccount> util = new ExcelUtil<BaseSmsaccount>(BaseSmsaccount.class);
util.exportExcel(response, list, "鐭俊璐﹀彿鏁版嵁");
@@ -64,8 +62,7 @@
*/
@PreAuthorize("@ss.hasPermi('smartor:smsaccount:query')")
@GetMapping(value = "/{smsacountid}")
- public AjaxResult getInfo(@PathVariable("smsacountid") Long smsacountid)
- {
+ public AjaxResult getInfo(@PathVariable("smsacountid") Long smsacountid) {
return success(baseSmsaccountService.selectBaseSmsaccountBySmsacountid(smsacountid));
}
@@ -75,8 +72,7 @@
@PreAuthorize("@ss.hasPermi('smartor:smsaccount:add')")
@Log(title = "鐭俊璐﹀彿", businessType = BusinessType.INSERT)
@PostMapping
- public AjaxResult add(@RequestBody BaseSmsaccount baseSmsaccount)
- {
+ public AjaxResult add(@RequestBody BaseSmsaccount baseSmsaccount) {
return toAjax(baseSmsaccountService.insertBaseSmsaccount(baseSmsaccount));
}
@@ -86,8 +82,7 @@
@PreAuthorize("@ss.hasPermi('smartor:smsaccount:edit')")
@Log(title = "鐭俊璐﹀彿", businessType = BusinessType.UPDATE)
@PutMapping
- public AjaxResult edit(@RequestBody BaseSmsaccount baseSmsaccount)
- {
+ public AjaxResult edit(@RequestBody BaseSmsaccount baseSmsaccount) {
return toAjax(baseSmsaccountService.updateBaseSmsaccount(baseSmsaccount));
}
@@ -96,9 +91,105 @@
*/
@PreAuthorize("@ss.hasPermi('smartor:smsaccount:remove')")
@Log(title = "鐭俊璐﹀彿", businessType = BusinessType.DELETE)
- @DeleteMapping("/{smsacountids}")
- public AjaxResult remove(@PathVariable Long[] smsacountids)
- {
+ @DeleteMapping("/{smsacountids}")
+ public AjaxResult remove(@PathVariable Long[] smsacountids) {
return toAjax(baseSmsaccountService.deleteBaseSmsaccountBySmsacountids(smsacountids));
}
+
+
+ /**
+ * 鐭俊鍙戦��
+ */
+ @ApiOperation("鐭俊鍙戦��")
+ @PostMapping("/sendMsg")
+ public AjaxResult sendMsg(@RequestBody BaseSmsRequest baseSmsRequest) {
+ if (baseSmsaccountService.sendMsg(baseSmsRequest) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.sendMsg(baseSmsRequest));
+ }
+
+ /**
+ * 鎵归噺鐭俊鍙戦��
+ */
+ @ApiOperation("鎵归噺鐭俊鍙戦��")
+ @PostMapping("/batchSendMsg")
+ public AjaxResult batchSendMsg(@RequestBody BatchBaseSmsRequest batchBaseSmsRequest) {
+ if (baseSmsaccountService.batchSendMsg(batchBaseSmsRequest) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.batchSendMsg(batchBaseSmsRequest));
+ }
+
+ /**
+ * 鏂板鐭俊妯℃澘
+ *
+ * @param templateSmsRequest
+ * @return
+ */
+ @PostMapping("/addSmsTemplate")
+ public AjaxResult addSmsTemplate(@RequestBody TemplateSmsRequest templateSmsRequest) {
+ if (baseSmsaccountService.addSmsTemplate(templateSmsRequest) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.addSmsTemplate(templateSmsRequest));
+ }
+
+ /**
+ * 鍒犻櫎鐭俊妯℃澘
+ *
+ * @param templateCode
+ * @return
+ */
+ @GetMapping("/delSmsTemplate")
+ public AjaxResult delSmsTemplate(@ApiParam("templateCode") String templateCode) {
+ if (baseSmsaccountService.delSmsTemplate(templateCode) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.delSmsTemplate(templateCode));
+ }
+
+ /**
+ * 淇敼瀹℃牳鏈�氳繃鐨勬ā鏉�
+ *
+ * @param templateSmsRequest
+ * @return
+ */
+ @PostMapping("/updateSmsTemplate")
+ public AjaxResult updateSmsTemplate(@RequestBody TemplateSmsRequest templateSmsRequest) {
+ if (baseSmsaccountService.updateSmsTemplate(templateSmsRequest) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.updateSmsTemplate(templateSmsRequest));
+ }
+
+ /**
+ * 鏌ヨ鐭俊妯℃澘鍒楄〃
+ *
+ * @param pageIndex pageSize
+ * @return
+ */
+ @ApiOperation("鏌ヨ鐭俊妯℃澘")
+ @GetMapping("/querySmsTemplate")
+ public AjaxResult querySmsTemplateList(@ApiParam("pageIndex") Integer pageIndex, @ApiParam("pageSize") Integer pageSize) {
+ if (baseSmsaccountService.querySmsTemplate(pageIndex, pageSize) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.querySmsTemplate(pageIndex, pageSize));
+ }
+
+ /**
+ * 鏌ヨ鐭俊妯℃澘瀹℃牳鐘舵��
+ *
+ * @param templateCode
+ * @return
+ */
+ @GetMapping("/querySmsTemplateStatus")
+ public AjaxResult querySmsTemplateStatus(@ApiParam("templateCode") String templateCode) {
+ if (baseSmsaccountService.querySmsTemplateStatus(templateCode) == null) {
+ return error();
+ }
+ return success(baseSmsaccountService.querySmsTemplateStatus(templateCode));
+ }
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java
index 118f53b..e2d943a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java
@@ -1,34 +1,26 @@
package com.ruoyi.web.controller.smartor;
-import com.alibaba.fastjson2.JSONArray;
-import com.alibaba.fastjson2.JSONObject;
-import com.dingtalk.api.DefaultDingTalkClient;
-import com.dingtalk.api.DingTalkClient;
-import com.dingtalk.api.request.OapiGettokenRequest;
-import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
-import com.dingtalk.api.request.OapiUserListidRequest;
-import com.dingtalk.api.response.OapiGettokenResponse;
-import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
-import com.dingtalk.api.response.OapiUserListidResponse;
import com.ruoyi.common.core.controller.BaseController;
import com.smartor.domain.DingTalkReqVo;
import com.smartor.service.DingTalkService;
import com.taobao.api.ApiException;
-import org.apache.commons.lang3.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
/**
- * 寰俊鎺ュ彛
+ * 閽夐拤鎺ュ彛
*
* @author liusheng
* @date 2023-05-15
*/
+@Api(description = "閽夐拤鎺ュ彛")
@RestController
@RequestMapping("/smartor/dingtalk")
@PropertySource(value = {"classpath:application-druid.yml"})
@@ -49,6 +41,7 @@
* @param dingTalkReqVo 鍙戦�佸唴瀹�
* @throws ApiException
*/
+ @ApiOperation("鍙戦�侀拤閽夋秷鎭�")
@PostMapping("/sendNotification")
public void sendNotification(@RequestBody DingTalkReqVo dingTalkReqVo) throws ApiException {
dingTalkService.sendNotification(dingTalkReqVo);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java
index 87f8f92..4c902d2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java
@@ -106,7 +106,7 @@
@ResponseBody
@ApiOperation(value = "涓婁紶鏂囦欢鍒版枃浠剁鐞�,鏀寔鎵归噺涓婁紶")
@ApiImplicitParam(name = "files", value = "鏂囦欢瀵硅薄", dataType = "File")
- public AjaxResult commonUploadFile(@RequestParam("path") String path, @RequestParam("files") List<MultipartFile> files) {
+ public AjaxResult commonUploadFile(@RequestParam(value = "path",required = false) String path, @RequestParam("files") List<MultipartFile> files) {
if (CollectionUtils.isEmpty(files)) {
return error("鏈�夋嫨鏂囦欢锛�");
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java
index 062f98d..a3640f1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java
@@ -1,5 +1,8 @@
package com.ruoyi.web.controller.smartor;
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
+import com.aliyun.teaopenapi.models.Config;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -33,26 +36,13 @@
* 鏌ヨ闂嵎鍒楄〃
*/
@ApiOperation("鏌ヨ闂嵎鍒楄〃")
- @PreAuthorize("@ss.hasPermi('smartor:svytitle:list')")
- @GetMapping("/selectSvyLibTitlelist")
- public TableDataInfo selectSvyLibTitlelist(SvyLibTitleReq svyLibTitleReq) {
+ @PostMapping("/selectSvyLibTitlelist")
+ public TableDataInfo selectSvyLibTitlelist(@RequestBody SvyLibTitleReq svyLibTitleReq) {
startPage();
List<SvyLibTitle> list = svyLibTitleService.selectSvyLibTitleList(svyLibTitleReq);
return getDataTable(list);
}
-// /**
-// * 瀵煎嚭闂嵎鍒楄〃
-// */
-// @PreAuthorize("@ss.hasPermi('smartor:svytitle:export')")
-// @Log(title = "闂嵎", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SvyLibTitle svyLibTitle)
-// {
-// List<SvyLibTitle> list = svyLibTitleService.selectSvyLibTitleList(svyLibTitle);
-// ExcelUtil<SvyLibTitle> util = new ExcelUtil<SvyLibTitle>(SvyLibTitle.class);
-// util.exportExcel(response, list, "闂嵎鏁版嵁");
-// }
/**
* 鑾峰彇闂嵎璇︾粏淇℃伅
@@ -67,7 +57,6 @@
* 鏂板闂嵎
*/
@ApiOperation("鏂板闂嵎")
- @PreAuthorize("@ss.hasPermi('smartor:svytitle:add')")
@PostMapping("/addSvyLibTitle")
public AjaxResult addSvyLibTitle(@RequestBody SvyLibTitle svyLibTitle) {
return toAjax(svyLibTitleService.insertSvyLibTitle(svyLibTitle));
@@ -93,6 +82,38 @@
return toAjax(svyLibTitleService.deleteSvyLibTitleBySvyids(svyids));
}
+ /**
+ * 鍙戦�佺煭淇�
+ */
+ @PreAuthorize("@ss.hasPermi('smartor:svytitle:remove')")
+ @Log(title = "闂嵎", businessType = BusinessType.DELETE)
+ @PostMapping("/sendMessage")
+ public AjaxResult sendMessage(@PathVariable Long[] svyids) {
+ String accessKeyId = "your_access_key_id";
+ String accessKeySecret = "your_access_key_secret";
+
+ // 鍒涘缓Config瀵硅薄锛岄厤缃樋閲屼簯SDK
+ Config config = new Config()
+ .setAccessKeyId(accessKeyId)
+ .setAccessKeySecret(accessKeySecret);
+
+ // 鍒涘缓SendSmsRequest瀵硅薄锛岃缃煭淇$浉鍏冲弬鏁�
+ SendSmsRequest request = new SendSmsRequest()
+ .setPhoneNumbers("鎵嬫満鍙风爜")
+ .setSignName("鐭俊绛惧悕")
+ .setTemplateCode("鐭俊妯℃澘Code")
+ .setTemplateParam("{\"code\":\"123456\"}"); // 璁剧疆鐭俊妯℃澘涓殑鍙傛暟鍊�
+
+// try {
+// // 璋冪敤闃块噷浜慡DK鍙戦�佺煭淇�
+// SendSmsResponse response = SendSms.getResponse(config, request);
+// System.out.println("鍙戦�佺煭淇℃垚鍔燂紝RequestId: " + response.getRequestId());
+// } catch (Exception e) {
+// System.err.println("鍙戦�佺煭淇″け璐ワ細" + e.getMessage());
+// }
+ return toAjax(svyLibTitleService.deleteSvyLibTitleBySvyids(svyids));
+ }
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java
index 991a5ba..df021f2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java
@@ -4,6 +4,8 @@
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.core.controller.BaseController;
import com.smartor.domain.WeChatSendVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpService;
@@ -28,9 +30,10 @@
* @author liusheng
* @date 2023-05-15
*/
+@Api(description = "寰俊鎺ュ彛")
@RestController
@RequestMapping("/smartor/wechat")
-@PropertySource(value = { "classpath:application-druid.yml" })
+@PropertySource(value = {"classpath:application-druid.yml"})
public class WeChatController extends BaseController {
@Value("${appid}")
@@ -45,6 +48,7 @@
*
* @return
*/
+ @ApiOperation("鑾峰彇妯℃澘淇℃伅")
@GetMapping("/getTemplateList")
public JSONArray getTemplateList() {
String url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" + getAccessToken();
@@ -67,6 +71,7 @@
* @param weChatSendVo
* @return
*/
+ @ApiOperation("寰俊鍏紬鍙蜂俊鎭彂閫�")
@PostMapping("/sendMessageToFollowers")
public Boolean sendMessageToFollowers(@RequestBody WeChatSendVo weChatSendVo) {
WxMpService wxMpService;
@@ -91,7 +96,6 @@
}
-
/**
* 鑾峰彇 access_token
*/
@@ -108,7 +112,6 @@
return null;
}
}
- // }
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/WebSocketConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/WebSocketConfig.java
new file mode 100644
index 0000000..e2f7bbe
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/WebSocketConfig.java
@@ -0,0 +1,24 @@
+package com.ruoyi.web.core.config;
+
+import com.ruoyi.web.controller.hanler.ChatWebSocketHandler;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.config.annotation.EnableWebSocket;
+import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
+import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
+
+@Configuration
+@EnableWebSocket
+public class WebSocketConfig implements WebSocketConfigurer {
+
+ private final ChatWebSocketHandler chatWebSocketHandler;
+
+ public WebSocketConfig(ChatWebSocketHandler chatWebSocketHandler) {
+ this.chatWebSocketHandler = chatWebSocketHandler;
+ }
+
+ @Override
+ public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
+ registry.addHandler(new ChatWebSocketHandler(), "/chat").setAllowedOrigins("*");
+ }
+
+}
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index d74ce0a..444a453 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -63,4 +63,14 @@
#閽夐拤鐨勫瘑閽�
dingAppid: dingn8iip5ubj7clrrsv
-dingAppSecret: qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD
\ No newline at end of file
+dingAppSecret: qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD
+
+# websocket瓒呮椂鏃堕棿
+server:
+ websocket:
+ timeout=60000:
+
+
+accessKeyId: LTAI4G5zjJRkun2eRdzU8GhR
+accessKeySecret: 6EIRr9uZeRobvHBRqskyGwjTLKpHYv
+signName: 鏉窞鍒╂箹绉戞妧
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MinioClientUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MinioClientUtils.java
index a17e253..c8cabf4 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MinioClientUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MinioClientUtils.java
@@ -22,6 +22,7 @@
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.TimeUnit;
@Component
@Slf4j
@@ -319,7 +320,7 @@
throw new InvalidExpiresRangeException(expires, "expires must be in range of 1 to " + DEFAULT_EXPIRY_TIME);
}
try {
- url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().method(Method.GET).bucket(bucketName).object(objectName).expiry(expires)//鍔ㄦ�佸弬鏁�
+ url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().method(Method.GET).bucket(bucketName).object(objectName).expiry(expires, TimeUnit.SECONDS)//鍔ㄦ�佸弬鏁�
// .expiry(24 * 60 * 60)//鐢ㄧ鏉ヨ绠椾竴澶╂椂闂存湁鏁堟湡
// .expiry(1, TimeUnit.DAYS)//鎸夊ぉ浼犲弬
// .expiry(1, TimeUnit.HOURS)//鎸夊皬鏃朵紶鍙傛暟
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index ff1fe21..07ac7c9 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -111,7 +111,7 @@
// 杩囨护璇锋眰
.authorizeRequests()
// 瀵逛簬鐧诲綍login 娉ㄥ唽register 楠岃瘉鐮乧aptchaImage 鍏佽鍖垮悕璁块棶
- .antMatchers("/login", "/register", "/captchaImage","/qrcode/generateStaticHtml","/qrcode/getQRcode","/qrcode/getFormDate").permitAll()
+ .antMatchers("/login", "/register", "/captchaImage","/qrcode/generateStaticHtml","/qrcode/getQRcode","/qrcode/getFormDate","/chat","/system/file/admin/uploadFile").permitAll()
// 闈欐�佽祫婧愶紝鍙尶鍚嶈闂�
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
index 13d49d6..bbf5be4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
@@ -2,12 +2,14 @@
import java.util.List;
import com.ruoyi.system.domain.SysConfig;
+import org.apache.ibatis.annotations.Mapper;
/**
* 鍙傛暟閰嶇疆 鏁版嵁灞�
*
* @author ruoyi
*/
+@Mapper
public interface SysConfigMapper
{
/**
diff --git a/smartor/pom.xml b/smartor/pom.xml
index 91f3996..7babc73 100644
--- a/smartor/pom.xml
+++ b/smartor/pom.xml
@@ -16,8 +16,28 @@
</description>
<dependencies>
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>ecs20140526</artifactId>
+ <version>3.1.12</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>dysmsapi20170525</artifactId>
+ <version>2.0.24</version>
+ </dependency>
-
+ <!-- V1.0 SDK -->
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>aliyun-java-sdk-core</artifactId>
+ <version>4.6.3</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>aliyun-java-sdk-ecs</artifactId>
+ <version>4.24.59</version>
+ </dependency>
<!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
diff --git a/smartor/src/main/java/com/smartor/domain/BaseSmsRequest.java b/smartor/src/main/java/com/smartor/domain/BaseSmsRequest.java
new file mode 100644
index 0000000..2a659db
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/BaseSmsRequest.java
@@ -0,0 +1,45 @@
+package com.smartor.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 鐭俊璐﹀彿瀵硅薄 base_smsaccount
+ *
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel(value = "BaseSmsRequest", description = "鐭俊璇锋眰淇℃伅")
+public class BaseSmsRequest extends BaseEntity {
+
+ /**
+ * 鏍囩鍚嶇О
+ */
+ @ApiModelProperty(value = "鎵嬫満鍙�(鎺ユ敹鏂�)")
+ private String phoneNumber;
+
+ /**
+ * 鐭俊妯℃澘CODE
+ */
+ @ApiModelProperty(value = "妯℃澘ID")
+ private String templateCode;
+
+
+ /**
+ * 鐭俊妯℃澘鍙橀噺瀵瑰簲鐨勫疄闄呭��
+ * 鏀寔浼犲叆澶氫釜鍙傛暟锛岀ず渚嬶細{"name":"寮犱笁","number":"1390000****"}
+ * 濡傛灉JSON涓渶瑕佸甫鎹㈣绗︼紝璇峰弬鐓ф爣鍑嗙殑JSON鍗忚澶勭悊銆�
+ */
+ @ApiModelProperty(value = "鐭俊妯℃澘鍙橀噺瀵瑰簲鐨勫疄闄呭�硷紝绀轰緥锛歿\"name\":\"寮犱笁\",\"number\":\"1390000****\"}")
+ private String templateParam;
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/BatchBaseSmsRequest.java b/smartor/src/main/java/com/smartor/domain/BatchBaseSmsRequest.java
new file mode 100644
index 0000000..f654871
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/BatchBaseSmsRequest.java
@@ -0,0 +1,41 @@
+package com.smartor.domain;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鐭俊鎵归噺璇锋眰淇℃伅 base_smsaccount
+ *
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel(value = "BatchBaseSmsRequest", description = "鐭俊鎵归噺璇锋眰淇℃伅")
+public class BatchBaseSmsRequest extends BaseEntity {
+
+ /**
+ * 鏍囩鍚嶇О
+ */
+ @ApiModelProperty(value = "鎵嬫満鍙烽泦鍚�(鎺ユ敹鏂�)")
+ private List<String> phoneNumber;
+
+ /**
+ * 鐭俊妯℃澘CODE
+ */
+ @ApiModelProperty(value = "妯℃澘ID")
+ private String templateCode;
+
+
+ /**
+ * 鐭俊妯℃澘鍙橀噺瀵瑰簲鐨勫疄闄呭��
+ * 鏀寔浼犲叆澶氫釜鍙傛暟锛岀ず渚嬶細{"name":"寮犱笁","number":"1390000****"}
+ * 濡傛灉JSON涓渶瑕佸甫鎹㈣绗︼紝璇峰弬鐓ф爣鍑嗙殑JSON鍗忚澶勭悊銆�
+ */
+ @ApiModelProperty(value = "鐭俊妯℃澘鍙橀噺瀵瑰簲鐨勫疄闄呭�硷紝绀轰緥锛歿\"name\":\"寮犱笁\",\"number\":\"1390000****\"}")
+ private String templateParam;
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/DingTalkReqVo.java b/smartor/src/main/java/com/smartor/domain/DingTalkReqVo.java
index 6a925cb..9d195b5 100644
--- a/smartor/src/main/java/com/smartor/domain/DingTalkReqVo.java
+++ b/smartor/src/main/java/com/smartor/domain/DingTalkReqVo.java
@@ -3,6 +3,8 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@@ -17,20 +19,24 @@
* @date 2023-05-25
*/
@Data
+@ApiModel(value = "DingTalkReqVo", description = "閽夐拤娑堟伅鍙戦��")
public class DingTalkReqVo extends BaseEntity {
/**
* 鍙戦�佸唴瀹�
*/
+ @ApiModelProperty(value = "鍙戦�佸唴瀹�")
private List<String> contents;
/**
* 鐢ㄦ埛閽夐拤鍙�
*/
+ @ApiModelProperty(value = "鐢ㄦ埛閽夐拤鍙�")
private String userId;
/**
* 閮ㄩ棬ID
*/
+ @ApiModelProperty(value = "閮ㄩ棬ID")
private String deptId;
}
diff --git a/smartor/src/main/java/com/smartor/domain/SocketMessage.java b/smartor/src/main/java/com/smartor/domain/SocketMessage.java
new file mode 100644
index 0000000..c502cb1
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SocketMessage.java
@@ -0,0 +1,25 @@
+package com.smartor.domain;
+
+import lombok.Data;
+
+@Data
+public class SocketMessage {
+ //鍙戦�佸唴绌虹殑绫诲瀷锛坱ext,image锛�
+ private String type;
+ //鍐呭锛堝彂閫佺殑鏂囨湰鍐呭锛�
+ private String content;
+ //鐢ㄦ埛ID锛堟帴鏀舵斁锛�
+ private String userId;
+ //鍥剧墖
+ private String image;
+ //鍥剧墖锛岄煶銆佽棰戠殑瀛楄妭澶у皬
+ private Integer fileSize;
+
+ public SocketMessage(String type, String content) {
+ this.type = type;
+ this.content = content;
+ }
+
+ public SocketMessage() {
+ }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java b/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
index aa7f05d..2bc21b6 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
@@ -20,9 +20,8 @@
* @date 2023-03-02
*/
@Data
-@ApiModel(value = "MinioResponseDTO", description = "鏍囩鍒嗙被瀵硅薄")
+@ApiModel(value = "SvyLibTitle", description = "闂嵎瀵硅薄")
public class SvyLibTitle extends BaseEntity {
- private static final long serialVersionUID = 1L;
/**
* 鑷ID
@@ -33,7 +32,7 @@
/**
* 闂嵎鍒嗙被ID
*/
- @ApiModelProperty(value = "闂嵎鍒嗙被ID")
+ @ApiModelProperty(value = "闂嵎鍒嗙被ID", required = true)
@Excel(name = " 闂嵎鍒嗙被ID ")
private Long categoryid;
@@ -47,14 +46,14 @@
/**
* 闂嵎鍚嶇О
*/
- @ApiModelProperty(value = "闂嵎鍚嶇О")
+ @ApiModelProperty(value = "闂嵎鍚嶇О", required = true)
@Excel(name = " 闂嵎鍚嶇О ")
private String svyname;
/**
* 鎻忚堪
*/
- @ApiModelProperty(value = "鎻忚堪")
+ @ApiModelProperty(value = "鎻忚堪", required = true)
@Excel(name = " 鎻忚堪 ")
private String description;
@@ -162,6 +161,8 @@
private List<SvyLibTopic> svyLibTopics;
+ public SvyLibTitle() {
+ }
public SvyLibTitle(Long svyid, String icdname) {
this.svyid = svyid;
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopic.java b/smartor/src/main/java/com/smartor/domain/SvyLibTopic.java
index 34e3da8..e808487 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTopic.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTopic.java
@@ -1,6 +1,7 @@
package com.smartor.domain;
import java.util.Date;
+import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
@@ -113,8 +114,13 @@
private Date uploadTime;
- @Override
- public String toString() {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("topicid", getTopicid()).append("oldid", getOldid()).append("svyid", getSvyid()).append("topictype", getTopictype()).append("topiccode", getTopiccode()).append("topic", getTopic()).append("sort", getSort()).append("ismandatory", getIsmandatory()).append("ishide", getIshide()).append("delFlag", getDelFlag()).append("orgid", getOrgid()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("isupload", getIsupload()).append("uploadTime", getUploadTime()).toString();
- }
+ /**
+ * svy_topic棰樼洰琛ㄧ殑涓婚敭ID
+ */
+ @ApiModelProperty("棰樼洰琛ㄧ殑涓婚敭ID")
+ private Long svyTopicId;
+
+
+ @ApiModelProperty("闂閫夐」")
+ private List<SvyTopicoption> svyTopicoptions;
}
diff --git a/smartor/src/main/java/com/smartor/domain/TemplateSmsRequest.java b/smartor/src/main/java/com/smartor/domain/TemplateSmsRequest.java
new file mode 100644
index 0000000..d4327ec
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/TemplateSmsRequest.java
@@ -0,0 +1,59 @@
+package com.smartor.domain;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * TemplateSmsRequest base_smsaccount
+ *
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel(value = "TemplateSmsRequest", description = "鐭俊妯℃澘璇锋眰淇℃伅")
+public class TemplateSmsRequest extends BaseEntity {
+
+ /**
+ *
+ * 鎻忚堪锛� 鐭俊绫诲瀷銆傚彇鍊硷細
+ *
+ * 0锛氶獙璇佺爜銆�
+ * 1锛氱煭淇¢�氱煡銆�
+ * 2锛氭帹骞跨煭淇°��
+ * 3锛氬浗闄�/娓境鍙版秷鎭��
+ */
+ @ApiModelProperty(value = "妯℃澘绫诲瀷 0锛氶獙璇佺爜 1锛氱煭淇¢�氱煡 2锛氭帹骞跨煭淇� 3锛氬浗闄�/娓境鍙版秷鎭�")
+ private Integer templateType;
+
+ /**
+ *
+ * 鎻忚堪: 妯℃澘鍚嶇О锛岄暱搴︿笉瓒呰繃30涓瓧绗︺��
+ *
+ * 绀轰緥鍊�: 闃块噷浜戠煭淇℃祴璇曟ā鏉�
+ */
+ @ApiModelProperty(value = "妯℃澘鍚嶇О锛岄暱搴︿笉瓒呰繃30涓瓧绗�")
+ private String templateName;
+
+
+ /**
+ *
+ * 鎻忚堪: 妯℃澘鍐呭锛岄暱搴︿笉瓒呰繃500涓瓧绗︺�傛洿澶氳鑼冿紝璇峰弬瑙佹ā鏉垮唴瀹硅鑼冦��
+ *
+ * 绀轰緥鍊�:鎮ㄦ鍦ㄧ敵璇锋墜鏈烘敞鍐岋紝楠岃瘉鐮佷负锛�${code}锛�5鍒嗛挓鍐呮湁鏁�
+ */
+ @ApiModelProperty(value = "妯℃澘鍐呭锛岄暱搴︿笉瓒呰繃500涓瓧绗︺�傛洿澶氳鑼冿紝璇峰弬瑙佹ā鏉垮唴瀹硅鑼�")
+ private String templateContent;
+
+ /**
+ * 鎻忚堪: 鐭俊妯℃澘鐢宠璇存槑锛屾槸妯℃澘瀹℃牳鐨勫弬鑰冧俊鎭箣涓�銆傞暱搴︿笉瓒呰繃100涓瓧绗︺��
+ *
+ * 绀轰緥鍊�: 鎴夸骇閿�鍞�
+ */
+ @ApiModelProperty(value = "鐭俊妯℃澘鐢宠璇存槑锛屾槸妯℃澘瀹℃牳鐨勫弬鑰冧俊鎭箣涓�銆傞暱搴︿笉瓒呰繃100涓瓧绗�")
+ private String remark;
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/WeChatSendVo.java b/smartor/src/main/java/com/smartor/domain/WeChatSendVo.java
index 8b35549..4d8af6c 100644
--- a/smartor/src/main/java/com/smartor/domain/WeChatSendVo.java
+++ b/smartor/src/main/java/com/smartor/domain/WeChatSendVo.java
@@ -1,17 +1,20 @@
package com.smartor.domain;
import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
@Data
+@ApiModel(value = "WeChatSendVo", description = "寰俊娑堟伅鍙戦��")
public class WeChatSendVo {
/**
* 妯℃澘ID
*/
- @Excel(name = " 妯℃澘ID ")
+ @ApiModelProperty(value = "妯℃澘ID")
String templateId;
/**
@@ -21,13 +24,13 @@
* 鈥渒eyword1鈥濓細鈥�......鈥�
* }]
*/
- @Excel(name = " 鍙戦�佸唴瀹� ")
+ @ApiModelProperty(value = "鍙戦�佸唴瀹�")
Map<String, Object> content;
/**
* 璺宠浆URL
*/
- @Excel(name = " 璺宠浆URL ")
+ @ApiModelProperty(value = "璺宠浆URL")
String url;
}
diff --git a/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java b/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java
index 22d29a8..eb9f260 100644
--- a/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java
@@ -1,19 +1,21 @@
package com.smartor.mapper;
import java.util.List;
+
import com.smartor.domain.BaseSmsaccount;
+import org.apache.ibatis.annotations.Mapper;
/**
* 鐭俊璐﹀彿Mapper鎺ュ彛
- *
+ *
* @author smartor
* @date 2023-03-06
*/
-public interface BaseSmsaccountMapper
-{
+@Mapper
+public interface BaseSmsaccountMapper {
/**
* 鏌ヨ鐭俊璐﹀彿
- *
+ *
* @param smsacountid 鐭俊璐﹀彿涓婚敭
* @return 鐭俊璐﹀彿
*/
@@ -21,7 +23,7 @@
/**
* 鏌ヨ鐭俊璐﹀彿鍒楄〃
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 鐭俊璐﹀彿闆嗗悎
*/
@@ -29,7 +31,7 @@
/**
* 鏂板鐭俊璐﹀彿
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 缁撴灉
*/
@@ -37,7 +39,7 @@
/**
* 淇敼鐭俊璐﹀彿
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 缁撴灉
*/
@@ -45,7 +47,7 @@
/**
* 鍒犻櫎鐭俊璐﹀彿
- *
+ *
* @param smsacountid 鐭俊璐﹀彿涓婚敭
* @return 缁撴灉
*/
@@ -53,7 +55,7 @@
/**
* 鎵归噺鍒犻櫎鐭俊璐﹀彿
- *
+ *
* @param smsacountids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
* @return 缁撴灉
*/
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java
index af1fd94..77032a6 100644
--- a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java
@@ -25,7 +25,7 @@
/**
* 鏌ヨ闂嵎鍒楄〃
*
- * @param svyLibTitle 闂嵎
+ * @param svyLibTitleReq 闂嵎
* @return 闂嵎闆嗗悎
*/
public List<SvyLibTitle> selectSvyLibTitleList(SvyLibTitleReq svyLibTitleReq);
diff --git a/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java b/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java
index 8ca0692..13cff97 100644
--- a/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java
+++ b/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java
@@ -1,19 +1,26 @@
package com.smartor.service;
import java.util.List;
+import java.util.Map;
+
+import com.aliyun.dysmsapi20170525.models.*;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.smartor.domain.BaseSmsRequest;
import com.smartor.domain.BaseSmsaccount;
+import com.smartor.domain.BatchBaseSmsRequest;
+import com.smartor.domain.TemplateSmsRequest;
+import org.springframework.web.bind.annotation.PathVariable;
/**
* 鐭俊璐﹀彿Service鎺ュ彛
- *
+ *
* @author smartor
* @date 2023-03-06
*/
-public interface IBaseSmsaccountService
-{
+public interface IBaseSmsaccountService {
/**
* 鏌ヨ鐭俊璐﹀彿
- *
+ *
* @param smsacountid 鐭俊璐﹀彿涓婚敭
* @return 鐭俊璐﹀彿
*/
@@ -21,7 +28,7 @@
/**
* 鏌ヨ鐭俊璐﹀彿鍒楄〃
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 鐭俊璐﹀彿闆嗗悎
*/
@@ -29,7 +36,7 @@
/**
* 鏂板鐭俊璐﹀彿
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 缁撴灉
*/
@@ -37,7 +44,7 @@
/**
* 淇敼鐭俊璐﹀彿
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 缁撴灉
*/
@@ -45,7 +52,7 @@
/**
* 鎵归噺鍒犻櫎鐭俊璐﹀彿
- *
+ *
* @param smsacountids 闇�瑕佸垹闄ょ殑鐭俊璐﹀彿涓婚敭闆嗗悎
* @return 缁撴灉
*/
@@ -53,9 +60,67 @@
/**
* 鍒犻櫎鐭俊璐﹀彿淇℃伅
- *
+ *
* @param smsacountid 鐭俊璐﹀彿涓婚敭
* @return 缁撴灉
*/
public int deleteBaseSmsaccountBySmsacountid(Long smsacountid);
+
+ /**
+ * 鐭俊鍙戦��
+ *
+ * @param baseSmsRequest
+ * @return
+ */
+ public SendSmsResponseBody sendMsg(BaseSmsRequest baseSmsRequest);
+
+
+ /**
+ * 鎵归噺鐭俊鍙戦��
+ *
+ * @param batchBaseSmsRequest
+ * @return
+ */
+ public SendBatchSmsResponseBody batchSendMsg(BatchBaseSmsRequest batchBaseSmsRequest);
+
+ /**
+ * 鏂板鐭俊妯℃澘
+ *
+ * @param templateSmsRequest
+ * @return
+ */
+ public AddSmsTemplateResponseBody addSmsTemplate(TemplateSmsRequest templateSmsRequest);
+
+ /**
+ * 鍒犻櫎鐭俊妯℃澘
+ *
+ * @param templateCode
+ * @return
+ */
+ public ModifySmsTemplateResponseBody delSmsTemplate(String templateCode);
+
+ /**
+ * 淇敼瀹℃牳鏈�氳繃鐨勬ā鏉�
+ *
+ * @param templateSmsRequest
+ * @return
+ */
+ public ModifySmsTemplateResponseBody updateSmsTemplate(TemplateSmsRequest templateSmsRequest);
+
+ /**
+ * 鏌ヨ妯℃澘鍒楄〃
+ *
+ * @param pageIndex , pageSize
+ * @return
+ */
+ public QuerySmsTemplateListResponseBody querySmsTemplate(Integer pageIndex, Integer pageSize);
+
+ /**
+ * 鏌ヨ鐭俊妯℃澘瀹℃牳鐘舵��
+ *
+ * @param templateCode
+ * @return
+ */
+ public QuerySmsTemplateResponseBody querySmsTemplateStatus(String templateCode);
+
}
diff --git a/smartor/src/main/java/com/smartor/service/IMinioFileService.java b/smartor/src/main/java/com/smartor/service/IMinioFileService.java
index 4eb2a6f..4c3e023 100644
--- a/smartor/src/main/java/com/smartor/service/IMinioFileService.java
+++ b/smartor/src/main/java/com/smartor/service/IMinioFileService.java
@@ -6,7 +6,6 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
-import java.io.InputStream;
import java.util.List;
/**
diff --git a/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java
index ff65db8..12aae85 100644
--- a/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java
@@ -1,96 +1,285 @@
package com.smartor.service.impl;
-import java.util.List;
+import com.aliyun.dysmsapi20170525.Client;
+import com.aliyun.dysmsapi20170525.models.*;
+import com.aliyun.tea.TeaException;
+import com.aliyun.teaopenapi.models.Config;
+import com.aliyun.teautil.Common;
+import com.aliyun.teautil.models.RuntimeOptions;
import com.ruoyi.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.smartor.mapper.BaseSmsaccountMapper;
+import com.smartor.domain.BaseSmsRequest;
import com.smartor.domain.BaseSmsaccount;
+import com.smartor.domain.BatchBaseSmsRequest;
+import com.smartor.domain.TemplateSmsRequest;
+import com.smartor.mapper.BaseSmsaccountMapper;
import com.smartor.service.IBaseSmsaccountService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* 鐭俊璐﹀彿Service涓氬姟灞傚鐞�
- *
+ *
* @author smartor
* @date 2023-03-06
*/
@Service
-public class BaseSmsaccountServiceImpl implements IBaseSmsaccountService
-{
+public class BaseSmsaccountServiceImpl implements IBaseSmsaccountService {
@Autowired
private BaseSmsaccountMapper baseSmsaccountMapper;
+ @Value("${accessKeyId}")
+ private String accessKeyId;
+
+ @Value("${accessKeySecret}")
+ private String accessKeySecret;
+
+ @Value("${signName}")
+ private String signName;
+
/**
* 鏌ヨ鐭俊璐﹀彿
- *
+ *
* @param smsacountid 鐭俊璐﹀彿涓婚敭
* @return 鐭俊璐﹀彿
*/
@Override
- public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid)
- {
+ public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid) {
return baseSmsaccountMapper.selectBaseSmsaccountBySmsacountid(smsacountid);
}
/**
* 鏌ヨ鐭俊璐﹀彿鍒楄〃
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 鐭俊璐﹀彿
*/
@Override
- public List<BaseSmsaccount> selectBaseSmsaccountList(BaseSmsaccount baseSmsaccount)
- {
+ public List<BaseSmsaccount> selectBaseSmsaccountList(BaseSmsaccount baseSmsaccount) {
return baseSmsaccountMapper.selectBaseSmsaccountList(baseSmsaccount);
}
/**
* 鏂板鐭俊璐﹀彿
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 缁撴灉
*/
@Override
- public int insertBaseSmsaccount(BaseSmsaccount baseSmsaccount)
- {
+ public int insertBaseSmsaccount(BaseSmsaccount baseSmsaccount) {
baseSmsaccount.setCreateTime(DateUtils.getNowDate());
return baseSmsaccountMapper.insertBaseSmsaccount(baseSmsaccount);
}
/**
* 淇敼鐭俊璐﹀彿
- *
+ *
* @param baseSmsaccount 鐭俊璐﹀彿
* @return 缁撴灉
*/
@Override
- public int updateBaseSmsaccount(BaseSmsaccount baseSmsaccount)
- {
+ public int updateBaseSmsaccount(BaseSmsaccount baseSmsaccount) {
baseSmsaccount.setUpdateTime(DateUtils.getNowDate());
return baseSmsaccountMapper.updateBaseSmsaccount(baseSmsaccount);
}
/**
* 鎵归噺鍒犻櫎鐭俊璐﹀彿
- *
+ *
* @param smsacountids 闇�瑕佸垹闄ょ殑鐭俊璐﹀彿涓婚敭
* @return 缁撴灉
*/
@Override
- public int deleteBaseSmsaccountBySmsacountids(Long[] smsacountids)
- {
+ public int deleteBaseSmsaccountBySmsacountids(Long[] smsacountids) {
return baseSmsaccountMapper.deleteBaseSmsaccountBySmsacountids(smsacountids);
}
/**
* 鍒犻櫎鐭俊璐﹀彿淇℃伅
- *
+ *
* @param smsacountid 鐭俊璐﹀彿涓婚敭
* @return 缁撴灉
*/
@Override
- public int deleteBaseSmsaccountBySmsacountid(Long smsacountid)
- {
+ public int deleteBaseSmsaccountBySmsacountid(Long smsacountid) {
return baseSmsaccountMapper.deleteBaseSmsaccountBySmsacountid(smsacountid);
}
+
+
+ /**
+ * 鐭俊鍙戦��
+ *
+ * @param baseSmsRequest
+ * @return
+ */
+ @Override
+ public SendSmsResponseBody sendMsg(BaseSmsRequest baseSmsRequest) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers(baseSmsRequest.getPhoneNumber()).setSignName(this.signName).setTemplateCode(baseSmsRequest.getTemplateCode()).setTemplateParam(baseSmsRequest.getTemplateParam());
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
+ return sendSmsResponse.getBody();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 鎵归噺鍙戦�佺煭淇�
+ *
+ * @param batchBaseSmsRequest
+ * @return
+ */
+ public SendBatchSmsResponseBody batchSendMsg(BatchBaseSmsRequest batchBaseSmsRequest) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ List<String> signNameJson = new ArrayList<>();
+ for (int i = 0; i < batchBaseSmsRequest.getPhoneNumber().size(); i++) {
+ signNameJson.add("\"" + this.signName + "\"");
+ }
+ SendBatchSmsRequest sendBatchSmsRequest = new SendBatchSmsRequest().setSignNameJson(signNameJson.toString()).setPhoneNumberJson(batchBaseSmsRequest.getPhoneNumber().toString()).setTemplateCode(batchBaseSmsRequest.getTemplateCode());
+ RuntimeOptions runtime = new RuntimeOptions();
+ try {
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ SendBatchSmsResponse sendBatchSmsResponse = client.sendBatchSmsWithOptions(sendBatchSmsRequest, runtime);
+ return sendBatchSmsResponse.getBody();
+ } catch (TeaException error) {
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public AddSmsTemplateResponseBody addSmsTemplate(TemplateSmsRequest templateSmsRequest) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ AddSmsTemplateRequest addSmsTemplateRequest = new AddSmsTemplateRequest().setTemplateType(templateSmsRequest.getTemplateType()).setTemplateName(templateSmsRequest.getTemplateName()).setTemplateContent(templateSmsRequest.getTemplateContent()).setRemark(templateSmsRequest.getRemark());
+ RuntimeOptions runtime = new RuntimeOptions();
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ AddSmsTemplateResponse addSmsTemplateResponse = client.addSmsTemplateWithOptions(addSmsTemplateRequest, runtime);
+ return addSmsTemplateResponse.getBody();
+ } catch (TeaException error) {
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ }
+ return null;
+ }
+
+ @Override
+ public ModifySmsTemplateResponseBody delSmsTemplate(String templateCode) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ ModifySmsTemplateRequest modifySmsTemplateRequest = new ModifySmsTemplateRequest();
+ modifySmsTemplateRequest.setTemplateCode(templateCode);
+ RuntimeOptions runtime = new RuntimeOptions();
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ ModifySmsTemplateResponse modifySmsTemplateResponse = client.modifySmsTemplateWithOptions(modifySmsTemplateRequest, runtime);
+ return modifySmsTemplateResponse.getBody();
+ } catch (TeaException error) {
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ }
+ return null;
+ }
+
+ @Override
+ public ModifySmsTemplateResponseBody updateSmsTemplate(TemplateSmsRequest templateSmsRequest) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ ModifySmsTemplateRequest modifySmsTemplateRequest = new ModifySmsTemplateRequest().setTemplateType(1).setTemplateName("AAA").setTemplateCode("SMS_279456451").setTemplateContent("ASD").setRemark("ASFD");
+ RuntimeOptions runtime = new RuntimeOptions();
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ ModifySmsTemplateResponse modifySmsTemplateResponse = client.modifySmsTemplateWithOptions(modifySmsTemplateRequest, runtime);
+ return modifySmsTemplateResponse.getBody();
+ } catch (TeaException error) {
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ }
+ return null;
+ }
+
+ @Override
+ public QuerySmsTemplateListResponseBody querySmsTemplate(Integer pageIndex, Integer pageSize) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ QuerySmsTemplateListRequest querySmsTemplateListRequest = new QuerySmsTemplateListRequest().setPageIndex(pageIndex).setPageSize(pageSize);
+ RuntimeOptions runtime = new RuntimeOptions();
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ QuerySmsTemplateListResponse querySmsTemplateListResponse = client.querySmsTemplateListWithOptions(querySmsTemplateListRequest, runtime);
+ return querySmsTemplateListResponse.getBody();
+ } catch (TeaException error) {
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ }
+ return null;
+ }
+
+ @Override
+ public QuerySmsTemplateResponseBody querySmsTemplateStatus(String templateCode) {
+ Client client = null;
+ try {
+ client = this.createClient();
+ QuerySmsTemplateRequest querySmsTemplateRequest = new QuerySmsTemplateRequest().setTemplateCode(templateCode);
+ RuntimeOptions runtime = new RuntimeOptions();
+ // 澶嶅埗浠g爜杩愯璇疯嚜琛屾墦鍗� API 鐨勮繑鍥炲��
+ QuerySmsTemplateResponse querySmsTemplateResponse = client.querySmsTemplateWithOptions(querySmsTemplateRequest, runtime);
+ return querySmsTemplateResponse.getBody();
+ } catch (TeaException error) {
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 濡傛湁闇�瑕侊紝璇锋墦鍗� error
+ Common.assertAsString(error.message);
+ }
+ return null;
+ }
+
+
+ public Client createClient() throws Exception {
+ Config config = new Config()
+ // 蹇呭~锛屾偍鐨� AccessKey ID
+ .setAccessKeyId(this.accessKeyId)
+ // 蹇呭~锛屾偍鐨� AccessKey Secret
+ .setAccessKeySecret(this.accessKeySecret);
+ // 璁块棶鐨勫煙鍚�
+ config.endpoint = "dysmsapi.aliyuncs.com";
+ return new Client(config);
+ }
}
diff --git a/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
index 5d7c820..423b906 100644
--- a/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
@@ -14,6 +14,7 @@
import com.smartor.service.DingTalkService;
import com.smartor.service.IntelligenceCenterService;
import com.taobao.api.ApiException;
+import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -27,6 +28,7 @@
* @date 2023-05-23
*/
@Service
+@Log4j
public class DingTalkServiceImpl implements DingTalkService {
@@ -39,7 +41,7 @@
@Override
public Boolean sendNotification(DingTalkReqVo dingTalkReqVo) {
Boolean result = false;
- // Log.info("鍙戦�侀拤閽夐�氱煡");
+ log.info("鍙戦�侀拤閽夐�氱煡");
String accessToken = null;
try {
accessToken = getAccessToken();
@@ -85,8 +87,8 @@
OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
- msg.getOa().setMessageUrl("www.baidu.com");
- msg.getOa().setPcMessageUrl("www.baidu.com");
+ msg.getOa().setMessageUrl("https://www.baidu.com");
+ msg.getOa().setPcMessageUrl("https://www.baidu.com");
msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
msg.getOa().getHead().setText("寰呭姙浜嬪疁");
msg.getOa().getHead().setBgcolor("00409eff");
diff --git a/smartor/src/main/java/com/smartor/service/impl/MinioFileServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/MinioFileServiceImpl.java
index 18b54f1..32f580a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/MinioFileServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/MinioFileServiceImpl.java
@@ -23,6 +23,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.time.Instant;
+import java.time.Year;
import java.util.ArrayList;
import java.util.List;
@@ -116,6 +117,8 @@
log.info(files.toString());
if (StringUtils.isNotEmpty(path) && !path.endsWith("/")) {
path = path + "/";
+ } else {
+ path = Year.now().getValue() + "鍏跺畠/";
}
List<MinioResponseDTO> MinioResponseDTOList = new ArrayList<>();
@@ -136,7 +139,9 @@
String bucketName = minioConfig.getBucketName();
minioClientUtils.putObject(bucketName, file, path + originalFilename);
// String fileUrl = minioClientUtils.getObjectUrl(bucketName, path + originalFilename);
- String fileUrl = path + originalFilename;
+ // String fileUrl = path + originalFilename;
+ //url鍙互浣跨敤涓�鍛�
+ String fileUrl = getFileUrl(path + originalFilename, 6);
MinioFile minioFile = new MinioFile();
minioFile.setOriginalFileName(originalFilename);
minioFile.setFileExtName(extName);
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
index d871d26..03b1226 100644
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
@@ -5,17 +5,15 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
-import com.smartor.domain.Icd10Association;
-import com.smartor.domain.SvyLibTitleReq;
-import com.smartor.domain.SvyLibTopic;
+import com.smartor.domain.*;
import com.smartor.mapper.Icd10AssociationMapper;
import com.smartor.mapper.SvyLibTopicMapper;
+import com.smartor.mapper.SvyTopicoptionMapper;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.smartor.mapper.SvyLibTitleMapper;
-import com.smartor.domain.SvyLibTitle;
import com.smartor.service.ISvyLibTitleService;
import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +31,8 @@
private Icd10AssociationMapper icd10AssociationMapper;
@Autowired
private SvyLibTopicMapper svyLibTopicMapper;
+ @Autowired
+ private SvyTopicoptionMapper svyTopicoptionMapper;
/**
* 鏌ヨ闂嵎
@@ -54,6 +54,29 @@
@Override
public List<SvyLibTitle> selectSvyLibTitleList(SvyLibTitleReq svyLibTitleReq) {
List<SvyLibTitle> svyLibTitles = svyLibTitleMapper.selectSvyLibTitleList(svyLibTitleReq);
+ //娣诲姞棰樼洰
+ for (int i = 0; i < svyLibTitles.size(); i++) {
+ SvyLibTopic svyLibTopic = new SvyLibTopic();
+ svyLibTopic.setSvyid(svyLibTitles.get(i).getSvyid());
+ List<SvyLibTopic> svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic);
+ //鑾峰彇棰樼洰閫夐」
+ a:
+ for (int j = 0; j < svyLibTopics.size(); j++) {
+ if (svyLibTopics.get(j).getTopictype() == 3) {
+ //浣滅瓟棰橈紝涓嶉渶瑕侀�夐」
+ continue a;
+ } else {
+ SvyTopicoption svyTopicoption = new SvyTopicoption();
+ svyTopicoption.setTopicid(svyLibTopics.get(j).getSvyTopicId());
+ List<SvyTopicoption> svyTopicoptions = svyTopicoptionMapper.selectSvyTopicoptionList(svyTopicoption);
+ //灏嗘煡璇㈠嚭鐨勯�夐」鐩斁鍒伴鐩腑
+ svyLibTopics.get(j).setSvyTopicoptions(svyTopicoptions);
+ }
+ }
+ //灏嗛鐩斁鍒伴棶鍗峰垪琛ㄤ腑
+ svyLibTitles.get(i).setSvyLibTopics(svyLibTopics);
+ }
+
//鍏堝皢鐩稿悓鐨刬d鐨刬cdname,鏁寸悊鍒颁竴鍧�
List<SvyLibTitle> libTitles = svyLibTitles.stream().collect(Collectors.groupingBy(SvyLibTitle::getSvyid, Collectors.mapping(SvyLibTitle::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTitle(entry.getKey(), entry.getValue())).collect(Collectors.toList());
//涓存椂鍙橀噺锛岀敤鏉ヤ繚瀛樼柧鐥呭悕绉�
@@ -93,6 +116,8 @@
//鏂板闂棰樼洰
for (int i = 0; i < svyLibTitle.getSvyLibTopics().size(); i++) {
SvyLibTopic svyLibTopic = svyLibTitle.getSvyLibTopics().get(i);
+ svyLibTopic.setSvyid(svyLibTitle.getSvyid());
+ //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicidf鍘诲叧鑱�
svyLibTopicMapper.insertSvyLibTopic(svyLibTopic);
}
return 1;
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml
index d72d610..cb2012a 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml
@@ -1,51 +1,72 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.smartor.mapper.SvyLibTopicMapper">
-
+
<resultMap type="com.smartor.domain.SvyLibTopic" id="SvyLibTopicResult">
- <result property="topicid" column="topicid" />
- <result property="oldid" column="oldid" />
- <result property="svyid" column="svyid" />
- <result property="topictype" column="topictype" />
- <result property="topiccode" column="topiccode" />
- <result property="topic" column="topic" />
- <result property="sort" column="sort" />
- <result property="ismandatory" column="ismandatory" />
- <result property="ishide" column="ishide" />
- <result property="delFlag" column="del_flag" />
- <result property="orgid" column="orgid" />
- <result property="createBy" column="create_by" />
- <result property="createTime" column="create_time" />
- <result property="updateBy" column="update_by" />
- <result property="updateTime" column="update_time" />
- <result property="isupload" column="isupload" />
- <result property="uploadTime" column="upload_time" />
- <result property="tag" column="tag" />
+ <result property="topicid" column="topicid"/>
+ <result property="oldid" column="oldid"/>
+ <result property="svyid" column="svyid"/>
+ <result property="topictype" column="topictype"/>
+ <result property="topiccode" column="topiccode"/>
+ <result property="topic" column="topic"/>
+ <result property="sort" column="sort"/>
+ <result property="ismandatory" column="ismandatory"/>
+ <result property="ishide" column="ishide"/>
+ <result property="delFlag" column="del_flag"/>
+ <result property="orgid" column="orgid"/>
+ <result property="createBy" column="create_by"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateBy" column="update_by"/>
+ <result property="updateTime" column="update_time"/>
+ <result property="isupload" column="isupload"/>
+ <result property="uploadTime" column="upload_time"/>
+ <result property="tag" column="tag"/>
</resultMap>
<sql id="selectSvyLibTopicVo">
- select topicid, oldid, svyid, topictype, topiccode, topic, sort, ismandatory, ishide, del_flag, orgid, create_by, create_time, update_by, update_time, isupload, upload_time,tag from svy_lib_topic
+ select topicid,
+ oldid,
+ svyid,
+ topictype,
+ topiccode,
+ topic,
+ sort,
+ ismandatory,
+ ishide,
+ del_flag,
+ orgid,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ isupload,
+ upload_time,
+ tag,
+ svy_topicid as svyTopicId
+ from svy_lib_topic
</sql>
<select id="selectSvyLibTopicList" parameterType="com.smartor.domain.SvyLibTopic" resultMap="SvyLibTopicResult">
<include refid="selectSvyLibTopicVo"/>
- <where>
- <if test="oldid != null "> and oldid = #{oldid}</if>
- <if test="topictype != null "> and topictype = #{topictype}</if>
- <if test="topic != null and topic != ''"> and topic = #{topic}</if>
- <if test="ishide != null "> and ishide = #{ishide}</if>
- <if test="orgid != null and orgid != ''"> and orgid = #{orgid}</if>
+ <where>
+ <if test="oldid != null ">and oldid = #{oldid}</if>
+ <if test="topictype != null ">and topictype = #{topictype}</if>
+ <if test="topic != null and topic != ''">and topic = #{topic}</if>
+ <if test="ishide != null ">and ishide = #{ishide}</if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="svyid != null and svyid != ''">and svyid = #{svyid}</if>
</where>
</select>
-
+
<select id="selectSvyLibTopicByTopicid" parameterType="Long" resultMap="SvyLibTopicResult">
<include refid="selectSvyLibTopicVo"/>
where topicid = #{topicid}
</select>
-
- <insert id="insertSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic" useGeneratedKeys="true" keyProperty="topicid">
+
+ <insert id="insertSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic" useGeneratedKeys="true"
+ keyProperty="topicid">
insert into svy_lib_topic
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="oldid != null">oldid,</if>
@@ -65,7 +86,8 @@
<if test="isupload != null">isupload,</if>
<if test="uploadTime != null">upload_time,</if>
<if test="tag != null">tag,</if>
- </trim>
+ <if test="svyTopicId != null">svy_topicid,</if>
+ </trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="oldid != null">#{oldid},</if>
<if test="svyid != null">#{svyid},</if>
@@ -84,7 +106,8 @@
<if test="isupload != null">#{isupload},</if>
<if test="uploadTime != null">#{uploadTime},</if>
<if test="tag != null">#{tag},</if>
- </trim>
+ <if test="svyTopicId != null">#{svyTopicId},</if>
+ </trim>
</insert>
<update id="updateSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic">
@@ -111,11 +134,13 @@
</update>
<delete id="deleteSvyLibTopicByTopicid" parameterType="Long">
- delete from svy_lib_topic where topicid = #{topicid}
+ delete
+ from svy_lib_topic
+ where topicid = #{topicid}
</delete>
<delete id="deleteSvyLibTopicByTopicids" parameterType="String">
- delete from svy_lib_topic where topicid in
+ delete from svy_lib_topic where topicid in
<foreach item="topicid" collection="array" open="(" separator="," close=")">
#{topicid}
</foreach>
--
Gitblit v1.9.3