diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java index d586ba5f8..6a1b156ee 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/PartyMembersDTO.java @@ -54,6 +54,9 @@ public class PartyMembersDTO implements Serializable { private String cadreFlag; + /** + * {@link com.elink.esua.epdc.enums.PartyMemberRegFlagEnum} + */ private String registFlag; private Date registTime; diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java new file mode 100644 index 000000000..5b86837d5 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/PartyMemberRegFlagEnum.java @@ -0,0 +1,38 @@ +package com.elink.esua.epdc.enums; + +import com.elink.esua.epdc.commons.tools.constant.NumConstant; + +/** + * 党员注册认证状态枚举类 + * + * @param null + * @author work@yujt.net.cn + * @return + * @date 2020/2/5 17:37 + */ +public enum PartyMemberRegFlagEnum { + + /** + * 未注册 + */ + NO(NumConstant.ZERO_STR), + /** + * 自动匹配认证(通过完善信息接口) + */ + AUTO(NumConstant.ONE_STR), + /** + * 手动认证(PC端待认证居民列表页面操作) + */ + MANUAL(NumConstant.TWO_STR); + + + private String value; + + public String getValue() { + return value; + } + + PartyMemberRegFlagEnum(String value) { + this.value = value; + } +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java index 0f255a18c..2c6e0f324 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java @@ -17,13 +17,7 @@ package com.elink.esua.epdc.controller; -import cn.afterturn.easypoi.excel.ExcelImportUtil; -import cn.afterturn.easypoi.excel.entity.ImportParams; -import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; -import com.alibaba.fastjson.JSON; -import com.elink.esua.epdc.async.PartyTask; import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter; -import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; @@ -33,22 +27,15 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; -import com.elink.esua.epdc.config.StreamUtils; import com.elink.esua.epdc.dto.PartyMembersDTO; import com.elink.esua.epdc.excel.PartyMembersExcel; import com.elink.esua.epdc.service.PartyMembersService; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.SystemUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java index e0490c6fc..0e165eef2 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/PartyMembersEntity.java @@ -66,7 +66,7 @@ public class PartyMembersEntity extends BaseEpdcEntity { */ private String cadreFlag; /** - * 注册状态(0-否,1-是) + * {@link com.elink.esua.epdc.enums.PartyMemberRegFlagEnum} */ private String registFlag; /** diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java index 906c7fb56..e710d8e60 100755 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java @@ -23,11 +23,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.elink.esua.epdc.async.PartyTask; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; -import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; -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.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; @@ -39,6 +36,7 @@ import com.elink.esua.epdc.dto.PartyMembersDTO; import com.elink.esua.epdc.dto.PartyTagRelationDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcPartyErroyResultDTO; import com.elink.esua.epdc.entity.PartyMembersEntity; +import com.elink.esua.epdc.enums.PartyMemberRegFlagEnum; import com.elink.esua.epdc.excel.PartyMembersExcel; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.PartyMembersRedis; @@ -199,7 +197,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl implem @Override @Transactional(rollbackFor = Exception.class) public void audit(UserDTO dto) { + + String userId = dto.getId(); + UserEntity findUser = this.baseDao.selectById(userId); + // 手动认证为党员 + if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) { + // 校验是否为党员 + checkUserInfoForPartyMember(findUser); + } + // createdTime作为提交注册时间,registerTime作为注册审核时间(即注册时间) + dto.setRegisterTime(new Date()); //先删除以前审核未通过的那条数据 UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class); - // createdTime作为提交注册时间,registerTime作为注册审核时间(即注册时间) - entity.setRegisterTime(new Date()); updateById(entity); - /*JSONArray jsonArray = JSON.parseArray(dto.getTagIds()); - for (int i = 0; i < jsonArray.size(); i++) { - String tagId = jsonArray.getString(i); - UserTagRelationDTO userTagRelationDTO = new UserTagRelationDTO(); - userTagRelationDTO.setUserId(entity.getId()); - userTagRelationDTO.setTagId(tagId); - userTagRelationService.save(userTagRelationDTO); - }*/ - //组装数据并插入用户认证历史表(epdc_user_authenticate_history) - UserEntity userEntity = this.baseDao.selectById(entity.getId()); + // 组装数据并插入用户认证历史表 + saveUserAuthenticateHistory(findUser, dto.getPartyFlag(), dto.getRemark(), dto.getState()); + // 修改党员库信息 + if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) { + updatePartyMember(findUser, dto.getRegisterTime()); + } + } + + /** + * 更新党员库信息 + * + * @param findUser 用户信息 + * @param registerTime 认证时间 + * @return void + * @author work@yujt.net.cn + * @date 2020/2/5 17:50 + */ + private void updatePartyMember(UserEntity findUser, Date registerTime) { + PartyMembersEntity partyMembersEntity = new PartyMembersEntity(); + partyMembersEntity.setRegistFlag(PartyMemberRegFlagEnum.MANUAL.getValue()); + partyMembersEntity.setDeptId(findUser.getDeptId()); + partyMembersEntity.setAllDeptIds(findUser.getAllDeptIds()); + partyMembersEntity.setAllDeptNames(findUser.getAllDeptNames()); + partyMembersEntity.setParentDeptIds(findUser.getParentDeptIds()); + partyMembersEntity.setParentDeptNames(findUser.getParentDeptNames()); + partyMembersEntity.setMobile(findUser.getMobile()); + partyMembersEntity.setRegistTime(registerTime); + + UpdateWrapper partyUpdate = new UpdateWrapper<>(); + partyUpdate.eq(UserFieldConsant.IDENTITY_NO, findUser.getIdentityNo()) + .eq(UserFieldConsant.REAL_NAME, findUser.getRealName()); + this.partyMembersDao.update(partyMembersEntity, partyUpdate); + } + + /** + * 组装数据并插入用户认证历史表(epdc_user_authenticate_history) + * + * @param userEntity 用户信息 + * @param partyFlag 是否党员 + * @param remark 审核备注 + * @param userState 审核状态 + * @return void + * @author work@yujt.net.cn + * @date 2020/2/5 17:49 + */ + private void saveUserAuthenticateHistory(UserEntity userEntity, String partyFlag, String remark, String userState) { + // 组装数据并插入用户认证历史表(epdc_user_authenticate_history) UserAuthenticateHistoryEntity userAuthenticateHistoryEntity = new UserAuthenticateHistoryEntity(); userAuthenticateHistoryEntity.setUserId(userEntity.getId()); userAuthenticateHistoryEntity.setMobile(userEntity.getMobile()); userAuthenticateHistoryEntity.setRealName(userEntity.getRealName()); userAuthenticateHistoryEntity.setAddress(userEntity.getAddress()); - userAuthenticateHistoryEntity.setAuthenticatedFlag(userEntity.getState());//状态(0-已注册,1-已完善信息待审核,2-信息审核不通过,3-信息审核通过) - if (NumConstant.THREE_STR.equals(entity.getState())) { - userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.YES.value()); - } else { - userAuthenticateHistoryEntity.setAuthenticatedFlag(YesOrNoEnum.NO.value()); - } - userAuthenticateHistoryEntity.setRemark(dto.getRemark()); - userAuthenticateHistoryEntity.setAuthenticatedType(AuthenticatedConsant.partyAuth); // 新维护的 认证类别(0-居民认证,1-党员认证,2-志愿者认证) + userAuthenticateHistoryEntity.setRemark(remark); + // 状态(0-已注册,1-已完善信息待审核,2-信息审核不通过,3-信息审核通过) + userAuthenticateHistoryEntity.setAuthenticatedFlag( + AppUserStatesEnum.STATE_INFORMATION_PASSED.value().equals(userState) ? + YesOrNoEnum.YES.value() : YesOrNoEnum.NO.value()); + // 新维护的 认证类别(0-居民认证,1-党员认证,2-志愿者认证) + userAuthenticateHistoryEntity.setAuthenticatedType(YesOrNoEnum.YES.equals(partyFlag) + ? AuthenticatedConsant.partyAuth : AuthenticatedConsant.userAuth); userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity); } + /** + * 校验用户是否有匹配的党员信息 + * + * @param userEntity 用户信息 + * @return void + * @author work@yujt.net.cn + * @date 2020/2/5 17:49 + */ + private void checkUserInfoForPartyMember(UserEntity userEntity) { + // 手动认证为党员 + if (StringUtils.isBlank(userEntity.getIdentityNo())) { + throw new RenException("该用户未完善身份证号码"); + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(UserFieldConsant.IDENTITY_NO, userEntity.getIdentityNo()) + .eq(UserFieldConsant.REAL_NAME, userEntity.getRealName()); + Integer count = this.baseDao.selectCount(wrapper); + if (count == NumConstant.ZERO) { + throw new RenException("党员库中无此人信息"); + } + } + @Override public Result getUserForLoginByOpenId(String openId) { @@ -349,7 +417,7 @@ public class UserServiceImpl extends BaseServiceImpl implem userEntity.setFaceImg(null); userEntity.setId(userId); //用户已绑定手机号时不更新手机号 - if(StringUtils.isNotBlank(existUser.getMobile())){ + if (StringUtils.isNotBlank(existUser.getMobile())) { userEntity.setMobile(existUser.getMobile()); } this.updateById(userEntity); @@ -487,7 +555,7 @@ public class UserServiceImpl extends BaseServiceImpl implem 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()) @@ -531,7 +599,7 @@ public class UserServiceImpl extends BaseServiceImpl implem partyMembersEntity.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds()); partyMembersEntity.setGridId(userGridRelation.getGridId()); partyMembersEntity.setGridName(userGridRelation.getGrid()); - partyMembersEntity.setRegistFlag(YesOrNoEnum.YES.value()); + partyMembersEntity.setRegistFlag(PartyMemberRegFlagEnum.AUTO.getValue()); partyMembersEntity.setRegistTime(oldEntity.getRegisterTime()); QueryWrapper partyWrapper = new QueryWrapper<>(); partyWrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo) @@ -578,7 +646,7 @@ public class UserServiceImpl extends BaseServiceImpl implem userAuthenticateHistoryEntity.setAuthenticatedType(AuthenticatedConsant.partyAuth); userAuthenticateHistoryDao.insert(userAuthenticateHistoryEntity); } else { - userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value()); + userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value()); } // 昵称前缀 String nicknamePrefix = "网格长-";