feat(system): 增加用户银行卡信息查询接口并优化相关功能
- 在 UserBankController 中添加 getUserBankPage 方法,实现用户银行卡信息的分页查询 - 在 UserBankRespVO 中增加 creator 和 createName 字段,用于展示创建人信息 - 在 UserBankServiceImpl 中优化 createBank 方法,增加对银行卡号和昵称的联合查询 - 新增 userService 依赖,用于获取用户信息
This commit is contained in:
parent
0af1800e20
commit
a182bef370
@ -7,7 +7,9 @@ import cn.iocoder.yudao.module.system.controller.admin.bank.vo.UserBankPageReqVO
|
||||
import cn.iocoder.yudao.module.system.controller.admin.bank.vo.UserBankRespVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.bank.vo.UserBankSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.bank.BankDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.service.bank.UserBankService;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -18,6 +20,10 @@ import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
@ -31,6 +37,9 @@ public class UserBankController {
|
||||
@Resource
|
||||
private UserBankService userBankService;
|
||||
|
||||
@Resource
|
||||
private AdminUserService userService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建银行卡信息")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-bank:create')")
|
||||
@ -107,15 +116,33 @@ public class UserBankController {
|
||||
@PreAuthorize("@ss.hasPermission('system:user-bank:query')")
|
||||
public CommonResult<PageResult<UserBankRespVO>> getUserBankPage(@Valid UserBankPageReqVO pageReqVO) {
|
||||
|
||||
PageResult<BankDO> pageResult = new PageResult<BankDO>();
|
||||
List<Long> bankIds = userBankService.getBankIds(getLoginUserId());
|
||||
if (!bankIds.isEmpty()) {
|
||||
if (bankIds.isEmpty()) {
|
||||
|
||||
pageResult = userBankService.getBankPageIn(pageReqVO, bankIds);
|
||||
return success(PageResult.empty());
|
||||
}
|
||||
|
||||
PageResult<BankDO> pageResult = userBankService.getBankPageIn(pageReqVO, bankIds);
|
||||
|
||||
return success(BeanUtils.toBean(pageResult, UserBankRespVO.class));
|
||||
// 获取创建者信息
|
||||
Set<Long> userIds = pageResult.getList().stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(BankDO::getCreator)
|
||||
.map(Long::valueOf)
|
||||
.collect(Collectors.toSet());
|
||||
List<AdminUserDO> userDOS = userService.getUserList(userIds);
|
||||
Map<String, AdminUserDO> userMap = userDOS.stream()
|
||||
.collect(Collectors.toMap(user ->
|
||||
String.valueOf(user.getId()), // 将 Long 类型的 id 转换为 String 类型
|
||||
v -> v));
|
||||
|
||||
PageResult<UserBankRespVO> respResult = BeanUtils.toBean(pageResult, UserBankRespVO.class);
|
||||
respResult.getList().forEach(item -> {
|
||||
// 设置创建者名称
|
||||
item.setCreateName(userMap.get(item.getCreator()) != null ? userMap.get(item.getCreator()).getNickname() : "");
|
||||
});
|
||||
|
||||
return success(respResult);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
|
@ -35,4 +35,10 @@ public class UserBankRespVO {
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "创建人", example = "1")
|
||||
private String creator;
|
||||
|
||||
@Schema(description = "创建人名称", example = "赵六")
|
||||
private String createName;
|
||||
|
||||
}
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.bank;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.bank.vo.UserBankPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.bank.vo.UserBankSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.bank.BankDO;
|
||||
@ -45,7 +46,9 @@ public class UserBankServiceImpl implements UserBankService {
|
||||
public Long createBank(UserBankSaveReqVO createReqVO) {
|
||||
|
||||
//校验银行卡号是否已存在
|
||||
Long count = bankMapper.selectCount(BankDO::getBankNo, createReqVO.getBankNo());
|
||||
Long count = bankMapper.selectCount(new LambdaQueryWrapperX<BankDO>()
|
||||
.eq(BankDO::getBankNo, createReqVO.getBankNo())
|
||||
.eq(BankDO::getNickname, createReqVO.getNickname()));
|
||||
if (count > 0L) {
|
||||
throw exception(BANK_EXISTS);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user