diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/UserBankController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/UserBankController.java new file mode 100644 index 00000000..134bcb5a --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/UserBankController.java @@ -0,0 +1,130 @@ +package cn.iocoder.yudao.module.system.controller.admin.bank; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +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.service.bank.UserBankService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 用户银行卡信息") +@RestController +@RequestMapping("/system/user-bank") +@Validated +public class UserBankController { + + @Resource + private UserBankService userBankService; + + @PostMapping("/create") + @Operation(summary = "创建银行卡信息") + @PreAuthorize("@ss.hasPermission('system:user-bank:create')") + public CommonResult createBank(@Valid @RequestBody UserBankSaveReqVO createReqVO) { + + return success(userBankService.createBank(createReqVO)); + } + + @PostMapping("/create-bank") + @Operation(summary = "创建银行卡信息") + @PreAuthorize("@ss.hasPermission('system:user-bank:create')") + public CommonResult createPayBank(@Valid @RequestBody UserBankSaveReqVO createReqVO) { + + userBankService.createPayBank(createReqVO); + return success(true); + } + + @PostMapping("/create-user") + @Operation(summary = "创建用户和银行卡关联信息") + @PreAuthorize("@ss.hasPermission('system:user-bank:create')") + public CommonResult createUserBank(@RequestBody List bankId) { + + userBankService.createUserBank(bankId); + return success(true); + } + + @PutMapping("/update") + @Operation(summary = "更新银行卡信息") + @PreAuthorize("@ss.hasPermission('system:user-bank:update')") + public CommonResult updateBank(@Valid @RequestBody UserBankSaveReqVO updateReqVO) { + userBankService.updateBank(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除用户和银行卡关联信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:user-bank:delete')") + public CommonResult deleteUserBank(@RequestParam("id") Long id) { + userBankService.deleteUserBank(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得银行卡信息") + @Parameter(name = "bankId", description = "银行卡信息编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:user-bank:query')") + public CommonResult getBank(@RequestParam("bankId") Long bankId) { + + BankDO userBank = userBankService.getBank(bankId); + return success(BeanUtils.toBean(userBank, UserBankRespVO.class)); + } + + @GetMapping("/page-bank") + @Operation(summary = "获得银行卡信息分页列表") + @PreAuthorize("@ss.hasPermission('system:user-bank:query')") + public CommonResult> getBankPage(@Valid UserBankPageReqVO pageReqVO) { + + PageResult pageResult = new PageResult(); + List bankIds = userBankService.getBankIds(getLoginUserId()); + if (bankIds.isEmpty()) { + + pageResult = userBankService.getBankPageIn(pageReqVO, null); + }else { + pageResult = userBankService.getBankPageNotIn(pageReqVO, bankIds); + } + + + return success(BeanUtils.toBean(pageResult, UserBankRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得用户和银行卡关联信息分页") + @PreAuthorize("@ss.hasPermission('system:user-bank:query')") + public CommonResult> getUserBankPage(@Valid UserBankPageReqVO pageReqVO) { + + PageResult pageResult = new PageResult(); + List bankIds = userBankService.getBankIds(getLoginUserId()); + if (!bankIds.isEmpty()) { + + pageResult = userBankService.getBankPageIn(pageReqVO, bankIds); + } + + + return success(BeanUtils.toBean(pageResult, UserBankRespVO.class)); + } + + @GetMapping("/list") + @Operation(summary = "获得用户和银行卡关联信息列表") + @PreAuthorize("@ss.hasPermission('system:user-bank:query')") + public CommonResult> getUserBankList() { + + List bankDOS = userBankService.getBankListByUserId(getLoginUserId()); + + return success(BeanUtils.toBean(bankDOS, UserBankRespVO.class)); + } +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankPageReqVO.java new file mode 100644 index 00000000..2dea421d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankPageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.bank.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 用户银行卡信息分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class UserBankPageReqVO extends PageParam { + + @Schema(description = "用户编号", example = "31665") + private Long userId; + + @Schema(description = "银行卡用户名称", example = "芋艿") + private String nickname; + + @Schema(description = "银行卡号") + private String bankNo; + + @Schema(description = "开户行信息", example = "赵六") + private String bankName; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankRespVO.java new file mode 100644 index 00000000..a89cfae0 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankRespVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.controller.admin.bank.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 用户银行卡信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class UserBankRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3548") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31665") + private Long userId; + + @Schema(description = "银行卡用户名称", example = "芋艿") + @ExcelProperty("银行卡用户名称") + private String nickname; + + @Schema(description = "银行卡号") + @ExcelProperty("银行卡号") + private String bankNo; + + @Schema(description = "开户行信息", example = "赵六") + @ExcelProperty("开户行信息") + private String bankName; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankSaveReqVO.java new file mode 100644 index 00000000..caf9ce35 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/bank/vo/UserBankSaveReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.system.controller.admin.bank.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 用户银行卡信息新增/修改 Request VO") +@Data +public class UserBankSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3548") + private Long id; + + @Schema(description = "银行卡用户名称", example = "芋艿") + private String nickname; + + @Schema(description = "银行卡号") + private String bankNo; + + @Schema(description = "开户行信息", example = "赵六") + private String bankName; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/bank/BankDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/bank/BankDO.java new file mode 100644 index 00000000..2cca5fb9 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/bank/BankDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.bank; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 管理后台的用户银行卡信息 DO + */ +@TableName(value = "system_bank", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BankDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + + /** + * 银行卡用户名称 + */ + private String nickname; + + /** + * 银行卡号 + */ + private String bankNo; + + /** + * 开户行信息 + */ + private String bankName; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/bank/UserBankDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/bank/UserBankDO.java new file mode 100644 index 00000000..4dbd2d42 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/bank/UserBankDO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.bank; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 用户和银行卡关联 DO + */ +@TableName(value = "system_user_bank", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UserBankDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + + /** + * 用户ID + */ + private Long userId; + + /** + * 银行卡信息 ID + */ + private Long bankId; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/bank/BankMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/bank/BankMapper.java new file mode 100644 index 00000000..170b9a71 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/bank/BankMapper.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.dal.mysql.bank; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +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.dal.dataobject.bank.BankDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 银行卡信息 Mapper + * + * @author 符溶馨 + */ +@Mapper +public interface BankMapper extends BaseMapperX { + + default PageResult selectPageIn(UserBankPageReqVO reqVO, List bankId) { + + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(BankDO::getNickname, reqVO.getNickname()) + .inIfPresent(BankDO::getId, bankId) + .orderByDesc(BankDO::getId)); + } + + default PageResult selectPageNotIn(UserBankPageReqVO reqVO, List bankId) { + + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(BankDO::getNickname, reqVO.getNickname()) + .notIn(BankDO::getId, bankId) + .orderByDesc(BankDO::getId)); + } + + default List selectBankList(List bankId) { + + return selectList(new LambdaQueryWrapperX() + .in(BankDO::getId, bankId)); + } +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/bank/UserBankMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/bank/UserBankMapper.java new file mode 100644 index 00000000..815f6b1b --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/bank/UserBankMapper.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.system.dal.mysql.bank; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.bank.UserBankDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户和银行卡关联 Mapper + * + * @author 符溶馨 + */ +@Mapper +public interface UserBankMapper extends BaseMapperX { + + default UserBankDO selectByBankId(Long userId, Long bankId) { + + return selectOne(new LambdaQueryWrapperX() + .eq(UserBankDO::getUserId, userId) + .eq(UserBankDO::getBankId, bankId)); + } +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bank/UserBankService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bank/UserBankService.java new file mode 100644 index 00000000..51e18b54 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bank/UserBankService.java @@ -0,0 +1,86 @@ +package cn.iocoder.yudao.module.system.service.bank; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +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; + +import javax.validation.Valid; +import java.util.List; + +/** + * 用户银行卡信息 Service 接口 + * + * @author 符溶馨 + */ +public interface UserBankService { + + /** + * 创建用户银行卡信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createBank(@Valid UserBankSaveReqVO createReqVO); + + /** + * 创建用户银行卡信息 + * + * @param createReqVO 创建信息 + */ + void createPayBank(@Valid UserBankSaveReqVO createReqVO); + + /** + * 创建用户和银行卡关联信息 + * + * @param bankId 银行卡信息编号组 + */ + void createUserBank(List bankId); + + /** + * 更新银行卡信息 + * + * @param updateReqVO 更新信息 + */ + void updateBank(@Valid UserBankSaveReqVO updateReqVO); + + /** + * 删除用户银行卡信息 + * + * @param id 编号 + */ + void deleteUserBank(Long id); + + /** + * 获得用户银行卡信息 + * + * @param bankId 银行卡信息编号 + * @return 银行卡信息 + */ + BankDO getBank(Long bankId); + + /** + * 获得银行卡信息编号组 + * @param userId 用户ID + * @return 银行卡信息编号组 + */ + List getBankIds(Long userId); + + /** + * 获得银行卡信息分页 + * + * @param pageReqVO 分页查询 + * @return 银行卡信息分页 + */ + PageResult getBankPageIn(UserBankPageReqVO pageReqVO, List bankId); + + /** + * 获得银行卡信息分页 + * + * @param pageReqVO 分页查询 + * @return 银行卡信息分页 + */ + PageResult getBankPageNotIn(UserBankPageReqVO pageReqVO, List bankId); + + List getBankListByUserId(Long userId); +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bank/UserBankServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bank/UserBankServiceImpl.java new file mode 100644 index 00000000..2e6b80f3 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/bank/UserBankServiceImpl.java @@ -0,0 +1,190 @@ +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.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; +import cn.iocoder.yudao.module.system.dal.dataobject.bank.UserBankDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.dal.mysql.bank.BankMapper; +import cn.iocoder.yudao.module.system.dal.mysql.bank.UserBankMapper; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 用户银行卡信息 Service 实现类 + * + * @author 符溶馨 + */ +@Service +@Validated +public class UserBankServiceImpl implements UserBankService { + + @Resource + private UserBankMapper userBankMapper; + + @Resource + private BankMapper bankMapper; + + @Resource + private AdminUserService adminUserService; + + @Override + public Long createBank(UserBankSaveReqVO createReqVO) { + + //校验银行卡号是否已存在 + Long count = bankMapper.selectCount(BankDO::getBankNo, createReqVO.getBankNo()); + if (count > 0L) { + throw exception(BANK_EXISTS); + } + + // 插入 + BankDO bank = BeanUtils.toBean(createReqVO, BankDO.class); + bankMapper.insert(bank); + // 返回 + return bank.getId(); + } + + @Override + public void createPayBank(UserBankSaveReqVO createReqVO) { + + //校验银行卡号是否已存在 + BankDO bankDO = bankMapper.selectOne(BankDO::getBankNo, createReqVO.getBankNo()); + if (bankDO != null) { + + UserBankDO userBankDO = userBankMapper.selectByBankId(getLoginUserId(), bankDO.getId()); + if (userBankDO == null) { + + userBankDO = new UserBankDO(); + userBankDO.setUserId(getLoginUserId()); + userBankDO.setBankId(bankDO.getId()); + userBankDO.setCreator(Objects.requireNonNull(getLoginUserId()).toString()); + + userBankMapper.insert(userBankDO); + } + }else { + + // 插入 + BankDO bank = BeanUtils.toBean(createReqVO, BankDO.class); + bankMapper.insert(bank); + + UserBankDO userBankDO = new UserBankDO(); + userBankDO.setUserId(getLoginUserId()); + userBankDO.setBankId(bank.getId()); + userBankDO.setCreator(Objects.requireNonNull(getLoginUserId()).toString()); + + userBankMapper.insert(userBankDO); + } + } + + @Override + public void createUserBank(List bankId) { + + //获取当前登录用户信息 + AdminUserDO adminUserDO = adminUserService.getUser(getLoginUserId()); + + List useDOs = bankId.stream() + .map(id -> { + UserBankDO userBankDO = new UserBankDO(); + userBankDO.setUserId(adminUserDO.getId()); + userBankDO.setBankId(id); + userBankDO.setCreator(String.valueOf(adminUserDO.getId())); + return userBankDO; + }).collect(Collectors.toList()); + + userBankMapper.insertBatch(useDOs); + } + + @Override + public void updateBank(UserBankSaveReqVO updateReqVO) { + // 校验存在 + validateBankExists(updateReqVO.getId()); + + // 更新 + BankDO updateObj = BeanUtils.toBean(updateReqVO, BankDO.class); + bankMapper.updateById(updateObj); + } + + @Override + public void deleteUserBank(Long id) { + // 校验存在 + UserBankDO userBankDO = userBankMapper.selectByBankId(getLoginUserId(), id); + if (userBankDO == null) { + throw exception(BANK_NOT_EXISTS); + } + + // 删除 + userBankMapper.deleteById(userBankDO); + + BankDO bankDO = bankMapper.selectById(userBankDO.getBankId()); + //校验当前登录用户是否是 该银行卡信息的创建者 + if (bankDO.getCreator().equals(userBankDO.getUserId().toString())) { + + // 同步删除 银行卡信息 + bankMapper.deleteById(bankDO.getId()); + } + } + + private void validateBankExists(Long id) { + + BankDO bankDO = bankMapper.selectById(id); + + if (bankDO == null) { + throw exception(BANK_NOT_EXISTS); + } + + //校验当前登录用户是否是 该银行卡信息的创建者 + if (!Long.valueOf(bankDO.getCreator()).equals(getLoginUserId())) { + throw exception(BANK_NOT_CREATOR); + } + } + + @Override + public BankDO getBank(Long id) { + + return bankMapper.selectById(id); + } + + @Override + public List getBankIds(Long userId) { + + List userBankDOS = userBankMapper.selectList(UserBankDO::getUserId, userId); + + return convertList(userBankDOS, UserBankDO::getBankId); + } + + @Override + public PageResult getBankPageIn(UserBankPageReqVO pageReqVO, List bankId) { + + return bankMapper.selectPageIn(pageReqVO, bankId); + } + + @Override + public PageResult getBankPageNotIn(UserBankPageReqVO pageReqVO, List bankId) { + + return bankMapper.selectPageNotIn(pageReqVO, bankId); + } + + @Override + public List getBankListByUserId(Long userId) { + + if (getBankIds(userId).isEmpty()) { + + return null; + } + + return bankMapper.selectBankList(getBankIds(userId)); + } +} \ No newline at end of file