提交 db668d4f authored 作者: aiqingguo's avatar aiqingguo

Merge branch 'v10.7_borrowing_and_repayment_20240118' into test

# Conflicts: # performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java Former-commit-id: f517360e
......@@ -113,6 +113,9 @@ public enum PerformanceResultEnum implements ResultEnum {
SLIDER_CHECK_FAIL(1911, "滑块验证错误"),
ORDER_CHILD_SYNC_ERROR(2001, "承运同步网络货运异常"),
BORROWER_NAME_EXIST(1701, "数据重复,请核实后重新提交"),
BORROWER_CONFIG_BORROWER_ID_EXIST(1701, "数据重复,请核实后重新提交"),
;
private final int code;
private final String msg;
......
package com.clx.performance.enums.borrower;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum BorrowerConfigEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
ENABLE(1, "启用"),
DISABLE(2, "禁用"),
;
private final Integer code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Status::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum DeleteStatus {
NO(0, "否"),
YES(1, "是"),
;
private final Integer code;
private final String msg;
}
}
package com.clx.performance.enums.borrower;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum BorrowerEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
ENABLE(1, "启用"),
DISABLE(2, "禁用"),
;
private final Integer code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Status::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum DeleteStatus {
NO(0, "否"),
YES(1, "是"),
;
private final Integer code;
private final String msg;
}
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerAddParam {
@ApiModelProperty(value = "借出方", example = "张三")
@NotBlank(message = "借出方不能为空")
private String name;
@ApiModelProperty(value = "所属银行", example = "工商银行")
@NotBlank(message = "所属银行不能为空")
private String bankName;
@ApiModelProperty(value = "银行账号", example = "10000000000000000")
@NotBlank(message = "不能为空")
private String bankCardNo;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerConfigAddParam {
@ApiModelProperty(value = "借出方id", example = "1")
private Integer borrowerId;
@ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "1")
private Integer type;
@ApiModelProperty(value = "借款天数", example = "1")
private Integer day;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerConfigDeleteUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerConfigStatusUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "1")
@NotNull(message = "状态不能为空")
private Integer status;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerConfigUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "借出方id", example = "1")
private Integer borrowerId;
@ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "1")
private Integer type;
@ApiModelProperty(value = "借款天数", example = "1")
private Integer day;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerDeleteUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerStatusUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "1")
@NotNull(message = "状态不能为空")
private Integer status;
}
package com.clx.performance.param.pc.borrower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: aiqingguo
* @Date: 2023-10-11 17:30:57
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BorrowerUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "借出方", example = "张三")
@NotBlank(message = "借出方不能为空")
private String name;
@ApiModelProperty(value = "所属银行", example = "工商银行")
@NotBlank(message = "所属银行不能为空")
private String bankName;
@ApiModelProperty(value = "银行账号", example = "10000000000000000")
@NotBlank(message = "银行账号不能为空")
private String bankCardNo;
}
package com.clx.performance.param.pc.borrower;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageBorrowerConfigParam extends PageParam {
@ApiModelProperty(value = "借出方", example = "张三")
private String name;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "")
private Integer status;
}
\ No newline at end of file
package com.clx.performance.param.pc.borrower;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageBorrowerParam extends PageParam {
@ApiModelProperty(value = "借出方", example = "张三")
private String name;
}
\ No newline at end of file
package com.clx.performance.vo.pc.borrower;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 借款配置
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@ApiModel(description = "借款配置")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class BorrowerConfigVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "借出方id", example = "")
private Integer borrowerId;
@ApiModelProperty(value = "借出方", example = "")
private String borrowerName;
@ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "")
private Integer type;
@ApiModelProperty(value = "借款天数", example = "")
private Integer day;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "")
private Integer status;
@ApiModelProperty(value = "操作人编码", example = "")
private Long opUserNo;
@ApiModelProperty(value = "操作人", example = "")
private String opUserName;
@ApiModelProperty(value = "操作时间", example = "")
private LocalDateTime opTime;
@ApiModelProperty(value = "创建时间", example = "")
private LocalDateTime createTime;
}
\ No newline at end of file
package com.clx.performance.vo.pc.borrower;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@ApiModel(description = "借出方")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class BorrowerVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "借出方", example = "")
private String name;
@ApiModelProperty(value = "所属银行", example = "")
private String bankName;
@ApiModelProperty(value = "银行账号", example = "")
private String bankCardNo;
@ApiModelProperty(value = "状态:1启用 2禁用", example = "")
private Integer status;
@ApiModelProperty(value = "操作人编码", example = "")
private Long opUserNo;
@ApiModelProperty(value = "操作人", example = "")
private String opUserName;
@ApiModelProperty(value = "操作时间", example = "")
private LocalDateTime opTime;
@ApiModelProperty(value = "创建时间", example = "")
private LocalDateTime createTime;
}
\ No newline at end of file
package com.clx.performance.controller.pc.borrower.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.borrower.*;
import com.clx.performance.service.borrower.BorrowerConfigService;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/borrowerConfig")
@Validated
@Api(tags = "承运端-借出方")
@AllArgsConstructor
public class CarrierBorrowerConfigController {
private final BorrowerConfigService borrowerConfigService;
@ApiOperation(value = "新增借出方配置", notes = "<br>By:艾庆国")
@PostMapping("/saveBorrowerConfig")
@UnitCovert
public Result<Void> saveBorrowerConfig(@RequestBody @Validated BorrowerConfigAddParam param) {
borrowerConfigService.saveBorrowerConfig(param);
return Result.ok();
}
@ApiOperation(value = "更新借出方配置", notes = "<br>By:艾庆国")
@PostMapping("/updateBorrowerConfig")
public Result<Void> updateBorrowerConfig(@RequestBody @Validated BorrowerConfigUpdateParam param) {
borrowerConfigService.updateBorrowerConfig(param);
return Result.ok();
}
@ApiOperation(value = "更新借出方配置状态", notes = "<br>By:艾庆国")
@PostMapping("/updateStatus")
public Result<Void> updateStatus(@RequestBody @Validated BorrowerConfigStatusUpdateParam param) {
borrowerConfigService.updateStatus(param);
return Result.ok();
}
@ApiOperation(value = "更新删除借出方配置", notes = "<br>By:艾庆国")
@PostMapping("/updateDelete")
public Result<Void> updateDelete(@RequestBody @Validated BorrowerConfigDeleteUpdateParam param) {
borrowerConfigService.updateDelete(param);
return Result.ok();
}
@ApiOperation(value = "分页搜索借出方配置列表",notes = "<br>By:艾庆国")
@PostMapping("/pageBorrower")
public Result<PageData<BorrowerConfigVO>> pageBorrowerConfig(@RequestBody @Validated PageBorrowerConfigParam param) {
IPage<BorrowerConfigVO> page = borrowerConfigService.pageBorrowerConfig(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "查询所有借出方配置列表",notes = "<br>By:艾庆国")
@PostMapping("/ListBorrowerConfig")
public Result<List<BorrowerConfigVO>> ListBorrowerConfig() {
return Result.ok(borrowerConfigService.ListBorrowerConfig());
}
}
package com.clx.performance.controller.pc.borrower.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.borrower.*;
import com.clx.performance.service.borrower.BorrowerService;
import com.clx.performance.service.impl.borrower.BorrowerServiceImpl;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/borrower")
@Validated
@Api(tags = "承运端-借出方")
@AllArgsConstructor
public class CarrierBorrowerController {
private final BorrowerService borrowerService;
@ApiOperation(value = "新增借出方", notes = "<br>By:艾庆国")
@PostMapping("/saveBorrower")
@UnitCovert
public Result<Void> saveBorrower(@RequestBody @Validated BorrowerAddParam param) {
borrowerService.saveBorrower(param);
return Result.ok();
}
@ApiOperation(value = "更新借出方", notes = "<br>By:艾庆国")
@PostMapping("/updateBorrower")
public Result<Void> updateBorrower(@RequestBody @Validated BorrowerUpdateParam param) {
borrowerService.updateBorrower(param);
return Result.ok();
}
@ApiOperation(value = "更新借出方状态", notes = "<br>By:艾庆国")
@PostMapping("/updateStatus")
public Result<Void> updateStatus(@RequestBody @Validated BorrowerStatusUpdateParam param) {
borrowerService.updateStatus(param);
return Result.ok();
}
@ApiOperation(value = "更新删除借出方", notes = "<br>By:艾庆国")
@PostMapping("/updateDelete")
public Result<Void> updateDelete(@RequestBody @Validated BorrowerDeleteUpdateParam param) {
borrowerService.updateDelete(param);
return Result.ok();
}
@ApiOperation(value = "分页搜索借出方列表",notes = "<br>By:艾庆国")
@PostMapping("/pageBorrower")
public Result<PageData<BorrowerVO>> pageBorrower(@RequestBody @Validated PageBorrowerParam param) {
IPage<BorrowerVO> page = borrowerService.pageBorrower(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "查询所有借出方列表",notes = "<br>By:艾庆国")
@PostMapping("/ListBorrower")
public Result<List<BorrowerVO>> ListBorrower() {
return Result.ok(borrowerService.ListBorrower());
}
}
package com.clx.performance.dao.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.borrower.BorrowerConfigMapper;
import com.clx.performance.model.borrower.BorrowerConfig;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 借款配置
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
public interface BorrowerConfigDao extends BaseDao<BorrowerConfigMapper, BorrowerConfig, Integer> {
boolean update(BorrowerConfig item);
boolean updateStatus(BorrowerConfig item);
boolean updateDelete(BorrowerConfig item);
Optional<BorrowerConfig> selectByBorrowerId(Integer borrowerId);
List<BorrowerConfig> listEnable();
IPage<BorrowerConfigVO> pageByParam(PageBorrowerConfigParam param);
}
package com.clx.performance.dao.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.borrower.BorrowerMapper;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.param.pc.borrower.PageBorrowerParam;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
public interface BorrowerDao extends BaseDao<BorrowerMapper, Borrower, Integer> {
boolean update(Borrower item);
boolean updateStatus(Borrower item);
boolean updateDelete(Borrower item);
Optional<Borrower> selectByName(String name);
List<Borrower> listEnable();
IPage<BorrowerVO> pageByParam(PageBorrowerParam param);
}
package com.clx.performance.dao.impl.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.borrower.BorrowerConfigDao;
import com.clx.performance.enums.borrower.BorrowerConfigEnum;
import com.clx.performance.enums.borrower.BorrowerEnum;
import com.clx.performance.mapper.borrower.BorrowerConfigMapper;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.model.borrower.BorrowerConfig;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 借款配置
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Repository
public class BorrowerConfigDaoImpl extends BaseDaoImpl<BorrowerConfigMapper, BorrowerConfig, Integer> implements BorrowerConfigDao {
@Override
public boolean update(BorrowerConfig item) {
return update(lUdWrapper()
.eq(BorrowerConfig::getId, item.getId())
.set(BorrowerConfig::getBorrowerId, item.getBorrowerId())
.set(BorrowerConfig::getBorrowerName, item.getBorrowerName())
.set(BorrowerConfig::getType, item.getType())
.set(BorrowerConfig::getDay, item.getDay())
.set(BorrowerConfig::getOpUserNo, item.getOpUserNo())
.set(BorrowerConfig::getOpUserName, item.getOpUserName())
.set(BorrowerConfig::getOpTime, item.getOpTime())
);
}
@Override
public boolean updateStatus(BorrowerConfig item) {
return update(lUdWrapper()
.eq(BorrowerConfig::getId, item.getId())
.set(BorrowerConfig::getStatus, item.getStatus())
.set(BorrowerConfig::getOpUserNo, item.getOpUserNo())
.set(BorrowerConfig::getOpUserName, item.getOpUserName())
.set(BorrowerConfig::getOpTime, item.getOpTime())
);
}
@Override
public boolean updateDelete(BorrowerConfig item) {
return update(lUdWrapper()
.eq(BorrowerConfig::getId, item.getId())
.set(BorrowerConfig::getDeleteStatus, item.getDeleteStatus())
.set(BorrowerConfig::getOpUserNo, item.getOpUserNo())
.set(BorrowerConfig::getOpUserName, item.getOpUserName())
.set(BorrowerConfig::getOpTime, item.getOpTime())
);
}
@Override
public Optional<BorrowerConfig> selectByBorrowerId(Integer borrowerId) {
return Optional.of(borrowerId)
.map(item -> lQrWrapper()
.eq(BorrowerConfig::getBorrowerId, item)
.eq(BorrowerConfig::getDeleteStatus, BorrowerConfigEnum.DeleteStatus.NO.getCode())
.last("limit 1")
)
.map(super::getOne);
}
@Override
public List<BorrowerConfig> listEnable() {
return list(lQrWrapper()
.eq(BorrowerConfig::getDeleteStatus, BorrowerConfigEnum.DeleteStatus.NO.getCode())
.eq(BorrowerConfig::getStatus, BorrowerConfigEnum.Status.ENABLE.getCode())
);
}
@Override
public IPage<BorrowerConfigVO> pageByParam(PageBorrowerConfigParam param) {
Page<BorrowerConfigVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.impl.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.borrower.BorrowerDao;
import com.clx.performance.enums.borrower.BorrowerEnum;
import com.clx.performance.mapper.borrower.BorrowerMapper;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.param.pc.borrower.PageBorrowerParam;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Repository
public class BorrowerDaoImpl extends BaseDaoImpl<BorrowerMapper, Borrower, Integer> implements BorrowerDao {
@Override
public boolean update(Borrower item) {
return update(lUdWrapper()
.eq(Borrower::getId, item.getId())
.set(Borrower::getName, item.getName())
.set(Borrower::getBankName, item.getBankName())
.set(Borrower::getBankCardNo, item.getBankCardNo())
.set(Borrower::getOpUserNo, item.getOpUserNo())
.set(Borrower::getOpUserName, item.getOpUserName())
.set(Borrower::getOpTime, item.getOpTime())
);
}
@Override
public boolean updateStatus(Borrower item) {
return update(lUdWrapper()
.eq(Borrower::getId, item.getId())
.set(Borrower::getStatus, item.getStatus())
.set(Borrower::getOpUserNo, item.getOpUserNo())
.set(Borrower::getOpUserName, item.getOpUserName())
.set(Borrower::getOpTime, item.getOpTime())
);
}
@Override
public boolean updateDelete(Borrower item) {
return update(lUdWrapper()
.eq(Borrower::getId, item.getId())
.set(Borrower::getDeleteStatus, item.getDeleteStatus())
.set(Borrower::getOpUserNo, item.getOpUserNo())
.set(Borrower::getOpUserName, item.getOpUserName())
.set(Borrower::getOpTime, item.getOpTime())
);
}
@Override
public Optional<Borrower> selectByName(String name) {
return Optional.of(name)
.map(item -> lQrWrapper()
.eq(Borrower::getName, item)
.eq(Borrower::getDeleteStatus, BorrowerEnum.DeleteStatus.NO.getCode())
.last("limit 1")
)
.map(super::getOne);
}
@Override
public List<Borrower> listEnable() {
return list(lQrWrapper()
.eq(Borrower::getDeleteStatus, BorrowerEnum.DeleteStatus.NO.getCode())
.eq(Borrower::getStatus, BorrowerEnum.Status.ENABLE.getCode())
);
}
@Override
public IPage<BorrowerVO> pageByParam(PageBorrowerParam param) {
Page<BorrowerVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.mapper.borrower;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.borrower.BorrowerConfig;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam;
import com.clx.performance.sqlProvider.borrower.BorrowerConfigSqlProvider;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
/**
* @Author: aiqinguo
* @Description: 借款配置
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Mapper
public interface BorrowerConfigMapper extends BaseMapper<BorrowerConfig> {
/**
* @see BorrowerConfigSqlProvider#pageByParam(Page, PageBorrowerConfigParam)
*/
@SelectProvider(type = BorrowerConfigSqlProvider.class, method = "pageByParam")
IPage<BorrowerConfigVO> pageByParam(@Param("page") Page<BorrowerConfigVO> page, @Param("param") PageBorrowerConfigParam param);
}
\ No newline at end of file
package com.clx.performance.mapper.borrower;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.param.pc.borrower.PageBorrowerParam;
import com.clx.performance.sqlProvider.borrower.BorrowerSqlProvider;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Mapper
public interface BorrowerMapper extends BaseMapper<Borrower> {
/**
* @see BorrowerSqlProvider#pageByParam(Page, PageBorrowerParam)
*/
@SelectProvider(type = BorrowerSqlProvider.class, method = "pageByParam")
IPage<BorrowerVO> pageByParam(@Param("page") Page<BorrowerVO> page, @Param("param") PageBorrowerParam param);
}
\ No newline at end of file
package com.clx.performance.model.borrower;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class Borrower implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; //id
private String name; //借出方
private String bankName; //所属银行
private String bankCardNo; //银行账号
private Integer deleteStatus; //删除状态: 0-否;1-是
private Integer status; //状态:1启用 2禁用
private Long opUserNo; //操作人编码
private String opUserName; //操作人
private LocalDateTime opTime; //操作时间
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
@KeyColumn("id")
@Override
public Integer gainKey() {
return id;
}
}
\ No newline at end of file
package com.clx.performance.model.borrower;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 借款配置
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class BorrowerConfig implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; //id
private Integer borrowerId; //借出方id
private String borrowerName; //借出方
private Integer type; //类型:1资金 2虚拟货币
private Integer day; //借款天数
private Integer deleteStatus; //删除状态: 0-否;1-是
private Integer status; //状态:1启用 2禁用
private Long opUserNo; //操作人编码
private String opUserName; //操作人
private LocalDateTime opTime; //操作时间
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
@KeyColumn("id")
@Override
public Integer gainKey() {
return id;
}
}
\ No newline at end of file
package com.clx.performance.service.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.borrower.*;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
public interface BorrowerConfigService {
void saveBorrowerConfig(BorrowerConfigAddParam param);
void updateBorrowerConfig(BorrowerConfigUpdateParam param);
void updateStatus(BorrowerConfigStatusUpdateParam param);
void updateDelete(BorrowerConfigDeleteUpdateParam param);
IPage<BorrowerConfigVO> pageBorrowerConfig(PageBorrowerConfigParam param);
List<BorrowerConfigVO> ListBorrowerConfig();
}
package com.clx.performance.service.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.borrower.*;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
public interface BorrowerService {
void saveBorrower(BorrowerAddParam param);
void updateBorrower(BorrowerUpdateParam param);
void updateStatus(BorrowerStatusUpdateParam param);
void updateDelete(BorrowerDeleteUpdateParam param);
IPage<BorrowerVO> pageBorrower(PageBorrowerParam param);
List<BorrowerVO> ListBorrower();
}
package com.clx.performance.service.impl.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.borrower.BorrowerConfigDao;
import com.clx.performance.dao.borrower.BorrowerDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.borrower.BorrowerConfigEnum;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.model.borrower.BorrowerConfig;
import com.clx.performance.param.pc.borrower.*;
import com.clx.performance.service.borrower.BorrowerConfigService;
import com.clx.performance.struct.borrower.BorrowerConfigStruct;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Slf4j
@Service
public class BorrowerConfigServiceImpl implements BorrowerConfigService {
@Autowired
private BorrowerDao borrowerDao;
@Autowired
private BorrowerConfigDao borrowerConfigDao;
@Autowired
private BorrowerConfigStruct borrowerConfigStruct;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveBorrowerConfig(BorrowerConfigAddParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
// 重复验证
Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerId(param.getBorrowerId());
if (borrowerConfigOptional.isPresent()) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST);
}
Borrower borrower = borrowerDao.getEntityByKey(param.getBorrowerId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
BorrowerConfig borrowerConfig = new BorrowerConfig();
borrowerConfig.setBorrowerId(borrower.getId());
borrowerConfig.setBorrowerName(borrower.getName());
borrowerConfig.setType(param.getType());
borrowerConfig.setDay(param.getDay());
borrowerConfig.setOpUserNo(loginUserInfo.getUserNo());
borrowerConfig.setOpUserName(loginUserInfo.getUserName());
borrowerConfig.setOpTime(LocalDateTime.now());
borrowerConfigDao.saveEntity(borrowerConfig);
}
@Override
public void updateBorrowerConfig(BorrowerConfigUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 重复验证
Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerId(param.getBorrowerId());
if (borrowerConfigOptional.isPresent() && !Objects.equals(borrowerConfig.getId(), borrowerConfigOptional.get().getId())) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST);
}
Borrower borrower = borrowerDao.getEntityByKey(param.getBorrowerId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
borrowerConfig.setBorrowerId(borrower.getId());
borrowerConfig.setBorrowerName(borrower.getName());
borrowerConfig.setType(param.getType());
borrowerConfig.setDay(param.getDay());
borrowerConfig.setOpUserNo(loginUserInfo.getUserNo());
borrowerConfig.setOpUserName(loginUserInfo.getUserName());
borrowerConfig.setOpTime(LocalDateTime.now());
borrowerConfigDao.update(borrowerConfig);
}
@Override
public void updateStatus(BorrowerConfigStatusUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
borrowerConfig.setStatus(param.getStatus());
borrowerConfig.setOpUserNo(loginUserInfo.getUserNo());
borrowerConfig.setOpUserName(loginUserInfo.getUserName());
borrowerConfig.setOpTime(LocalDateTime.now());
borrowerConfigDao.updateStatus(borrowerConfig);
}
@Override
public void updateDelete(BorrowerConfigDeleteUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
borrowerConfig.setDeleteStatus(BorrowerConfigEnum.DeleteStatus.YES.getCode());
borrowerConfig.setOpUserNo(loginUserInfo.getUserNo());
borrowerConfig.setOpUserName(loginUserInfo.getUserName());
borrowerConfig.setOpTime(LocalDateTime.now());
borrowerConfigDao.updateDelete(borrowerConfig);
}
@Override
public IPage<BorrowerConfigVO> pageBorrowerConfig(PageBorrowerConfigParam param) {
return borrowerConfigDao.pageByParam(param);
}
@Override
public List<BorrowerConfigVO> ListBorrowerConfig() {
return borrowerConfigStruct.convert(borrowerConfigDao.listEnable());
}
}
package com.clx.performance.service.impl.borrower;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.borrower.BorrowerDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.borrower.BorrowerEnum;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.param.pc.borrower.*;
import com.clx.performance.service.borrower.BorrowerService;
import com.clx.performance.struct.borrower.BorrowerStruct;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
* @Author: aiqinguo
* @Description: 借出方
* @Date: 2024/01/17 13:42:57
* @Version: 1.0
*/
@Slf4j
@Service
public class BorrowerServiceImpl implements BorrowerService {
@Autowired
private BorrowerDao borrowerDao;
@Autowired
private BorrowerStruct borrowerStruct;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveBorrower(BorrowerAddParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
// 重复验证
Optional<Borrower> borrowerOptional = borrowerDao.selectByName(param.getName());
if (borrowerOptional.isPresent()) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_NAME_EXIST);
}
Borrower borrower = new Borrower();
borrower.setName(param.getName());
borrower.setBankName(param.getBankName());
borrower.setBankCardNo(param.getBankCardNo());
borrower.setOpUserNo(loginUserInfo.getUserNo());
borrower.setOpUserName(loginUserInfo.getUserName());
borrower.setOpTime(LocalDateTime.now());
borrowerDao.saveEntity(borrower);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateBorrower(BorrowerUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Borrower borrower = borrowerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
Optional<Borrower> borrowerOptional = borrowerDao.selectByName(param.getName());
if (borrowerOptional.isPresent() && !Objects.equals(borrower.getId(), borrowerOptional.get().getId())) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_NAME_EXIST);
}
borrower.setName(param.getName());
borrower.setBankName(param.getBankName());
borrower.setBankCardNo(param.getBankCardNo());
borrower.setOpUserNo(loginUserInfo.getUserNo());
borrower.setOpUserName(loginUserInfo.getUserName());
borrower.setOpTime(LocalDateTime.now());
borrowerDao.update(borrower);
}
@Override
public void updateStatus(BorrowerStatusUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Borrower borrower = borrowerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
borrower.setStatus(param.getStatus());
borrower.setOpUserNo(loginUserInfo.getUserNo());
borrower.setOpUserName(loginUserInfo.getUserName());
borrower.setOpTime(LocalDateTime.now());
borrowerDao.updateStatus(borrower);
}
@Override
public void updateDelete(BorrowerDeleteUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Borrower borrower = borrowerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
borrower.setDeleteStatus(BorrowerEnum.DeleteStatus.YES.getCode());
borrower.setOpUserNo(loginUserInfo.getUserNo());
borrower.setOpUserName(loginUserInfo.getUserName());
borrower.setOpTime(LocalDateTime.now());
borrowerDao.updateDelete(borrower);
}
@Override
public IPage<BorrowerVO> pageBorrower(PageBorrowerParam param) {
return borrowerDao.pageByParam(param);
}
@Override
public List<BorrowerVO> ListBorrower() {
return borrowerStruct.convert(borrowerDao.listEnable());
}
}
package com.clx.performance.sqlProvider.borrower;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class BorrowerConfigSqlProvider {
public String pageByParam(@Param("page") Page<BorrowerConfigVO> page, @Param("param") PageBorrowerConfigParam param) {
return new SQL(){{
SELECT(" id, borrower_id as borrowerId, borrower_name as borrowerName, " +
" type, day, " +
" delete_status as deleteStatus, status, " +
" op_user_no as opUserNo, op_user_name as opUserName, date_format(op_time, '%Y-%m-%d %H:%i:%s') as opTime, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
);
FROM("borrower_config");
WHERE("delete_status = 0");
if (StringUtils.isNotBlank(param.getName())) {WHERE("name = #{param.name}");}
if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");}
ORDER_BY("create_time desc");
}}.toString();
}
}
package com.clx.performance.sqlProvider.borrower;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.borrower.PageBorrowerParam;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
public class BorrowerSqlProvider {
public String pageByParam(@Param("page") Page<BorrowerVO> page, @Param("param") PageBorrowerParam param) {
return new SQL(){{
SELECT(" id, name, bank_name as bankName, bank_card_no as bankCardNo, " +
" delete_status, status, " +
" op_user_no as opUserNo, op_user_name as opUserName, date_format(op_time, '%Y-%m-%d %H:%i:%s') as opTime, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
);
FROM("borrower");
WHERE("delete_status = 0");
if (StringUtils.isNotBlank(param.getName())) {WHERE("name = #{param.name}");}
ORDER_BY("create_time desc");
}}.toString();
}
}
package com.clx.performance.struct.borrower;
import com.clx.performance.model.borrower.BorrowerConfig;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface BorrowerConfigStruct {
BorrowerConfigVO convert(BorrowerConfig item);
List<BorrowerConfigVO> convert(List<BorrowerConfig> list);
}
package com.clx.performance.struct.borrower;
import com.clx.performance.model.borrower.Borrower;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface BorrowerStruct {
BorrowerVO convert(Borrower item);
List<BorrowerVO> convert(List<Borrower> list);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论