Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
1e25fa7a
提交
1e25fa7a
authored
11月 14, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
身份证功能实现
上级
cd0f6937
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
69 行增加
和
7 行删除
+69
-7
RemoteUser.java
...c/main/java/org/dromara/server/api/domain/RemoteUser.java
+5
-0
pom.xml
ruoyi-auth/pom.xml
+5
-0
XcxAuthStrategy.java
...n/java/org/dromara/auth/service/impl/XcxAuthStrategy.java
+10
-0
XcxPhoneAuthStrategy.java
...a/org/dromara/auth/service/impl/XcxPhoneAuthStrategy.java
+9
-0
LoginHelper.java
...in/java/org/dromara/common/satoken/utils/LoginHelper.java
+8
-0
BaseController.java
...src/main/java/org/dromara/server/base/BaseController.java
+8
-1
SysUser.java
...stem/src/main/java/org/dromara/system/domain/SysUser.java
+5
-0
SysUserBo.java
...src/main/java/org/dromara/system/domain/bo/SysUserBo.java
+5
-0
SysUserVo.java
...src/main/java/org/dromara/system/domain/vo/SysUserVo.java
+5
-0
RemoteUserServiceImpl.java
.../java/org/dromara/system/dubbo/RemoteUserServiceImpl.java
+2
-0
SysUserServiceImpl.java
...a/org/dromara/system/service/impl/SysUserServiceImpl.java
+2
-1
SysUserMapper.xml
...system/src/main/resources/mapper/system/SysUserMapper.xml
+5
-5
没有找到文件。
ruoyi-api/ruoyi-api-server/src/main/java/org/dromara/server/api/domain/RemoteUser.java
浏览文件 @
1e25fa7a
...
@@ -18,6 +18,11 @@ public class RemoteUser implements Serializable {
...
@@ -18,6 +18,11 @@ public class RemoteUser implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户编码
*/
private
String
userNo
;
/**
/**
* 租户编码
* 租户编码
*/
*/
...
...
ruoyi-auth/pom.xml
浏览文件 @
1e25fa7a
...
@@ -86,6 +86,11 @@
...
@@ -86,6 +86,11 @@
<artifactId>
ruoyi-api-resource
</artifactId>
<artifactId>
ruoyi-api-resource
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
org.dromara
</groupId>
<artifactId>
ruoyi-api-server
</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>
org.dromara
</groupId>
<groupId>
org.dromara
</groupId>
<artifactId>
ruoyi-common-weixin
</artifactId>
<artifactId>
ruoyi-common-weixin
</artifactId>
...
...
ruoyi-auth/src/main/java/org/dromara/auth/service/impl/XcxAuthStrategy.java
浏览文件 @
1e25fa7a
...
@@ -15,11 +15,15 @@ import org.dromara.common.satoken.utils.LoginHelper;
...
@@ -15,11 +15,15 @@ import org.dromara.common.satoken.utils.LoginHelper;
import
org.dromara.common.weixin.dto.WxAuthReq
;
import
org.dromara.common.weixin.dto.WxAuthReq
;
import
org.dromara.common.weixin.dto.WxAuthResp
;
import
org.dromara.common.weixin.dto.WxAuthResp
;
import
org.dromara.common.weixin.utils.WeixinUtils
;
import
org.dromara.common.weixin.utils.WeixinUtils
;
import
org.dromara.server.api.RemoteServerService
;
import
org.dromara.server.api.domain.RemoteUser
;
import
org.dromara.system.api.RemoteUserService
;
import
org.dromara.system.api.RemoteUserService
;
import
org.dromara.system.api.domain.vo.RemoteClientVo
;
import
org.dromara.system.api.domain.vo.RemoteClientVo
;
import
org.dromara.system.api.model.XcxLoginUser
;
import
org.dromara.system.api.model.XcxLoginUser
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Optional
;
/**
/**
* 邮件认证策略
* 邮件认证策略
*
*
...
@@ -35,6 +39,9 @@ public class XcxAuthStrategy implements IAuthStrategy {
...
@@ -35,6 +39,9 @@ public class XcxAuthStrategy implements IAuthStrategy {
@DubboReference
@DubboReference
private
RemoteUserService
remoteUserService
;
private
RemoteUserService
remoteUserService
;
@DubboReference
private
RemoteServerService
remoteServerService
;
@Override
@Override
public
LoginVo
login
(
String
body
,
RemoteClientVo
client
)
{
public
LoginVo
login
(
String
body
,
RemoteClientVo
client
)
{
XcxLoginBody
loginBody
=
JsonUtils
.
parseObject
(
body
,
XcxLoginBody
.
class
);
XcxLoginBody
loginBody
=
JsonUtils
.
parseObject
(
body
,
XcxLoginBody
.
class
);
...
@@ -69,7 +76,10 @@ public class XcxAuthStrategy implements IAuthStrategy {
...
@@ -69,7 +76,10 @@ public class XcxAuthStrategy implements IAuthStrategy {
// 例如: 后台用户30分钟过期 app用户1天过期
// 例如: 后台用户30分钟过期 app用户1天过期
model
.
setTimeout
(
client
.
getTimeout
());
model
.
setTimeout
(
client
.
getTimeout
());
model
.
setActiveTimeout
(
client
.
getActiveTimeout
());
model
.
setActiveTimeout
(
client
.
getActiveTimeout
());
RemoteUser
ru
=
remoteServerService
.
getUserByPhone
(
loginUser
.
getTenantId
(),
loginUser
.
getPhone
());
model
.
setExtra
(
LoginHelper
.
CLIENT_KEY
,
client
.
getClientId
());
model
.
setExtra
(
LoginHelper
.
CLIENT_KEY
,
client
.
getClientId
());
model
.
setExtra
(
LoginHelper
.
YS_USER_ID
,
Optional
.
ofNullable
(
ru
).
map
(
RemoteUser:
:
getUserNo
).
orElse
(
null
));
// 生成token
// 生成token
LoginHelper
.
login
(
loginUser
,
model
);
LoginHelper
.
login
(
loginUser
,
model
);
...
...
ruoyi-auth/src/main/java/org/dromara/auth/service/impl/XcxPhoneAuthStrategy.java
浏览文件 @
1e25fa7a
...
@@ -14,12 +14,16 @@ import org.dromara.common.json.utils.JsonUtils;
...
@@ -14,12 +14,16 @@ import org.dromara.common.json.utils.JsonUtils;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.weixin.dto.WxAuthPhoneParseReq
;
import
org.dromara.common.weixin.dto.WxAuthPhoneParseReq
;
import
org.dromara.common.weixin.utils.WeixinUtils
;
import
org.dromara.common.weixin.utils.WeixinUtils
;
import
org.dromara.server.api.RemoteServerService
;
import
org.dromara.server.api.domain.RemoteUser
;
import
org.dromara.system.api.RemoteUserService
;
import
org.dromara.system.api.RemoteUserService
;
import
org.dromara.system.api.domain.bo.RemoteWxUserBo
;
import
org.dromara.system.api.domain.bo.RemoteWxUserBo
;
import
org.dromara.system.api.domain.vo.RemoteClientVo
;
import
org.dromara.system.api.domain.vo.RemoteClientVo
;
import
org.dromara.system.api.model.XcxLoginUser
;
import
org.dromara.system.api.model.XcxLoginUser
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Optional
;
/**
/**
* 邮件认证策略
* 邮件认证策略
*
*
...
@@ -35,6 +39,9 @@ public class XcxPhoneAuthStrategy implements IAuthStrategy {
...
@@ -35,6 +39,9 @@ public class XcxPhoneAuthStrategy implements IAuthStrategy {
@DubboReference
@DubboReference
private
RemoteUserService
remoteUserService
;
private
RemoteUserService
remoteUserService
;
@DubboReference
private
RemoteServerService
remoteServerService
;
@Override
@Override
public
LoginVo
login
(
String
body
,
RemoteClientVo
client
)
{
public
LoginVo
login
(
String
body
,
RemoteClientVo
client
)
{
XcxPhoneLoginBody
loginBody
=
JsonUtils
.
parseObject
(
body
,
XcxPhoneLoginBody
.
class
);
XcxPhoneLoginBody
loginBody
=
JsonUtils
.
parseObject
(
body
,
XcxPhoneLoginBody
.
class
);
...
@@ -64,7 +71,9 @@ public class XcxPhoneAuthStrategy implements IAuthStrategy {
...
@@ -64,7 +71,9 @@ public class XcxPhoneAuthStrategy implements IAuthStrategy {
// 例如: 后台用户30分钟过期 app用户1天过期
// 例如: 后台用户30分钟过期 app用户1天过期
model
.
setTimeout
(
client
.
getTimeout
());
model
.
setTimeout
(
client
.
getTimeout
());
model
.
setActiveTimeout
(
client
.
getActiveTimeout
());
model
.
setActiveTimeout
(
client
.
getActiveTimeout
());
RemoteUser
ru
=
remoteServerService
.
getUserByPhone
(
loginUser
.
getTenantId
(),
loginUser
.
getPhone
());
model
.
setExtra
(
LoginHelper
.
CLIENT_KEY
,
client
.
getClientId
());
model
.
setExtra
(
LoginHelper
.
CLIENT_KEY
,
client
.
getClientId
());
model
.
setExtra
(
LoginHelper
.
YS_USER_ID
,
Optional
.
ofNullable
(
ru
).
map
(
RemoteUser:
:
getUserNo
).
orElse
(
null
));
// 生成token
// 生成token
LoginHelper
.
login
(
loginUser
,
model
);
LoginHelper
.
login
(
loginUser
,
model
);
...
...
ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
浏览文件 @
1e25fa7a
...
@@ -38,6 +38,7 @@ public class LoginHelper {
...
@@ -38,6 +38,7 @@ public class LoginHelper {
public
static
final
String
DEPT_NAME_KEY
=
"deptName"
;
public
static
final
String
DEPT_NAME_KEY
=
"deptName"
;
public
static
final
String
DEPT_CATEGORY_KEY
=
"deptCategory"
;
public
static
final
String
DEPT_CATEGORY_KEY
=
"deptCategory"
;
public
static
final
String
CLIENT_KEY
=
"clientid"
;
public
static
final
String
CLIENT_KEY
=
"clientid"
;
public
static
final
String
YS_USER_ID
=
"ysUserId"
;
/**
/**
* 登录系统 基于 设备类型
* 登录系统 基于 设备类型
...
@@ -88,6 +89,13 @@ public class LoginHelper {
...
@@ -88,6 +89,13 @@ public class LoginHelper {
return
Convert
.
toLong
(
getExtra
(
USER_KEY
));
return
Convert
.
toLong
(
getExtra
(
USER_KEY
));
}
}
/**
* 获取用户id
*/
public
static
String
getUserNo
()
{
return
Convert
.
toStr
(
getExtra
(
YS_USER_ID
));
}
/**
/**
* 获取用户账户
* 获取用户账户
*/
*/
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/base/BaseController.java
浏览文件 @
1e25fa7a
package
org
.
dromara
.
server
.
base
;
package
org
.
dromara
.
server
.
base
;
import
org.apache.commons.lang3.StringUtils
;
import
org.dromara.common.satoken.utils.LoginHelper
;
/**
/**
* @author hzh
* @author hzh
* @date 2024-11-12
* @date 2024-11-12
...
@@ -12,7 +15,11 @@ public class BaseController {
...
@@ -12,7 +15,11 @@ public class BaseController {
* @return id
* @return id
*/
*/
public
String
getUserId
()
{
public
String
getUserId
()
{
return
"BKCq8Lk5sOWr2HUjh3IdBxGiZyLpkzK23HtpLGHAvuNmmCfQJ7krbvFfIBO9Lzuu-15133366666"
;
String
userNo
=
LoginHelper
.
getUserNo
();
if
(
StringUtils
.
isEmpty
(
userNo
))
{
throw
new
RuntimeException
(
"未获取到第三方用户编码"
);
}
return
userNo
;
}
}
}
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java
浏览文件 @
1e25fa7a
...
@@ -52,6 +52,11 @@ public class SysUser extends TenantEntity {
...
@@ -52,6 +52,11 @@ public class SysUser extends TenantEntity {
*/
*/
private
String
email
;
private
String
email
;
/**
* 身份证号码
*/
private
String
idCard
;
/**
/**
* 手机号码
* 手机号码
*/
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
浏览文件 @
1e25fa7a
...
@@ -62,6 +62,11 @@ public class SysUserBo extends BaseEntity {
...
@@ -62,6 +62,11 @@ public class SysUserBo extends BaseEntity {
@Size
(
min
=
0
,
max
=
50
,
message
=
"邮箱长度不能超过{max}个字符"
)
@Size
(
min
=
0
,
max
=
50
,
message
=
"邮箱长度不能超过{max}个字符"
)
private
String
email
;
private
String
email
;
/**
* 身份证号码
*/
private
String
idCard
;
/**
/**
* 手机号码
* 手机号码
*/
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
浏览文件 @
1e25fa7a
...
@@ -64,6 +64,11 @@ public class SysUserVo implements Serializable {
...
@@ -64,6 +64,11 @@ public class SysUserVo implements Serializable {
@Sensitive
(
strategy
=
SensitiveStrategy
.
EMAIL
,
perms
=
"system:user:edit"
)
@Sensitive
(
strategy
=
SensitiveStrategy
.
EMAIL
,
perms
=
"system:user:edit"
)
private
String
email
;
private
String
email
;
/**
* 身份证号码
*/
private
String
idCard
;
/**
/**
* 手机号码
* 手机号码
*/
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java
浏览文件 @
1e25fa7a
...
@@ -175,6 +175,8 @@ public class RemoteUserServiceImpl implements RemoteUserService {
...
@@ -175,6 +175,8 @@ public class RemoteUserServiceImpl implements RemoteUserService {
loginUser
.
setNickname
(
sysUser
.
getNickName
());
loginUser
.
setNickname
(
sysUser
.
getNickName
());
loginUser
.
setUserType
(
UserType
.
APP_USER
.
getUserType
());
loginUser
.
setUserType
(
UserType
.
APP_USER
.
getUserType
());
loginUser
.
setOpenid
(
openid
);
loginUser
.
setOpenid
(
openid
);
loginUser
.
setPhone
(
sysUser
.
getPhonenumber
());
loginUser
.
setTenantId
(
sysUser
.
getTenantId
());
return
loginUser
;
return
loginUser
;
}
}
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
浏览文件 @
1e25fa7a
...
@@ -349,6 +349,7 @@ public class SysUserServiceImpl implements ISysUserService {
...
@@ -349,6 +349,7 @@ public class SysUserServiceImpl implements ISysUserService {
.
setSystemUserId
(
sysUser
.
getUserId
())
.
setSystemUserId
(
sysUser
.
getUserId
())
.
setUserName
(
sysUser
.
getUserName
())
.
setUserName
(
sysUser
.
getUserName
())
.
setPhoneNumber
(
sysUser
.
getPhonenumber
())
.
setPhoneNumber
(
sysUser
.
getPhonenumber
())
.
setIdCard
(
sysUser
.
getIdCard
())
.
setTenantId
(
sysUser
.
getTenantId
())
.
setTenantId
(
sysUser
.
getTenantId
())
);
);
}
}
...
@@ -373,7 +374,7 @@ public class SysUserServiceImpl implements ISysUserService {
...
@@ -373,7 +374,7 @@ public class SysUserServiceImpl implements ISysUserService {
if
(
flag
<
1
)
{
if
(
flag
<
1
)
{
throw
new
ServiceException
(
"修改用户"
+
user
.
getUserName
()
+
"信息失败"
);
throw
new
ServiceException
(
"修改用户"
+
user
.
getUserName
()
+
"信息失败"
);
}
}
saveOrUpdateYsUser
(
sysUser
);
saveOrUpdateYsUser
(
baseMapper
.
selectById
(
user
.
getUserId
())
);
return
flag
;
return
flag
;
}
}
...
...
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
浏览文件 @
1e25fa7a
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
${ew.getSqlSelect}
${ew.getSqlSelect}
</if>
</if>
<if
test=
"ew.getSqlSelect == null"
>
<if
test=
"ew.getSqlSelect == null"
>
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.
id_card, u.
phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
</if>
</if>
from sys_user u
from sys_user u
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
${ew.getSqlSelect}
${ew.getSqlSelect}
</if>
</if>
<if
test=
"ew.getSqlSelect == null"
>
<if
test=
"ew.getSqlSelect == null"
>
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.
id_card, u.
phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
</if>
</if>
from sys_user u
from sys_user u
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
</select>
</select>
<select
id=
"selectUserExportList"
resultMap=
"SysUserExportResult"
>
<select
id=
"selectUserExportList"
resultMap=
"SysUserExportResult"
>
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.
id_card, u.
phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_name, d.leader, u1.user_name as leaderName
d.dept_name, d.leader, u1.user_name as leaderName
from sys_user u
from sys_user u
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
</select>
</select>
<select
id=
"selectAllocatedList"
resultMap=
"SysUserResult"
>
<select
id=
"selectAllocatedList"
resultMap=
"SysUserResult"
>
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.
id_card, u.
phonenumber, u.status, u.create_time
from sys_user u
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id
left join sys_user_role sur on u.user_id = sur.user_id
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
</select>
</select>
<select
id=
"selectUnallocatedList"
resultMap=
"SysUserResult"
>
<select
id=
"selectUnallocatedList"
resultMap=
"SysUserResult"
>
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.
id_card, u.
phonenumber, u.status, u.create_time
from sys_user u
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id
left join sys_user_role sur on u.user_id = sur.user_id
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论