Browse Source

用户审核;用户完善个人信息

dev
yujintao 6 years ago
parent
commit
6ec9245aba
  1. 69
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java
  2. 64
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java
  3. 42
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  4. 42
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java
  5. 41
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  6. 15
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  7. 31
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
  8. 105
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  9. 1
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java
  10. 4
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java
  11. 23
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserCompleteInfoFormDTO.java
  12. 50
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  13. 37
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  14. 8
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java
  15. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  16. 13
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java
  17. 31
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  18. 9
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java
  19. 195
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  20. 29
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

69
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java

@ -0,0 +1,69 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 移动端完善用户信息
*
* @author work@yujt.net.cn
* @date 2019/10/26 10:56
*/
@Data
public class EpdcCompleteUserInfoFormDTO implements Serializable {
private static final long serialVersionUID = 7848126935041704928L;
@NotBlank(message = "党员标识不能为空")
private String partyFlag;
/**
* 身份证号码
*/
private String identityNo;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
private String mobile;
/**
* 短信验证码
*/
@NotBlank(message = "短信验证码不能为空")
private String smsCode;
/**
* 真实姓名
*/
@NotBlank(message = "真实姓名不能为空")
private String realName;
/**
* 所在道路
*/
@NotBlank(message = "所在道路不能为空")
private String road;
/**
* 小区名
*/
private String villageName;
/**
* 住处楼栋-单元-房间
*/
private String dwellingPlace;
/**
* 微信code
*/
@NotBlank(message = "微信code不能为空")
private String wxCode;
/**
* 包括敏感数据在内的完整用户信息的加密数据
*/
@NotBlank(message = "用户信息不能为空")
private String encryptedData;
/**
* 加密算法的初始向量
*/
@NotBlank(message = "初始向量不能为空")
private String iv;
}

64
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java

@ -0,0 +1,64 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author work@yujt.net.cn
* @date 1 1
*/
@Data
public class EpdcCompleteUserInfoDTO implements Serializable {
private static final long serialVersionUID = -7780650232814344762L;
/**
* 是否是党员 0否 1是
*/
@NotBlank(message = "党员标识不能为空")
private String partyFlag;
/**
* 身份证号码
*/
private String identityNo;
/**
* 手机号
*/
private String mobile;
/**
* 真实姓名
*/
private String realName;
/**
* 网格Id
*/
private Long gridId;
/**
* 所在道路
*/
private String road;
/**
* 小区名
*/
private String villageName;
/**
* 住处楼栋-单元-房间
*/
private String dwellingPlace;
/**
* 状态(0-已注册1-已完善信息待审核2-信息审核不通过3-信息审核通过)
*/
private String state;
/**
* 审核备注
*/
private String remark;
}

42
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java

@ -4,15 +4,13 @@ import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterSubmitFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.form.*;
import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO;
import com.elink.esua.epdc.service.AppUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -118,13 +116,15 @@ public class ApiAppUserController {
}
/**
* 小程序端登录获取token
* {小程序端登录获取token} -- 该接口已过时新版本使用下述接口
* {@link com.elink.esua.epdc.controller.v2.ApiAppUserV2Controller#getMaV2Token(EpdcAppUserRegisterFormDTO)}
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @author yujintao
* @date 2019/9/10 20:47
*/
@Deprecated
@GetMapping("user/ma/getToken")
public Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
@ -185,18 +185,44 @@ public class ApiAppUserController {
}
/**
*
* 用户注册获取Token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @params [formDto]
* @author liuchuang
* @since 2019/10/24 16:32
*/
@GetMapping("user/ma/v2/getToken")
/*@GetMapping("user/ma/v2/getToken")
public Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.getMaV2Token(formDto);
}*/
/**
* 用户完善个人信息-保存
*
* @param tokenDto
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 13:41
*/
@PostMapping("user/completeInfo")
public Result<EpdcAppAuthorizationDTO> completeUserInfo(@LoginUser TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.completeUserInfo(tokenDto, formDto);
}
/**
* 用于用户完善个人信息页面获取个人信息
*
* @param tokenDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 15:07
*/
@GetMapping("prepareComplete")
public Result<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) {
return appUserService.prepareCompleteUserInfo(tokenDto);
}
}

42
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java

