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