| | |
| | | package com.ruoyi.web.controller.product; |
| | | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.crypto.Mode; |
| | | import cn.hutool.crypto.Padding; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ruoyi.common.core.controller.BaseController; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | |
| | | import com.ruoyi.im.comm.Result; |
| | | import com.ruoyi.im.service.UserKycService; |
| | | import com.ruoyi.im.service.impl.UserKycServiceImpl; |
| | | import com.ruoyi.im.util.SymmetricCryptoUtil; |
| | | import com.ruoyi.system.domain.InsurancePosition; |
| | | import com.ruoyi.system.domain.UserAccount; |
| | | import com.ruoyi.system.domain.UserKyc; |
| | |
| | | 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; |
| | |
| | | import javax.validation.Valid; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | |
| | | @RestController |
| | | @RequestMapping("/kyc") |
| | |
| | | if(ObjectUtil.isEmpty(userAccount)){ |
| | | return Result.error("请重新登录,未查询到你的信息!"); |
| | | } |
| | | UserKyc userKyc = new UserKyc(); |
| | | userKyc.setUserId(userAccount.getId()); |
| | | userKyc.setAccount(userAccount.getAccount()); |
| | | userKyc.setState(0); |
| | | userKyc.setHeadPortraitImg(dto.getHeadPortraitImg()); |
| | | userKyc.setNationalEmblemImg(dto.getNationalEmblemImg()); |
| | | userKyc.setHandImg(dto.getHandImg()); |
| | | userKycService.save(userKyc); |
| | | UserKyc userKyc = userKycService.getOne(new LambdaQueryWrapper<>(UserKyc.class) |
| | | .eq(UserKyc::getUserId, userAccount.getId()) |
| | | ); |
| | | if(ObjectUtil.isEmpty(userKyc)){ |
| | | userKyc = new UserKyc(); |
| | | userKyc.setUserId(userAccount.getId()); |
| | | userKyc.setAccount(userAccount.getAccount()); |
| | | userKyc.setState(0); |
| | | 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){ |
| | | return Result.error("资料审核中,请勿重复提交!"); |
| | | } |
| | | userKyc.setState(0); |
| | | 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); |
| | | userAccountService.updateById(userAccount); |
| | | return Result.success("提交成功,请等待审核!"); |
| | |
| | | if(approvalStatus == 2 && StringUtils.isEmpty(message)){ |
| | | return AjaxResult.error("驳回理由不能为空!"); |
| | | } |
| | | userKyc.setState(approvalStatus); |
| | | userKyc.setMessage(message); |
| | | userKyc.setUpdatedAt(new Date()); |
| | | 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); |
| | | |
| | | UserAccount userAccount = userAccountService.getById(userKyc.getUserId()); |
| | | userAccount.setKycStatus(approvalStatus); |
| | | userAccountService.updateById(userAccount); |
| | | return AjaxResult.success("审批成功"); |
| | | 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(); |
| | | // 手动设置回滚 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 什么认证列表 |
| | | * 实名认证列表 |
| | | */ |
| | | @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); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取用户明文密码 |
| | | */ |
| | | @GetMapping("/getAccountPassword") |
| | | @Transactional |
| | | public AjaxResult getAccountPassword(@RequestParam(value = "account",required = false) String account) { |
| | | if(ObjectUtil.isEmpty(account)){ |
| | | return AjaxResult.error("请输入查询账号!"); |
| | | } |
| | | UserAccount userAccount = userAccountService.getOne(new LambdaQueryWrapper<>(UserAccount.class) |
| | | .eq(UserAccount::getAccount, account) |
| | | ); |
| | | if(ObjectUtil.isEmpty(userAccount)){ |
| | | return AjaxResult.error("用户不存在!"); |
| | | } |
| | | String password = SymmetricCryptoUtil.decryptFromString(userAccount.getPassword(), Mode.CBC, Padding.ZeroPadding); |
| | | return AjaxResult.success(password); |
| | | } |
| | | } |