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); }