Browse Source

Merge branch 'dev_newRegister' of http://121.42.41.42:7070/r/esua-epdc-cloud into dev_newRegister

dev
管理员 7 years ago
parent
commit
32e70c0772
  1. 4
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java
  2. 4
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysRoleEntity.java
  3. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  4. 3
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml
  5. 5
      esua-epdc/epdc-gateway/src/main/resources/application.yml
  6. 36
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java
  7. 31
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterFormDTO.java
  8. 54
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java
  9. 2
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppAuthorizationDTO.java
  10. 64
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java
  11. 56
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  12. 42
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java
  13. 74
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  14. 34
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  15. 53
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
  16. 331
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  17. 2
      esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java
  18. 1
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/constant/UserFieldConsant.java
  19. 9
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java
  20. 5
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridRelationDTO.java
  21. 23
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserCompleteInfoFormDTO.java
  22. 24
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCheckUserRegisterFromDTO.java
  23. 31
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserRegisterBindGridFormDTO.java
  24. 35
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcUserRegisterInfoResultDTO.java
  25. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserAuditStateEnum.java
  26. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserRegisterSourceEnum.java
  27. 51
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserStateEnum.java
  28. 47
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserStatesEnum.java
  29. 54
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/async/PartyTask.java
  30. 56
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/config/StreamUtils.java
  31. 90
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  32. 55
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java
  33. 37
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  34. 8
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridRelationController.java
  35. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  36. 4
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java
  37. 5
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridRelationEntity.java
  38. 10
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/PartyMembersService.java
  39. 20
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java
  40. 44
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  41. 9
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java
  42. 18
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java
  43. 307
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  44. 29
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

4
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java

@ -43,9 +43,9 @@ public class SysRoleDTO implements Serializable {
private String name;
/**
* 角色编码
* 角色类型键值(数据字典sysRoleType)
*/
private String code;
private String typeKey;
/**
* 备注

4
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysRoleEntity.java

@ -35,9 +35,9 @@ public class SysRoleEntity extends BaseEntity {
*/
private String name;
/**
* 角色编码
* 角色类型键值(数据字典sysRoleType)
*/
private String code;
private String typeKey;
/**
* 备注
*/

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -99,7 +99,7 @@
com.id communityId,
gri.`name` grid,
gri.id gridId,
gri.created_time switchedTime
gri.create_date switchedTime
FROM
sys_dept gri
LEFT JOIN sys_dept com ON gri.pid = com.id

3
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml

@ -70,8 +70,9 @@
LEFT JOIN sys_dept d ON d.id = rds.dept_id
WHERE
d.type_key = 'grid_party'
AND r.`code` = 'gridLeader'
AND r.type_key = 'gridLeader'
AND u.mobile = #{mobile}
AND u.del_flag = 0
ORDER BY
d.create_date DESC
</select>

5
esua-epdc/epdc-gateway/src/main/resources/application.yml

@ -207,4 +207,7 @@ epdc:
- /api/message/sms/registerResult # 发送用户注册审核结果
- /api/events/issue/upload # 上传图片
- /api/app-user/user/mp/regist # 公众号用户注册
- /api/app-user/user/ma/regist # 小程序用户注册
- /api/app-user/user/ma/getToken # 小程序用户 登录
- /api/app-user/user/ma/regist # 小程序用户 注册
- /api/app-user/user/ma/gridLeaderRegister # 小程序用户 网格长注册
- /api/app-user/user/ma/v2/getToken # 小程序用户 注册或登录(版本v2)

36
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
*
* 更新用户微信信息Form DTO
*
* @Authorliuchuang
* @Date2019/10/25 15:55
*/
@Data
public class EpdcAppUserMaInfoFormDTO implements Serializable {
private static final long serialVersionUID = 201029992792275120L;
/**
* 微信code
*/
@NotBlank(message = "微信code不能为空")
private String wxCode;
/**
* 用户信息
*/
@NotBlank(message = "用户信息不能为空")
private String encryptedData;
/**
* 加密算法的初始向量
*/
@NotBlank(message = "初始向量不能为空")
private String iv;
}

31
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterFormDTO.java

@ -0,0 +1,31 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
*
* 用户注册获取Token
*
* @Authorliuchuang
* @Date2019/10/24 16:25
*/
@Data
public class EpdcAppUserRegisterFormDTO implements Serializable {
private static final long serialVersionUID = -5518237917951689101L;
/**
* 微信code
*/
@NotBlank(message = "微信code不能为空")
private String wxCode;
/**
* 网格ID
*/
@NotNull(message = "网格ID不能为空")
private Long gridId;
}

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

@ -0,0 +1,54 @@
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;
}

2
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppAuthorizationDTO.java

