Merge remote-tracking branch 'origin/jdk8-dev' into jdk8-dev

This commit is contained in:
lbw committed 2024-02-24 17:19:40 +08:00
commit 8b6169ab80
4 files changed
+55 -5

No files matched your search

@@ -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:
@@ -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.<SysUser>query().lambda().eq(SysUser::getWxCpUserid, openId));
SysUser user = sysUserService.getOne(Wrappers.<SysUser>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;
}
@@ -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");
}
/**
+1 -1
View File
@@ -15,7 +15,7 @@
<description>基于 GoView 的大屏设计系统</description>
<properties>
<goview.version>0.1.4</goview.version>
<goview.version>1.0.0</goview.version>
</properties>
<dependencies>