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