From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 01 四月 2025 16:03:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 46 insertions(+), 10 deletions(-)

diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
index 048fafd..dcd1562 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
@@ -4,6 +4,8 @@
 import com.ruoyi.auth.service.QywxInnerService;
 import com.ruoyi.auth.service.SysLoginService;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.system.api.model.*;
 import io.swagger.annotations.Api;
@@ -12,7 +14,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -36,8 +37,11 @@
     @Autowired
     private TokenService tokenService;
 
-    @Value("${h5.redirectUriBase}")
-    private String redirectUriBase;
+    @Value("${h5.redirectMerchantUriBase}")
+    private String redirectMerchantUriBase;
+
+    @Value("${h5.redirectEmployeeUriBase}")
+    private String redirectEmployeeUriBase;
 
 
     /**
@@ -50,29 +54,61 @@
     @ApiOperation("构造网页授权链接")
     public R<OauthUrlVo> oauthUrl(@ApiParam(value = "授权重定向地址", required = true) @RequestParam("redirectUri") String redirectUri) throws UnsupportedEncodingException {
         // 普通应用
-        redirectUri = redirectUriBase + redirectUri;
+        redirectUri = redirectMerchantUriBase + redirectUri;
+        String oauthRedirectUrl =  URLEncoder.encode(redirectUri,"utf-8");
+        String oauthUrl = qywxInnerService.getOauthUrl(oauthRedirectUrl);
+        return R.ok(new OauthUrlVo(oauthUrl));
+    }
+
+    @GetMapping({"/h5/oauthStaffUrl"})
+    @ApiOperation("构造网页授权链接")
+    public R<OauthUrlVo> oauthStaffUrl(@ApiParam(value = "授权重定向地址", required = true) @RequestParam("redirectUri") String redirectUri) throws UnsupportedEncodingException {
+        // 普通应用
+        redirectUri = redirectEmployeeUriBase + redirectUri;
         String oauthRedirectUrl =  URLEncoder.encode(redirectUri,"utf-8");
         String oauthUrl = qywxInnerService.getOauthUrl(oauthRedirectUrl);
         return R.ok(new OauthUrlVo(oauthUrl));
     }
 
 
-    @GetMapping("/h5/oauthUser")
-    @ApiOperation("通过code获取访问用户登录")
-    public R<OauthUserVo> oauthUser(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException {
+    @GetMapping("/h5/oauthStaff")
+    @ApiOperation("通过code获取员工端用户登录")
+    public R<OauthUserVo> oauthStaff(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException {
         // 通过code获取访问用户敏感信息
         JSONObject result = qywxInnerService.getOauthUser(code);
         QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class);
+        //QwUserDetailDto qwUserDetail = new QwUserDetailDto();
+        //qwUserDetail.setMobile("17780704874");
+        if(StringUtils.isBlank(qwUserDetail.getMobile())){
+            throw new ServiceException("企业微信未授权手机号,无法登录");
+        }
         // 1、查数据库获取人员
-        QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5Login(qwUserDetail);
+        QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5StaffLogin(qwUserDetail);
         // 2、生成Token
        return R.ok(tokenService.createQwH5Token(qwH5LoginVo));
     }
 
+    @GetMapping("/h5/oauthUser")
+    @ApiOperation("通过code获取商户端用户登录")
+    public R<OauthUserVo> oauthUser(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException {
+        // 通过code获取访问用户敏感信息
+        JSONObject result = qywxInnerService.getOauthUser(code);
+        QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class);
+        if(StringUtils.isBlank(qwUserDetail.getMobile())){
+            throw new ServiceException("企业微信未授权手机号,无法登录");
+        }
+        //QwUserDetailDto qwUserDetail = new QwUserDetailDto();
+        //qwUserDetail.setMobile("13882237106");
+        // 1、查数据库获取人员
+        QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5Login(qwUserDetail);
+        // 2、生成Token
+        return R.ok(tokenService.createQwH5Token(qwH5LoginVo));
+    }
+
     @GetMapping("/h5/getAgentConfig")
     @ApiOperation("通过code获取访问用户登录")
-    public R<AgentConfigVo> getAgentConfig(@ApiParam(value = "url", required = true) String url) throws IOException {
-        AgentConfigVo agentConfigVo = qywxInnerService.getAgentConfig(url);
+    public R<AgentConfigVo> getAgentConfig(@ApiParam(value = "url", required = true) String url, @ApiParam(value = "type", required = false) String type) throws IOException {
+        AgentConfigVo agentConfigVo = qywxInnerService.getAgentConfig(url, type);
         return R.ok(agentConfigVo);
     }
 

--
Gitblit v1.7.1