mysql
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java
index 3264de26f..6c7241be5 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java
@@ -58,14 +58,15 @@ public class CasLoginHandler extends AbstractLoginHandler {
SysSocialDetails condition = new SysSocialDetails();
condition.setType(LoginTypeEnum.CAS.getType());
SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
+ // remark 字段填写 CAS 服务器的URL
Cas30ProxyTicketValidator cas30ProxyTicketValidator = new Cas30ProxyTicketValidator(socialDetails.getRemark());
Assertion validate = cas30ProxyTicketValidator.validate(ticket, socialDetails.getRedirectUrl());
return validate.getPrincipal().getName();
}
/**
- * openId 获取用户信息
- * @param openId
+ * username 获取用户信息
+ * @param username
* @return
*/
@Override
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java
index 1e9fb5127..acb147f7b 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java
@@ -70,7 +70,7 @@ public class SmsLoginHandler extends AbstractLoginHandler {
*/
@Override
public Boolean bind(SysUser user, String identify) {
- user.setGiteeLogin(identify);
+ user.setPhone(identify);
sysUserService.updateById(user);
return null;
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/TencentLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/TencentLoginHandler.java
new file mode 100644
index 000000000..ef227e30d
--- /dev/null
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/TencentLoginHandler.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.admin.handler;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+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.SecurityConstants;
+import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author lengleng
+ * @date 2018/11/18
+ */
+@Slf4j
+@Component("QQ")
+@AllArgsConstructor
+public class TencentLoginHandler extends AbstractLoginHandler {
+
+ private final SysUserService sysUserService;
+
+ private final SysSocialDetailsMapper sysSocialDetailsMapper;
+
+ /**
+ * QQ登录传入code
+ *
+ * 通过code 调用qq 获取唯一标识
+ * @param code
+ * @return
+ */
+ @Override
+ public String identify(String code) {
+ SysSocialDetails condition = new SysSocialDetails();
+ condition.setType(LoginTypeEnum.QQ.getType());
+ SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
+
+ String url = String.format(SecurityConstants.QQ_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
+ socialDetails.getAppSecret(), code);
+ String result = HttpUtil.get(url);
+ log.debug("QQ响应报文:{}", result);
+
+ String accessToken = JSONUtil.parseObj(result).getStr("access_token");
+ String userUrl = String.format(SecurityConstants.QQ_USER_INFO_URL, accessToken);
+ String resp = HttpUtil.get(userUrl);
+ log.debug("QQ获取个人信息返回报文{}", resp);
+
+ JSONObject userInfo = JSONUtil.parseObj(resp);
+ // QQ唯一标识
+ String openid = userInfo.getStr("openid");
+ return openid;
+ }
+
+ /**
+ * openId 获取用户信息
+ * @param openId
+ * @return
+ */
+ @Override
+ public UserInfo info(String openId) {
+ SysUser user = sysUserService.getOne(Wrappers.query().lambda().eq(SysUser::getQqOpenid, openId));
+
+ if (user == null) {
+ log.info("QQ未绑定:{}", openId);
+ return null;
+ }
+ return sysUserService.findUserInfo(user);
+ }
+
+ /**
+ * 绑定逻辑
+ * @param user 用户实体
+ * @param identify 渠道返回唯一标识
+ * @return
+ */
+ @Override
+ public Boolean bind(SysUser user, String identify) {
+ List userList = sysUserService
+ .list(Wrappers.query().lambda().eq(SysUser::getQqOpenid, identify));
+
+ // 先把原有绑定关系去除,设置绑定为NULL
+ if (CollUtil.isNotEmpty(userList)) {
+ SysUser condition = new SysUser();
+ condition.setQqOpenid(identify);
+ sysUserService.update(condition, Wrappers.lambdaUpdate().set(SysUser::getQqOpenid, null));
+ log.info("QQ账号 {} 更换账号绑定", identify);
+ }
+
+ user.setQqOpenid(identify);
+ sysUserService.updateById(user);
+ return null;
+ }
+
+}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java
index 0d7bdcf21..d50b54b09 100755
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java
@@ -79,7 +79,7 @@ public class SysSocialDetailsServiceImpl extends ServiceImplorg.springframework.boot
spring-boot-starter-undertow
-
-