@ -36,7 +36,7 @@ public class EpdcAppAuthorizationDTO implements Serializable {
*/
private String userId;
/**
* 用户状态[AppUserStateEnum]
* 用户状态[AppUserStatesEnum]
*/
private String userState;
/**

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;
}

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

@ -4,18 +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.EpdcAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppUserTokenFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppSaveWxFormIdFormDTO;
import com.elink.esua.epdc.dto.form.EpdcCheckRegisterFormDTO;
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.*;
@ -66,6 +61,7 @@ public class ApiAppUserController {
/**
* 小程序端用户注册
* {@link com.elink.esua.epdc.controller.v2.ApiAppUserV2Controller#getMaV2Token(EpdcAppUserRegisterFormDTO)}
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
@ -128,6 +124,7 @@ public class ApiAppUserController {
* @author yujintao
* @date 2019/9/10 20:47
*/
@Deprecated
@GetMapping("user/ma/getToken")
public Result<EpdcAppAuthorizationDTO> getMaToken(EpdcAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
@ -186,4 +183,47 @@ public class ApiAppUserController {
public Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(@LoginUser TokenDto userDetail) {
return appUserService.listGridForLeader(userDetail.getUserId());
}
/**
*
* 更新用户微信信息
*
* @params [tokenDto, formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/28 9:58
*/
@PostMapping("user/ma/updateWxInfo")
public Result updateWxInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcAppUserMaInfoFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.updateWxInfo(tokenDto, 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);
}
}

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

@ -6,9 +6,7 @@ import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.dto.UserWxFormIdDTO;
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.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
@ -40,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);
/**
* 获取用户信息登录用
*
@ -71,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);
/**
* 验证用户提交的注册信息
@ -84,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<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto);
/**
* 移动端获取用户信息
*
@ -185,4 +216,39 @@ public interface UserFeignClient {
*/
@GetMapping("app-user/epdc-app/usergrid/listGridForLeader/{userId}")
Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(@PathVariable("userId") String userId);
/**
* 查询用户注册状态
*
* @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
*/
@GetMapping("app-user/epdc-app/user/checkUserRegister")
Result<EpdcUserRegisterInfoResultDTO> getUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto);
/**
* 用户注册或绑定网格
*
* @return com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO
* @params [formDto]
* @author liuchuang
* @since 2019/10/25 14:25
*/
@PostMapping("app-user/epdc-app/user/registerOrBindGrid")
Result<EpdcUserRegisterInfoResultDTO> registerOrBindGrid(EpdcUserRegisterBindGridFormDTO formDto);
/**
*
* 更新用户微信信息
*
* @params [userDTO]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/25 17:07
*/
@PostMapping("app-user/epdc-app/user/updateWxInfo")
Result updateWxInfo(UserDTO userDTO);
}

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

@ -7,9 +7,7 @@ import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.dto.UserWxFormIdDTO;
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.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.UserFeignClient;
import org.springframework.stereotype.Component;
@ -28,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);
@ -48,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<UserDTO> 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);
@ -92,4 +105,19 @@ public class UserFeignClientFallback implements UserFeignClient {
public Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "listGridForLeader", userId);
}
@Override
public Result<EpdcUserRegisterInfoResultDTO> getUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserRegisterState", fromDto);
}
@Override
public Result<EpdcUserRegisterInfoResultDTO> registerOrBindGrid(EpdcUserRegisterBindGridFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "registerOrBindGrid", formDto);
}
@Override
public Result updateWxInfo(UserDTO userDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "updateWxInfo", userDTO);
}
}

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

@ -2,18 +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.EpdcAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppUserTokenFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppSaveWxFormIdFormDTO;
import com.elink.esua.epdc.dto.form.EpdcCheckRegisterFormDTO;
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;
@ -148,4 +143,46 @@ public interface AppUserService {
* @date 2019/10/23 15:58
*/
Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(String userId);
/**
* 用户注册获取Token
*
* @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);
/**
*
* 更新用户微信信息
*
* @params [userDetail, formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/25 16:26
*/
Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO 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);
}

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

