From fcfec135246a72ff6873aea794e1bb5a3c4d83a8 Mon Sep 17 00:00:00 2001 From: yujintao Date: Wed, 26 Feb 2020 17:27:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C=E3=80=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E3=80=81=E5=AE=8C=E5=96=84=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E9=AA=8C=E8=AF=81=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=8C=E5=87=8F=E5=B0=91=E6=9F=A5=E8=AF=A2=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/commons/tools/utils/ModuleUtils.java | 25 ++ .../esua/epdc/feign/UserFeignClient.java | 9 +- .../epdc/service/impl/AppUserServiceImpl.java | 25 +- .../controller/EpdcAppUserController.java | 1 + .../java/com/elink/esua/epdc/dao/UserDao.java | 16 +- .../elink/esua/epdc/service/UserService.java | 2 + .../epdc/service/impl/UserServiceImpl.java | 237 ++++++++++-------- .../src/main/resources/mapper/UserDao.xml | 14 ++ 8 files changed, 197 insertions(+), 132 deletions(-) diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java index 24bb7ac73..4e135c8a6 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java @@ -2,6 +2,7 @@ package com.elink.esua.epdc.commons.tools.utils; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import java.util.UUID; @@ -43,4 +44,28 @@ public class ModuleUtils { return UUID.randomUUID().toString().replace("-", ""); } + + /** + * 替换字符串中的非法字符,包括空格,换行,回车,制表符 + *

主要适用于身份证号和姓名

+ * + * @param str 目标字符串 + * @return java.lang.String + * @author work@yujt.net.cn + * @date 2020/2/25 14:31 + */ + public static String replaceIllegalCharacter(String str) { + if (StringUtils.isNotEmpty(str)) { + // 空格 + str = str.trim().replaceAll(" ", ""); + // 回车符 + str = str.replaceAll("\r", ""); + // 另起一行 + str = str.replaceAll("\n", ""); + // 制表符 + str = str.replaceAll("\t", ""); + } + return str; + } + } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 963b22a2b..32e46bd75 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -66,6 +66,7 @@ public interface UserFeignClient { * @author work@yujt.net.cn * @date 2019/9/21 11:07 */ + @Deprecated @GetMapping(value = "app-user/epdc-app/user/verify", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) Result verifyUserRegisterData(EpdcUserRegistFormDTO formDto); @@ -186,7 +187,7 @@ public interface UserFeignClient { * 获取网格长管理的网格列表 * * @param userId - * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @author work@yujt.net.cn * @date 2019/10/23 13:34 */ @@ -197,8 +198,8 @@ public interface UserFeignClient { /** * 查询用户注册状态 * + * @param fromDto * @return com.elink.esua.epdc.commons.tools.utils.Result - * @params [fromDto] * @author liuchuang * @since 2019/10/25 10:50 */ @@ -288,7 +289,7 @@ public interface UserFeignClient { /** * @param formDTO - * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @Author yinzuomei * @Description 用户认证审核历史 * @Date 2019/11/22 13:17 @@ -309,7 +310,7 @@ public interface UserFeignClient { /** * 获取邀请记录 * - * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @author work@yujt.net.cn * @date 2019/10/23 13:34 */ diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index a9a8fd4dc..3717e35ac 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -664,21 +664,7 @@ public class AppUserServiceImpl implements AppUserService { WxMaJscode2SessionResult wxMaResult = this.getWxMaUser(formDto.getWxCode()); String openId = wxMaResult.getOpenid(); String unionId = wxMaResult.getUnionid(); -// if (null == formDto.getGridId()) { -// // 获取用户绑定网格信息 -// Result dtoResult = userFeignClient.getUserLastSwitchGrid(openId); -// if (!dtoResult.success()) { -// return new Result().error(dtoResult.getMsg()); -// } -// EpdcUserRegisterInfoResultDTO userDto = dtoResult.getData(); -// if (userDto.getRegisterState() != NumConstant.TWO) { -// EpdcAppAuthorizationDTO resultDto = new EpdcAppAuthorizationDTO(); -// resultDto.setUserState(NumConstant.FIVE_STR); -// return new Result().ok(resultDto); -// } else { -// formDto.setGridId(userDto.getGridId()); -// } -// } + // 查询当前微信注册状态 EpdcCheckUserRegisterFromDTO checkFromDto = new EpdcCheckUserRegisterFromDTO(); checkFromDto.setOpenId(openId); @@ -781,11 +767,10 @@ public class AppUserServiceImpl implements AppUserService { public Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) { UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class); - // 姓名去空格 - userDto.setRealName(infoDto.getRealName().trim()); - if (StringUtils.isBlank(infoDto.getIdentityNo())) { - userDto.setIdentityNo(infoDto.getIdentityNo().trim()); - } + // 姓名身份证号去除特殊字符 + userDto.setRealName(ModuleUtils.replaceIllegalCharacter(infoDto.getRealName())); + userDto.setIdentityNo(ModuleUtils.replaceIllegalCharacter(infoDto.getIdentityNo())); + userDto.setDeptId(Long.valueOf(infoDto.getGridId())); userDto.setId(tokenDto.getUserId()); diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java index e60b1c027..7c42cf0b8 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java @@ -166,6 +166,7 @@ public class EpdcAppUserController { * @author work@yujt.net.cn * @date 2019/9/21 11:03 */ + @Deprecated @GetMapping("verify") public Result verifyUserRegisterData(@RequestBody EpdcUserRegistFormDTO formDto) { return userService.verifyUserRegisterData(formDto); diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java index 664a84a27..8567fe190 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -19,6 +19,7 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcAppQueryUserInfoFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUnauthorizedAmountFromDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcWorkUserFromDTO; @@ -161,8 +162,19 @@ public interface UserDao extends BaseDao { * @param gridIdList * @return java.util.List * @Author yinzuomei - * @Description 根据网格id查询网格下所有的用户 + * @Description 根据网格id查询网格下所有的用户 * @Date 2019/12/19 15:05 **/ - List selectListGridUserResultDTO(@Param("gridIdList") List gridIdList); + List selectListGridUserResultDTO(@Param("gridIdList") List gridIdList); + + /** + * 小程序用户登录getToken接口用,获取用户基本信息。因为用户和网格时一对多关系,所有返回为集合 + * + * @param wxOpenId + * @param wxUnionId + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/2/25 13:54 + */ + List selectListUserByWxForLogin(@Param("wxOpenId") String wxOpenId, @Param("wxUnionId") String wxUnionId); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java index d039c7d5a..5b9d53ef1 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -120,6 +120,7 @@ public interface UserService extends BaseService { * @author work@yujt.net.cn * @date 2019/9/21 11:04 */ + @Deprecated Result verifyUserRegisterData(EpdcUserRegistFormDTO formDto); /** @@ -130,6 +131,7 @@ public interface UserService extends BaseService { * @author work@yujt.net.cn * @date 2019/9/24 13:57 */ + @Deprecated Result getUserForLoginByOpenId(String openId); /** diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index dd481639b..3bef2e02b 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -24,6 +24,8 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.elink.esua.epdc.commons.mybatis.enums.DelFlagEnum; +import com.elink.esua.epdc.commons.mybatis.enums.EpdcDelFlagEnum; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; @@ -70,6 +72,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.validation.constraints.NotBlank; import java.io.File; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -99,6 +102,9 @@ public class UserServiceImpl extends BaseServiceImpl implem @Autowired private UserInvitationRecordService userInvitationRecordService; + @Autowired + private PartyMembersService partyMembersService; + @Autowired private AdminFeignClient adminFeignClient; @Autowired @@ -446,46 +452,71 @@ public class UserServiceImpl extends BaseServiceImpl implem @Override public Result checkUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto) { - UserDTO userDto = this.selectUserByWxInfo(fromDto.getOpenId(), fromDto.getWxUnionId()); - -// QueryWrapper wrapper = new QueryWrapper<>(); -// wrapper.eq(UserFieldConsant.WX_OPEN_ID, fromDto.getOpenId()) -// .select(FieldConstant.ID, UserFieldConsant.NICKNAME, UserFieldConsant.FACE_IMG, -// FieldConstant.MOBILE, UserFieldConsant.REAL_NAME, -// FieldConstant.STATE, UserFieldConsant.PARTY_FLAG, UserFieldConsant.REMARK) -// .orderByDesc(FieldConstant.CREATED_TIME); -// List userEntityList = this.baseDao.selectList(wrapper); - + // 当前网格id + Long gridId = fromDto.getGridId(); + // 当前用户 + UserDTO userDto = null; + // 当前用户id + String userId = null; + // 当前用户扫码过的所有网格id + List gridIdList = Lists.newArrayList(); + + // 查询当前用户信息 + List userList = baseDao.selectListUserByWxForLogin(fromDto.getOpenId(), fromDto.getWxUnionId()); + if (CollUtil.isNotEmpty(userList)) { + userDto = userList.get(NumConstant.ZERO); + userId = userDto.getId(); + // 循环集合,确保集合中都是同一个用户的信息 + for (UserDTO oneUserDto : userList) { + if (!userId.equals(oneUserDto.getId())) { + throw new RenException("用户信息异常,无法匹配唯一用户"); + } + gridIdList.add(oneUserDto.getGridId()); + } + } + // 组装接口返回结果 EpdcUserRegisterInfoResultDTO resultDto = new EpdcUserRegisterInfoResultDTO(); - resultDto.setGridId(fromDto.getGridId()); - // 已注册 + resultDto.setGridId(gridId); + // 用户已注册 if (null != userDto) { resultDto.setUserDTO(userDto); - // 获取用户关联当前网格信息 - UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(userDto.getId(), fromDto.getGridId()); - // 未绑定当前网格 - if (null == relationInfo) { - resultDto.setRegisterState(NumConstant.ONE); - } // 已绑定当前网格 - else { + if (gridIdList.contains(gridId)) { resultDto.setRegisterState(NumConstant.TWO); - resultDto.setGrid(relationInfo.getGrid()); + resultDto.setGrid(userDto.getGrid()); // 更新最后一次切换网格时间 - UserGridRelationEntity userGridRelationEntity = new UserGridRelationEntity(); - userGridRelationEntity.setId(relationInfo.getId()); - userGridRelationEntity.setSwitchedTime(new Date()); - userGridRelationService.updateById(userGridRelationEntity); + updateGridSwitchedTime(userId, gridId); + } else { + resultDto.setRegisterState(NumConstant.ONE); } } // 未注册 else { resultDto.setRegisterState(NumConstant.ZERO); } - return new Result().ok(resultDto); } + /** + * 用户网格关系表,更新最后访问网格的时间 + * + * @param userId 用户id + * @param gridId 网格id + * @return void + * @author work@yujt.net.cn + * @date 2020/2/26 14:59 + */ + private void updateGridSwitchedTime(String userId, Long gridId) { + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq(FieldConstant.GRID_ID, gridId) + .eq(UserFieldConsant.USER_ID, userId); + + UserGridRelationEntity entity = new UserGridRelationEntity(); + entity.setSwitchedTime(new Date()); + + userGridRelationService.update(entity, wrapper); + } + @Override @Transactional(rollbackFor = Exception.class) public Result saveUserOrBindGrid(EpdcUserRegisterBindGridFormDTO fromDto) { @@ -544,28 +575,9 @@ public class UserServiceImpl extends BaseServiceImpl implem String userId = userDto.getId(); String mobile = userDto.getMobile(); - UserEntity userEntity = this.selectById(userId); - if (null == userEntity) { - return new Result().error("匹配用户失败"); - } - - QueryWrapper userWrapper = new QueryWrapper<>(); - userWrapper.eq(FieldConstant.MOBILE, mobile) - .ne(FieldConstant.ID, userId); - Integer selectCount = this.baseDao.selectCount(userWrapper); - if (selectCount > NumConstant.ZERO) { - return new Result().error("手机号已被注册"); - } - //党员都需要查重 - if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) { - userWrapper = new QueryWrapper<>(); - userWrapper.eq(UserFieldConsant.IDENTITY_NO, userDto.getIdentityNo()) - .ne(FieldConstant.ID, userId); - selectCount = this.baseDao.selectCount(userWrapper); - if (selectCount > NumConstant.ZERO) { - return new Result().error("身份证号已被注册"); - } - } + UserEntity userEntity = selectUserForCheck(userId, + YesOrNoEnum.YES.value().equals(userDto.getPartyFlag()) ? userDto.getIdentityNo() : null, + mobile); return new Result().ok(userEntity.getState()); } @@ -823,29 +835,19 @@ public class UserServiceImpl extends BaseServiceImpl implem } /** - * @param formDTO + * @param formDto * @return com.elink.esua.epdc.commons.tools.utils.Result * @Author yinzuomei * @Description 获取用户信息 合并上面的getByUnionId、getForLogin方法 * @Date 2019/12/7 13:58 **/ @Override - public Result queryUserDto(EpdcAppQueryUserInfoFormDTO formDTO) { - UserDTO userDto = this.selectUserByWxInfo(formDTO.getOpenId(), formDTO.getUnionId()); - if (null != userDto) { - QueryWrapper ugWrapper = new QueryWrapper<>(); - ugWrapper.eq(UserFieldConsant.USER_ID, userDto.getId()) - .orderByDesc(UserFieldConsant.SWITCHED_TIME); - List gridRelations = userGridRelationService.listUserGrid(userDto.getId()); - if (CollUtil.isNotEmpty(gridRelations)) { - userDto.setGridId(gridRelations.get(NumConstant.ZERO).getGridId()); - userDto.setGrid(gridRelations.get(NumConstant.ZERO).getGrid()); - return new Result().ok(userDto); - } - } - return new Result(); + public Result queryUserDto(EpdcAppQueryUserInfoFormDTO formDto) { + UserDTO user = selectUserByWxInfo(formDto.getOpenId(), formDto.getUnionId()); + return new Result().ok(user); } + /** * @param gridIdList * @return com.elink.esua.epdc.commons.tools.utils.Result> @@ -872,56 +874,79 @@ public class UserServiceImpl extends BaseServiceImpl implem if (StringUtils.isBlank(openId)) { throw new RenException("openId不能为空"); } - QueryWrapper wrapper = new QueryWrapper<>(); - UserEntity userEntity = null; - if (StringUtils.isNotBlank(unionId)) { - wrapper.eq(UserFieldConsant.WX_UNION_ID, unionId); - userEntity = this.baseDao.selectOne(wrapper); + List userList = baseDao.selectListUserByWxForLogin(openId, unionId); + if (CollUtil.isEmpty(userList)) { + return null; } - if (null == userEntity) { - wrapper = new QueryWrapper<>(); - wrapper.eq(UserFieldConsant.WX_OPEN_ID, openId) - .orderByDesc(FieldConstant.CREATED_TIME); - userEntity = this.baseDao.selectOne(wrapper); + UserDTO user = userList.get(NumConstant.ZERO); + if (userList.size() > NumConstant.ONE) { + String userId = user.getId(); + // 循环集合,确保集合中都是同一个用户的信息 + for (UserDTO oneUserDto : userList) { + if (!userId.equals(oneUserDto.getId())) { + throw new RenException("用户信息异常,无法匹配唯一用户"); + } + } } - return ConvertUtils.sourceToTarget(userEntity, UserDTO.class); + return user; } - private int countOthersByMobile(String mobile, String userId, boolean isVaild) { - QueryWrapper userWrapper = new QueryWrapper<>(); - userWrapper.eq(FieldConstant.MOBILE, mobile).ne(FieldConstant.ID, userId); - Integer count = this.baseDao.selectCount(userWrapper); - if (isVaild && count > NumConstant.ZERO) { - throw new RenException("手机号已被注册"); + /** + * 通过用户id,身份证号,手机号匹配用户,并校验手机号或身份证号是否被占用 + * + * @param userId 用户id,不能为空 + * @param identityNo 身份证号,可为空 + * @param mobile 手机号码,可为空 + * @return com.elink.esua.epdc.entity.UserEntity + * @author work@yujt.net.cn + * @date 2020/2/25 15:05 + */ + private UserEntity selectUserForCheck(String userId, String identityNo, String mobile) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + // del_flag = '0' and (id = ? or identity_no = ? or mobile = ?) + queryWrapper.eq(FieldConstant.DEL_FLAG, EpdcDelFlagEnum.NORMAL.value()) + .and(i -> i.eq(FieldConstant.ID, userId) + .or() + .eq(StringUtils.isNotBlank(identityNo), UserFieldConsant.IDENTITY_NO, identityNo) + .or() + .eq(StringUtils.isNotBlank(mobile), FieldConstant.MOBILE, mobile)); + List userEntityList = baseDao.selectList(queryWrapper); + if (CollUtil.isEmpty(userEntityList)) { + throw new RenException("查询用户信息失败"); } - return count; - } - - private int countOthersByIdentityNo(String identityNo, String userId, boolean isVaild) { - QueryWrapper userWrapper = new QueryWrapper<>(); - userWrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo).ne(FieldConstant.ID, userId); - Integer count = this.baseDao.selectCount(userWrapper); - if (isVaild && count > NumConstant.ZERO) { - throw new RenException("身份证号已被注册"); + if (userEntityList.size() > NumConstant.ONE) { + if (StringUtils.isNotBlank(mobile)) { + for (UserEntity entity : userEntityList) { + if (!userId.equals(entity.getId())) { + if (StringUtils.isNotBlank(entity.getMobile()) && mobile.equals(entity.getMobile())) { + throw new RenException("手机号码已被注册"); + } + } + } + } + throw new RenException("身份证号码已被注册"); } - return count; + return userEntityList.get(NumConstant.ZERO); } + @Override @Transactional(rollbackFor = Exception.class) public Result createPidemicInfo(EpdcAppPidemicCompleteInfoFromDTO completeInfoFromDto) { String userId = completeInfoFromDto.getUserId(); - // 更新用户信息 - UserEntity userEntity = selectById(userId); - if (null == userEntity) { - return new Result().error("查询用户信息失败"); + String identityNo = ModuleUtils.replaceIllegalCharacter(completeInfoFromDto.getIdcard()).toUpperCase(); + // 身份证号不合法,置空 + if (StringUtils.isNotBlank(IdentityNoUtils.IdentityNoVerification(identityNo))) { + identityNo = null; } - String identityNo = completeInfoFromDto.getIdcard().trim().toUpperCase(); - String realName = completeInfoFromDto.getName().trim(); + String realName = ModuleUtils.replaceIllegalCharacter(completeInfoFromDto.getName()); + + // 更新用户信息 + UserEntity userEntity = selectUserForCheck(userId, identityNo, completeInfoFromDto.getPhone()); if (userEntity.getPartyFlag().equals(YesOrNoEnum.YES.value())) { if (!(userEntity.getIdentityNo().equals(identityNo) && userEntity.getRealName().equals(realName))) { @@ -929,15 +954,15 @@ public class UserServiceImpl extends BaseServiceImpl implem } } - countOthersByIdentityNo(identityNo, userId, true); - countOthersByMobile(completeInfoFromDto.getPhone(), userId, true); - UserEntity updateUser = new UserEntity(); updateUser.setId(userId); updateUser.setRealName(realName); - updateUser.setIdentityNo(identityNo); - updateUser.setSex(IdentityNoUtils.getSex(identityNo)); - updateUser.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(identityNo), DateUtils.DATE_PATTERN)); + // 有效的身份证号码 + if (StringUtils.isNotBlank(identityNo)) { + updateUser.setIdentityNo(identityNo); + updateUser.setSex(IdentityNoUtils.getSex(identityNo)); + updateUser.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(identityNo), DateUtils.DATE_PATTERN)); + } updateUser.setMobile(completeInfoFromDto.getPhone()); updateUser.setAddress(completeInfoFromDto.getHabitationDetail()); updateUser.setRentFlag(completeInfoFromDto.getIsRent()); @@ -953,7 +978,10 @@ public class UserServiceImpl extends BaseServiceImpl implem updateUser.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value()); String lastName = updateUser.getRealName().substring(NumConstant.ZERO, NumConstant.ONE); updateUser.setLastName(lastName); - updateUser.setNickname(deptInfo.getGrid().concat("-").concat(lastName).concat(UserSexEnum.FEMALE.sex().equals(updateUser.getSex()) ? "女士" : "先生")); + // 有身份证号码,能判断出性别,进行修改昵称 + if (StringUtils.isNotBlank(identityNo)) { + updateUser.setNickname(deptInfo.getGrid().concat("-").concat(lastName).concat(UserSexEnum.FEMALE.sex().equals(updateUser.getSex()) ? "女士" : "先生")); + } updateUser.setDeptId(gridId); updateUser.setAllDeptIds(deptInfo.getAllDeptIds()); updateUser.setAllDeptNames(deptInfo.getAllDeptNames()); @@ -963,7 +991,7 @@ public class UserServiceImpl extends BaseServiceImpl implem this.updateById(updateUser); - String carNum = completeInfoFromDto.getCarNum(); + String carNum = ModuleUtils.replaceIllegalCharacter(completeInfoFromDto.getCarNum()).toUpperCase(); if (YesOrNoEnum.YES.value().equals(completeInfoFromDto.getIsDriver()) && StringUtils.isNotBlank(carNum)) { @@ -985,9 +1013,6 @@ public class UserServiceImpl extends BaseServiceImpl implem return new Result(); } - @Autowired - private PartyMembersService partyMembersService; - /*** * 临时生成注册党员 * @param file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index 42330c870..b9b7250c1 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -382,4 +382,18 @@ + +