@ -0,0 +1,42 @@
package com.elink.esua.epdc.controller.v2;
import com.elink.esua.epdc.commons.api.version.ApiVersion;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.form.EpdcAppUserRegisterFormDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
import com.elink.esua.epdc.service.AppUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 用户模块迭代接口 v2
*
* @author work@yujt.net.cn
* @date 2019/10/26 10:40
*/
@ApiVersion(2)
@RestController("ApiAppUserV2Controller")
@RequestMapping("app-user")
public class ApiAppUserV2Controller {
@Autowired
private AppUserService appUserService;
/**
* 用户注册获取Token
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 10:48
*/
@GetMapping("user/ma" + Constant.VERSION_CONTROL + "getToken")
public Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.getMaV2Token(formDto);
}
}

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

@ -38,6 +38,17 @@ public interface UserFeignClient {
@GetMapping("app-user/epdc-app/user/getByOpenId/{openId}")
Result<UserDTO> getUserInfoByOpenId(@PathVariable("openId") String openId);
/**
* 查询用户基础信息
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 15:16
*/
@GetMapping("app-user/epdc-app/user/getById/{userId}")
Result<UserDTO> getUserInfoById(@PathVariable("userId") String userId);
/**
* 获取用户信息登录用
*
@ -69,7 +80,7 @@ public interface UserFeignClient {
* @date 2019/9/7 14:26
*/
@PostMapping(value = "app-user/epdc-app/user/regist", consumes = MediaType.APPLICATION_JSON_VALUE)
Result userRegist(@RequestBody UserDTO userDto);
Result userRegist(UserDTO userDto);
/**
* 验证用户提交的注册信息
@ -82,6 +93,28 @@ public interface UserFeignClient {
@GetMapping(value = "app-user/epdc-app/user/verify", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result verifyUserRegisterData(EpdcUserRegistFormDTO formDto);
/**
* 验证用户完善个人信息时提交的数据
*
* @param userDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/10/26 11:31
*/
@GetMapping(value = "app-user/epdc-app/user/verifyComplete", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result verifyUserCompleteData(UserDTO userDto);
/**
* 用户完善个人信息-保存
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/10/26 13:41
*/
@PostMapping(value = "app-user/epdc-app/user/completeInfo", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto);
/**
* 移动端获取用户信息
*
@ -185,11 +218,10 @@ public interface UserFeignClient {
Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(@PathVariable("userId") String userId);
/**
*
* 查询用户注册状态
*
* @params [fromDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcCheckUserRegisterResultDTO>
* @params [fromDto]
* @author liuchuang
* @since 2019/10/25 10:50
*/
@ -197,11 +229,10 @@ public interface UserFeignClient {
Result<EpdcUserRegisterInfoResultDTO> getUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto);
/**
*
* 用户注册或绑定网格
*
* @params [formDto]
* @return com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO
* @params [formDto]
* @author liuchuang
* @since 2019/10/25 14:25
*/

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

@ -26,6 +26,11 @@ public class UserFeignClientFallback implements UserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByOpenId", openId);
}
@Override
public Result<UserDTO> getUserInfoById(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoById", userId);
}
@Override
public Result<UserDTO> getUserForLoginByOpenId(String openId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserForLoginByOpenId", openId);
@ -46,6 +51,16 @@ public class UserFeignClientFallback implements UserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "verifyUserRegisterData", formDto);
}
@Override
public Result verifyUserCompleteData(UserDTO userDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "verifyUserCompleteData", userDto);
}
@Override
public Result completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "completeUserInfo", formDto);
}
@Override
public Result<EpdcUserInfoResultDTO> getInfoById(String id) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getInfoById", id);

31
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java

@ -2,15 +2,13 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterSubmitFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcLeaderGridResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.form.*;
import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO;
import java.util.List;
@ -83,6 +81,7 @@ public interface AppUserService {
* @author yujintao
* @date 2019/9/10 20:34
*/
@Deprecated
Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO formDto);
/**
@ -147,13 +146,33 @@ public interface AppUserService {
Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(String userId);
/**
*
* 用户注册获取Token
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @params [formDto]
* @author liuchuang
* @since 2019/10/24 16:33
*/
Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto);
/**
* 用户完善个人信息-保存
*
* @param tokenDto
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 11:05
*/
Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto);
/**
* 用于用户完善个人信息页面获取个人信息
*
* @param tokenDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 15:08
*/
Result<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(TokenDto tokenDto);
}

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

