1
zj
2025-10-14 8e1c5b13e9dd4a88f17dfe4569d4a51b3495d83a
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java
@@ -17,6 +17,7 @@
import com.ruoyi.system.domain.dto.UserPolicyDto;
import com.ruoyi.system.mapper.UserKycMapper;
import com.ruoyi.system.service.UserAccountService;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -25,6 +26,7 @@
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/kyc")
@@ -60,6 +62,8 @@
                userKyc.setHeadPortraitImg(dto.getHeadPortraitImg());
                userKyc.setNationalEmblemImg(dto.getNationalEmblemImg());
                userKyc.setHandImg(dto.getHandImg());
                userKyc.setName(dto.getName());
                userKyc.setIdCard(dto.getIdCard());
                userKycService.save(userKyc);
            }else{
                if(userKyc.getState() == 0){
@@ -69,6 +73,8 @@
                userKyc.setHeadPortraitImg(dto.getHeadPortraitImg());
                userKyc.setNationalEmblemImg(dto.getNationalEmblemImg());
                userKyc.setHandImg(dto.getHandImg());
                userKyc.setName(dto.getName());
                userKyc.setIdCard(dto.getIdCard());
                userKycService.updateById(userKyc);
            }
            userAccount.setKycStatus(0);
@@ -101,14 +107,32 @@
            if(approvalStatus == 2 && StringUtils.isEmpty(message)){
                return AjaxResult.error("驳回理由不能为空!");
            }
            userKyc.setState(approvalStatus);
            userKyc.setMessage(message);
            userKyc.setUpdatedAt(new Date());
            userKycService.updateById(userKyc);
            UserAccount userAccount = userAccountService.getById(userKyc.getUserId());
            userAccount.setKycStatus(approvalStatus);
            userAccountService.updateById(userAccount);
            return AjaxResult.success("审批成功");
            if(approvalStatus == 2){
                userKyc.setState(approvalStatus);
                userKyc.setMessage(message);
                userKyc.setUpdatedAt(new Date());
                userKyc.setHeadPortraitImg(null);
                userKyc.setNationalEmblemImg(null);
                userKyc.setHandImg(null);
                userKyc.setName(null);
                userKyc.setIdCard(null);
                userKycService.updateById(userKyc);
                userKycService.updateById(userKyc);
                UserAccount userAccount = userAccountService.getById(userKyc.getUserId());
                userAccount.setKycStatus(approvalStatus);
                userAccountService.updateById(userAccount);
                return AjaxResult.success("审批成功");
            }else{
                userKyc.setState(approvalStatus);
                userKyc.setMessage(message);
                userKyc.setUpdatedAt(new Date());
                userKycService.updateById(userKyc);
                UserAccount userAccount = userAccountService.getById(userKyc.getUserId());
                userAccount.setKycStatus(approvalStatus);
                userAccountService.updateById(userAccount);
                return AjaxResult.success("审批成功");
            }
        }catch (Exception e){
            e.printStackTrace();
            // 手动设置回滚
@@ -118,18 +142,79 @@
    }
    /**
     * 什么认证列表
     * 实名认证列表
     */
    @GetMapping("/list")
    public TableDataInfo list(@RequestParam(value = "account",required = false) String account) {
    public TableDataInfo list(@RequestParam(value = "account",required = false) String account,
                              @RequestParam(value = "state",defaultValue = "0") Integer state
    ) {
        startPage();
        LambdaQueryWrapper<UserKyc> wrapper = new LambdaQueryWrapper<>();
        if(StringUtils.isNotEmpty(account)){
            wrapper.eq(UserKyc::getAccount,account);
        }
        if(state != null && state != 3){
            wrapper.eq(UserKyc::getState,state);
        }else if(state == 3){
            wrapper.ne(UserKyc::getState,0);
        }
        // 按创建时间倒序排列
        wrapper.orderByDesc(UserKyc::getCreatedAt);
        List<UserKyc> list = userKycService.list(wrapper);
        return getDataTable(list);
    }
    /**
     * 实名认证后台修改
     */
    @PostMapping("/updateKyc")
    @Transactional
    public Result updateKyc(UserKycDto dto) {
        try {
            UserKyc userKyc = userKycService.getById(dto.getId());
            if(ObjectUtil.isEmpty(userKyc)){
                return Result.error("用户数据不存在!");
            }else{
                userKyc.setName(dto.getName());
                userKyc.setIdCard(dto.getIdCard());
                userKycService.updateById(userKyc);
            }
            return Result.success("修改成功!");
        }catch (Exception e){
            e.printStackTrace();
            // 手动设置回滚
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return Result.error("提交失败");
        }
    }
    /**
     * 根据账户查询实名认证信息
     */
    @GetMapping("/getByAccount")
    public Result getByAccount(@RequestParam(value = "account") String account) {
        LambdaQueryWrapper<UserKyc> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(UserKyc::getAccount,account);
        // 按创建时间倒序排列
        wrapper.orderByDesc(UserKyc::getCreatedAt);
        // 查询用户KYC信息
        UserKyc userKyc = userKycService.getOne(new LambdaQueryWrapper<UserKyc>()
                .eq(UserKyc::getAccount, account));
        // 如果KYC信息存在,补充昵称信息
        UserAccount userAccount = userAccountService.getOne(new LambdaQueryWrapper<UserAccount>()
                .eq(UserAccount::getAccount, account));
        // 如果KYC信息不存在,创建空实体
        if (ObjectUtil.isEmpty(userKyc)) {
            userKyc = new UserKyc();
        }
        if (StringUtils.isNotEmpty(userAccount.getNickname())) {
            userKyc.setNickName(userAccount.getNickname());
            userKyc.setPhone(userAccount.getAccount());
        }
        return Result.success(userKyc);
    }
}