提交 1e25fa7a authored 作者: hzh's avatar hzh

身份证功能实现

上级 cd0f6937
......@@ -18,6 +18,11 @@ public class RemoteUser implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用户编码
*/
private String userNo;
/**
* 租户编码
*/
......
......@@ -86,6 +86,11 @@
<artifactId>ruoyi-api-resource</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-api-server</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-weixin</artifactId>
......
......@@ -15,11 +15,15 @@ import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.weixin.dto.WxAuthReq;
import org.dromara.common.weixin.dto.WxAuthResp;
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.domain.vo.RemoteClientVo;
import org.dromara.system.api.model.XcxLoginUser;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* 邮件认证策略
*
......@@ -35,6 +39,9 @@ public class XcxAuthStrategy implements IAuthStrategy {
@DubboReference
private RemoteUserService remoteUserService;
@DubboReference
private RemoteServerService remoteServerService;
@Override
public LoginVo login(String body, RemoteClientVo client) {
XcxLoginBody loginBody = JsonUtils.parseObject(body, XcxLoginBody.class);
......@@ -69,7 +76,10 @@ public class XcxAuthStrategy implements IAuthStrategy {
// 例如: 后台用户30分钟过期 app用户1天过期
model.setTimeout(client.getTimeout());
model.setActiveTimeout(client.getActiveTimeout());
RemoteUser ru = remoteServerService.getUserByPhone(loginUser.getTenantId(), loginUser.getPhone());
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
model.setExtra(LoginHelper.YS_USER_ID, Optional.ofNullable(ru).map(RemoteUser::getUserNo).orElse(null));
// 生成token
LoginHelper.login(loginUser, model);
......
......@@ -14,12 +14,16 @@ import org.dromara.common.json.utils.JsonUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.weixin.dto.WxAuthPhoneParseReq;
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.domain.bo.RemoteWxUserBo;
import org.dromara.system.api.domain.vo.RemoteClientVo;
import org.dromara.system.api.model.XcxLoginUser;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* 邮件认证策略
*
......@@ -35,6 +39,9 @@ public class XcxPhoneAuthStrategy implements IAuthStrategy {
@DubboReference
private RemoteUserService remoteUserService;
@DubboReference
private RemoteServerService remoteServerService;
@Override
public LoginVo login(String body, RemoteClientVo client) {
XcxPhoneLoginBody loginBody = JsonUtils.parseObject(body, XcxPhoneLoginBody.class);
......@@ -64,7 +71,9 @@ public class XcxPhoneAuthStrategy implements IAuthStrategy {
// 例如: 后台用户30分钟过期 app用户1天过期
model.setTimeout(client.getTimeout());
model.setActiveTimeout(client.getActiveTimeout());
RemoteUser ru = remoteServerService.getUserByPhone(loginUser.getTenantId(), loginUser.getPhone());
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
model.setExtra(LoginHelper.YS_USER_ID, Optional.ofNullable(ru).map(RemoteUser::getUserNo).orElse(null));
// 生成token
LoginHelper.login(loginUser, model);
......
......@@ -38,6 +38,7 @@ public class LoginHelper {
public static final String DEPT_NAME_KEY = "deptName";
public static final String DEPT_CATEGORY_KEY = "deptCategory";
public static final String CLIENT_KEY = "clientid";
public static final String YS_USER_ID = "ysUserId";
/**
* 登录系统 基于 设备类型
......@@ -88,6 +89,13 @@ public class LoginHelper {
return Convert.toLong(getExtra(USER_KEY));
}
/**
* 获取用户id
*/
public static String getUserNo() {
return Convert.toStr(getExtra(YS_USER_ID));
}
/**
* 获取用户账户
*/
......
package org.dromara.server.base;
import org.apache.commons.lang3.StringUtils;
import org.dromara.common.satoken.utils.LoginHelper;
/**
* @author hzh
* @date 2024-11-12
......@@ -12,7 +15,11 @@ public class BaseController {
* @return id
*/
public String getUserId() {
return "BKCq8Lk5sOWr2HUjh3IdBxGiZyLpkzK23HtpLGHAvuNmmCfQJ7krbvFfIBO9Lzuu-15133366666" ;
String userNo = LoginHelper.getUserNo();
if (StringUtils.isEmpty(userNo)) {
throw new RuntimeException("未获取到第三方用户编码");
}
return userNo;
}
}
......@@ -52,6 +52,11 @@ public class SysUser extends TenantEntity {
*/
private String email;
/**
* 身份证号码
*/
private String idCard;
/**
* 手机号码
*/
......
......@@ -62,6 +62,11 @@ public class SysUserBo extends BaseEntity {
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
private String email;
/**
* 身份证号码
*/
private String idCard;
/**
* 手机号码
*/
......
......@@ -64,6 +64,11 @@ public class SysUserVo implements Serializable {
@Sensitive(strategy = SensitiveStrategy.EMAIL, perms = "system:user:edit")
private String email;
/**
* 身份证号码
*/
private String idCard;
/**
* 手机号码
*/
......
......@@ -175,6 +175,8 @@ public class RemoteUserServiceImpl implements RemoteUserService {
loginUser.setNickname(sysUser.getNickName());
loginUser.setUserType(UserType.APP_USER.getUserType());
loginUser.setOpenid(openid);
loginUser.setPhone(sysUser.getPhonenumber());
loginUser.setTenantId(sysUser.getTenantId());
return loginUser;
}
......
......@@ -349,6 +349,7 @@ public class SysUserServiceImpl implements ISysUserService {
.setSystemUserId(sysUser.getUserId())
.setUserName(sysUser.getUserName())
.setPhoneNumber(sysUser.getPhonenumber())
.setIdCard(sysUser.getIdCard())
.setTenantId(sysUser.getTenantId())
);
}
......@@ -373,7 +374,7 @@ public class SysUserServiceImpl implements ISysUserService {
if (flag < 1) {
throw new ServiceException("修改用户" + user.getUserName() + "信息失败");
}
saveOrUpdateYsUser(sysUser);
saveOrUpdateYsUser(baseMapper.selectById(user.getUserId()));
return flag;
}
......
......@@ -17,7 +17,7 @@
${ew.getSqlSelect}
</if>
<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
</if>
from sys_user u
......@@ -30,7 +30,7 @@
${ew.getSqlSelect}
</if>
<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
</if>
from sys_user u
......@@ -38,7 +38,7 @@
</select>
<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,
d.dept_name, d.leader, u1.user_name as leaderName
from sys_user u
......@@ -48,7 +48,7 @@
</select>
<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
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
......@@ -57,7 +57,7 @@
</select>
<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
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
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论