From cfe0b79fbea0fb1d7a5a796e71ada7d3b7812046 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期一, 15 十二月 2025 22:31:33 +0800
Subject: [PATCH] feat: 企业微信发送微信小程序cetd

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 98 insertions(+), 1 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 130c438..84af926 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -31,6 +31,7 @@
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.domain.vo.BranchUserQueryVO;
 
 /**
  * 鐢ㄦ埛淇℃伅
@@ -56,7 +57,6 @@
     /**
      * 鑾峰彇鐢ㄦ埛鍒楄〃
      */
-    @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/list")
     public TableDataInfo list(SysUser user)
     {
@@ -253,4 +253,101 @@
     {
         return success(deptService.selectDeptTreeList(dept));
     }
+    
+    /**
+     * 鑾峰彇褰撳墠鐢ㄦ埛绠$悊鐨勫垎鍏徃涓嬬殑鎵�鏈夌敤鎴凤紙灏忕▼搴忕涓撶敤锛�
+     * 鏍规嵁褰撳墠鐢ㄦ埛鐨刼aOrderClass瀛楁鍖归厤鍒嗗叕鍙革紝杩斿洖杩欎簺鍒嗗叕鍙稿強鍏舵墍鏈夊瓙閮ㄩ棬鐨勭敤鎴�
+     */
+    @GetMapping("/branch/users")
+    public AjaxResult listBranchUsers()
+    {
+        // 鑾峰彇褰撳墠鐢ㄦ埛
+        SysUser currentUser = userService.selectUserById(getUserId());
+        if (currentUser == null) {
+            return error("鐢ㄦ埛涓嶅瓨鍦�");
+        }
+        
+        // 鑾峰彇褰撳墠鐢ㄦ埛绠$悊鐨勫垎鍏徃ID鍒楄〃
+        String oaOrderClass = currentUser.getOaOrderClass();
+        List<Long> branchDeptIds = new java.util.ArrayList<>();
+        
+        if (StringUtils.isNotEmpty(oaOrderClass)) {
+            // 鏍规嵁oaOrderClass鏌ヨ鍖归厤鐨勫垎鍏徃
+            String[] orderCodes = oaOrderClass.split(",");
+            SysDept queryDept = new SysDept();
+            queryDept.setParentId(100L); // 鍙煡璇㈠垎鍏徃
+            List<SysDept> allBranches = deptService.selectDeptList(queryDept);
+            
+            for (SysDept branch : allBranches) {
+                for (String code : orderCodes) {
+                    // 鍖归厤serviceOrderClass鎴杁ispatchOrderClass
+                    if ((StringUtils.isNotEmpty(branch.getServiceOrderClass()) && branch.getServiceOrderClass().equals(code.trim()))
+                        || (StringUtils.isNotEmpty(branch.getDispatchOrderClass()) && branch.getDispatchOrderClass().equals(code.trim()))) {
+                        branchDeptIds.add(branch.getDeptId());
+                        break;
+                    }
+                }
+            }
+        }
+        
+        // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勫垎鍏徃锛屼娇鐢ㄥ綋鍓嶇敤鎴锋墍鍦ㄩ儴闂�
+        if (branchDeptIds.isEmpty()) {
+            Long userDeptId = currentUser.getDeptId();
+            if (userDeptId != null) {
+                // 鏌ユ壘鐢ㄦ埛鎵�鍦ㄩ儴闂ㄧ殑鐖剁骇鍒嗗叕鍙�
+                SysDept userDept = deptService.selectDeptById(userDeptId);
+                if (userDept != null) {
+                    // 鍚戜笂鏌ユ壘鐩村埌鎵惧埌parent_id=100鐨勫垎鍏徃
+                    while (userDept != null && userDept.getParentId() != 100L) {
+                        userDept = deptService.selectDeptById(userDept.getParentId());
+                    }
+                    if (userDept != null && userDept.getParentId() == 100L) {
+                        branchDeptIds.add(userDept.getDeptId());
+                    }
+                }
+            }
+        }
+        
+        // 濡傛灉杩樻槸娌℃湁鎵惧埌锛岃繑鍥炵┖鍒楄〃
+        if (branchDeptIds.isEmpty()) {
+            return success(new java.util.ArrayList<>());
+        }
+        
+        // 鏌ヨ杩欎簺鍒嗗叕鍙稿強鍏舵墍鏈夊瓙閮ㄩ棬鐨勭敤鎴�
+        List<SysUser> users = userService.selectUsersByBranchDeptIds(branchDeptIds);
+        
+        return success(users);
+    }
+    
+    /**
+     * 鏍规嵁鍒嗗叕鍙窱D鍒楄〃鑾峰彇鐢ㄦ埛(POST鏂瑰紡)
+     */
+    @PostMapping("/branch/users")
+    public AjaxResult listUsersByBranchDepts(@RequestBody BranchUserQueryVO queryVO)
+    {
+        List<Long> branchDeptIds = queryVO.getBranchDeptIds();
+        
+        if (branchDeptIds == null || branchDeptIds.isEmpty()) {
+            return success(new java.util.ArrayList<>());
+        }
+        
+        // 鏌ヨ杩欎簺鍒嗗叕鍙稿強鍏舵墍鏈夊瓙閮ㄩ棬鐨勭敤鎴�
+        List<SysUser> users = userService.selectUsersByBranchDeptIds(branchDeptIds);
+        
+        return success(users);
+    }
+    
+    /**
+     * 鏍规嵁oaUserId鏌ヨ鐢ㄦ埛淇℃伅
+     */
+    @GetMapping("/oa-user/{oaUserId}")
+    public AjaxResult getUserByOaUserId(@PathVariable Integer oaUserId)
+    {
+        SysUser user = userService.selectUserByOaUserId(oaUserId);
+        if (user != null) {
+            return success(user);
+        } else {
+            return error("鏈壘鍒板搴旂殑鐢ㄦ埛淇℃伅");
+        }
+    }
 }

--
Gitblit v1.9.1