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/SysLoginController.java |  109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 109 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index f42fdf9..4bef3fb 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -2,6 +2,8 @@
 
 import java.util.List;
 import java.util.Set;
+
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -18,8 +20,10 @@
 import com.ruoyi.framework.web.service.SysLoginService;
 import com.ruoyi.framework.web.service.SysPermissionService;
 import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.framework.web.service.WechatLoginService;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysMenuService;
+import com.ruoyi.common.annotation.Anonymous;
 
 /**
  * 鐧诲綍楠岃瘉
@@ -33,6 +37,8 @@
     private SysLoginService loginService;
 
     @Autowired
+    private ISysUserService userService;
+    @Autowired
     private ISysMenuService menuService;
 
     @Autowired
@@ -43,6 +49,87 @@
 
     @Autowired
     private ISysDeptService deptService;
+    
+    @Autowired
+    private WechatLoginService wechatLogin;
+
+    /**
+     * 寰俊涓�閿櫥褰� - 閫氳繃OpenID鍜孶nionID鐧诲綍
+     * 浣跨敤WechatLoginService杩涜璁よ瘉
+     * 
+     * @param requestBody 鍖呭惈openId鍜寀nionId鐨勮姹備綋
+     * @return 缁撴灉
+     */
+    @Anonymous
+    @PostMapping("/wechat/login/openid")
+    public AjaxResult loginByOpenId(@RequestBody java.util.Map<String, Object> requestBody)
+    {
+        String openId = (String) requestBody.get("openId");
+        String unionId = (String) requestBody.get("unionId");
+        
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(openId))
+        {
+            return AjaxResult.error("缂哄皯openId鍙傛暟");
+        }
+        
+        try
+        {
+            // 璋冪敤WechatLoginService杩涜璁よ瘉
+            String token = wechatLogin.loginByOpenId(openId, unionId);
+            
+            AjaxResult ajax = AjaxResult.success("鐧诲綍鎴愬姛");
+            ajax.put(Constants.TOKEN, token);
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+    
+
+    /**
+     * 寰俊鎵嬫満鍙风櫥褰�(鎺ㄨ崘浣跨敤)
+     * 
+     * @param requestBody 鍖呭惈loginCode(寰俊鐧诲綍code)鍜宲honeCode(鎵嬫満鍙锋巿鏉僣ode)
+     * @return 缁撴灉
+     */
+    @Anonymous
+    @PostMapping("/wechat/login/phone")
+    public AjaxResult loginByWechatPhone(@RequestBody java.util.Map<String, Object> requestBody)
+    {
+        String loginCode = (String) requestBody.get("loginCode");
+        String phoneCode = (String) requestBody.get("phoneCode");
+        
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(loginCode))
+        {
+            return AjaxResult.error("缂哄皯寰俊鐧诲綍code");
+        }
+        
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(phoneCode))
+        {
+            return AjaxResult.error("缂哄皯鎵嬫満鍙锋巿鏉僣ode");
+        }
+        
+        try
+        {
+            // 璋冪敤WechatLoginService杩涜璁よ瘉
+            java.util.Map<String, Object> loginResult = wechatLogin.loginByWechatPhone(loginCode, phoneCode);
+            
+            AjaxResult ajax = AjaxResult.success("鐧诲綍鎴愬姛");
+            ajax.put(Constants.TOKEN, loginResult.get("token"));
+            ajax.put("openId", loginResult.get("openId"));
+            if (loginResult.containsKey("unionId"))
+            {
+                ajax.put("unionId", loginResult.get("unionId"));
+            }
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
 
     /**
      * 鐧诲綍鏂规硶
@@ -71,6 +158,26 @@
     {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUser user = loginUser.getUser();
+        // 璁$畻鍙鐞嗗垎鍏徃鍒楄〃锛堝熀浜� OA_OrderClass 涓� sys_dept.service/dispatch_order_class锛�
+        java.util.List<SysDept> branchCompanies = new java.util.ArrayList<>();
+        java.util.Set<Long> seen = new java.util.HashSet<>();
+        if (com.ruoyi.common.utils.StringUtils.isNotEmpty(user.getOaOrderClass())) {
+            String[] codes = user.getOaOrderClass().split(",");
+            for (String raw : codes) {
+                String code = raw.trim();
+                if (code.isEmpty()) continue;
+                SysDept cond1 = new SysDept();
+                cond1.setParentId(100L);
+                cond1.setServiceOrderClass(code);
+                java.util.List<SysDept> list1 = deptService.selectDeptList(cond1);
+                for (SysDept d : list1) { if (seen.add(d.getDeptId())) branchCompanies.add(d); }
+                SysDept cond2 = new SysDept();
+                cond2.setParentId(100L);
+                cond2.setDispatchOrderClass(code);
+                java.util.List<SysDept> list2 = deptService.selectDeptList(cond2);
+                for (SysDept d : list2) { if (seen.add(d.getDeptId())) branchCompanies.add(d); }
+            }
+        }
         // 瑙掕壊闆嗗悎
         Set<String> roles = permissionService.getRolePermission(user);
         // 鏉冮檺闆嗗悎
@@ -132,6 +239,8 @@
         ajax.put("permissions", permissions);
         ajax.put("branchCompanyId", branchCompanyId);
         ajax.put("branchCompanyName", branchCompanyName);
+        ajax.put("branchCompanies", branchCompanies);
+        ajax.put("oaUserId", user.getOaUserId());
         return ajax;
     }
 

--
Gitblit v1.9.1