From 4051c67af5a532ab09c0f311cde1dc2e06898e22 Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 14 Jan 2026 16:58:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=BD=93=E6=9C=BA?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AF=81=E7=99=BB=E5=BD=95=EF=BC=88=E8=BA=AB?= =?UTF-8?q?=E4=BB=BD=E8=AF=81=E5=92=8C=E6=89=8B=E6=9C=BA=E5=8F=B7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysLoginController.java | 3 ++ .../ruoyi/cms/service/IAppUserService.java | 2 ++ .../cms/service/impl/AppUserServiceImpl.java | 31 ++++++++++++++++++- .../web/service/SysLoginService.java | 10 ++++-- 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index bb6a04d..0f8ac7e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -95,6 +95,9 @@ public class SysLoginController if(loginBody==null||StringUtils.isBlank(loginBody.getIdCard())){ return AjaxResult.error("请输入有效的身份证号!"); } + if(StringUtils.isBlank(loginBody.getUsername())){ + return AjaxResult.error("姓名不能为空!"); + } AjaxResult ajax = AjaxResult.success(); ajax=loginService.idCardLogin(loginBody); return ajax; diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IAppUserService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IAppUserService.java index 433d4c5..42297f2 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IAppUserService.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IAppUserService.java @@ -83,4 +83,6 @@ public interface IAppUserService public List selectUserApplyList(AppUser appUser); public AppUser getYtjValidPhone(String phone); + + public AppUser getYtjValidIdcard(String phone); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java index 1cd7511..e418470 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java @@ -511,7 +511,7 @@ public class AppUserServiceImpl extends ServiceImpl imple public AppUser selectAppuserByIdcard(String idCard) { return appUserMapper.selectOne(Wrappers.lambdaQuery() //.eq(AppUser::getIdCard, idCard) - .apply("UPPER(id_card) = {0}", idCard) + .apply("UPPER(id_card) = {0}", StringUtil.toUpperCaseIgnoreBlank(idCard)) .eq(AppUser::getDelFlag,"0") .orderByDesc(AppUser::getUpdateTime).last("LIMIT 1")); } @@ -651,6 +651,28 @@ public class AppUserServiceImpl extends ServiceImpl imple return queryPhoneUser(phone); } + @Override + public AppUser getYtjValidIdcard(String phone) { + return queryIdcardUser(phone); + } + + /** + * 查询用户 + * @param phone + * @return + */ + private AppUser queryIdcardUser(String phone) { + AppUser user = appUserMapper.selectOne(buildBaseIdcardQuery(phone) + .isNotNull(AppUser::getIsCompanyUser) + .eq(AppUser::getIsCompanyUser, "1")); + + if (user == null) { + user = appUserMapper.selectOne(buildBaseIdcardQuery(phone) + .isNotNull(AppUser::getIsCompanyUser)); + } + return user; + } + /** * 查询用户 * @param phone @@ -680,4 +702,11 @@ public class AppUserServiceImpl extends ServiceImpl imple .orderByDesc(AppUser::getUpdateTime) .last("LIMIT 1"); } + + private LambdaQueryWrapper buildBaseIdcardQuery(String idCard) { + return new LambdaQueryWrapper() + .apply("UPPER(id_card) = {0}", idCard) + .eq(AppUser::getDelFlag,"0") + .orderByDesc(AppUser::getUpdateTime).last("LIMIT 1"); + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 1cdb1ff..1c27820 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -687,9 +687,15 @@ public class SysLoginService * @return */ public AjaxResult idCardLogin(LoginBody loginBody){ - AppUser appUser=appUserService.selectAppuserByIdcard(loginBody.getIdCard()); + String idCard=StringUtil.toUpperCaseIgnoreBlank(loginBody.getIdCard()); + AppUser appUser=appUserService.getYtjValidIdcard(idCard); if(appUser==null){ - return AjaxResult.error("未查询到您的注册信息,请先完成注册后再登录~"); + AppUser userParm=new AppUser(); + userParm.setIdCard(idCard); + userParm.setName(loginBody.getUsername()); + userParm.setIsCompanyUser("1"); + appUserService.insertAppUser(userParm); + appUser = appUserService.getYtjValidIdcard(idCard); } return getAjax(appUser); }