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