银行卡管理模块添加
This commit is contained in:
parent
f5133bbbdf
commit
ba65b0cf22
@ -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<Long> createBank(@Valid @RequestBody UserBankSaveReqVO createReqVO) {
|
||||||
|
|
||||||
|
return success(userBankService.createBank(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/create-bank")
|
||||||
|
@Operation(summary = "创建银行卡信息")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:user-bank:create')")
|
||||||
|
public CommonResult<Boolean> 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<Boolean> createUserBank(@RequestBody List<Long> bankId) {
|
||||||
|
|
||||||
|
userBankService.createUserBank(bankId);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新银行卡信息")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:user-bank:update')")
|
||||||
|
public CommonResult<Boolean> 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<Boolean> 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<UserBankRespVO> 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<PageResult<UserBankRespVO>> getBankPage(@Valid UserBankPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
PageResult<BankDO> pageResult = new PageResult<BankDO>();
|
||||||
|
List<Long> 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<PageResult<UserBankRespVO>> getUserBankPage(@Valid UserBankPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
PageResult<BankDO> pageResult = new PageResult<BankDO>();
|
||||||
|
List<Long> 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<List<UserBankRespVO>> getUserBankList() {
|
||||||
|
|
||||||
|
List<BankDO> bankDOS = userBankService.getBankListByUserId(getLoginUserId());
|
||||||
|
|
||||||
|
return success(BeanUtils.toBean(bankDOS, UserBankRespVO.class));
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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<BankDO> {
|
||||||
|
|
||||||
|
default PageResult<BankDO> selectPageIn(UserBankPageReqVO reqVO, List<Long> bankId) {
|
||||||
|
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<BankDO>()
|
||||||
|
.likeIfPresent(BankDO::getNickname, reqVO.getNickname())
|
||||||
|
.inIfPresent(BankDO::getId, bankId)
|
||||||
|
.orderByDesc(BankDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default PageResult<BankDO> selectPageNotIn(UserBankPageReqVO reqVO, List<Long> bankId) {
|
||||||
|
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<BankDO>()
|
||||||
|
.likeIfPresent(BankDO::getNickname, reqVO.getNickname())
|
||||||
|
.notIn(BankDO::getId, bankId)
|
||||||
|
.orderByDesc(BankDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default List<BankDO> selectBankList(List<Long> bankId) {
|
||||||
|
|
||||||
|
return selectList(new LambdaQueryWrapperX<BankDO>()
|
||||||
|
.in(BankDO::getId, bankId));
|
||||||
|
}
|
||||||
|
}
|
@ -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<UserBankDO> {
|
||||||
|
|
||||||
|
default UserBankDO selectByBankId(Long userId, Long bankId) {
|
||||||
|
|
||||||
|
return selectOne(new LambdaQueryWrapperX<UserBankDO>()
|
||||||
|
.eq(UserBankDO::getUserId, userId)
|
||||||
|
.eq(UserBankDO::getBankId, bankId));
|
||||||
|
}
|
||||||
|
}
|
@ -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<Long> 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<Long> getBankIds(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得银行卡信息分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 银行卡信息分页
|
||||||
|
*/
|
||||||
|
PageResult<BankDO> getBankPageIn(UserBankPageReqVO pageReqVO, List<Long> bankId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得银行卡信息分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 银行卡信息分页
|
||||||
|
*/
|
||||||
|
PageResult<BankDO> getBankPageNotIn(UserBankPageReqVO pageReqVO, List<Long> bankId);
|
||||||
|
|
||||||
|
List<BankDO> getBankListByUserId(Long userId);
|
||||||
|
}
|
@ -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<Long> bankId) {
|
||||||
|
|
||||||
|
//获取当前登录用户信息
|
||||||
|
AdminUserDO adminUserDO = adminUserService.getUser(getLoginUserId());
|
||||||
|
|
||||||
|
List<UserBankDO> 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<Long> getBankIds(Long userId) {
|
||||||
|
|
||||||
|
List<UserBankDO> userBankDOS = userBankMapper.selectList(UserBankDO::getUserId, userId);
|
||||||
|
|
||||||
|
return convertList(userBankDOS, UserBankDO::getBankId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<BankDO> getBankPageIn(UserBankPageReqVO pageReqVO, List<Long> bankId) {
|
||||||
|
|
||||||
|
return bankMapper.selectPageIn(pageReqVO, bankId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<BankDO> getBankPageNotIn(UserBankPageReqVO pageReqVO, List<Long> bankId) {
|
||||||
|
|
||||||
|
return bankMapper.selectPageNotIn(pageReqVO, bankId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BankDO> getBankListByUserId(Long userId) {
|
||||||
|
|
||||||
|
if (getBankIds(userId).isEmpty()) {
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return bankMapper.selectBankList(getBankIds(userId));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user