|
|
@ -48,8 +48,7 @@ import com.elink.esua.epdc.dao.PartyMembersDao; |
|
|
|
import com.elink.esua.epdc.dao.UserAuthenticateHistoryDao; |
|
|
|
import com.elink.esua.epdc.dao.UserDao; |
|
|
|
import com.elink.esua.epdc.datasources.DataSourceNames; |
|
|
|
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; |
|
|
|
import com.elink.esua.epdc.dto.UserDTO; |
|
|
|
import com.elink.esua.epdc.dto.*; |
|
|
|
import com.elink.esua.epdc.dto.epdc.UserCarInfoDTO; |
|
|
|
import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; |
|
|
|
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; |
|
|
@ -154,6 +153,14 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem |
|
|
|
return new PageData<>(userDtoList, iPage.getTotal()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<UserDTO> waitPartyPage(Map<String, Object> params) { |
|
|
|
this.verifyParams(params); |
|
|
|
IPage<UserDTO> iPage = this.getPage(params); |
|
|
|
List<UserDTO> userDtoList = this.baseDao.selectListOfWaitPartyUserDto(params); |
|
|
|
return new PageData<>(userDtoList, iPage.getTotal()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<UserDTO> list(Map<String, Object> params) { |
|
|
|
this.verifyParams(params); |
|
|
@ -165,6 +172,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<UserDTO> listOfWaitParty(Map<String, Object> params) { |
|
|
|
this.verifyParams(params); |
|
|
|
return this.baseDao.selectListOfWaitPartyUserDto(params); |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, Object> verifyParams(Map<String, Object> params) { |
|
|
|
|
|
|
|
String[] paramKeys = new String[]{"realName", "identityNo", "nickname", FieldConstant.MOBILE_HUMP}; |
|
|
@ -210,37 +223,181 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> 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); |
|
|
|
updateById(entity); |
|
|
|
// 组装数据并插入用户认证历史表
|
|
|
|
saveUserAuthenticateHistory(findUser, dto.getPartyFlag(), dto.getRemark(), dto.getState()); |
|
|
|
// 修改党员库信息
|
|
|
|
if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) { |
|
|
|
updatePartyMember(findUser, dto.getRegisterTime()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Result<List<PartyMembersDTO>> partyReview(UserDTO dto) { |
|
|
|
this.verifyUserInfo(dto); |
|
|
|
UserEntity findUser = this.baseDao.selectById(dto.getId()); |
|
|
|
dto.setState(NumConstant.THREE_STR); |
|
|
|
// 手动认证为党员
|
|
|
|
if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) { |
|
|
|
// 校验是党员库是否存在相同的身份证号或者姓名
|
|
|
|
boolean isParty = getPartyMemberByRealNameAndIdentityNo(dto.getRealName(), dto.getIdentityNo()); |
|
|
|
if (!isParty) { |
|
|
|
Result<List<PartyMembersDTO>> result = getPartyMemberByRealNameOrIdentityNo(dto.getRealName(), dto.getIdentityNo()); |
|
|
|
if (result.getCode() != 0) { |
|
|
|
return result; |
|
|
|
} else { |
|
|
|
// 插入党员库
|
|
|
|
insertPartyMember(dto); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// createdTime作为提交注册时间,registerTime作为注册审核时间(即注册时间)
|
|
|
|
entity.setRegisterTime(new Date()); |
|
|
|
dto.setRegisterTime(new Date()); |
|
|
|
//先删除以前审核未通过的那条数据
|
|
|
|
UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class); |
|
|
|
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); |
|
|
|
}*/ |
|
|
|
// 组装数据并插入用户认证历史表
|
|
|
|
findUser.setMobile(dto.getMobile()); |
|
|
|
findUser.setRealName(dto.getRealName()); |
|
|
|
saveUserAuthenticateHistory(findUser, dto.getPartyFlag(), dto.getRemark(), dto.getState()); |
|
|
|
// 修改党员库信息
|
|
|
|
if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) { |
|
|
|
updatePartyMember(findUser, dto.getRegisterTime()); |
|
|
|
} |
|
|
|
|
|
|
|
return new Result<>(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Result modifyPartyInfo(PartyMemberModifyFormDTO dto) { |
|
|
|
// 更新党员库信息
|
|
|
|
PartyMembersEntity entity = new PartyMembersEntity(); |
|
|
|
entity.setId(dto.getPartyMemberId()); |
|
|
|
entity.setRealName(dto.getRealName()); |
|
|
|
entity.setIdentityNo(dto.getIdentityNo()); |
|
|
|
partyMembersDao.updateById(entity); |
|
|
|
|
|
|
|
// 用户认证党员信息通过
|
|
|
|
UserDTO userDTO = ConvertUtils.sourceToTarget(dto, UserDTO.class); |
|
|
|
userDTO.setId(dto.getUserId()); |
|
|
|
userDTO.setPartyFlag(YesOrNoEnum.YES.value()); |
|
|
|
this.partyReview(userDTO); |
|
|
|
|
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Result addPartyInfo(PartyMemberModifyFormDTO dto) { |
|
|
|
// 新增党员库信息
|
|
|
|
PartyMembersEntity entity = new PartyMembersEntity(); |
|
|
|
entity.setRealName(dto.getRealName()); |
|
|
|
entity.setIdentityNo(dto.getIdentityNo()); |
|
|
|
entity.setRegistFlag(PartyMemberRegFlagEnum.NO.getValue()); |
|
|
|
partyMembersDao.insert(entity); |
|
|
|
|
|
|
|
// 用户认证党员信息通过
|
|
|
|
UserDTO userDTO = ConvertUtils.sourceToTarget(dto, UserDTO.class); |
|
|
|
userDTO.setId(dto.getUserId()); |
|
|
|
userDTO.setPartyFlag(YesOrNoEnum.YES.value()); |
|
|
|
this.partyReview(userDTO); |
|
|
|
|
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 更新党员库信息 |
|
|
|
* |
|
|
|
* @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()); |
|
|
|
// 已认证党员列表,数据权限匹配的字段是grid_id。至于dept_id,暂时没用 @202002061021
|
|
|
|
partyMembersEntity.setGridId(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<PartyMembersEntity> 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)
|
|
|
|
UserEntity userEntity = this.baseDao.selectById(entity.getId()); |
|
|
|
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<PartyMembersEntity> wrapper = new QueryWrapper<>(); |
|
|
|
wrapper.eq(UserFieldConsant.IDENTITY_NO, userEntity.getIdentityNo()) |
|
|
|
.eq(UserFieldConsant.REAL_NAME, userEntity.getRealName()); |
|
|
|
Integer count = this.partyMembersDao.selectCount(wrapper); |
|
|
|
if (count == NumConstant.ZERO) { |
|
|
|
throw new RenException("党员库中无此人信息"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Result<UserDTO> getUserForLoginByOpenId(String openId) { |
|
|
@ -1397,9 +1554,114 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem |
|
|
|
} |
|
|
|
this.verifyParams(params); |
|
|
|
// 查询当前用户所具有的的数据权限
|
|
|
|
if (NumConstant.ONE_STR.equals(params.get("state").toString())) { |
|
|
|
IPage<UserDTO> iPage = this.getPage(params); |
|
|
|
List<UserDTO> userDtoList = this.baseDao.selectWaitAuthenticatedListUserDto(params); |
|
|
|
return new PageData<>(userDtoList, iPage.getTotal()); |
|
|
|
} else { |
|
|
|
IPage<UserDTO> iPage = this.getPage(params); |
|
|
|
List<UserDTO> userDtoList = this.baseDao.selectAuthenticatedListUserDto(params); |
|
|
|
return new PageData<>(userDtoList, iPage.getTotal()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* 用户信息校验 |
|
|
|
* |
|
|
|
* @params [dto] |
|
|
|
* @return com.elink.esua.epdc.dto.UserDTO |
|
|
|
* @author liuchuang |
|
|
|
* @since 2020/3/23 18:23 |
|
|
|
*/ |
|
|
|
private UserDTO verifyUserInfo(UserDTO dto) { |
|
|
|
if (StringUtils.isBlank(dto.getRealName()) && StringUtils.isBlank(dto.getRealName().trim())) { |
|
|
|
throw new RenException("用户姓名不能为空"); |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(dto.getMobile()) && StringUtils.isBlank(dto.getMobile().trim())) { |
|
|
|
throw new RenException("手机号不能为空"); |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(dto.getIdentityNo()) && StringUtils.isBlank(dto.getIdentityNo().trim())) { |
|
|
|
throw new RenException("身份证号不能为空"); |
|
|
|
} |
|
|
|
dto.setRealName(dto.getRealName().trim()); |
|
|
|
dto.setMobile(dto.getMobile().trim()); |
|
|
|
dto.setIdentityNo(dto.getIdentityNo().trim()); |
|
|
|
|
|
|
|
return dto; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* 获取党员信息 |
|
|
|
* |
|
|
|
* @params [realName, identityNo] |
|
|
|
* @return boolean |
|
|
|
* @author liuchuang |
|
|
|
* @since 2020/3/23 18:30 |
|
|
|
*/ |
|
|
|
private boolean getPartyMemberByRealNameAndIdentityNo(String realName, String identityNo) { |
|
|
|
QueryWrapper<PartyMembersEntity> wrapper = new QueryWrapper<>(); |
|
|
|
wrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo) |
|
|
|
.eq(UserFieldConsant.REAL_NAME, realName); |
|
|
|
Integer count = this.partyMembersDao.selectCount(wrapper); |
|
|
|
return count != NumConstant.ZERO; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* 获取党员信息 |
|
|
|
* |
|
|
|
* @params [realName, identityNo] |
|
|
|
* @return java.util.List<com.elink.esua.epdc.dto.UserDTO> |
|
|
|
* @author liuchuang |
|
|
|
* @since 2020/3/23 18:35 |
|
|
|
*/ |
|
|
|
private Result<List<PartyMembersDTO>> getPartyMemberByRealNameOrIdentityNo(String realName, String identityNo) { |
|
|
|
List<PartyMembersEntity> partyMembersEntities = null; |
|
|
|
List<PartyMembersDTO> data = null; |
|
|
|
Result<List<PartyMembersDTO>> result = new Result<>(); |
|
|
|
|
|
|
|
// 根据身份证号查询党员库
|
|
|
|
QueryWrapper<PartyMembersEntity> identityNoWrapper = new QueryWrapper<>(); |
|
|
|
identityNoWrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo); |
|
|
|
partyMembersEntities = this.partyMembersDao.selectList(identityNoWrapper); |
|
|
|
if (null != partyMembersEntities && partyMembersEntities.size() > 0) { |
|
|
|
data = ConvertUtils.sourceToTarget(partyMembersEntities, PartyMembersDTO.class); |
|
|
|
result.setCode(NumConstant.ONE); |
|
|
|
result.setData(data); |
|
|
|
return result; |
|
|
|
} |
|
|
|
// 根据姓名查询党员库
|
|
|
|
QueryWrapper<PartyMembersEntity> realNameWrapper = new QueryWrapper<>(); |
|
|
|
realNameWrapper.eq(UserFieldConsant.REAL_NAME, realName); |
|
|
|
partyMembersEntities = this.partyMembersDao.selectList(realNameWrapper); |
|
|
|
if (null != partyMembersEntities && partyMembersEntities.size() > 0) { |
|
|
|
data = ConvertUtils.sourceToTarget(partyMembersEntities, PartyMembersDTO.class); |
|
|
|
result.setCode(NumConstant.TWO); |
|
|
|
result.setData(data); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
return new Result<>(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* 新增党员信息 |
|
|
|
* |
|
|
|
* @params [dto, findUser] |
|
|
|
* @return void |
|
|
|
* @author liuchuang |
|
|
|
* @since 2020/3/23 19:35 |
|
|
|
*/ |
|
|
|
private void insertPartyMember(UserDTO dto) { |
|
|
|
PartyMembersEntity entity = new PartyMembersEntity(); |
|
|
|
entity.setRealName(dto.getRealName()); |
|
|
|
entity.setIdentityNo(dto.getIdentityNo()); |
|
|
|
entity.setRegistFlag(PartyMemberRegFlagEnum.MANUAL.getValue()); |
|
|
|
|
|
|
|
partyMembersDao.insert(entity); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|