@ -2,6 +2,7 @@ package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
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;
@ -19,6 +20,7 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.form.*;
import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO;
import com.elink.esua.epdc.enums.*;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.UserFeignClient;
@ -557,7 +559,6 @@ public class AppUserServiceImpl implements AppUserService {
/**
* 组装成功登录的数据
* EpdcAppAuthorizationDTO的userState属性默认设置为.REGISTERED
*
* @param tokenDto 缓存的用户数据
* @param grid 网格名称
@ -606,11 +607,10 @@ public class AppUserServiceImpl implements AppUserService {
}
/**
*
* 针对不同用户注册状态进行处理
*
* @params [checkUserResult, unionId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @params [checkUserResult, unionId]
* @author liuchuang
* @since 2019/10/25 12:49
*/
@ -651,11 +651,10 @@ public class AppUserServiceImpl implements AppUserService {
}
/**
*
* 组装用户注册信息
*
* @params [openId, unionId, completeDept]
* @return com.elink.esua.epdc.dto.UserDTO
* @params [openId, unionId, completeDept]
* @author liuchuang
* @since 2019/10/24 18:16
*/
@ -663,7 +662,7 @@ public class AppUserServiceImpl implements AppUserService {
UserDTO userDto = new UserDTO();
userDto.setWxOpenId(openId);
userDto.setWxUnionId(unionId);
userDto.setNickname("用户"+RandomUtil.getNewRandomCode(4));
userDto.setNickname("用户" + RandomUtil.getNewRandomCode(4));
userDto.setFaceImg(USER_FACE);
userDto.setState(AppUserStatesEnum.STATE_REGISTERED.value());
userDto.setPartyFlag(YesOrNoEnum.NO.value());
@ -681,12 +680,102 @@ public class AppUserServiceImpl implements AppUserService {
return userDto;
}
@Override
public Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto) {
// 党员提交,验证身份证号
if (YesOrNoEnum.YES.value().equals(formDto.getPartyFlag())) {
String identityNo = formDto.getIdentityNo();
if (StringUtils.isBlank(identityNo)) {
return new Result().error("身份证号不能为空");
} else {
String verification = IdentityNoUtils.IdentityNoVerification(identityNo);
if (StringUtils.isNotBlank(verification)) {
return new Result().error(verification);
}
}
}
// 验证手机号
this.checkSmsCode(formDto.getMobile(), formDto.getSmsCode());
UserDTO userDto = ConvertUtils.sourceToTarget(formDto, UserDTO.class);
userDto.setId(tokenDto.getUserId());
// 验证用户提交的信息
Result verifyResult = userFeignClient.verifyUserCompleteData(userDto);
if (!verifyResult.success()) {
return new Result().error(verifyResult.getMsg());
}
// 组装对象,准备保存用户信息
EpdcAppUserCompleteInfoFormDTO dto = new EpdcAppUserCompleteInfoFormDTO();
UserGridRelationDTO userGrid = this.packageUserGridRelationInfo(tokenDto.getGridId());
userDto = this.packageUserCompleteInfo(formDto, userDto);
dto.setUserDto(userDto);
dto.setUserGridRelation(userGrid);
Result completeResult = userFeignClient.completeUserInfo(dto);
if (!completeResult.success()) {
return new Result().error(completeResult.getMsg());
}
tokenDto.setRealName(userDto.getRealName());
tokenDto.setFaceImg(userDto.getFaceImg());
tokenDto.setNickname(userDto.getNickname());
EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(tokenDto, userGrid.getGrid(), userDto.getState());
return new Result().ok(authorizationDto);
}
@Override
public Result<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(TokenDto tokenDto) {
Result<UserDTO> result = userFeignClient.getUserInfoById(tokenDto.getUserId());
if (result.success() && null != result.getData()) {
EpdcCompleteUserInfoDTO dto = ConvertUtils.sourceToTarget(result.getData(), EpdcCompleteUserInfoDTO.class);
dto.setGridId(tokenDto.getGridId());
return new Result<EpdcCompleteUserInfoDTO>().ok(dto);
}
return new Result().error("获取用户信息失败");
}
private UserDTO packageUserCompleteInfo(EpdcCompleteUserInfoFormDTO formDto, UserDTO userDto) {
WxMaJscode2SessionResult wxMaUser = this.getWxMaUser(formDto.getWxCode());
WxMaUserInfo wxMaUserInfo = wxMaService.getUserService()
.getUserInfo(wxMaUser.getSessionKey(), formDto.getEncryptedData(), formDto.getIv());
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
userDto.setSex(IdentityNoUtils.getSex(userDto.getIdentityNo()));
userDto.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(userDto.getIdentityNo()), DateUtils.DATE_PATTERN));
userDto.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
} else {
userDto.setSex(wxMaUserInfo.getGender());
userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
}
userDto.setNickname(
formDto.getRoad().concat("-").concat(formDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE))
.concat(NumConstant.ZERO_STR.equals(userDto.getSex()) ? "女士" : "先生")
);
userDto.setFaceImg(wxMaUserInfo.getAvatarUrl());
userDto.setWxUnionId(wxMaUserInfo.getUnionId());
PhoneDto phoneDto = PhoneUtil.getPhoneDto(userDto.getMobile());
if (phoneDto != null) {
userDto.setMobileCarrier(phoneDto.getCarrier());
userDto.setMobileCity(phoneDto.getCityName());
userDto.setMobileProvince(phoneDto.getProvinceName());
}
return userDto;
}
/**
*
* 组装用户关联网格信息
*
* @params [gridId]
* @return com.elink.esua.epdc.dto.UserGridRelationDTO
* @params [gridId]
* @author liuchuang
* @since 2019/10/25 13:53
*/

