SysUserAgentController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.ydtech.modules.admin.controller;
  2. import cn.dev33.satoken.annotation.SaIgnore;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.exception.SystemException;
  5. import com.ydtech.modules.admin.components.UnionPayRequestApiComponent;
  6. import com.ydtech.modules.admin.components.request.UnionPayRequest;
  7. import com.ydtech.modules.admin.components.response.UnionPayResponse;
  8. import com.ydtech.modules.admin.constants.UserAgentStatus;
  9. import com.ydtech.modules.admin.model.SysDept;
  10. import com.ydtech.modules.admin.model.SysUser;
  11. import com.ydtech.modules.admin.model.SysUserRole;
  12. import com.ydtech.modules.admin.model.dto.AgentAuthDto;
  13. import com.ydtech.modules.admin.model.dto.AgentAuthResultDto;
  14. import com.ydtech.modules.admin.model.dto.AgentSubmitDto;
  15. import com.ydtech.modules.admin.model.dto.AgentUserNewDto;
  16. import com.ydtech.modules.admin.service.SysDeptService;
  17. import com.ydtech.modules.admin.service.SysUserRoleService;
  18. import com.ydtech.modules.admin.service.SysUserService;
  19. import com.ydtech.modules.base.controller.BaseController;
  20. import com.ydtech.modules.protocol.utils.AssertionUtils;
  21. import com.ydtech.utils.StringUtils;
  22. import io.swagger.annotations.Api;
  23. import io.swagger.annotations.ApiOperation;
  24. import lombok.RequiredArgsConstructor;
  25. import lombok.extern.slf4j.Slf4j;
  26. import org.springframework.data.redis.core.StringRedisTemplate;
  27. import org.springframework.validation.annotation.Validated;
  28. import org.springframework.web.bind.annotation.PostMapping;
  29. import org.springframework.web.bind.annotation.RequestBody;
  30. import org.springframework.web.bind.annotation.RequestMapping;
  31. import org.springframework.web.bind.annotation.RestController;
  32. import java.util.List;
  33. import java.util.Objects;
  34. import static com.ydtech.constants.RedisConstant.PHONE_VERIFICATION_CODE_KEY;
  35. @RestController
  36. @Api(tags = "个代用户控制器")
  37. @RequestMapping("userAgent")
  38. @RequiredArgsConstructor
  39. @Slf4j
  40. public class SysUserAgentController extends BaseController {
  41. private final SysUserService sysUserService;
  42. private final SysDeptService sysDeptService;
  43. private final StringRedisTemplate redisTemplate;
  44. private final SysUserRoleService sysUserRoleService;
  45. @ApiOperation(value = "个代注册")
  46. @PostMapping(value = "/agentRegist")
  47. @SaIgnore
  48. public HttpResult agentRegist(@RequestBody @Validated AgentUserNewDto dto) {
  49. List<SysUser> list = sysUserService.lambdaQuery().eq(SysUser::getMobile, dto.getMobile()).list();
  50. AssertionUtils.isFail(!list.isEmpty(), "手机号已经被注册请重新跟换手机号。如有疑问请联系管理人员。");
  51. String captchaRedis = redisTemplate.opsForValue().get(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
  52. redisTemplate.delete(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
  53. AssertionUtils.isFail(StringUtils.isBlank(captchaRedis), "验证码已失效!");
  54. AssertionUtils.isFail(!dto.getMobileMsg().equals(captchaRedis), "验证码错误!");
  55. String recommenderid = dto.getReferrerId();
  56. SysUser recommender = sysUserService.getById(recommenderid);
  57. AssertionUtils.isFail(Objects.isNull(recommender), "推荐人信息不存在!");
  58. AssertionUtils.isFail(!"2".equals(dto.getFlag()), "只有个代来源允许注册!");
  59. //只有团队长和代理人才能邀请
  60. SysUserRole recommenderRole = sysUserRoleService.selectByUserId(recommenderid);
  61. if (!recommenderRole.getRoleId().equals(20L) && !recommenderRole.getRoleId().equals(21L)) {
  62. return HttpResult.error("只有团队长和代理人才能推荐");
  63. }
  64. String userId = sysUserService.agentRegist(dto, recommender);
  65. return HttpResult.ok("保存成功", userId);
  66. }
  67. @ApiOperation(value = "个代(认证/审核)结果获取")
  68. @PostMapping(value = "/getAuthResult")
  69. public HttpResult getAuthResult(@RequestBody @Validated AgentAuthResultDto dto) {
  70. SysUser sysUser = sysUserService.getByUserId(dto.getUserId());
  71. AssertionUtils.isFail(Objects.isNull(sysUser), "用户信息不存在!");
  72. AssertionUtils.isFail(!"2".equals(sysUser.getManagementSource()), "只有个代来源需要认证!");
  73. return HttpResult.ok(sysUserService.getAuthResult(sysUser,dto));
  74. }
  75. @ApiOperation(value = "个代认证")
  76. @PostMapping(value = "/agentAuth")
  77. public HttpResult agentAuth(@RequestBody @Validated AgentAuthDto dto) {
  78. SysUser sysUser = sysUserService.getByUserId(dto.getUserId());
  79. SysUser mobileUser = sysUserService.findByPhone(dto.getMobile());
  80. AssertionUtils.isFail(!sysUser.getMobile().equals(dto.getMobile()) && Objects.isNull(mobileUser), "用户手机号未注册!");
  81. AssertionUtils.isFail(!"2".equals(sysUser.getManagementSource()), "只有个代来源需要认证!");
  82. List<SysUser> list = sysUserService.lambdaQuery().eq(SysUser::getIdentity, dto.getIdentity()).list();
  83. AssertionUtils.isFail(!list.isEmpty(), "身份证已经被认证。如有疑问请联系管理人员。");
  84. return HttpResult.ok(sysUserService.agentAuth(sysUser,dto));
  85. }
  86. @ApiOperation(value = "个代资料提交")
  87. @PostMapping(value = "/agentSubmit")
  88. public HttpResult agentSubmit(@RequestBody @Validated AgentSubmitDto dto) {
  89. SysUser sysUser = sysUserService.getByUserId(dto.getUserId());
  90. AssertionUtils.isFail(Objects.isNull(sysUser), "用户不存在!");
  91. AssertionUtils.isFail(!"2".equals(sysUser.getManagementSource()), "只有个代来源需要资料提交!");
  92. SysUser user = sysUserService.getById(sysUser.getId());
  93. AssertionUtils.isFail("0".equals(sysUser.getFactorVerify()) || "2".equals(sysUser.getFactorVerify())
  94. , "未实名认证的用户不允许提交资料");
  95. sysUserService.agentSubmit(user,dto);
  96. return HttpResult.ok("提交成功");
  97. }
  98. }