@ -2,9 +2,9 @@ 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.common.token.util.TokenUtil;
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;
@ -14,18 +14,14 @@ import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
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.EpdcLeaderGridResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
import com.elink.esua.epdc.dto.form.EpdcAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppUserTokenFormDTO;
import com.elink.esua.epdc.dto.form.EpdcAppSaveWxFormIdFormDTO;
import com.elink.esua.epdc.dto.form.EpdcCheckRegisterFormDTO;
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.enums.AppUserAuditStateEnum;
import com.elink.esua.epdc.enums.AppUserRegisterSourceEnum;
import com.elink.esua.epdc.enums.AppUserRegisterWayEnum;
import com.elink.esua.epdc.enums.AppUserStateEnum;
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;
import com.elink.esua.epdc.jwt.JwtTokenProperties;
@ -73,9 +69,6 @@ public class AppUserServiceImpl implements AppUserService {
@Autowired
private UserFeignClient userFeignClient;
@Autowired
private TokenUtil tokenUtil;
@Autowired
private JwtTokenProperties jwtTokenProperties;
@ -161,32 +154,21 @@ public class AppUserServiceImpl implements AppUserService {
EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO();
// 用户未注册
if (null == userDto) {
authorization.setUserState(AppUserStateEnum.UNREGISTERED.value());
authorization.setUserState(AppUserStatesEnum.STATE_NOT_REGISTERED.value());
return new Result().ok(authorization);
}
TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class);
tokenDto.setUserId(userDto.getId());
String state = userDto.getState();
// 用户注册审核失败
if (AppUserAuditStateEnum.AUDIT_FAILURE.value().equals(state)) {
authorization.setUserState(AppUserStateEnum.AUDIT_FAILURE.value());
Result result = new Result().ok(authorization);
result.setMsg(userDto.getRemark());
return result;
}
// 用户提交注册、正在等待审核
else if (AppUserAuditStateEnum.UNDER_AUDIT.value().equals(state)) {
authorization.setUserState(AppUserStateEnum.UNDER_AUDIT.value());
return new Result().ok(authorization);
}
// 用户已注册且审核通过,正常登录系统
else if (AppUserAuditStateEnum.AUDIT_SUCCESS.value().equals(state)) {
TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class);
tokenDto.setUserId(userDto.getId());
authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid());
authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), userDto.getState());
return new Result().ok(authorization);
} else {
return new Result().error("Login failed");
Result result = new Result().ok(authorization);
// 已注册,未完善信息
if (AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value().equals(state)) {
result.setMsg(userDto.getRemark());
}
return result;
}
@Override
@ -244,7 +226,7 @@ public class AppUserServiceImpl implements AppUserService {
TokenDto tokenDto = ConvertUtils.sourceToTarget(newAppUser, TokenDto.class);
tokenDto.setUserId(newAppUser.getId());
EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, newAppUser.getGrid());
EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, newAppUser.getGrid(), AppUserStatesEnum.STATE_REGISTERED.value());
return new Result().ok(authorization);
}
@ -270,9 +252,9 @@ public class AppUserServiceImpl implements AppUserService {
appUser.setWxOpenId(wxMaUser.getOpenid());
appUser.setLastLoginTime(now);
appUser.setRegisterTime(now);
appUser.setState(AppUserAuditStateEnum.AUDIT_SUCCESS.value());
appUser.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
appUser.setGridId(NumConstant.ZERO_L);
appUser.setRegisterSource(AppUserRegisterSourceEnum.WA.value());
appUser.setRegisterSource(AppUserRegisterSourceEnum.MA.value());
appUser.setRegisterWay(AppUserRegisterWayEnum.WX.value());
appUser.setMobile(mobile);
appUser.setNickname("网格长-"
@ -282,7 +264,6 @@ public class AppUserServiceImpl implements AppUserService {
appUser.setRealName(sysUser.getRealName());
appUser.setEmail(sysUser.getEmail());
appUser.setPartyFlag(YesOrNoEnum.NO.value());
appUser.setLeaderFlag(YesOrNoEnum.NO.value());
PhoneDto phoneDto = PhoneUtil.getPhoneDto(mobile);
if (phoneDto != null) {
@ -555,7 +536,7 @@ public class AppUserServiceImpl implements AppUserService {
UserGridRelationDTO userGridRelation = appUserResult.getData();
userDetail.setGridId(Long.parseLong(gridId));
EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(userDetail, userGridRelation.getGrid());
EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(userDetail, userGridRelation.getGrid(), AppUserStatesEnum.STATE_REGISTERED.value());
return new Result().ok(authorization);
}
@ -567,15 +548,15 @@ public class AppUserServiceImpl implements AppUserService {
/**
* 组装成功登录的数据
* EpdcAppAuthorizationDTO的userState属性默认设置为AppUserStateEnum.REGISTERED
*
* @param tokenDto 缓存的用户数据
* @param grid 网格名称
* @param tokenDto 缓存的用户数据
* @param grid 网格名称
* @param userState AppUserStatesEnum
* @return com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO
* @author work@yujt.net.cn
* @date 2019/10/23 13:57
*/
private EpdcAppAuthorizationDTO packageEpdcAppAuthorization(TokenDto tokenDto, String grid) {
private EpdcAppAuthorizationDTO packageEpdcAppAuthorization(TokenDto tokenDto, String grid, String userState) {
String userId = tokenDto.getUserId();
// 生成token
String token = jwtTokenUtils.generateToken(userId);
@ -584,7 +565,7 @@ public class AppUserServiceImpl implements AppUserService {
cpUserDetailRedis.set(tokenDto, expire);
EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO();
authorization.setUserState(AppUserStateEnum.REGISTERED.value());
authorization.setUserState(userState);
authorization.setToken(token);
authorization.setUserId(userId);
authorization.setExpire((long) expire);
@ -595,4 +576,268 @@ public class AppUserServiceImpl implements AppUserService {
return authorization;
}
@Override
public Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto) {
WxMaJscode2SessionResult wxMaResult = this.getWxMaUser(formDto.getWxCode());
String openId = wxMaResult.getOpenid();
String unionId = wxMaResult.getUnionid();
// 查询当前微信注册状态
EpdcCheckUserRegisterFromDTO checkFromDto = new EpdcCheckUserRegisterFromDTO();
checkFromDto.setOpenId(openId);
checkFromDto.setGridId(formDto.getGridId());
Result<EpdcUserRegisterInfoResultDTO> userResult = userFeignClient.getUserRegisterState(checkFromDto);
if (!userResult.success()) {
return new Result<EpdcAppAuthorizationDTO>().error(userResult.getMsg());
}
// IP地址
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
return this.dealWithUserRegisterState(userResult.getData(), openId, unionId, IpUtils.getIpAddr(request));
}
/**
* 针对不同用户注册状态进行处理
*
* @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
*/
private Result<EpdcAppAuthorizationDTO> dealWithUserRegisterState(EpdcUserRegisterInfoResultDTO userResult, String openId, String unionId, String ipAddress) {
EpdcUserRegisterBindGridFormDTO registerBindGridFormDto = new EpdcUserRegisterBindGridFormDTO();
// 用户注册状态 0-未注册未绑定网格,1-已注册未绑定当前网格,2-已注册已绑定当前网格
Integer registerState = userResult.getRegisterState();
UserDTO registeredUser = userResult.getUserDTO();
Long gridId = userResult.getGridId();
// 未注册
if (NumConstant.ZERO == registerState) {
// 组装用户注册信息
registerBindGridFormDto.setRegisterState(NumConstant.ZERO);
registeredUser = this.packageUserInfo(openId, unionId, ipAddress);
registerBindGridFormDto.setUserDTO(registeredUser);
}
// 已注册未绑定当前网格
else if (NumConstant.ONE == registerState) {
registerBindGridFormDto.setRegisterState(NumConstant.ONE);
registerBindGridFormDto.setUserDTO(registeredUser);
}
// 用户注册或绑定网格
if (NumConstant.TWO != registerState) {
// 组装用户关联网格信息
registerBindGridFormDto.setGridRelationDTO(this.packageUserGridRelationInfo(gridId));
// 用户并绑定网格
Result<EpdcUserRegisterInfoResultDTO> registerBindGridResultDto = userFeignClient.registerOrBindGrid(registerBindGridFormDto);
if (!registerBindGridResultDto.success()) {
return new Result<EpdcAppAuthorizationDTO>().error(registerBindGridResultDto.getMsg());
}
userResult = registerBindGridResultDto.getData();
registeredUser = userResult.getUserDTO();
}
// 已注册已绑定当前网格
TokenDto tokenDto = ConvertUtils.sourceToTarget(registeredUser, TokenDto.class);
tokenDto.setUserId(registeredUser.getId());
tokenDto.setGridId(gridId);
EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, userResult.getGrid(), registeredUser.getState());
return new Result<EpdcAppAuthorizationDTO>().ok(authorization);
}
/**
* 组装用户注册信息
*
* @return com.elink.esua.epdc.dto.UserDTO
* @params [openId, unionId, completeDept]
* @author liuchuang
* @since 2019/10/24 18:16
*/
private UserDTO packageUserInfo(String openId, String unionId, String ipAddress) {
UserDTO userDto = new UserDTO();
userDto.setWxOpenId(openId);
userDto.setWxUnionId(unionId);
userDto.setNickname("用户" + RandomUtil.getNewRandomCode(4));
userDto.setFaceImg(USER_FACE);
userDto.setState(AppUserStatesEnum.STATE_REGISTERED.value());
userDto.setPartyFlag(YesOrNoEnum.NO.value());
userDto.setLastLoginIp(ipAddress);
Date now = new Date();
userDto.setRegisterTime(now);
userDto.setLastLoginTime(now);
userDto.setRegisterWay(AppUserRegisterWayEnum.WX.value());
userDto.setRegisterSource(AppUserRegisterSourceEnum.MA.value());
return userDto;
}
@Override
public Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) {
UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class);
// 党员提交,验证身份证号
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
String identityNo = userDto.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(userDto.getMobile(), infoDto.getSmsCode());
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(userDto);
dto.setUserDto(userDto);
dto.setUserGridRelation(userGrid);
Result<UserDTO> completeResult = userFeignClient.completeUserInfo(dto);
if (!completeResult.success()) {
return new Result().error(completeResult.getMsg());
}
UserDTO user = completeResult.getData();
tokenDto.setRealName(user.getRealName());
tokenDto.setNickname(user.getNickname());
tokenDto.setMobile(user.getMobile());
tokenDto.setPartyFlag(user.getPartyFlag());
EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(tokenDto, userGrid.getGrid(), userDto.getState());
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(UserDTO userDto) {
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
userDto.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
userDto.setSex(IdentityNoUtils.getSex(userDto.getIdentityNo()));
userDto.setNickname(
userDto.getRoad().concat("-").concat(userDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE))
.concat(NumConstant.ZERO_STR.equals(userDto.getSex()) ? "女士" : "先生"));
userDto.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(userDto.getIdentityNo()), DateUtils.DATE_PATTERN));
} else {
userDto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
}
PhoneDto phoneDto = PhoneUtil.getPhoneDto(userDto.getMobile());
if (phoneDto != null) {
userDto.setMobileCarrier(phoneDto.getCarrier());
userDto.setMobileCity(phoneDto.getCityName());
userDto.setMobileProvince(phoneDto.getProvinceName());
}
return userDto;
}
/**
* 组装用户关联网格信息
*
* @return com.elink.esua.epdc.dto.UserGridRelationDTO
* @params [gridId]
* @author liuchuang
* @since 2019/10/25 13:53
*/
private UserGridRelationDTO packageUserGridRelationInfo(Long gridId) {
// 获取网格机构详情
Result<CompleteDeptDTO> adminDeptResult = adminFeignClient.getCompleteDept(gridId);
if (!adminDeptResult.success() || null == adminDeptResult.getData()) {
throw new RenException("查询网格信息失败");
}
CompleteDeptDTO completeDept = adminDeptResult.getData();
UserGridRelationDTO gridRelationDTO = new UserGridRelationDTO();
gridRelationDTO.setDistrictId(completeDept.getDistrictId());
gridRelationDTO.setDistrict(completeDept.getDistrict());
gridRelationDTO.setStreet(completeDept.getStreet());
gridRelationDTO.setStreetId(completeDept.getStreetId());
gridRelationDTO.setCommunity(completeDept.getCommunity());
gridRelationDTO.setCommunityId(completeDept.getCommunityId());
gridRelationDTO.setGrid(completeDept.getGrid());
gridRelationDTO.setGridId(completeDept.getGridId());
gridRelationDTO.setSwitchedTime(new Date());
gridRelationDTO.setLeaderFlag(NumConstant.ZERO_STR);
return gridRelationDTO;
}
@Override
public Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO formDto) {
if (null == userDetail || StringUtils.isEmpty(userDetail.getUserId())) {
return new Result().error("获取用户信息失败");
}
String sessionKey = this.getUserSessionKey(formDto.getWxCode());
WxMaUserInfo wxMaUserInfo = wxMaService.getUserService().getUserInfo(sessionKey, formDto.getEncryptedData(), formDto.getIv());
UserDTO userDTO = new UserDTO();
userDTO.setId(userDetail.getUserId());
userDTO.setNickname(wxMaUserInfo.getNickName());
userDTO.setFaceImg(wxMaUserInfo.getAvatarUrl());
userDTO.setSex(wxMaUserInfo.getGender());
Result updateWxInfoResult = userFeignClient.updateWxInfo(userDTO);
if (!updateWxInfoResult.success()) {
return new Result().error("更新用户信息失败");
}
// 更新用户缓存信息
TokenDto tokenDto = ConvertUtils.sourceToTarget(userDTO, TokenDto.class);
tokenDto.setUserId(userDetail.getUserId());
tokenDto.setGridId(userDetail.getGridId());
tokenDto.setMobile(userDetail.getMobile());
tokenDto.setPartyFlag(userDetail.getPartyFlag());
tokenDto.setRealName(userDetail.getRealName());
long expire = cpUserDetailRedis.getExpire(userDetail.getUserId());
cpUserDetailRedis.logout(userDetail.getUserId());
cpUserDetailRedis.set(tokenDto, expire);
return new Result();
}
/**
* 根据微信code获取session_key
*
* @return java.lang.String
* @params [code]
* @author liuchuang
* @since 2019/10/25 16:31
*/
private String getUserSessionKey(String code) {
try {
WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(code);
if (wxMaJscode2SessionResult != null) {
return wxMaJscode2SessionResult.getSessionKey();
}
} catch (WxErrorException e) {
e.printStackTrace();
throw new RenException(e.getError().getErrorMsg());
}
return null;
}
}

