From fffb836b0dccf9e0a2b49a80b635a6d9bdeb0cac Mon Sep 17 00:00:00 2001 From: lbw Date: Mon, 15 Jan 2024 16:40:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20#5426=20?= =?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1=E5=A4=9A=E4=B8=AA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=BB=91=E5=AE=9A=E4=B9=8B=E5=90=8E=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=99=BB=E5=BD=95=EF=BC=8C=E5=8F=AA=E8=83=BD=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BB=91=E5=AE=9A=E8=B4=A6=E5=8F=B7=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/handler/DingTalkLoginHandler.java | 33 +++++++++++++++++-- .../admin/handler/WeChatCPLoginHandler.java | 21 +++++++++++- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java index cdd2ab473..4ffde599c 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/DingTalkLoginHandler.java @@ -17,11 +17,17 @@ package com.pig4cloud.pigx.admin.handler; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.pig4cloud.pigx.admin.api.dto.UserInfo; +import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; import com.pig4cloud.pigx.admin.api.entity.SysUser; import com.pig4cloud.pigx.admin.mapper.SysSocialDetailsMapper; import com.pig4cloud.pigx.admin.service.SysUserService; +import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -50,8 +56,29 @@ public class DingTalkLoginHandler extends AbstractLoginHandler { */ @Override public String identify(String code) { + SysSocialDetails condition = new SysSocialDetails(); + condition.setType(LoginTypeEnum.DINGTALK.getType()); + SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition)); + + String getAccessTokenUrl = "https://api.dingtalk.com/v1.0/oauth2/userAccessToken"; + String accessTokenResult = HttpUtil.post(getAccessTokenUrl, + JSONUtil.createObj() + .set("clientId", socialDetails.getAppId()) + .set("clientSecret", socialDetails.getAppSecret()) + .set("grantType", "authorization_code") + .set("code", code) + .toString()); + log.debug("获取钉钉Token响应报文:{}", accessTokenResult); + String accessToken = JSONUtil.parseObj(accessTokenResult).getStr("accessToken"); + String getUserIdUrl = "https://api.dingtalk.com/v1.0/contact/users/me"; + + String userResult = HttpRequest.get(getUserIdUrl) + .header("x-acs-dingtalk-access-token", accessToken) + .execute() + .body(); + log.debug("获取钉钉UserId响应报文:{}", userResult); // 企微唯一标识 - return "LengLeng"; + return JSONUtil.parseObj(userResult).getStr("openId"); } /** @@ -61,7 +88,7 @@ public class DingTalkLoginHandler extends AbstractLoginHandler { */ @Override public UserInfo info(String openId) { - SysUser user = sysUserService.getOne(Wrappers.query().lambda().eq(SysUser::getWxCpUserid, openId)); + SysUser user = sysUserService.getOne(Wrappers.query().lambda().eq(SysUser::getWxDingUserid, openId)); if (user == null) { log.info("钉钉未绑定:{}", openId); @@ -78,7 +105,7 @@ public class DingTalkLoginHandler extends AbstractLoginHandler { */ @Override public Boolean bind(SysUser user, String identify) { - user.setWxCpUserid(identify); + user.setWxDingUserid(identify); sysUserService.updateById(user); return true; } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java index f6a70c5f8..6d6fff94d 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatCPLoginHandler.java @@ -17,11 +17,16 @@ package com.pig4cloud.pigx.admin.handler; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.pig4cloud.pigx.admin.api.dto.UserInfo; +import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; import com.pig4cloud.pigx.admin.api.entity.SysUser; import com.pig4cloud.pigx.admin.mapper.SysSocialDetailsMapper; import com.pig4cloud.pigx.admin.service.SysUserService; +import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -50,7 +55,21 @@ public class WeChatCPLoginHandler extends AbstractLoginHandler { */ @Override public String identify(String code) { - return "LengLeng"; + SysSocialDetails condition = new SysSocialDetails(); + condition.setType(LoginTypeEnum.WEIXIN_CP.getType()); + SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition)); + + String getAccessTokenUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s"; + + String accessTokenResult = HttpUtil + .get(String.format(getAccessTokenUrl, socialDetails.getAppId(), socialDetails.getAppSecret())); + log.debug("获取企业微信Token响应报文:{}", accessTokenResult); + String accessToken = JSONUtil.parseObj(accessTokenResult).getStr("access_token"); + String getUserIdUrl = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=%s&code=%s"; + String userResult = HttpUtil.get(String.format(getUserIdUrl, accessToken, code)); + log.debug("获取企业微信UserId响应报文:{}", userResult); + // 企微唯一标识 + return JSONUtil.parseObj(userResult).getStr("userid"); } /** From 688b032d617e6b883df1f02bde5acdba019f1d6e Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 23 Jan 2024 11:53:32 +0800 Subject: [PATCH 2/3] =?UTF-8?q?:wrench:=20=E4=BF=AE=E6=94=B9=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8Cnacos=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pigx-register/src/main/resources/application.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pigx-register/src/main/resources/application.yml b/pigx-register/src/main/resources/application.yml index d62e442d6..bd7d47f1e 100644 --- a/pigx-register/src/main/resources/application.yml +++ b/pigx-register/src/main/resources/application.yml @@ -10,6 +10,10 @@ db: password: ${MYSQL_PWD:root} url: 0: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_config}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + pool: + config: + connectionTimeout: 30000 + validationTimeout: 10000 nacos: core: From 8ce3b376a47b72cca2d7cf7d1b727de248437aac Mon Sep 17 00:00:00 2001 From: lbw Date: Mon, 29 Jan 2024 14:10:18 +0800 Subject: [PATCH 3/3] :arrow_up: Upgrading dependencies. go-view starter 1.0.0 --- pigx-visual/pigx-report-platform/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pigx-visual/pigx-report-platform/pom.xml b/pigx-visual/pigx-report-platform/pom.xml index e6a120aff..d19c00aad 100644 --- a/pigx-visual/pigx-report-platform/pom.xml +++ b/pigx-visual/pigx-report-platform/pom.xml @@ -15,7 +15,7 @@ 基于 GoView 的大屏设计系统 - 0.1.4 + 1.0.0