From af8cab142a6b15c06e131a8474574dd5b00df982 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 04 十二月 2025 22:09:58 +0800
Subject: [PATCH] feat: 改造微信accesstoken存放在系统配置表中
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wechat/WechatController.java | 91 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 86 insertions(+), 5 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wechat/WechatController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wechat/WechatController.java
index d5b8c99..91796b1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wechat/WechatController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wechat/WechatController.java
@@ -2,12 +2,30 @@
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.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.config.WechatConfig;
import com.ruoyi.common.utils.WechatUtils;
+import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.SysTask;
+import com.ruoyi.system.domain.SysTaskEmergency;
+import com.ruoyi.system.mapper.SysTaskMapper;
+import com.ruoyi.system.mapper.SysTaskEmergencyMapper;
+import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.service.IWechatTaskNotifyService;
+import com.ruoyi.system.service.IWechatAccessTokenService;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* 寰俊鎺ュ彛Controller
@@ -20,17 +38,29 @@
@Autowired
private WechatConfig wechatConfig;
+
+ @Autowired
+ private SysTaskMapper sysTaskMapper;
+
+ @Autowired
+ private SysTaskEmergencyMapper sysTaskEmergencyMapper;
+
+ @Autowired
+ private SysUserMapper sysUserMapper;
+
+ @Autowired
+ private IWechatTaskNotifyService wechatTaskNotifyService;
+
+ @Autowired
+ private IWechatAccessTokenService wechatAccessTokenService;
/**
- * 鑾峰彇寰俊AccessToken
+ * 鑾峰彇寰俊AccessToken锛堜娇鐢ㄥ簲鐢ㄧ骇缂撳瓨锛�
*/
@GetMapping("/accessToken")
public AjaxResult getAccessToken() {
try {
- String accessToken = WechatUtils.getAccessToken(
- wechatConfig.getAppId(),
- wechatConfig.getAppSecret()
- );
+ String accessToken = wechatAccessTokenService.getAppAccessToken();
if (accessToken == null || accessToken.isEmpty()) {
return error("鑾峰彇寰俊AccessToken澶辫触");
}
@@ -39,4 +69,55 @@
return error("鑾峰彇寰俊AccessToken寮傚父锛�" + e.getMessage());
}
}
+
+ /**
+ * 鑾峰彇寰俊閰嶇疆淇℃伅锛堝尶鍚嶈闂級
+ * 杩斿洖鍓嶇闇�瑕佺殑閰嶇疆淇℃伅锛屽璁㈤槄娑堟伅妯℃澘ID绛�
+ */
+ @Anonymous
+ @GetMapping("/config")
+ public AjaxResult getConfig() {
+ Map<String, String> config = new HashMap<>();
+ config.put("taskNotifyTemplateId", wechatConfig.getTaskNotifyTemplateId());
+ config.put("taskDetailPage", wechatConfig.getTaskDetailPage());
+ return success(config);
+ }
+
+ /**
+ * 鍖垮悕鎺ュ彛锛氭牴鎹换鍔D鎵嬪姩瑙﹀彂涓�娆′换鍔″井淇¢�氱煡
+ * 鏂逛究閫氳繃Postman璋冭瘯锛屽墠鎻愭槸浠诲姟宸叉湁鎵ц浜�/鍒涘缓浜哄苟缁戝畾浜唎penId
+ */
+ @Anonymous
+ @PostMapping("/task/notify")
+ public AjaxResult notifyTaskByWechat(@RequestParam("taskId") Long taskId) {
+ if (taskId == null) {
+ return error("浠诲姟ID涓嶈兘涓虹┖");
+ }
+
+ SysTask task = sysTaskMapper.selectSysTaskByTaskId(taskId);
+ if (task == null) {
+ return error("浠诲姟涓嶅瓨鍦�");
+ }
+
+ // 绠�鍖栵細缁欎换鍔″垱寤轰汉鍙戜竴鏉★紙濡傛灉缁戝畾浜唎penId锛夛紝鏂逛究蹇�熼獙璇佹ā鏉垮拰璺宠浆
+ if (task.getCreatorId() == null) {
+ return error("浠诲姟鏈寚瀹氬垱寤轰汉");
+ }
+
+ SysUser creator = sysUserMapper.selectUserById(task.getCreatorId());
+ if (creator == null || StringUtils.isEmpty(creator.getOpenId())) {
+ return error("鍒涘缓浜烘湭缁戝畾寰俊openId");
+ }
+
+ // 璋冪敤缁熶竴鐨勫井淇¢�氱煡鏈嶅姟
+ List<Long> userIds = new ArrayList<>();
+ userIds.add(task.getCreatorId());
+ int successCount = wechatTaskNotifyService.sendTaskNotifyMessage(taskId, userIds);
+
+ if (successCount == 0) {
+ return error("寰俊閫氱煡鍙戦�佸け璐�");
+ }
+
+ return success("宸茶Е鍙戝井淇¢�氱煡锛屾垚鍔熷彂閫佹潯鏁帮細" + successCount);
+ }
}
--
Gitblit v1.9.1