1
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java

@ -20,4 +20,5 @@ public interface UserFieldConsant {
String REGISTER_TIME = "REGISTER_TIME";
String USER_ID = "USER_ID";
String SWITCHED_TIME = "SWITCHED_TIME";
String STATE = "STATE";
}

4
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java

@ -298,10 +298,6 @@ public class UserDTO implements Serializable {
* 干部下沉 0不
*/
private String cadreFlag;
/**
* 是否通过 0不
*/
private String pass;
/**
* 党员标签
*/

23
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserCompleteInfoFormDTO.java

@ -0,0 +1,23 @@
package com.elink.esua.epdc.dto.epdc.form;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserGridRelationDTO;
import lombok.Data;
import java.io.Serializable;
/**
* 用户完善个人信息
*
* @author work@yujt.net.cn
* @date 2019/10/26 11:50
*/
@Data
public class EpdcAppUserCompleteInfoFormDTO implements Serializable {
private static final long serialVersionUID = 6891651684067520384L;
private UserDTO userDto;
private UserGridRelationDTO userGridRelation;
}

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

@ -3,10 +3,7 @@ package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcCheckUserRegisterFromDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegisterBindGridFormDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
@ -41,6 +38,20 @@ public class EpdcAppUserController {
return userService.getUserInfoByOpenId(openId);
}
/**
* 查询用户基础信息
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 15:13
*/
@GetMapping("getById/{userId}")
public Result<UserDTO> getUserInfoById(@PathVariable("userId") String userId) {
UserDTO dto = userService.get(userId);
return new Result().ok(dto);
}
/**
* 登录前获取用户信息
*
@ -149,11 +160,10 @@ public class EpdcAppUserController {
}
/**
*
* 检查用户注册状态
*
* @params [fromDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcCheckUserRegisterResultDTO>
* @params [fromDto]
* @author liuchuang
* @since 2019/10/25 11:11
*/
@ -163,11 +173,10 @@ public class EpdcAppUserController {
}
/**
*
* 用户注册或绑定网格
*
* @params [fromDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO>
* @params [fromDto]
* @author liuchuang
* @since 2019/10/25 14:30
*/
@ -176,4 +185,29 @@ public class EpdcAppUserController {
return userService.saveUserOrBindGrid(fromDto);
}
/**
* 验证用户完善个人信息时提交的数据
*
* @param userDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/9/21 11:03
*/
@GetMapping("verifyComplete")
public Result verifyUserCompleteData(@RequestBody UserDTO userDto) {
return userService.verifyUserCompleteData(userDto);
}
/**
* 用户完善个人信息-保存
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/10/26 11:53
*/
@PostMapping("completeInfo")
public Result completeUserInfo(@RequestBody EpdcAppUserCompleteInfoFormDTO formDto) {
return userService.completeUserInfo(formDto);
}
}

37
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java