2
esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java

@ -123,7 +123,7 @@ public class OssController {
/**
* 下载阿里云oss服务器上的文件
*
* @param url 完整的访问连击
* @param url 完整的访问链接
* @param response 浏览器返回
* @return void
* @author work@yujt.net.cn

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";
}

9
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;
/**
* 党员标签
*/
@ -312,9 +308,4 @@ public class UserDTO implements Serializable {
*/
private String remark;
/**
* 是否是网格长 0否1是
*/
private String leaderFlag;
}

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

@ -118,4 +118,9 @@ public class UserGridRelationDTO implements Serializable {
*/
private String delFlag;
/**
* 是否是网格长 0否1是
*/
private String leaderFlag;
}

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;
}

24
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCheckUserRegisterFromDTO.java

@ -0,0 +1,24 @@
package com.elink.esua.epdc.dto.epdc.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Authorliuchuang
* @Date2019/10/25 10:44
*/
@Data
public class EpdcCheckUserRegisterFromDTO implements Serializable {
private static final long serialVersionUID = 5007833389572469304L;
/**
* 微信openid
*/
private String openId;
/**
* 网格ID
*/
private Long gridId;
}

31
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserRegisterBindGridFormDTO.java

@ -0,0 +1,31 @@
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;
/**
* @Authorliuchuang
* @Date2019/10/25 13:42
*/
@Data
public class EpdcUserRegisterBindGridFormDTO implements Serializable {
private static final long serialVersionUID = -1727679108959262842L;
/**
* 注册状态 0-注册并绑定网格1-绑定网格
*/
private Integer registerState;
/**
* 用户信息
*/
private UserDTO userDTO;
/**
* 关联网格信息
*/
private UserGridRelationDTO gridRelationDTO;
}

