Browse Source

修改完善信息逻辑

修改用户身份判定
feature/dangjian
管理员 6 years ago
parent
commit
eb0a14c48f
  1. 3
      esua-epdc/doc/db/dev_youhua/esua_epdc_user.sql
  2. 36
      esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/entity/DeptScope.java
  3. 74
      esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/utils/DeptEntityUtils.java
  4. 35
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserAuthTypeEnum.java
  5. 30
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserTagEnum.java
  6. 11
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  7. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  8. 33
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  9. 52
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/utils/UserTagUtils.java
  10. 62
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java
  11. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  12. 57
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyAuthenticationFailedEntity.java
  13. 63
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java
  14. 23
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserAuthenticateHistoryEntity.java
  15. 25
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java
  16. 34
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridRelationEntity.java
  17. 11
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/PartyMembersService.java
  18. 63
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java
  19. 313
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

3
esua-epdc/doc/db/dev_youhua/esua_epdc_user.sql

@ -0,0 +1,3 @@
ALTER TABLE esua_epdc_user.epdc_party_authentication_failed MODIFY COLUMN `STATE` VARCHAR(1) NULL COMMENT '状态 0-认证失败';
ALTER TABLE esua_epdc_user.epdc_party_authentication_failed MODIFY COLUMN `CADRE_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 0 NULL COMMENT '干部下沉标识 0-否,1-是';
ALTER TABLE esua_epdc_user.epdc_user_authenticate_history ADD AUTHENTICATED_TYPE varchar(2) NOT NULL COMMENT '认证类别(0-居民认证,1-党员认证,2-志愿者认证)';

36
esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/entity/DeptScope.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.commons.mybatis.entity;
import lombok.Data;
import java.io.Serializable;
/**
* 部门冗余字段基类
*
* @author rongchao
* @Date 19-12-18
*/
@Data
public abstract class DeptScope extends BaseEpdcEntity implements Serializable {
/***
*所有部门名称
*/
private String allDeptNames;
/***
*所有部门ID
*/
private String allDeptIds;
/***
*父所有部门
*/
private String parentDeptNames;
/***
*父所有部门
*/
private String parentDeptIds;
}

74
esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/utils/DeptEntityUtils.java

@ -0,0 +1,74 @@
package com.elink.esua.epdc.commons.mybatis.utils;
import com.elink.esua.epdc.commons.mybatis.entity.DeptScope;
import lombok.Data;
/**
* 部门信息实体工具类
*
* @author rongchao
* @Date 19-12-18
*/
public class DeptEntityUtils {
@Data
public class DeptDto {
/**
* 父所有部门ID
*/
private String parentDeptIds;
/**
* 父所有部门
*/
private String parentDeptNames;
/**
* 所有部门ID
*/
private String allDeptIds;
/**
* 所有部门
*/
private String allDeptNames;
}
/**
* 装载部门信息
*
* @param dto
* @param entityClass
* @return T
* @author rongchao
* @since 2019-12-18
*/
public static <T extends DeptScope> T loadDeptInfo(DeptDto dto, Class<T> entityClass) {
try {
T t = entityClass.newInstance();
t.setAllDeptIds(dto.getAllDeptIds());
t.setAllDeptNames(dto.getAllDeptNames());
t.setParentDeptIds(dto.getParentDeptIds());
t.setParentDeptNames(dto.getParentDeptNames());
return t;
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
/**
* 装载部门信息
*
* @param dto
* @param entity
* @return void
* @author rongchao
* @since 2019-12-18
*/
public static <T extends DeptScope> void loadDeptInfo(DeptDto dto, T entity) {
entity.setAllDeptIds(dto.getAllDeptIds());
entity.setAllDeptNames(dto.getAllDeptNames());
entity.setParentDeptIds(dto.getParentDeptIds());
entity.setParentDeptNames(dto.getParentDeptNames());
}
}

35
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserAuthTypeEnum.java

@ -0,0 +1,35 @@
package com.elink.esua.epdc.commons.tools.enums;
/**
* 用户认证类别枚举类
*
* @author rongchao
* @Date 19-12-19
*/
public enum UserAuthTypeEnum {
/**
* 居民认证
*/
RESIDENT_AUTH("0"),
/**
* 党员认证
*/
PARTY_AUTH("1"),
/**
* 志愿者认证
*/
VOLUNTEER_AUTH("2");
private String value;
UserAuthTypeEnum(String value) {
this.value = value;
}
public String value() {
return this.value;
}
}

30
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserTagEnum.java

@ -6,23 +6,23 @@ package com.elink.esua.epdc.commons.tools.enums;
* @Description: 用户身份枚举类
*/
public enum UserTagEnum {
/**
* 党员
*/
PARTY_MEMBER("partymember"),
/**
* 党员
*/
PARTY_MEMBER("partymember"),
/**
* 志愿者
*/
VOLUNTEER("volunteer");
/**
* 志愿者
*/
VOLUNTEER("volunteer");
private String value;
private String value;
UserTagEnum(String value) {
this.value = value;
}
UserTagEnum(String value) {
this.value = value;
}
public String value() {
return this.value;
}
public String value() {
return this.value;
}
}

11
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java

@ -337,4 +337,15 @@ public interface UserFeignClient {
*/
@PostMapping(value = "app-user/epdc-app/user/needCachingUserInfo", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<CachingUserInfoDTO> needCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO);
/**
* 根据用户ID需要缓存的用户信息
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CachingUserInfoDTO>
* @author rongchao
* @since 2019-12-19
*/
@GetMapping(value = "app-user/epdc-app/user/needCachingUserInfoByUserId/{userId}")
Result<CachingUserInfoDTO> needCachingUserInfoByUserId(@PathVariable("userId") String userId);
}

5
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java

@ -166,4 +166,9 @@ public class UserFeignClientFallback implements UserFeignClient {
public Result<CachingUserInfoDTO> needCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "needCachingUserInfo", formDTO);
}
@Override
public Result<CachingUserInfoDTO> needCachingUserInfoByUserId(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "needCachingUserInfoByUserId", userId);
}
}

33
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java

@ -7,6 +7,7 @@ import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.util.CpUserDetailRedis;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.enums.UserSexEnum;
import com.elink.esua.epdc.commons.tools.enums.UserTagEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
@ -37,6 +38,7 @@ import com.elink.esua.epdc.jwt.JwtTokenProperties;
import com.elink.esua.epdc.jwt.JwtTokenUtils;
import com.elink.esua.epdc.redis.AppUserRedis;
import com.elink.esua.epdc.service.AppUserService;
import com.elink.esua.epdc.utils.UserTagUtils;
import com.elink.esua.epdc.utils.WxMaServiceUtils;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
@ -84,7 +86,7 @@ public class AppUserServiceImpl implements AppUserService {
@Autowired
private JwtTokenProperties jwtTokenProperties;
@Autowired
private OssFeignClient ossFeignClient;
@ -817,22 +819,23 @@ public class AppUserServiceImpl implements AppUserService {
if (!completeResult.success()) {
return new Result().error(completeResult.getMsg());
}
UserDTO user = completeResult.getData();
tokenDto.setRealName(user.getRealName());
tokenDto.setNickname(user.getNickname());
tokenDto.setMobile(user.getMobile());
// tokenDto.setPartyFlag(user.getPartyFlag());
EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(tokenDto, userGrid.getGrid(), userDto.getState());
//更新用户缓存信息
Result<CachingUserInfoDTO> cachingUserResult = userFeignClient.needCachingUserInfoByUserId(tokenDto.getUserId());
CachingUserInfoDTO cachingUserInfoDTO = cachingUserResult.getData();
TokenDto newTokenDto = ConvertUtils.sourceToTarget(cachingUserInfoDTO, TokenDto.class);
tokenDto.setUserId(userDto.getId());
EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(newTokenDto, userGrid.getGrid(), userDto.getState());
// 更新社群用户党员标识并加入关联的所有网格党员群
if (NumConstant.ONE_STR.equals(user.getPartyFlag())) {
boolean partyFlag = UserTagUtils.containIdentity(cachingUserInfoDTO.getUserTagInfos(), UserTagEnum.PARTY_MEMBER);
if (partyFlag) {
GroupUserPartyMemberFormDTO formDto = new GroupUserPartyMemberFormDTO();
formDto.setUserId(user.getId());
formDto.setPartyMember(user.getPartyFlag());
formDto.setNickname(user.getNickname());
formDto.setUserAvatar(user.getFaceImg());
formDto.setMobile(user.getMobile());
formDto.setDeptId(user.getDeptId());
formDto.setUserId(cachingUserInfoDTO.getId());
formDto.setPartyMember(partyFlag ? NumConstant.ZERO_STR : NumConstant.ONE_STR);
formDto.setNickname(cachingUserInfoDTO.getNickname());
formDto.setUserAvatar(cachingUserInfoDTO.getFaceImg());
formDto.setMobile(cachingUserInfoDTO.getMobile());
formDto.setDeptId(cachingUserInfoDTO.getGridId());
formDto.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue());
groupFeignClient.updateUserPartyMember(formDto);
@ -973,7 +976,7 @@ public class AppUserServiceImpl implements AppUserService {
tokenDto.setUserId(userDetail.getUserId());
tokenDto.setGridId(userDetail.getGridId());
tokenDto.setMobile(userDetail.getMobile());
// tokenDto.setPartyFlag(userDetail.getPartyFlag());
tokenDto.setUserTagInfos(userDetail.getUserTagInfos());
tokenDto.setRealName(userDetail.getRealName());
long expire = cpUserDetailRedis.getExpire(userDetail.getUserId());
cpUserDetailRedis.logout(userDetail.getUserId());

52
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/utils/UserTagUtils.java

@ -15,21 +15,41 @@ import java.util.List;
* @Date 2019/12/18 17:15
*/
public class UserTagUtils {
private static Logger logger = LoggerFactory.getLogger(UserTagUtils.class);
private static Logger logger = LoggerFactory.getLogger(UserTagUtils.class);
/**
* @param userTagInfos
* @return java.lang.String
* @Author yinzuomei
* @Description 党员标识 01
* @Date 2019/12/18 17:23
**/
public static String getUserPartyFlag(List<UserTagInfo> userTagInfos) {
for (UserTagInfo userTagInfo : userTagInfos) {
if (UserTagEnum.PARTY_MEMBER.value().equals(userTagInfo.getTagCode())) {
return YesOrNoEnum.YES.value();
}
}
return YesOrNoEnum.NO.value();
}
// /**
// * @param userTagInfos
// * @return java.lang.String
// * @Author yinzuomei
// * @Description 党员标识 0:否,1:是
// * @Date 2019/12/18 17:23
// **/
// public static String getUserPartyFlag(List<UserTagInfo> userTagInfos) {
// for (UserTagInfo userTagInfo : userTagInfos) {
// if (UserTagEnum.PARTY_MEMBER.value().equals(userTagInfo.getTagCode())) {
// return YesOrNoEnum.YES.value();
// }
// }
// return YesOrNoEnum.NO.value();
// }
/**
* 判断用户是否有该身份
*
* @param userTagInfos
* @param userTagEnum
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
public static boolean containIdentity(List<UserTagInfo> userTagInfos, UserTagEnum userTagEnum) {
boolean flag = Boolean.FALSE;
for (UserTagInfo userTagInfo : userTagInfos) {
if (userTagEnum.value().equals(userTagInfo.getTagCode())) {
flag = Boolean.TRUE;
break;
}
}
return flag;
}
}

62
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java

@ -44,36 +44,6 @@ public class UserGridRelationDTO implements Serializable {
*/
private String userId;
/**
* 区县
*/
private String district;
/**
* 区县ID
*/
private Long districtId;
/**
* 街道
*/
private String street;
/**
* 街道ID
*/
private Long streetId;
/**
* 社区
*/
private String community;
/**
* 社区ID
*/
private Long communityId;
/**
* 所属网格
*/
@ -89,36 +59,6 @@ public class UserGridRelationDTO implements Serializable {
*/
private Date switchedTime;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
/**
* 是否是网格长 0否1是
*/
@ -144,4 +84,4 @@ public class UserGridRelationDTO implements Serializable {
*/
private String parentDeptIds;
}
}

14
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java

@ -367,4 +367,18 @@ public class EpdcAppUserController {
public Result<CachingUserInfoDTO> needCachingUserInfo(@RequestBody EpdcAppQueryUserInfoFormDTO formDTO) {
return userService.queryCachingUserInfo(formDTO);
}
/**
* 根据用户ID获取用户缓存信息
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO>
* @author rongchao
* @since 2019-12-19
*/
@GetMapping("needCachingUserInfoByUserId/{userId}")
public Result<CachingUserInfoDTO> needCachingUserInfoByUserId(@PathVariable("userId") String userId) {
//TODO:尹作梅
return null;
}
}

57
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyAuthenticationFailedEntity.java

@ -20,6 +20,7 @@ package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import com.elink.esua.epdc.commons.mybatis.entity.DeptScope;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -32,100 +33,80 @@ import java.util.Date;
* @since v1.0.0 2019-11-15
*/
@Data
@EqualsAndHashCode(callSuper=false)
@EqualsAndHashCode(callSuper = false)
@TableName("epdc_party_authentication_failed")
public class PartyAuthenticationFailedEntity extends BaseEpdcEntity {
public class PartyAuthenticationFailedEntity extends DeptScope {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
/**
* 姓名
*/
private String realName;
private String realName;
/**
* 手机号
*/
private String mobile;
private String mobile;
/**
* 身份证号
*/
private String identityNo;
private String identityNo;
/**
* 职务 字典表dict_name
*/
private String post;
private String post;
/**
* 职务ID 字典表dict_value
*/
private String postValue;
private String postValue;
/**
* 干部下沉标识 0-1-
*/
private String cadreFlag;
private String cadreFlag;
/**
* 注册状态 0-1-
*/
private String registFlag;
private String registFlag;
/**
* 注册时间
*/
private Date registTime;
private Date registTime;
/**
* 网格名称
*/
private String gridName;
private String gridName;
/**
* 网格ID
*/
private Long gridId;
private Long gridId;
/**
* 部门ID
*/
private Long deptId;
private Long deptId;
/**
* 状态 0-认证失败
*/
private Integer state;
private String state;
/**
* 用户ID
*/
private String userId;
private String userId;
/**
* 居民住址
*/
private String address;
private String address;
/***
*所有部门名称
*/
private String allDeptNames;
/***
*所有部门ID
*/
private String allDeptIds;
/***
*父所有部门
*/
private String parentDeptNames;
/***
*父所有部门
*/
private String parentDeptIds;
}
}

63
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java

@ -17,13 +17,8 @@
package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEntity;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import com.elink.esua.epdc.commons.mybatis.entity.DeptScope;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -36,78 +31,60 @@ import java.util.Date;
* @since v1.0.0 2019-09-02
*/
@Data
@EqualsAndHashCode(callSuper=false)
@EqualsAndHashCode(callSuper = false)
@TableName("epdc_party_members")
public class PartyMembersEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
public class PartyMembersEntity extends DeptScope {
private static final long serialVersionUID = 1L;
/**
* 姓名
*/
private String realName;
private String realName;
/**
* 手机号
*/
private String mobile;
private String mobile;
/**
* 身份证号
*/
private String identityNo;
private String identityNo;
/**
* 职务
*/
private String post;
private String post;
/**
* 职务ID字典表
*/
private String postValue;
private String postValue;
/**
* 干部下沉标识(0-1-)
*/
private String cadreFlag;
private String cadreFlag;
/**
* 注册状态0-1-
*/
private String registFlag;
private String registFlag;
/**
* 注册时间
*/
private Date registTime;
private Date registTime;
/**
* 网格名称
*/
private String gridName;
private String gridName;
/**
* 网格ID
*/
private long gridId;
private long gridId;
/**
* 部门ID
*/
private long deptId;
/***
*所有部门名称
*/
private String allDeptNames;
/***
*所有部门ID
*/
private String allDeptIds;
private long deptId;
/***
*父所有部门
*/
private String parentDeptNames;
/***
*父所有部门
*/
private String parentDeptIds;
/***
* 所在党委
*/
private String partyOrganization;
/***
* 所在党委
*/
private String partyOrganization;
}

23
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserAuthenticateHistoryEntity.java

@ -32,40 +32,45 @@ import java.util.Date;
* @since v1.0.0 2019-11-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@EqualsAndHashCode(callSuper = false)
@TableName("epdc_user_authenticate_history")
public class UserAuthenticateHistoryEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
private String userId;
private String userId;
/**
* 手机号
*/
private String mobile;
private String mobile;
/**
* 姓名
*/
private String realName;
private String realName;
/**
* 居民地址
*/
private String address;
private String address;
/**
* 是否认证通过 0未通过1通过
*/
private String authenticatedFlag;
private String authenticatedFlag;
/**
* 认证类别(0-居民认证1-党员认证2-志愿者认证)
*/
private String authenticatedType;
/**
* 审核备注
*/
private String remark;
private String remark;
}
}

25
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java

@ -20,6 +20,7 @@ package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import com.elink.esua.epdc.commons.mybatis.entity.DeptScope;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -32,9 +33,9 @@ import java.util.Date;
* @since v1.0.0 2019-09-02
*/
@Data
@EqualsAndHashCode(callSuper=false)
@EqualsAndHashCode(callSuper = false)
@TableName("epdc_user")
public class UserEntity extends BaseEpdcEntity {
public class UserEntity extends DeptScope {
private static final long serialVersionUID = -6047044658708037479L;
@ -233,24 +234,4 @@ public class UserEntity extends BaseEpdcEntity {
* 居住网格id
*/
private Long deptId;
/**
* 父所有部门
*/
private String parentDeptIds;
/**
* 父所有部门
*/
private String parentDeptNames;
/**
* 所有部门ID
*/
private String allDeptIds;
/**
* 所有部门名称
*/
private String allDeptNames;
}

34
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridRelationEntity.java

@ -20,6 +20,7 @@ package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import com.elink.esua.epdc.commons.mybatis.entity.DeptScope;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -32,54 +33,35 @@ import java.util.Date;
* @since v1.0.0 2019-10-23
*/
@Data
@EqualsAndHashCode(callSuper=false)
@EqualsAndHashCode(callSuper = false)
@TableName("epdc_user_grid_relation")
public class UserGridRelationEntity extends BaseEpdcEntity {
public class UserGridRelationEntity extends DeptScope {
private static final long serialVersionUID = 8308463158510832072L;
private static final long serialVersionUID = 8308463158510832072L;
/**
* 用户ID
*/
private String userId;
private String userId;
/**
* 所属网格
*/
private String grid;
private String grid;
/**
* 网格ID
*/
private Long gridId;
private Long gridId;
/**
* 最后切换此网格的时间
*/
private Date switchedTime;
private Date switchedTime;
/**
* 是否是网格长 0否1是
*/
private String leaderFlag;
/***
*所有部门名称
*/
private String allDeptNames;
/***
*所有部门ID
*/
private String allDeptIds;
/***
*父所有部门
*/
private String parentDeptNames;
/***
*父所有部门
*/
private String parentDeptIds;
}

11
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/PartyMembersService.java

@ -69,4 +69,15 @@ public interface PartyMembersService extends BaseService<PartyMembersEntity> {
* @date 2019/11/4 10:08
*/
Result insertPartyList(MultipartFile file);
/**
* 根据身份证号和姓名获取党员数量
*
* @param identityNo
* @param realName
* @return int
* @author rongchao
* @since 2019-12-18
*/
int countPartyMemberByIdNoAndRealName(String identityNo, String realName);
}

63
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java

@ -33,6 +33,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.constant.UserFieldConsant;
import com.elink.esua.epdc.dao.PartyMembersDao;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.PartyMembersDTO;
@ -69,6 +70,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public PageData<PartyMembersDTO> page(Map<String, Object> params) {
IPage<PartyMembersEntity> page = baseDao.selectPage(
@ -85,6 +87,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
List<PartyMembersDTO> list = baseDao.pageDIY(params);
return new Result<PageData<PartyMembersDTO>>().ok(new PageData<>(list, page.getTotal()));
}
@Override
public Result<PageData<PartyMembersDTO>> hasAuthenticationPartyPage(Map<String, Object> params) {
IPage<PartyMembersDTO> page = getPage(params);
@ -109,9 +112,9 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Override
public PartyMembersDTO get(String id) {
PartyMembersDTO partyMembersDTO = baseDao.selectByIdNew(id);
if(partyMembersDTO.getDeptStrIds()!=null){
String depts[]=partyMembersDTO.getDeptStrIds().split(",");
partyMembersDTO.setAllDeptIds(Arrays.copyOfRange(depts,depts.length-3,depts.length));
if (partyMembersDTO.getDeptStrIds() != null) {
String depts[] = partyMembersDTO.getDeptStrIds().split(",");
partyMembersDTO.setAllDeptIds(Arrays.copyOfRange(depts, depts.length - 3, depts.length));
}
return partyMembersDTO;
}
@ -125,21 +128,21 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
entity.setMobile(dto.getMobile());
entity.setIdentityNo(dto.getIdentityNo());
Result<ParentAndAllDeptDTO> parentResult = null;
if(dto.getAllDeptIds()!=null&&dto.getAllDeptIds().length>1){
parentResult = adminFeignClient.getParentAndAllDept(dto.getAllDeptIds()[dto.getAllDeptIds().length-1]);
if (dto.getAllDeptIds() != null && dto.getAllDeptIds().length > 1) {
parentResult = adminFeignClient.getParentAndAllDept(dto.getAllDeptIds()[dto.getAllDeptIds().length - 1]);
}
if(parentResult!=null){
if (parentResult != null) {
if (!parentResult.success() || parentResult.getData() == null) {
throw new RenException("获取部门信息失败");
}else {
} else {
ParentAndAllDeptDTO deptDTO = parentResult.getData();
entity.setAllDeptIds(deptDTO.getAllDeptIds());
entity.setAllDeptNames(deptDTO.getAllDeptNames());
entity.setParentDeptIds(deptDTO.getParentDeptIds());
entity.setParentDeptNames(deptDTO.getParentDeptNames());
entity.setGridId(Long.valueOf(dto.getAllDeptIds()[dto.getAllDeptIds().length-1]));
entity.setGridId(Long.valueOf(dto.getAllDeptIds()[dto.getAllDeptIds().length - 1]));
String[] split = deptDTO.getAllDeptNames().split("-");
entity.setGridName(split[split.length-1]);
entity.setGridName(split[split.length - 1]);
}
}
insert(entity);
@ -159,10 +162,10 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
public void update(PartyMembersDTO dto) {
PartyMembersEntity entity = ConvertUtils.sourceToTarget(dto, PartyMembersEntity.class);
String[] allDeptIds = dto.getAllDeptIds();
Result<ParentAndAllDeptDTO> parentResult = adminFeignClient.getParentAndAllDept(String.valueOf(allDeptIds[allDeptIds.length-1]));
Result<ParentAndAllDeptDTO> parentResult = adminFeignClient.getParentAndAllDept(String.valueOf(allDeptIds[allDeptIds.length - 1]));
if (!parentResult.success() || parentResult.getData() == null) {
throw new RenException("获取部门信息失败");
}else {
} else {
ParentAndAllDeptDTO deptDTO = parentResult.getData();
entity.setAllDeptIds(deptDTO.getAllDeptIds());
entity.setAllDeptNames(deptDTO.getAllDeptNames());
@ -196,7 +199,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
public void saveList(List<PartyMembersExcel> partyList) {
List<PartyMembersEntity> partyMembersEntityList = ConvertUtils.sourceToTarget(partyList, PartyMembersEntity.class);
for (int i=0;i<partyMembersEntityList.size();i++){
for (int i = 0; i < partyMembersEntityList.size(); i++) {
PartyMembersEntity partyMembersEntity = partyMembersEntityList.get(i);
partyMembersEntity.setCadreFlag("0");
partyMembersEntity.setRegistFlag("0");
@ -215,7 +218,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
List<PartyMembersExcel> partyList = ExcelImportUtil.importExcel(f, PartyMembersExcel.class, importParams);
// 校验数据
List<EpdcPartyErroyResultDTO> epdcPartyErroyResultDtos = this.checkExcel(partyList, partyMembersEntityList);
if(epdcPartyErroyResultDtos.size()>0){
if (epdcPartyErroyResultDtos.size() > 0) {
return new Result().ok(epdcPartyErroyResultDtos);
}
saveList(partyList);
@ -229,6 +232,14 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
return new Result();
}
@Override
public int countPartyMemberByIdNoAndRealName(String identityNo, String realName) {
QueryWrapper<PartyMembersEntity> partyWrapper = new QueryWrapper<>();
partyWrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo)
.eq(UserFieldConsant.REAL_NAME, realName);
return baseDao.selectCount(partyWrapper);
}
/***
* 校验excel表格数据
* @param partyList
@ -239,35 +250,35 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
*/
private List<EpdcPartyErroyResultDTO> checkExcel(List<PartyMembersExcel> partyList, List<PartyMembersEntity> partyMembersEntityList) {
// 不匹配信息
List<EpdcPartyErroyResultDTO> errorLineinfoList=new ArrayList<>();
List<EpdcPartyErroyResultDTO> errorLineinfoList = new ArrayList<>();
EpdcPartyErroyResultDTO errorLineinfoDto;
for (int i = 0; i < partyList.size(); i++) {
PartyMembersExcel partyMembersExcel = partyList.get(i);
String realName = partyMembersExcel.getRealName();
String mobile = partyMembersExcel.getMobile();
String identityNo=partyMembersExcel.getIdentityNo();
String identityNo = partyMembersExcel.getIdentityNo();
if (StringUtils.isBlank(realName)) {
errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto = new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i + 2) + "");
errorLineinfoDto.setErrorInfo("姓名为空");
errorLineinfoList.add(errorLineinfoDto);
}
if (StringUtils.isBlank(identityNo)) {
errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto = new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i + 2) + "");
errorLineinfoDto.setErrorInfo("身份证号为空");
errorLineinfoList.add(errorLineinfoDto);
}
for (PartyMembersEntity item:partyMembersEntityList) {
if(StringUtils.isNotBlank(item.getMobile())&&item.getMobile().equals(mobile)){
errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
for (PartyMembersEntity item : partyMembersEntityList) {
if (StringUtils.isNotBlank(item.getMobile()) && item.getMobile().equals(mobile)) {
errorLineinfoDto = new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i + 2) + "");
errorLineinfoDto.setErrorInfo("手机号已存在");
errorLineinfoList.add(errorLineinfoDto);
}
if(item.getIdentityNo().equals(identityNo)){
errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
if (item.getIdentityNo().equals(identityNo)) {
errorLineinfoDto = new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i + 2) + "");
errorLineinfoDto.setErrorInfo("身份证号已存在");
errorLineinfoList.add(errorLineinfoDto);
}

313
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -21,9 +21,13 @@ import cn.hutool.core.collection.CollUtil;
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.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.elink.esua.epdc.commons.mybatis.entity.DeptScope;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.mybatis.utils.DeptEntityUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.enums.UserAuthTypeEnum;
import com.elink.esua.epdc.commons.tools.enums.UserSexEnum;
import com.elink.esua.epdc.commons.tools.enums.UserTagEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
@ -55,6 +59,7 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO;
import com.elink.esua.epdc.enums.AppUserAuditStateEnum;
import com.elink.esua.epdc.enums.AppUserStatesEnum;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.service.PartyMembersService;
import com.elink.esua.epdc.service.UserGridRelationService;
import com.elink.esua.epdc.service.UserInvitationRecordService;
import com.elink.esua.epdc.service.UserService;
@ -74,27 +79,36 @@ import java.util.*;
@Service
public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService {
@Autowired
private PartyMembersDao partyMembersDao;
@Autowired
private UserGridRelationService userGridRelationService;
@Autowired
private UserAuthenticateHistoryDao userAuthenticateHistoryDao;
private UserInvitationRecordService userInvitationRecordService;
@Autowired
private UserInvitationRecordService userInvitationRecordService;
private PartyMembersService partyMembersService;
@Autowired
private UserDetailRedis userDetailRedis;
private PartyMembersDao partyMembersDao;
@Autowired
private AdminFeignClient adminFeignClient;
private UserAuthenticateHistoryDao userAuthenticateHistoryDao;
@Autowired
private PartyAuthenticationFailedDao partyAuthenticationFailedDao;
@Autowired
private UserTagDao userTagDao;
@Autowired
private UserTagRelationDao userTagRelationDao;
@Autowired
private AdminFeignClient adminFeignClient;
private UserDetailRedis userDetailRedis;
@Override
public PageData<UserDTO> page(Map<String, Object> params) {
this.verifyParams(params);
@ -495,110 +509,217 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result<String>().ok(userEntity.getState());
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
/**
* 生成党员认证失败记录
*
* @param dto
* @param userGridRelationDTO
* @param parentAndAllDeptDTO
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean generatePartyAuthenticationFailedRecord(EpdcCompleteAppUserDTO dto, UserGridRelationDTO userGridRelationDTO, ParentAndAllDeptDTO parentAndAllDeptDTO) {
PartyAuthenticationFailedEntity authenticationFailedEntity = ConvertUtils.sourceToTarget(dto, PartyAuthenticationFailedEntity.class);
// 装载部门冗余信息
DeptEntityUtils.loadDeptInfo(
ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class),
authenticationFailedEntity
);
authenticationFailedEntity.setUserId(dto.getId());
authenticationFailedEntity.setState(dto.getState());
authenticationFailedEntity.setAddress(dto.getAddress());
authenticationFailedEntity.setDeptId(dto.getDeptId());
authenticationFailedEntity.setGridId(userGridRelationDTO.getGridId());
authenticationFailedEntity.setGridName(userGridRelationDTO.getGrid());
authenticationFailedEntity.setRegistTime(new Date());
authenticationFailedEntity.setRegistFlag(YesOrNoEnum.YES.value());
authenticationFailedEntity.setIdentityNo(dto.getIdentityNo());
authenticationFailedEntity.setMobile(dto.getMobile());
authenticationFailedEntity.setRealName(dto.getRealName());
return SqlHelper.retBool(partyAuthenticationFailedDao.insert(authenticationFailedEntity));
}
UserDTO userDto = ConvertUtils.sourceToTarget(completeAppUser, UserDTO.class);
if (StringUtils.isBlank(userDto.getWxUnionId())) {
userDto.setWxUnionId(null);
}
/**
* 生成认证历史
*
* @param completeAppUser
* @param userAuthTypeEnum
* @param yesOrNoEnum
* @param remark
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean generateUserAuthenticateHistory(EpdcCompleteAppUserDTO completeAppUser, UserAuthTypeEnum userAuthTypeEnum, YesOrNoEnum yesOrNoEnum, String remark) {
UserAuthenticateHistoryEntity userAuthenticateHistoryEntity = new UserAuthenticateHistoryEntity();
userAuthenticateHistoryEntity.setUserId(completeAppUser.getId());
userAuthenticateHistoryEntity.setMobile(completeAppUser.getMobile());
userAuthenticateHistoryEntity.setRealName(completeAppUser.getRealName());
userAuthenticateHistoryEntity.setAddress(completeAppUser.getAddress());
userAuthenticateHistoryEntity.setAuthenticatedType(userAuthTypeEnum.value());
userAuthenticateHistoryEntity.setAuthenticatedFlag(yesOrNoEnum.value());
if (StringUtils.isNotEmpty(remark)) {
userAuthenticateHistoryEntity.setRemark(remark);
}
return SqlHelper.retBool(userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity));
}
/**
* 更新党员库信息
*
* @param parentAndAllDeptDTO
* @param formDto
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean modifyPartyMembers(ParentAndAllDeptDTO parentAndAllDeptDTO, EpdcAppUserCompleteInfoFormDTO formDto) {
PartyMembersEntity partyMembersEntity = DeptEntityUtils.loadDeptInfo(
ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class),
PartyMembersEntity.class
);
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
partyMembersEntity.setGridId(userGridRelation.getGridId());
partyMembersEntity.setGridName(userGridRelation.getGrid());
partyMembersEntity.setRegistFlag(YesOrNoEnum.YES.value());
partyMembersEntity.setRegistTime(new Date());
UpdateWrapper<PartyMembersEntity> partyUpdate = new UpdateWrapper<>();
partyUpdate.eq(UserFieldConsant.IDENTITY_NO, completeAppUser.getIdentityNo())
.eq(UserFieldConsant.REAL_NAME, completeAppUser.getRealName());
return SqlHelper.retBool(partyMembersDao.update(partyMembersEntity, partyUpdate));
}
String userId = userDto.getId();
/**
* 修改居民信息
*
* @param completeAppUser
* @param userGridRelation
* @param parentAndAllDeptDTO
* @return com.elink.esua.epdc.entity.UserEntity
* @author rongchao
* @since 2019-12-19
*/
private UserEntity modifyResidentInfo(EpdcCompleteAppUserDTO completeAppUser, UserGridRelationDTO userGridRelation, ParentAndAllDeptDTO parentAndAllDeptDTO) {
UserEntity userEntity = ConvertUtils.sourceToTarget(completeAppUser, UserEntity.class);
if (StringUtils.isBlank(userEntity.getWxUnionId())) {
userEntity.setWxUnionId(null);
}
String userId = completeAppUser.getId();
UserEntity oldEntity = this.baseDao.selectById(userId);
if (oldEntity.getState().equals(AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value())) {
userEntity.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
}
//返回网格长标识信息
UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(completeAppUser.getId(), userGridRelation.getGridId());
String nicknamePrefix = completeAppUser.getRoad().concat("-");
if (relationInfo != null && NumConstant.ZERO_STR.equals(relationInfo.getLeaderFlag())) {
}
// 姓
String lastName = completeAppUser.getRealName().substring(NumConstant.ZERO, NumConstant.ONE);
userEntity.setLastName(lastName);
userEntity.setNickname(nicknamePrefix.concat(lastName).concat(UserSexEnum.FEMALE.sex().equals(userEntity.getSex()) ? "女士" : "先生"));
// 身份证号
String identityNo = userDto.getIdentityNo();
//保存用户居住地所在网格,及其他冗余字段。
DeptEntityUtils.loadDeptInfo(
ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class),
userEntity
);
if (!updateById(userEntity)) {
throw new RenException("用户认证修改居民信息时失败!");
}
UserDTO userDTO = ConvertUtils.sourceToTarget(userEntity, UserDTO.class);
userDTO.setLeaderFlag(relationInfo.getLeaderFlag());
return userEntity;
}
/**
* 生成用户身份标签
*
* @param userId
* @return boolean
* @author rongchao
* @since 2019-12-19
*/
private boolean generateUserTag(String userId) {
UserTagEntity userTagEntity = userTagDao.selectByTagCode(UserTagEnum.PARTY_MEMBER.value());
UserTagRelationEntity userTagRelationEntity = new UserTagRelationEntity();
userTagRelationEntity.setTagId(userTagEntity.getId());
userTagRelationEntity.setUserId(userId);
return SqlHelper.retBool(userTagRelationDao.insert(userTagRelationEntity));
}
/**
* 根据网格ID获取冗余的组织机构信息
*
* @param
* @return com.elink.esua.epdc.dto.ParentAndAllDeptDTO
* @author rongchao
* @since 2019-12-19
*/
private ParentAndAllDeptDTO getParentAndAllDeptDTO(String gridId) {
// 获取组织结构冗余信息
Result<ParentAndAllDeptDTO> parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(gridId);
ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDeptDTOResult.getData();
Result<ParentAndAllDeptDTO> parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(String.valueOf(userGridRelation.getGridId()));
if (!parentAndAllDeptDTOResult.success()) {
return new Result<UserDTO>().error(parentAndAllDeptDTOResult.getMsg());
throw new RenException(parentAndAllDeptDTOResult.getMsg());
}
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
PartyMembersEntity partyMembersEntity = new PartyMembersEntity();
partyMembersEntity.setAllDeptNames(parentAndAllDeptDTOResult.getData().getAllDeptNames());
partyMembersEntity.setAllDeptIds(parentAndAllDeptDTOResult.getData().getAllDeptIds());
partyMembersEntity.setParentDeptNames(parentAndAllDeptDTOResult.getData().getParentDeptNames());
partyMembersEntity.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds());
partyMembersEntity.setGridId(userGridRelation.getGridId());
partyMembersEntity.setGridName(userGridRelation.getGrid());
partyMembersEntity.setRegistFlag(YesOrNoEnum.YES.value());
partyMembersEntity.setRegistTime(oldEntity.getRegisterTime());
QueryWrapper<PartyMembersEntity> partyWrapper = new QueryWrapper<>();
partyWrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo)
.eq(UserFieldConsant.REAL_NAME, userDto.getRealName());
int selectCount = this.partyMembersDao.selectCount(partyWrapper);
//用户认证历史
UserAuthenticateHistoryEntity userAuthenticateHistoryEntity = new UserAuthenticateHistoryEntity();
if (selectCount == NumConstant.ZERO) {
// 党员库中没有,存进党员认证失败表
PartyAuthenticationFailedEntity authenticationFailedEntity = ConvertUtils.sourceToTarget(partyMembersEntity, PartyAuthenticationFailedEntity.class);
authenticationFailedEntity.setUserId(userId);
authenticationFailedEntity.setState(Integer.parseInt(YesOrNoEnum.NO.value()));
authenticationFailedEntity.setAddress(userDto.getAddress());
authenticationFailedEntity.setRealName(userDto.getRealName());
authenticationFailedEntity.setMobile(userDto.getMobile());
authenticationFailedEntity.setIdentityNo(identityNo);
authenticationFailedEntity.setRegistTime(oldEntity.getRegisterTime());
partyAuthenticationFailedDao.insert(authenticationFailedEntity);
userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
userDto.setPartyFlag(YesOrNoEnum.NO.value());//是否是党员(0-否,1-是) 认证失败:0
userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.NO.value());
} else {
UpdateWrapper<PartyMembersEntity> partyUpdate = new UpdateWrapper<>();
partyUpdate.eq(UserFieldConsant.IDENTITY_NO, identityNo)
.eq(UserFieldConsant.REAL_NAME, userDto.getRealName());
this.partyMembersDao.update(partyMembersEntity, partyUpdate);
userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.YES.value());
userDto.setPartyFlag(YesOrNoEnum.YES.value());//是否是党员(0-否,1-是) 认证失败:0
//党员认证成功需要插入epdc_user_tag_relation表
UserTagEntity userTagEntity=userTagDao.selectByTagCode(UserTagEnum.PARTY_MEMBER.value());
UserTagRelationEntity userTagRelationEntity=new UserTagRelationEntity();
userTagRelationEntity.setTagId(userTagEntity.getId());
userTagRelationEntity.setUserId(userDto.getId());
userTagRelationDao.insert(userTagRelationEntity);
}
//插入用户认证历史表
userAuthenticateHistoryEntity.setUserId(userId);
userAuthenticateHistoryEntity.setMobile(userDto.getMobile());
userAuthenticateHistoryEntity.setRealName(userDto.getRealName());
userAuthenticateHistoryEntity.setAddress(userDto.getAddress());
userAuthenticateHistoryEntity.setRemark(userDto.getRemark());
userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity);
return parentAndAllDeptDTO;
}
/**
* 认证党员
*
* @param formDto
* @param parentAndAllDeptDTO
* @return void
* @author rongchao
* @since 2019-12-19
*/
private void authPartyMembers(EpdcAppUserCompleteInfoFormDTO formDto, ParentAndAllDeptDTO parentAndAllDeptDTO) {
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
int selectCount = partyMembersService.countPartyMemberByIdNoAndRealName(completeAppUser.getIdentityNo(), completeAppUser.getRealName());
if (selectCount == NumConstant.ZERO) {
// 党员认证失败
// 党员库中没有,存进党员认证失败表
generatePartyAuthenticationFailedRecord(completeAppUser, userGridRelation, parentAndAllDeptDTO);
// 生成党员认证不通过记录
generateUserAuthenticateHistory(completeAppUser, UserAuthTypeEnum.PARTY_AUTH, YesOrNoEnum.NO, "党员库中无此党员信息");
} else {
if (oldEntity.getState().equals(AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value())) {
userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
}
}
// 昵称前缀
String nicknamePrefix = "网格长-";
if (!oldEntity.getNickname().startsWith(nicknamePrefix)) {
nicknamePrefix = userDto.getRoad().concat("-");
//党员认证成功
modifyPartyMembers(parentAndAllDeptDTO, formDto);
// 党员认证成功,生成用户身份标签
generateUserTag(completeAppUser.getId());
// 生成党员认证通过记录
generateUserAuthenticateHistory(completeAppUser, UserAuthTypeEnum.PARTY_AUTH, YesOrNoEnum.YES, null);
}
// 姓
String lastName = userDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE);
userDto.setLastName(lastName);
userDto.setNickname(nicknamePrefix.concat(lastName).concat(UserSexEnum.FEMALE.sex().equals(userDto.getSex()) ? "女士" : "先生"));
}
//保存用户居住地所在网格,及其他冗余字段。
userDto.setAllDeptIds(parentAndAllDeptDTOResult.getData().getAllDeptIds());
userDto.setAllDeptNames(parentAndAllDeptDTOResult.getData().getAllDeptNames());
userDto.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds());
userDto.setParentDeptNames(parentAndAllDeptDTOResult.getData().getParentDeptNames());
@Override
@Transactional(rollbackFor = Exception.class)
public Result<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
EpdcCompleteAppUserDTO completeAppUser = formDto.getCompleteAppUser();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
// 获取组织结构冗余信息
ParentAndAllDeptDTO parentAndAllDeptDTO = getParentAndAllDeptDTO(userGridRelation.getGridId().toString());
//进行居民认证
UserEntity userEntity = modifyResidentInfo(completeAppUser, userGridRelation, parentAndAllDeptDTO);
UserEntity userEntity = ConvertUtils.sourceToTarget(userDto, UserEntity.class);
boolean updateUser = this.updateById(userEntity);
if (!updateUser) {
throw new RenException("保存用户信息异常");
if (YesOrNoEnum.YES.value().equals(completeAppUser.getPartyFlag())) {
//进行党员认证
authPartyMembers(formDto, parentAndAllDeptDTO);
}
UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(userEntity.getId(), userGridRelation.getGridId());
userDto.setLeaderFlag(relationInfo.getLeaderFlag());
userDto.setFaceImg(oldEntity.getFaceImg());
return new Result().ok(userDto);
//返回网格长标识信息
UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(completeAppUser.getId(), userGridRelation.getGridId());
UserDTO userDTO = ConvertUtils.sourceToTarget(userEntity, UserDTO.class);
userDTO.setLeaderFlag(relationInfo.getLeaderFlag());
return new Result<UserDTO>().ok(userDTO);
}
/**

Loading…
Cancel
Save