@ -17,7 +17,7 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -27,10 +27,12 @@ import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.enums.AppUserStatesEnum;
import com.elink.esua.epdc.excel.UserExcel;
import com.elink.esua.epdc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@ -49,21 +51,21 @@ public class UserController {
private UserService userService;
@GetMapping("page")
public Result<PageData<UserDTO>> page( @RequestParam Map<String, Object> params){
@DataFilter(tableAlias = "ug", isPendingCreator = false, deptId = "GRID_ID", prefix = "AND")
public Result<PageData<UserDTO>> page(@RequestParam Map<String, Object> params) {
PageData<UserDTO> page = userService.page(params);
return new Result<PageData<UserDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<UserDTO> get(@PathVariable("id") String id){
public Result<UserDTO> get(@PathVariable("id") String id) {
UserDTO data = userService.get(id);
return new Result<UserDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody UserDTO dto){
public Result save(@RequestBody UserDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
@ -73,7 +75,7 @@ public class UserController {
}
@PutMapping
public Result update(@RequestBody UserDTO dto){
public Result update(@RequestBody UserDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
@ -84,11 +86,12 @@ public class UserController {
/**
* 审核
*
* @param dto
* @return
*/
@PostMapping("audit")
public Result audit(@RequestBody UserDTO dto){
public Result audit(@RequestBody UserDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
@ -96,8 +99,9 @@ public class UserController {
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
@ -107,17 +111,18 @@ public class UserController {
}
@GetMapping("export")
public void export( @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
@DataFilter(tableAlias = "ug", isPendingCreator = false, deptId = "GRID_ID", prefix = "AND")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<UserDTO> list = userService.list(params);
String auditState = (String) params.get("auditState");
String auditState = (String) params.get("state");
// 状态(0-未审核,1-审核通过,2-审核未通过)
String fileName = null;
if(NumConstant.ZERO_STR.equals(auditState)){
fileName="未审核";
}else if(NumConstant.ONE_STR.equals(auditState)){
fileName="审核通过";
}else if(NumConstant.TWO_STR.equals(auditState)){
fileName="审核未通过";
if (AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.equals(auditState)) {
fileName = "未审核";
} else if (AppUserStatesEnum.STATE_INFORMATION_PASSED.equals(auditState)) {
fileName = "审核通过";
} else if (AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.equals(auditState)) {
fileName = "审核未通过";
}
ExcelUtils.exportExcelToTarget(response, fileName, list, UserExcel.class);
}

8
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java

@ -29,6 +29,7 @@ import com.elink.esua.epdc.service.UserGridRelationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -81,4 +82,11 @@ public class UserGridRelationController {
return new Result();
}
@GetMapping("listUserGrid/{userId}")
public Result<List<UserGridRelationDTO>> listUserGrid(@PathVariable("userId") String userId){
List<UserGridRelationDTO> data = userGridRelationService.listUserGrid(userId);
return new Result<List<UserGridRelationDTO>>().ok(data);
}
}

14
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java

@ -18,12 +18,16 @@
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.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
import com.elink.esua.epdc.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 用户信息表
*
@ -71,4 +75,14 @@ public interface UserDao extends BaseDao<UserEntity> {
* @date 2019/9/27 10:08
*/
int deleteAuditFailureByOpenId(@Param("wxOpenId") String wxOpenId);
/**
* 查询用户列表
*
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.UserDTO>
* @author work@yujt.net.cn
* @date 2019/10/25 16:13
*/
List<UserDTO> selectListUserDto(Map<String, Object> params);
}

13
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java

@ -117,13 +117,22 @@ public interface UserGridRelationService extends BaseService<UserGridRelationEnt
Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(String userId);
/**
*
* 获取用户绑定网格信息
*
* @params [userId, gridId]
* @return com.elink.esua.epdc.dto.UserGridRelationDTO
* @params [userId, gridId]
* @author liuchuang
* @since 2019/10/25 11:21
*/
UserGridRelationDTO getUserRelationInfo(String userId, Long gridId);
/**
* 获取用户所有网格
*
* @param userId
* @return java.util.List<com.elink.esua.epdc.dto.UserGridRelationDTO>
* @author work@yujt.net.cn
* @date 2019/10/25 18:20
*/
List<UserGridRelationDTO> listUserGrid(String userId);
}

31
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java

@ -21,10 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcCheckUserRegisterFromDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegisterBindGridFormDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
@ -149,24 +146,42 @@ public interface UserService extends BaseService<UserEntity> {
Result<UserDTO> gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto);
/**
*
* 检查用户注册状态
*
* @params [fromDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcCheckUserRegisterResultDTO>
* @params [fromDto]
* @author liuchuang
* @since 2019/10/25 11:13
*/
Result<EpdcUserRegisterInfoResultDTO> checkUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto);
/**
*
* 保存用户信息或关联网格信息
*
* @params [fromDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO>
* @params [fromDto]
* @author liuchuang
* @since 2019/10/25 14:35
*/
Result<EpdcUserRegisterInfoResultDTO> saveUserOrBindGrid(EpdcUserRegisterBindGridFormDTO fromDto);
/**
* 验证用户完善个人信息时提交的数据
*
* @param userDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/10/26 11:18
*/
Result verifyUserCompleteData(UserDTO userDto);
/**
* 用户完善个人信息
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/10/26 11:53
*/
Result completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto);
}

9
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java

@ -144,4 +144,13 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl<UserGridRelatio
UserGridRelationEntity gridRelationEntity = this.baseDao.selectOne(queryWrapper);
return ConvertUtils.sourceToTarget(gridRelationEntity, UserGridRelationDTO.class);
}
@Override
public List<UserGridRelationDTO> listUserGrid(String userId) {
QueryWrapper<UserGridRelationEntity> wrapper = new QueryWrapper<>();
wrapper.eq(UserFieldConsant.USER_ID, userId)
.orderByDesc(UserFieldConsant.SWITCHED_TIME);
List<UserGridRelationEntity> gridRelationEntities = this.baseDao.selectList(wrapper);
return ConvertUtils.sourceToTarget(gridRelationEntities, UserGridRelationDTO.class);
}
}

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

@ -20,7 +20,9 @@ package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
@ -28,27 +30,22 @@ import com.elink.esua.epdc.commons.tools.constant.NumConstant;
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.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.UserFieldConsant;
import com.elink.esua.epdc.dao.PartyMembersDao;
import com.elink.esua.epdc.dao.UserDao;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.dto.UserTagRelationDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcCheckUserRegisterFromDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegisterBindGridFormDTO;
import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.entity.UserEntity;
import com.elink.esua.epdc.entity.UserGridRelationEntity;
import com.elink.esua.epdc.enums.AppUserAuditStateEnum;
import com.elink.esua.epdc.redis.UserRedis;
import com.elink.esua.epdc.enums.AppUserStatesEnum;
import com.elink.esua.epdc.service.PartyMembersService;
import com.elink.esua.epdc.service.UserGridRelationService;
import com.elink.esua.epdc.service.UserService;
@ -73,10 +70,7 @@ import java.util.Map;
public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService {
@Autowired
private UserRedis userRedis;
@Autowired
private PartyMembersService partyMembersService;
private PartyMembersDao partyMembersDao;
@Autowired
private UserTagRelationService userTagRelationService;
@ -84,59 +78,32 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
@Override
public PageData<UserDTO> page(Map<String, Object> params) {
IPage<UserEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserDTO.class);
this.verifyParams(params);
IPage<UserDTO> iPage = this.getPage(params);
List<UserDTO> userDtoList = this.baseDao.selectListUserDto(params);
return new PageData<>(userDtoList, iPage.getTotal());
}
@Override
public List<UserDTO> list(Map<String, Object> params) {
List<UserEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserDTO.class);
this.verifyParams(params);
return this.baseDao.selectListUserDto(params);
}
private QueryWrapper<UserEntity> getWrapper(Map<String, Object> params) {
UserDetail user = SecurityUser.getUser();
//部门ID列表
List<Long> deptIdList = user.getDeptIdList();
String auditState = (String) params.get("auditState");
String id = (String) params.get(FieldConstant.ID_HUMP);
String streetId = (String) params.get(FieldConstant.STREET_ID_HUMP);
String communityId = (String) params.get(FieldConstant.COMMUNITY_ID_HUMP);
String gridId = (String) params.get(FieldConstant.GRID_ID_HUMP);
String realName = (String) params.get("realName");
if (StringUtils.isNotBlank(realName)) {
realName = realName.trim();
private Map<String, Object> verifyParams(Map<String, Object> params) {
String param = (String) params.get("realName");
if (StringUtils.isNotBlank(param)) {
params.put("realName", param.trim());
}
String mobile = (String) params.get(FieldConstant.MOBILE_HUMP);
if (StringUtils.isNotBlank(mobile)) {
mobile = mobile.trim();
param = (String) params.get(FieldConstant.MOBILE_HUMP);
if (StringUtils.isNotBlank(param)) {
params.put(FieldConstant.MOBILE_HUMP, param.trim());
}
String identityNo = (String) params.get("identityNo");
if (StringUtils.isNotBlank(identityNo)) {
identityNo = identityNo.trim();
param = (String) params.get("identityNo");
if (StringUtils.isNotBlank(param)) {
params.put("identityNo", param.trim());
}
String startTime = (String) params.get("startTime");
String endTime = (String) params.get("endTime");
String isParty = (String) params.get("isParty");
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(streetId), FieldConstant.STREET_ID, streetId);
wrapper.eq(StringUtils.isNotBlank(communityId), FieldConstant.COMMUNITY_ID, communityId);
wrapper.eq(StringUtils.isNotBlank(gridId), FieldConstant.GRID_ID, gridId);
wrapper.like(StringUtils.isNotBlank(realName), UserFieldConsant.REAL_NAME, realName);
wrapper.eq(StringUtils.isNotBlank(mobile), FieldConstant.MOBILE, mobile);
wrapper.eq(StringUtils.isNotBlank(identityNo), UserFieldConsant.IDENTITY_NO, identityNo);
wrapper.ge(StringUtils.isNotBlank(startTime), UserFieldConsant.REGISTER_TIME, startTime);
wrapper.lt(StringUtils.isNotBlank(endTime), UserFieldConsant.REGISTER_TIME, endTime);
wrapper.eq(StringUtils.isNotBlank(auditState), FieldConstant.STATE, auditState);
wrapper.in(CollUtil.isNotEmpty(deptIdList), FieldConstant.GRID_ID, deptIdList);
wrapper.eq(StringUtils.isNotBlank(isParty), UserFieldConsant.PARTY_FLAG, isParty);
return wrapper;
return params;
}
@Override
@ -172,37 +139,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
@Transactional(rollbackFor = Exception.class)
public void audit(UserDTO dto) {
//先删除以前审核未通过的那条数据
this.baseDao.deleteAuditFailureByOpenId(dto.getWxOpenId());
UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class);
//是否通过审核
if (AppUserAuditStateEnum.AUDIT_SUCCESS.value().equals(dto.getPass())) {
entity.setState(AppUserAuditStateEnum.AUDIT_SUCCESS.value());
} else if (AppUserAuditStateEnum.AUDIT_FAILURE.value().equals(dto.getPass())) {
entity.setState(AppUserAuditStateEnum.AUDIT_FAILURE.value());
}
// createdTime作为提交注册时间,registerTime作为注册审核时间(即注册时间)
entity.setRegisterTime(new Date());
updateById(entity);
//判断是否是党员
if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag()) && YesOrNoEnum.YES.value().equals(dto.getPass())) {
PartyMembersDTO partyMembersDTO = ConvertUtils.sourceToTarget(dto, PartyMembersDTO.class);
partyMembersDTO.setStreetName(dto.getStreet());
partyMembersDTO.setCommunityName(dto.getCommunity());
partyMembersDTO.setRegistTime(dto.getRegisterTime());
partyMembersDTO.setGridName(dto.getGrid());
partyMembersDTO.setTagIds(dto.getTagIds());
partyMembersService.save(partyMembersDTO);
} else {
//不是党员的话 插入用户标签关系表
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);
}
}
/*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);
}*/
}
@ -284,8 +232,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
String mobile = formDto.getMobile();
if (StringUtils.isNotBlank(mobile)) {
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
wrapper.eq(FieldConstant.MOBILE, mobile)
.ne(FieldConstant.STATE, AppUserAuditStateEnum.AUDIT_FAILURE.value());
wrapper.eq(FieldConstant.MOBILE, mobile);
Integer count = this.baseDao.selectCount(wrapper);
if (count > NumConstant.ZERO) {
return new Result().error("手机号已被注册");
@ -296,8 +243,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
String identityNo = formDto.getIdentityNo();
if (StringUtils.isNotBlank(identityNo)) {
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
wrapper.eq("IDENTITY_NO", identityNo)
.ne(FieldConstant.STATE, AppUserAuditStateEnum.AUDIT_FAILURE.value());
wrapper.eq(UserFieldConsant.IDENTITY_NO, identityNo);
Integer count = this.baseDao.selectCount(wrapper);
if (count > NumConstant.ZERO) {
return new Result().error("身份证号已被注册");
@ -329,6 +275,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
List<UserGridRelationDTO> userGridList = registerDto.getUserGridList();
for (UserGridRelationDTO dto : userGridList) {
dto.setUserId(userId);
dto.setLeaderFlag(YesOrNoEnum.YES.value());
}
List<UserGridRelationEntity> userGridRelationEntityList = ConvertUtils.sourceToTarget(userGridList, UserGridRelationEntity.class);
@ -373,7 +320,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
}
}
// 未注册
else {
else {
resultDto.setRegisterState(NumConstant.ZERO);
}
@ -407,4 +354,74 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result<EpdcUserRegisterInfoResultDTO>().ok(resultDto);
}
@Override
public Result verifyUserCompleteData(UserDTO userDto) {
UserEntity userEntity = this.selectById(userDto.getId());
if (!userEntity.getMobile().equals(userDto.getMobile())) {
return new Result().error("手机号与注册手机号不匹配");
}
if (AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value().equals(userEntity.getState())
|| AppUserStatesEnum.STATE_INFORMATION_PASSED.value().equals(userEntity.getState())) {
return new Result().error("用户信息已审核通过或正在审核中");
}
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
QueryWrapper<PartyMembersEntity> partyWrapper = new QueryWrapper<>();
partyWrapper.eq(UserFieldConsant.IDENTITY_NO, userDto.getIdentityNo())
.eq(UserFieldConsant.REAL_NAME, userDto.getRealName());
Integer selectCount = this.partyMembersDao.selectCount(partyWrapper);
if (selectCount != NumConstant.ONE) {
return new Result().error("无法匹配党员信息");
}
QueryWrapper<UserEntity> userWrapper = new QueryWrapper<>();
userWrapper.eq(UserFieldConsant.IDENTITY_NO, userDto.getIdentityNo())
.ne(FieldConstant.ID, userDto.getId());
selectCount = this.baseDao.selectCount(userWrapper);
if (selectCount > NumConstant.ZERO) {
return new Result().error("身份证号已被注册");
}
}
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
UserDTO userDto = formDto.getUserDto();
UserGridRelationDTO userGridRelation = formDto.getUserGridRelation();
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
PartyMembersEntity partyMembersEntity = new PartyMembersEntity();
partyMembersEntity.setStreetId(userGridRelation.getStreetId());
partyMembersEntity.setStreetName(userGridRelation.getStreet());
partyMembersEntity.setCommunityId(userGridRelation.getCommunityId());
partyMembersEntity.setCommunityName(userGridRelation.getCommunity());
partyMembersEntity.setGridId(userGridRelation.getGridId());
partyMembersEntity.setGridName(userGridRelation.getGrid());
UpdateWrapper<PartyMembersEntity> partyUpdate = new UpdateWrapper<>();
partyUpdate.eq(UserFieldConsant.IDENTITY_NO, userDto.getIdentityNo())
.eq(UserFieldConsant.REAL_NAME, userDto.getRealName());
if (this.partyMembersDao.update(partyMembersEntity, partyUpdate) != NumConstant.ONE) {
throw new RenException("保存党员信息异常");
}
}
UserEntity userEntity = ConvertUtils.sourceToTarget(userDto, UserEntity.class);
boolean updateUser = this.updateById(userEntity);
if (!updateUser) {
throw new RenException("保存用户信息异常");
}
return new Result();
}
}

29
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

@ -60,5 +60,34 @@
ORDER BY f.CREATED_TIME DESC
LIMIT 1
</select>
<select id="selectListUserDto" resultType="com.elink.esua.epdc.dto.UserDTO">
SELECT
u.id,
u.REAL_NAME,
u.MOBILE,
u.REGISTER_TIME,
IDENTITY_NO,
STATE,
PARTY_FLAG
FROM
epdc_user u
LEFT JOIN epdc_user_grid_relation ug ON u.ID = ug.USER_ID
where
u.del_flag = '0'
<if test="startTime != '' and endTime != ''"> and u.register_time between #{startTime} and #{endTime}</if>
<if test="state != '' and state != null"> and u.state = #{state}</if>
<if test="realName != '' and realName != null"> and u.real_name like '%${realName}%'</if>
<if test="mobile != '' and mobile != null"> and u.mobile like '%${mobile}%'</if>
<if test="identityNo != '' and identityNo != null"> and u.identity_no like '%${identityNo}%'</if>
<if test="partyFlag != '' and partyFlag != null"> and u.party_flag = #{partyFlag}</if>
<if test="streetId != '' and streetId != null"> and ug.street_id = #{streetId}</if>
<if test="communityId != '' and communityId != null"> and ug.community_id = #{communityId}</if>
<if test="gridId != '' and gridId != null"> and ug.grid_id = #{gridId}</if>
GROUP BY
u.ID
ORDER BY
u.register_time desc
</select>
</mapper>
Loading…
Cancel
Save