| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package com.ydtech.modules.admin.controller;
- import cn.dev33.satoken.annotation.SaIgnore;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.components.UnionPayRequestApiComponent;
- import com.ydtech.modules.admin.components.request.UnionPayRequest;
- import com.ydtech.modules.admin.components.response.UnionPayResponse;
- import com.ydtech.modules.admin.constants.UserAgentStatus;
- import com.ydtech.modules.admin.model.SysDept;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.SysUserRole;
- import com.ydtech.modules.admin.model.dto.AgentAuthDto;
- import com.ydtech.modules.admin.model.dto.AgentAuthResultDto;
- import com.ydtech.modules.admin.model.dto.AgentSubmitDto;
- import com.ydtech.modules.admin.model.dto.AgentUserNewDto;
- import com.ydtech.modules.admin.service.SysDeptService;
- import com.ydtech.modules.admin.service.SysUserRoleService;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.protocol.utils.AssertionUtils;
- import com.ydtech.utils.StringUtils;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.data.redis.core.StringRedisTemplate;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.List;
- import java.util.Objects;
- import static com.ydtech.constants.RedisConstant.PHONE_VERIFICATION_CODE_KEY;
- @RestController
- @Api(tags = "个代用户控制器")
- @RequestMapping("userAgent")
- @RequiredArgsConstructor
- @Slf4j
- public class SysUserAgentController extends BaseController {
- private final SysUserService sysUserService;
- private final SysDeptService sysDeptService;
- private final StringRedisTemplate redisTemplate;
- private final SysUserRoleService sysUserRoleService;
- @ApiOperation(value = "个代注册")
- @PostMapping(value = "/agentRegist")
- @SaIgnore
- public HttpResult agentRegist(@RequestBody @Validated AgentUserNewDto dto) {
- List<SysUser> list = sysUserService.lambdaQuery().eq(SysUser::getMobile, dto.getMobile()).list();
- AssertionUtils.isFail(!list.isEmpty(), "手机号已经被注册请重新跟换手机号。如有疑问请联系管理人员。");
- String captchaRedis = redisTemplate.opsForValue().get(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
- redisTemplate.delete(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
- AssertionUtils.isFail(StringUtils.isBlank(captchaRedis), "验证码已失效!");
- AssertionUtils.isFail(!dto.getMobileMsg().equals(captchaRedis), "验证码错误!");
- String recommenderid = dto.getReferrerId();
- SysUser recommender = sysUserService.getById(recommenderid);
- AssertionUtils.isFail(Objects.isNull(recommender), "推荐人信息不存在!");
- AssertionUtils.isFail(!"2".equals(dto.getFlag()), "只有个代来源允许注册!");
- //只有团队长和代理人才能邀请
- SysUserRole recommenderRole = sysUserRoleService.selectByUserId(recommenderid);
- if (!recommenderRole.getRoleId().equals(20L) && !recommenderRole.getRoleId().equals(21L)) {
- return HttpResult.error("只有团队长和代理人才能推荐");
- }
- String userId = sysUserService.agentRegist(dto, recommender);
- return HttpResult.ok("保存成功", userId);
- }
- @ApiOperation(value = "个代(认证/审核)结果获取")
- @PostMapping(value = "/getAuthResult")
- public HttpResult getAuthResult(@RequestBody @Validated AgentAuthResultDto dto) {
- SysUser sysUser = sysUserService.getByUserId(dto.getUserId());
- AssertionUtils.isFail(Objects.isNull(sysUser), "用户信息不存在!");
- AssertionUtils.isFail(!"2".equals(sysUser.getManagementSource()), "只有个代来源需要认证!");
- return HttpResult.ok(sysUserService.getAuthResult(sysUser,dto));
- }
- @ApiOperation(value = "个代认证")
- @PostMapping(value = "/agentAuth")
- public HttpResult agentAuth(@RequestBody @Validated AgentAuthDto dto) {
- SysUser sysUser = sysUserService.getByUserId(dto.getUserId());
- SysUser mobileUser = sysUserService.findByPhone(dto.getMobile());
- AssertionUtils.isFail(!sysUser.getMobile().equals(dto.getMobile()) && Objects.isNull(mobileUser), "用户手机号未注册!");
- AssertionUtils.isFail(!"2".equals(sysUser.getManagementSource()), "只有个代来源需要认证!");
- List<SysUser> list = sysUserService.lambdaQuery().eq(SysUser::getIdentity, dto.getIdentity()).list();
- AssertionUtils.isFail(!list.isEmpty(), "身份证已经被认证。如有疑问请联系管理人员。");
- return HttpResult.ok(sysUserService.agentAuth(sysUser,dto));
- }
- @ApiOperation(value = "个代资料提交")
- @PostMapping(value = "/agentSubmit")
- public HttpResult agentSubmit(@RequestBody @Validated AgentSubmitDto dto) {
- SysUser sysUser = sysUserService.getByUserId(dto.getUserId());
- AssertionUtils.isFail(Objects.isNull(sysUser), "用户不存在!");
- AssertionUtils.isFail(!"2".equals(sysUser.getManagementSource()), "只有个代来源需要资料提交!");
- SysUser user = sysUserService.getById(sysUser.getId());
- AssertionUtils.isFail("0".equals(sysUser.getFactorVerify()) || "2".equals(sysUser.getFactorVerify())
- , "未实名认证的用户不允许提交资料");
- sysUserService.agentSubmit(user,dto);
- return HttpResult.ok("提交成功");
- }
- }
|