35
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcUserRegisterInfoResultDTO.java

@ -0,0 +1,35 @@
package com.elink.esua.epdc.dto.epdc.result;
import com.elink.esua.epdc.dto.UserDTO;
import lombok.Data;
import java.io.Serializable;
/**
* @Authorliuchuang
* @Date2019/10/25 10:36
*/
@Data
public class EpdcUserRegisterInfoResultDTO implements Serializable {
private static final long serialVersionUID = -3864608925023310419L;
/**
* 注册状态 0-未注册未绑定网格1-已注册未绑定当前网格2-已注册已绑定当前网格
*/
private Integer registerState;
/**
* 网格
*/
private String grid;
/**
* 网格ID
*/
private Long gridId;
/**
* 用户信息
*/
private UserDTO userDTO;
}

2
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserAuditStateEnum.java

@ -4,11 +4,13 @@ import com.elink.esua.epdc.commons.tools.constant.NumConstant;
/**
* 用户审核状态枚举
* 项目二期所有的审核状态统一使用枚举类{@link AppUserStatesEnum}的枚举项
*
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/7 10:50
*/
@Deprecated
public enum AppUserAuditStateEnum {
/**

2
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserRegisterSourceEnum.java

@ -17,7 +17,7 @@ public enum AppUserRegisterSourceEnum {
/**
* 微信小程序
*/
WA("wa");
MA("ma");
private String value;

51
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserStateEnum.java

@ -1,51 +0,0 @@
package com.elink.esua.epdc.enums;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
/**
* 用户状态枚举
*
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/7 10:50
*/
public enum AppUserStateEnum {
/**
* 0已注册
*/
REGISTERED(NumConstant.ZERO_STR),
/**
* 1未注册需扫码
*/
UNREGISTERED(NumConstant.ONE_STR),
/**
* 2注册审核中
*/
UNDER_AUDIT(NumConstant.TWO_STR),
/**
* 3注册审核失败
*/
AUDIT_FAILURE(NumConstant.THREE_STR),
/**
* 未完善信息
*/
INCOMPLETE_INFORMATION(NumConstant.FOUR_STR),
/**
* 已完善信息
*/
COMPLETED_INFORMATION(NumConstant.FIVE_STR);
private String value;
AppUserStateEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
}

47
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/enums/AppUserStatesEnum.java

@ -0,0 +1,47 @@
package com.elink.esua.epdc.enums;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
/**
* 移动端用户状态枚举
*
* @Authorliuchuang
* @Date2019/10/25 9:32
*/
public enum AppUserStatesEnum {
/**
* 已注册
*/
STATE_REGISTERED(NumConstant.ZERO_STR),
/**
* 已完善信息待审核
*/
STATE_COMPLETED_INFORMATION_PENDING_REVIEW(NumConstant.ONE_STR),
/**
* 信息审核不通过
*/
STATE_INFORMATION_NOT_PASSED(NumConstant.TWO_STR),
/**
* 信息审核通过
*/
STATE_INFORMATION_PASSED(NumConstant.THREE_STR),
/**
* 用户未注册
*/
STATE_NOT_REGISTERED(NumConstant.FOUR_STR);
private String value;
AppUserStatesEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
}

54
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/async/PartyTask.java

@ -0,0 +1,54 @@
package com.elink.esua.epdc.async;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.alibaba.fastjson.JSON;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.service.PartyMembersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
/**
* @author: qushutong
* @Date: 2019/10/24 16:00
* @Description: 党员导入异步
*/
@Component
public class PartyTask {
@Autowired
private PartyMembersService partyMembersService;
/***
* 批量插入党员
* @param file
* @return void
* @author qushutong
* @date 2019/10/24 16:02
*/
@Async
public void insertPartyList(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
ImportParams importParams = new ImportParams();
try {
List<PartyMembersExcel> partyList = ExcelImportUtil.importExcel(f, PartyMembersExcel.class, importParams);
partyMembersService.saveList(partyList);
for (PartyMembersExcel partyMembers : partyList) {
System.out.println("从Excel导入数据到数据库的详细为 :{}" + JSON.toJSONString(partyMembers));
}
System.out.println("从Excel导入数据一共 {} 行 " + partyList.size());
} catch (Exception e1) {
throw new RuntimeException("导入失败:{}" + e1.getMessage());
}
}
}

56
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/config/StreamUtils.java

@ -0,0 +1,56 @@
package com.elink.esua.epdc.config;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
/**
* 接收文件转化File
* Created by liuhongwei on 2019/6/21.
*/
public class StreamUtils {
public static File conversionFile(MultipartFile file){
File toFile =null;
InputStream ins = null;
try {
// 转化字节流
ins = file.getInputStream();
// 获取文件名字
toFile = new File(file.getOriginalFilename());
// 字节转化文件
inputStreamToFile(ins, toFile);
ins.close();
} catch (IOException e) {
new RenException(500,"文件转化失败");
}
return toFile;
}
/**
* 流转化
* @param ins file
* @return
* @author liuhongwei
* @date 2019/6/14 14:07
*/
public static void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

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

@ -3,8 +3,8 @@ 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.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
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.service.UserService;
@ -38,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);
}
/**
* 登录前获取用户信息
*
@ -144,4 +158,76 @@ public class EpdcAppUserController {
public Result<EpdcUserRegisterAuditMsgResultDTO> getUserRegisterAuditResult(@PathVariable("userId") String userId) {
return userService.getUserRegisterAuditResult(userId);
}
/**
* 检查用户注册状态
*
* @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
*/
@GetMapping("checkUserRegister")
public Result<EpdcUserRegisterInfoResultDTO> getUserRegisterState(@RequestBody EpdcCheckUserRegisterFromDTO fromDto) {
return userService.checkUserRegisterState(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
*/
@PostMapping("registerOrBindGrid")
public Result<EpdcUserRegisterInfoResultDTO> registerOrBindGrid(@RequestBody EpdcUserRegisterBindGridFormDTO fromDto) {
return userService.saveUserOrBindGrid(fromDto);
}
/**
*
* 更新用户微信信息
*
* @params [userDTO]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/25 17:10
*/
@PostMapping("updateWxInfo")
public Result updateWxInfo(@RequestBody UserDTO userDto) {
UserDTO user = new UserDTO();
user.setId(userDto.getId());
user.setNickname(userDto.getNickname());
user.setFaceImg(userDto.getFaceImg());
user.setSex(userDto.getSex());
userService.update(user);
return new Result();
}
/**
* 验证用户完善个人信息时提交的数据
*
* @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<UserDTO> completeUserInfo(@RequestBody EpdcAppUserCompleteInfoFormDTO formDto) {
return userService.completeUserInfo(formDto);
}
}

55
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java

@ -17,6 +17,11 @@
package com.elink.esua.epdc.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSON;
import com.elink.esua.epdc.async.PartyTask;
import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
@ -27,15 +32,22 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.service.PartyMembersService;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -53,33 +65,36 @@ public class PartyMembersController {
@Autowired
private PartyMembersService partyMembersService;
@Autowired
private PartyTask partyTask;
@GetMapping("page")
@DataFilter(tableAlias = "pm", deptId = "grid_id", prefix = "AND", isPendingCreator = false)
public Result<PageData<PartyMembersDTO>> page(@RequestParam Map<String, Object> params){
String realName = (String)params.get("realName");
String mobile = (String)params.get("mobile");
String identityNo = (String)params.get("identityNo");
if (StringUtils.isNotBlank(realName)){
params.put("realName",realName.trim());
public Result<PageData<PartyMembersDTO>> page(@RequestParam Map<String, Object> params) {
String realName = (String) params.get("realName");
String mobile = (String) params.get("mobile");
String identityNo = (String) params.get("identityNo");
if (StringUtils.isNotBlank(realName)) {
params.put("realName", realName.trim());
}
if (StringUtils.isNotBlank(mobile)){
params.put("mobile",mobile.trim());
if (StringUtils.isNotBlank(mobile)) {
params.put("mobile", mobile.trim());
}
if (StringUtils.isNotBlank(identityNo)){
params.put("identityNo",identityNo.trim());
if (StringUtils.isNotBlank(identityNo)) {
params.put("identityNo", identityNo.trim());
}
return partyMembersService.pageDIY(params);
}
@GetMapping("{id}")
public Result<PartyMembersDTO> get(@PathVariable("id") String id){
public Result<PartyMembersDTO> get(@PathVariable("id") String id) {
PartyMembersDTO data = partyMembersService.get(id);
data.setTagIdsNew(data.getTagIds().split(","));
return new Result<PartyMembersDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody PartyMembersDTO dto){
public Result save(@RequestBody PartyMembersDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
dto.setDeptId(SecurityUser.getDeptId());
@ -89,7 +104,7 @@ public class PartyMembersController {
}
@PutMapping
public Result update(@RequestBody PartyMembersDTO dto){
public Result update(@RequestBody PartyMembersDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
@ -99,7 +114,7 @@ public class PartyMembersController {
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
@ -116,4 +131,16 @@ public class PartyMembersController {
ExcelUtils.exportExcelToTarget(response, "党员管理", list, PartyMembersExcel.class);
}
/***
* 批量导入
* @param file
* @return java.lang.String
* @author qushutong
* @date 2019/10/24 14:55
*/
@PostMapping("importExcel")
public Result importExcel(@RequestParam("file") MultipartFile file) {
partyTask.insertPartyList(file);
return new Result();
}
}

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);
}

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

