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

身份证功能实现

上级 cd0f6937
...@@ -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;
/** /**
* 租户编码 * 租户编码
*/ */
......
...@@ -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>
......
...@@ -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);
......
...@@ -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);
......
...@@ -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));
}
/** /**
* 获取用户账户 * 获取用户账户
*/ */
......
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;
} }
} }
...@@ -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;
/** /**
* 手机号码 * 手机号码
*/ */
......
...@@ -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;
/** /**
* 手机号码 * 手机号码
*/ */
......
...@@ -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;
/** /**
* 手机号码 * 手机号码
*/ */
......
...@@ -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;
} }
......
...@@ -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;
} }
......
...@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论