feat: 新增第三方登录认证和管理

This commit is contained in:
TsMask
2025-08-12 09:52:10 +08:00
parent d3f7c75ab4
commit c79786e1a1
50 changed files with 1678 additions and 157 deletions

View File

@@ -16,7 +16,7 @@ import (
// 实例化数据层 SysUserImpl 结构体
var NewSysUserImpl = &SysUserImpl{
selectSql: `select
u.user_id, u.dept_id, u.tenant_id, u.user_name, u.nick_name, u.user_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
u.user_id, u.dept_id, u.tenant_id, u.user_name, u.nick_name, u.user_type, u.user_source, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
t.tenant_id, t.parent_id, t.ancestors, t.tenant_name, t.order_num, t.tenancy_type, t.tenancy_key, t.status as tenant_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
@@ -33,6 +33,7 @@ var NewSysUserImpl = &SysUserImpl{
"user_name": "UserName",
"nick_name": "NickName",
"user_type": "UserType",
"user_source": "UserSource",
"email": "Email",
"phonenumber": "PhoneNumber",
"sex": "Sex",
@@ -171,6 +172,14 @@ func (r *SysUserImpl) SelectUserPage(query map[string]any, dataScopeSQL string)
conditions = append(conditions, "u.phonenumber like concat(?, '%')")
params = append(params, v)
}
if v, ok := query["userType"]; ok && v != "" {
conditions = append(conditions, "u.user_type = ?")
params = append(params, v)
}
if v, ok := query["userSource"]; ok && v != "" {
conditions = append(conditions, "u.user_source = ?")
params = append(params, v)
}
beginTime, ok := query["beginTime"]
if !ok {
beginTime, ok = query["params[beginTime]"]
@@ -398,6 +407,32 @@ func (r *SysUserImpl) SelectUserByIds(userIds []string) []model.SysUser {
return r.convertResultRows(results)
}
// SelectByUserName 通过登录账号查询信息
func (r *SysUserImpl) SelectByUserName(userName, userType, userSource string) model.SysUser {
item := model.SysUser{}
if userName == "" {
return item
}
if userType == "" {
userType = "System"
}
if userSource == "" {
userSource = "#"
}
querySql := r.selectSql + " where u.del_flag = '0' and u.user_name = ? and u.user_type = ? and u.user_source = ?"
results, err := datasource.RawDB("", querySql, []any{userName, userType, userSource})
if err != nil {
logger.Errorf("query err => %v", err)
return model.SysUser{}
}
// 转换实体
rows := r.convertResultRows(results)
if len(rows) > 0 {
return rows[0]
}
return item
}
// SelectUserByUserName 通过用户登录账号查询用户
func (r *SysUserImpl) SelectUserByUserName(userName string) model.SysUser {
querySql := r.selectSql + " where u.del_flag = '0' and u.user_name = ?"
@@ -436,6 +471,9 @@ func (r *SysUserImpl) InsertUser(sysUser model.SysUser) string {
if sysUser.UserType != "" {
params["user_type"] = sysUser.UserType
}
if sysUser.UserSource != "" {
params["user_source"] = sysUser.UserSource
}
if sysUser.Avatar != "" {
params["avatar"] = sysUser.Avatar
}
@@ -509,6 +547,9 @@ func (r *SysUserImpl) UpdateUser(sysUser model.SysUser) int64 {
if sysUser.UserType != "" {
params["user_type"] = sysUser.UserType
}
if sysUser.UserSource != "" {
params["user_source"] = sysUser.UserSource
}
if sysUser.Avatar != "" {
params["avatar"] = sysUser.Avatar
}
@@ -582,6 +623,14 @@ func (r *SysUserImpl) CheckUniqueUser(sysUser model.SysUser) string {
conditions = append(conditions, "email = ?")
params = append(params, sysUser.Email)
}
if sysUser.UserType != "" {
conditions = append(conditions, "user_type = ?")
params = append(params, sysUser.UserType)
}
if sysUser.UserSource != "" {
conditions = append(conditions, "user_source = ?")
params = append(params, sysUser.UserSource)
}
// 构建查询条件语句
whereSql := ""