zyy
2025-12-09 80047c63d7243c88cba50b217a86cf030aa2d62a
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
@@ -1,31 +1,18 @@
package com.yami.trading.api.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yami.trading.api.dto.UserDto;
import com.yami.trading.api.model.SetSafewordModel;
import com.yami.trading.api.service.UserCacheService;
import com.yami.trading.bean.model.HighLevelAuthRecord;
import com.yami.trading.bean.model.Log;
import com.yami.trading.bean.model.RealNameAuthRecord;
import com.yami.trading.bean.model.User;
import com.yami.trading.bean.model.UserRecom;
import com.yami.trading.bean.model.UserSafewordApply;
import com.yami.trading.bean.model.*;
import com.yami.trading.bean.syspara.domain.Syspara;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.BusinessException;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.DateUtils;
import com.yami.trading.common.util.GoogleAuthenticator;
import com.yami.trading.common.util.IPHelper;
import com.yami.trading.common.util.ImageVerificationCodeUtil;
import com.yami.trading.common.util.ImageVerificationEndecrypt;
import com.yami.trading.common.util.IpUtil;
import com.yami.trading.common.util.LockFilter;
import com.yami.trading.common.util.RegexUtil;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.common.util.Strings;
import com.yami.trading.common.util.UUIDGenerator;
import com.yami.trading.common.util.*;
import com.yami.trading.security.common.bo.UserInfoInTokenBO;
import com.yami.trading.security.common.enums.SysTypeEnum;
import com.yami.trading.security.common.manager.TokenStore;
@@ -41,6 +28,7 @@
import com.yami.trading.service.user.UserRecomService;
import com.yami.trading.service.user.UserSafewordApplyService;
import com.yami.trading.service.user.UserService;
import com.yami.trading.service.user.W8BENService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -48,14 +36,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.sql.Wrapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -97,6 +82,8 @@
    LogService logService;
    @Autowired
    QRGenerateService qrGenerateService;
    @Autowired
    W8BENService w8BENService;
    /**
     * 用户名登录接口
@@ -496,13 +483,17 @@
        map.put("advancedverif", party.isHighlevelAuthority());
        map.put("lastlogintime", party.getUserLasttime());
        map.put("lastloginip", party.getUserLastip());
        // 实名认证通过返回真实姓名
        if (party.isRealNameAuthority()) {
            map.put("name", kyc.getName());
        }
        map.put("loanLimit", party.getLoanLimit());
        map.put("loanRate", Double.valueOf(sysparaService.find("loan_rate").getSvalue()));
        if (null != kyc) {
            map.put("nationality", kyc.getNationality());
            map.put("kyc_status", kyc.getStatus());
            // 实名认证通过返回真实姓名
            if (party.isRealNameAuthority()) {
                map.put("name", kyc.getName());
            }
        }
        if (null != kycHighLevel) {
            map.put("kyc_high_level_status", kycHighLevel.getStatus());
@@ -762,6 +753,34 @@
        return Result.succeed(null);
    }
    @PostMapping("updateOldAndNewSafePsw")
    @ApiOperation("修改资金密码 用旧资金密码")
    public Result updateOldAndNewSafePsw(String old_password, String password, String re_password) {
        if (StringUtils.isEmptyString(old_password)) {
            throw new YamiShopBindException("旧资金密码不能为空");
        }
        if (StringUtils.isEmptyString(password)) {
            throw new YamiShopBindException("新资金密码不能为空");
        }
        if (StringUtils.isEmptyString(re_password)) {
            throw new YamiShopBindException("新资金密码确认不能为空");
        }
        if (old_password.length() < 6 || old_password.length() > 12 || password.length() < 6 || password.length() > 12) {
            throw new YamiShopBindException("密码必须6-12位");
        }
        User secUser = userService.getById(SecurityUtils.getUser().getUserId());
        if (!passwordEncoder.matches(old_password, secUser.getSafePassword())) {
            throw new YamiShopBindException("旧密码不正确!");
        }
        if (!password.equals(re_password)) {
            throw new YamiShopBindException("新密码不一致");
        }
        secUser.setSafePassword(passwordEncoder.encode(re_password));
        userService.updateById(secUser);
        return Result.succeed(null);
    }
    /**
     * 修改资金密码 用验证码
     */
@@ -1008,4 +1027,34 @@
        return null;
    }
    @GetMapping("getW8BENForm")
    @ApiOperation("获取税务信息")
    public Result getW8BENForm() {
        try {
            User user = userCacheService.currentUser();
            W8BEN w8BEN = w8BENService.getOne(new LambdaQueryWrapper<W8BEN>().eq(W8BEN::getUserId, user.getUserId()));
            return Result.succeed(w8BEN);
        } catch (Exception e) {
            log.error("getW8BENForm error", e);
            return Result.failed("失败");
        }
    }
    @PostMapping("setW8BENForm")
    @ApiOperation("设置税务信息")
    public Result setW8BENForm(W8BEN model) {
        try {
            User user = userCacheService.currentUser();
            String userId = user.getUserId();
            w8BENService.remove(new LambdaQueryWrapper<W8BEN>().eq(W8BEN::getUserId, user.getUserId()));
            model.setUserId(userId);
            model.setCreateTime(new Date());
            w8BENService.saveOrUpdate(model);
            return Result.succeed(null);
        } catch (Exception e) {
            log.error("setW8BENForm error", e);
            return Result.failed("失败");
        }
    }
}