@ -268,8 +268,4 @@ public class UserEntity extends BaseEpdcEntity {
*/
private String remark;
/**
* 是否是网格长 0否1是
*/
private String leaderFlag;
}

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

@ -88,4 +88,9 @@ public class UserGridRelationEntity extends BaseEpdcEntity {
*/
private Date switchedTime;
/**
* 是否是网格长 0否1是
*/
private String leaderFlag;
}

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

@ -22,6 +22,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import java.util.List;
import java.util.Map;
@ -47,4 +48,13 @@ public interface PartyMembersService extends BaseService<PartyMembersEntity> {
void update(PartyMembersDTO dto);
void delete(String[] ids);
/***
* 批量插入
* @param partyList
* @return void
* @author qushutong
* @date 2019/10/24 14:58
*/
void saveList(List<PartyMembersExcel> partyList);
}

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

@ -115,4 +115,24 @@ public interface UserGridRelationService extends BaseService<UserGridRelationEnt
* @date 2019/10/23 13:28
*/
Result<List<EpdcLeaderGridResultDTO>> listGridForLeader(String userId);
/**
* 获取用户绑定网格信息
*
* @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);
}

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

@ -21,8 +21,8 @@ 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.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
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.UserEntity;
@ -144,4 +144,44 @@ public interface UserService extends BaseService<UserEntity> {
* @date 2019/10/23 09:35
*/
Result<UserDTO> gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto);
/**
* 检查用户注册状态
*
* @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);
/**
* 保存用户信息或关联网格信息
*
* @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<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto);
}

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

@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.async.PartyTask;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
@ -32,6 +33,7 @@ import com.elink.esua.epdc.dao.PartyMembersDao;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.dto.PartyTagRelationDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.redis.PartyMembersRedis;
import com.elink.esua.epdc.service.PartyMembersService;
import com.elink.esua.epdc.service.PartyTagRelationService;
@ -59,6 +61,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Autowired
private PartyTagRelationService partyTagRelationService;
@Override
public PageData<PartyMembersDTO> page(Map<String, Object> params) {
IPage<PartyMembersEntity> page = baseDao.selectPage(
@ -149,4 +152,10 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void saveList(List<PartyMembersExcel> partyList) {
List<PartyMembersEntity> partyMembersEntityList = ConvertUtils.sourceToTarget(partyList, PartyMembersEntity.class);
insertBatch(partyMembersEntityList);
}
}

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

@ -135,4 +135,22 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl<UserGridRelatio
List<EpdcLeaderGridResultDTO> dtoList = ConvertUtils.sourceToTarget(entityList, EpdcLeaderGridResultDTO.class);
return new Result<List<EpdcLeaderGridResultDTO>>().ok(dtoList);
}
@Override
public UserGridRelationDTO getUserRelationInfo(String userId, Long gridId) {
QueryWrapper<UserGridRelationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(UserFieldConsant.USER_ID, userId)
.eq(FieldConstant.GRID_ID, gridId);
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);
}
}

307
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,24 +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.EpdcGridLeaderRegisterFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
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;
@ -70,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;
@ -81,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
@ -169,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);
}*/
}
@ -208,15 +159,19 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
// 根据openId获取已提交注册的用户信息
wrapper.eq(UserFieldConsant.WX_OPEN_ID, openId)
.select(FieldConstant.ID, UserFieldConsant.NICKNAME, UserFieldConsant.FACE_IMG,
FieldConstant.MOBILE, UserFieldConsant.REAL_NAME,
FieldConstant.STATE, UserFieldConsant.GRID, FieldConstant.GRID_ID,
UserFieldConsant.PARTY_FLAG, UserFieldConsant.REMARK)
.orderByDesc(FieldConstant.CREATED_TIME);
List<UserEntity> userEntityList = this.baseDao.selectList(wrapper);
if (CollUtil.isNotEmpty(userEntityList)) {
UserEntity userEntity = userEntityList.get(NumConstant.ZERO);
return new Result().ok(ConvertUtils.sourceToTarget(userEntity, UserDTO.class));
UserEntity userEntity = this.baseDao.selectOne(wrapper);
if (null != userEntity) {
QueryWrapper<UserGridRelationEntity> ugWrapper = new QueryWrapper<>();
ugWrapper.eq(UserFieldConsant.USER_ID, userEntity.getId())
.orderByDesc(UserFieldConsant.SWITCHED_TIME);
List<UserGridRelationDTO> gridRelations = userGridRelationService.listUserGrid(userEntity.getId());
if (CollUtil.isNotEmpty(gridRelations)) {
UserDTO dto = ConvertUtils.sourceToTarget(userEntity, UserDTO.class);
dto.setGridId(gridRelations.get(NumConstant.ZERO).getGridId());
dto.setGrid(gridRelations.get(NumConstant.ZERO).getGrid());
return new Result<UserDTO>().ok(dto);
}
}
return new Result();
}
@ -281,8 +236,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("手机号已被注册");
@ -293,8 +247,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("身份证号已被注册");
@ -326,6 +279,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);
@ -340,4 +294,169 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
userDto.setGrid(userGridRelationDto.getGrid());
return new Result<UserDTO>().ok(userDto);
}
@Override
public Result<EpdcUserRegisterInfoResultDTO> checkUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto) {
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
wrapper.eq(UserFieldConsant.WX_OPEN_ID, fromDto.getOpenId())
.select(FieldConstant.ID, UserFieldConsant.NICKNAME, UserFieldConsant.FACE_IMG,
FieldConstant.MOBILE, UserFieldConsant.REAL_NAME,
FieldConstant.STATE, UserFieldConsant.PARTY_FLAG, UserFieldConsant.REMARK)
.orderByDesc(FieldConstant.CREATED_TIME);
List<UserEntity> userEntityList = this.baseDao.selectList(wrapper);
EpdcUserRegisterInfoResultDTO resultDto = new EpdcUserRegisterInfoResultDTO();
resultDto.setGridId(fromDto.getGridId());
// 已注册
if (CollUtil.isNotEmpty(userEntityList) && null != userEntityList.get(NumConstant.ZERO)) {
UserEntity userEntity = userEntityList.get(NumConstant.ZERO);
resultDto.setUserDTO(ConvertUtils.sourceToTarget(userEntity, UserDTO.class));
// 获取用户关联当前网格信息
UserGridRelationDTO relationInfo = userGridRelationService.getUserRelationInfo(userEntity.getId(), fromDto.getGridId());
// 未绑定当前网格
if (null == relationInfo) {
resultDto.setRegisterState(NumConstant.ONE);
}
// 已绑定当前网格
else {
resultDto.setRegisterState(NumConstant.TWO);
resultDto.setGrid(relationInfo.getGrid());
}
}
// 未注册
else {
resultDto.setRegisterState(NumConstant.ZERO);
}
return new Result<EpdcUserRegisterInfoResultDTO>().ok(resultDto);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result<EpdcUserRegisterInfoResultDTO> saveUserOrBindGrid(EpdcUserRegisterBindGridFormDTO fromDto) {
UserDTO formUserDto = fromDto.getUserDTO();
UserGridRelationDTO userGridRel = fromDto.getGridRelationDTO();
// 用户注册
if (NumConstant.ZERO == fromDto.getRegisterState()) {
UserEntity userEntity = ConvertUtils.sourceToTarget(formUserDto, UserEntity.class);
if (insert(userEntity)) {
formUserDto.setId(userEntity.getId());
} else {
return new Result<EpdcUserRegisterInfoResultDTO>().error("用户注册失败");
}
}
userGridRel.setUserId(formUserDto.getId());
// 用户绑定网格
userGridRelationService.save(userGridRel);
// 组装用户注册信息
EpdcUserRegisterInfoResultDTO resultDto = new EpdcUserRegisterInfoResultDTO();
resultDto.setRegisterState(NumConstant.TWO);
resultDto.setGrid(userGridRel.getGrid());
resultDto.setGridId(userGridRel.getGridId());
resultDto.setUserDTO(formUserDto);
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<UserDTO> completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
UserDTO formUser = formDto.getUserDto();
UserDTO userDto = new UserDTO();
userDto.setPartyFlag(formUser.getPartyFlag());
userDto.setMobile(formUser.getMobile());
userDto.setMobileCarrier(formUser.getMobileCarrier());
userDto.setMobileCity(formUser.getMobileCity());
userDto.setMobileProvince(formUser.getMobileProvince());
userDto.setRealName(formUser.getRealName());
userDto.setNickname(formUser.getNickname());
userDto.setState(formUser.getState());
userDto.setSex(formUser.getSex());
userDto.setIdentityNo(formUser.getIdentityNo());
userDto.setRoad(formUser.getRoad());
userDto.setVillageName(formUser.getVillageName());
userDto.setDwellingPlace(formUser.getDwellingPlace());
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("保存党员信息异常");
}
} else {
UserEntity oldEntity = this.baseDao.selectById(userDto.getId());
String sex = oldEntity.getSex();
if (StringUtils.isNotBlank(sex) && NumConstant.ZERO_STR.equals(sex)) {
userDto.setNickname(
userDto.getRoad().concat("-").concat(userDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE))
.concat("女士"));
} else {
userDto.setNickname(
userDto.getRoad().concat("-").concat(userDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE))
.concat("先生"));
}
}
UserEntity userEntity = ConvertUtils.sourceToTarget(userDto, UserEntity.class);
boolean updateUser = this.updateById(userEntity);
if (!updateUser) {
throw new RenException("保存用户信息异常");
}
return new Result().ok(userDto);
}
}

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