diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java new file mode 100644 index 000000000..2cb93a0b6 --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java new file mode 100644 index 000000000..1842fb2a9 --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index 58a2c1424..ad69bfdbb 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/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 * @author yujintao * @date 2019/9/10 20:47 */ + @Deprecated @GetMapping("user/ma/getToken") public Result 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 + * @params [formDto] * @author liuchuang * @since 2019/10/24 16:32 */ - @GetMapping("user/ma/v2/getToken") + /*@GetMapping("user/ma/v2/getToken") public Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto) { ValidatorUtils.validateEntity(formDto); return appUserService.getMaV2Token(formDto); + }*/ + + /** + * 用户完善个人信息-保存 + * + * @param tokenDto + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/26 13:41 + */ + @PostMapping("user/completeInfo") + public Result 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 + * @author work@yujt.net.cn + * @date 2019/10/26 15:07 + */ + @GetMapping("prepareComplete") + public Result prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) { + return appUserService.prepareCompleteUserInfo(tokenDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java new file mode 100644 index 000000000..8a84d7e35 --- /dev/null +++ b/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 + * @author work@yujt.net.cn + * @date 2019/10/26 10:48 + */ + @GetMapping("user/ma" + Constant.VERSION_CONTROL + "getToken") + public Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.getMaV2Token(formDto); + } +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 43a0797d5..d09a9e8ca 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -38,6 +38,17 @@ public interface UserFeignClient { @GetMapping("app-user/epdc-app/user/getByOpenId/{openId}") Result getUserInfoByOpenId(@PathVariable("openId") String openId); + /** + * 查询用户基础信息 + * + * @param userId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/26 15:16 + */ + @GetMapping("app-user/epdc-app/user/getById/{userId}") + Result 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> listGridForLeader(@PathVariable("userId") String userId); /** - * * 查询用户注册状态 * - * @params [fromDto] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [fromDto] * @author liuchuang * @since 2019/10/25 10:50 */ @@ -197,11 +229,10 @@ public interface UserFeignClient { Result getUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto); /** - * * 用户注册或绑定网格 * - * @params [formDto] * @return com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO + * @params [formDto] * @author liuchuang * @since 2019/10/25 14:25 */ diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 42e6e1364..b594d29d1 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/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 getUserInfoById(String userId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoById", userId); + } + @Override public Result 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 getInfoById(String id) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getInfoById", id); diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index 66d83a9eb..c879d3b0d 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/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 getMaToken(EpdcAppUserMaTokenFormDTO formDto); /** @@ -147,13 +146,33 @@ public interface AppUserService { Result> listGridForLeader(String userId); /** - * * 用户注册、获取Token * - * @params [formDto] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] * @author liuchuang * @since 2019/10/24 16:33 */ Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto); + + /** + * 用户完善个人信息-保存 + * + * @param tokenDto + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/26 11:05 + */ + Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto); + + /** + * 用于用户完善个人信息页面,获取个人信息 + * + * @param tokenDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/26 15:08 + */ + Result prepareCompleteUserInfo(TokenDto tokenDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 6db28773e..8665aa599 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -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 + * @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 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 prepareCompleteUserInfo(TokenDto tokenDto) { + + Result 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().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 */ diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java index a6ad68aad..4fb7d7b44 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java +++ b/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"; } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java index 98c08fd56..3a599ee6a 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java +++ b/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; /** * 党员标签 */ diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserCompleteInfoFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserCompleteInfoFormDTO.java new file mode 100644 index 000000000..2db9f93e6 --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java index 90c268646..2e3dfc0d1 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java @@ -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 + * @author work@yujt.net.cn + * @date 2019/10/26 15:13 + */ + @GetMapping("getById/{userId}") + public Result 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 + * @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 + * @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); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java index d170b8d68..2c7cce5b9 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java +++ b/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> page( @RequestParam Map params){ + @DataFilter(tableAlias = "ug", isPendingCreator = false, deptId = "GRID_ID", prefix = "AND") + public Result> page(@RequestParam Map params) { PageData page = userService.page(params); - return new Result>().ok(page); } @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ + public Result get(@PathVariable("id") String id) { UserDTO data = userService.get(id); return new Result().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 params, HttpServletResponse response) throws Exception { + @DataFilter(tableAlias = "ug", isPendingCreator = false, deptId = "GRID_ID", prefix = "AND") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { List 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); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java index 71e31d956..9b11331ae 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java +++ b/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> listUserGrid(@PathVariable("userId") String userId){ + List data = userGridRelationService.listUserGrid(userId); + return new Result>().ok(data); + } + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java index 61b3e7d48..2cdd5714c 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -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 { * @date 2019/9/27 10:08 */ int deleteAuditFailureByOpenId(@Param("wxOpenId") String wxOpenId); + + /** + * 查询用户列表 + * + * @param params + * @return java.util.List + * @author work@yujt.net.cn + * @date 2019/10/25 16:13 + */ + List selectListUserDto(Map params); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java index d365ccf58..46245fd9f 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java +++ b/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> 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 + * @author work@yujt.net.cn + * @date 2019/10/25 18:20 + */ + List listUserGrid(String userId); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java index e271c29c3..db875d4bf 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -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 { Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto); /** - * * 检查用户注册状态 * - * @params [fromDto] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [fromDto] * @author liuchuang * @since 2019/10/25 11:13 */ Result checkUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto); /** - * * 保存用户信息或关联网格信息 * - * @params [fromDto] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [fromDto] * @author liuchuang * @since 2019/10/25 14:35 */ Result 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); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java index a705c0b22..6440119ad 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java +++ b/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 listUserGrid(String userId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(UserFieldConsant.USER_ID, userId) + .orderByDesc(UserFieldConsant.SWITCHED_TIME); + List gridRelationEntities = this.baseDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(gridRelationEntities, UserGridRelationDTO.class); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index b6bfccf93..57b15833d 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -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 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 implem @Override public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - - return getPageData(page, UserDTO.class); + this.verifyParams(params); + IPage iPage = this.getPage(params); + List userDtoList = this.baseDao.selectListUserDto(params); + return new PageData<>(userDtoList, iPage.getTotal()); } @Override public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - return ConvertUtils.sourceToTarget(entityList, UserDTO.class); + this.verifyParams(params); + return this.baseDao.selectListUserDto(params); } - private QueryWrapper getWrapper(Map params) { - UserDetail user = SecurityUser.getUser(); - //部门ID列表 - List 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 verifyParams(Map 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 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 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 implem String mobile = formDto.getMobile(); if (StringUtils.isNotBlank(mobile)) { QueryWrapper 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 implem String identityNo = formDto.getIdentityNo(); if (StringUtils.isNotBlank(identityNo)) { QueryWrapper 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 implem List userGridList = registerDto.getUserGridList(); for (UserGridRelationDTO dto : userGridList) { dto.setUserId(userId); + dto.setLeaderFlag(YesOrNoEnum.YES.value()); } List userGridRelationEntityList = ConvertUtils.sourceToTarget(userGridList, UserGridRelationEntity.class); @@ -373,7 +320,7 @@ public class UserServiceImpl extends BaseServiceImpl implem } } // 未注册 - else { + else { resultDto.setRegisterState(NumConstant.ZERO); } @@ -407,4 +354,74 @@ public class UserServiceImpl extends BaseServiceImpl implem return new Result().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 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 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 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(); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index 4257479ea..0ec6f7def 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -60,5 +60,34 @@ ORDER BY f.CREATED_TIME DESC LIMIT 1 + \ No newline at end of file