feat: add operation

This commit is contained in:
Donghuang 2024-10-02 14:19:07 +08:00
parent 3e7d5b3cd4
commit bdac588824
135 changed files with 4484 additions and 8 deletions

1
operation/dal/README.md Normal file
View File

@ -0,0 +1 @@
# Yo DAL

90
operation/dal/pom.xml Normal file
View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>yo-tj-operation-dal</artifactId>
<name>Yo Tiaojie Operation DAL</name>
<description>Yo Tiaojie Operation DAL</description>
<parent>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-tj-operation</artifactId>
<version>${revision}</version>
</parent>
<dependencies>
<!--三方依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
<!--/三方依赖-->
<!--二方依赖-->
<dependency>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-basic-model</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-mybatis-cache</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-util</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-mybatis</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-kit</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-dal</artifactId>
</dependency>
<!--/二方依赖-->
<!--Provided-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.agent;
import com.pudonghot.yo.operation.dal.agent.model.AgentDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 调解员表
*
* @author Donghuang
* @date Oct 01, 2024 14:18:46
*/
public interface AgentDal extends BaseDal<Long, AgentDO> {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.agent.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.agent.model.AgentDO;
import com.pudonghot.yo.operation.dal.agent.mapper.AgentMapper;
import com.pudonghot.yo.operation.dal.agent.AgentDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 调解员表
*
* @author Donghuang
* @date Oct 01, 2024 14:18:46
*/
@Component
public class AgentDalImpl
extends BaseDalImpl<Long, AgentDO, AgentMapper>
implements AgentDal {
}

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.agent.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.agent.model.AgentDO;
/**
* 调解员表
*
* @author Donghuang
* @date Oct 01, 2024 14:18:46
*/
@Mapper
@Table("agent")
public interface AgentMapper extends BaseMapper<Long, AgentDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.agent.mapper.AgentMapper">
<!--
/**
* 调解员表
*
* @author Donghuang
* @date Oct 01, 2024 14:18:46
*/
-->
</mapper>

View File

@ -0,0 +1,74 @@
package com.pudonghot.yo.operation.dal.agent.model;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.NotUpdate;
import com.pudonghot.tigon.mybatis.NotUpdateWhenNull;
/**
* 调解员表
*
* @author Donghuang
* @date Oct 01, 2024 14:18:46
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class AgentDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 催收员账号
*/
@NotUpdate
private String account;
/**
* 上级ID
*/
private Long superiorId;
/**
* 机构ID
*/
private Long agencyId;
/**
* 姓名
*/
private String nickname;
/**
* 类型
*/
private String type;
/**
* 手机
*/
private String mobile;
/**
* 固定电话
*/
private String telephone;
/**
* 角色
*/
private String role;
/**
* 岗位
*/
private String station;
/**
* 资源点
*/
private String resources;
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.application;
import com.pudonghot.yo.operation.dal.application.model.ApplicationDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 案件原始信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:20
*/
public interface ApplicationDal extends BaseDal<Long, ApplicationDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.application;
import com.pudonghot.yo.operation.dal.application.model.ApplicationExtDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 案件申请扩展表
*
* @author Donghuang
* @date Oct 02, 2024 11:30:55
*/
public interface ApplicationExtDal extends BaseDal<Long, ApplicationExtDO> {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.application.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.application.model.ApplicationDO;
import com.pudonghot.yo.operation.dal.application.mapper.ApplicationMapper;
import com.pudonghot.yo.operation.dal.application.ApplicationDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 案件原始信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:20
*/
@Component
public class ApplicationDalImpl
extends BaseDalImpl<Long, ApplicationDO, ApplicationMapper>
implements ApplicationDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.application.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.application.model.ApplicationExtDO;
import com.pudonghot.yo.operation.dal.application.mapper.ApplicationExtMapper;
import com.pudonghot.yo.operation.dal.application.ApplicationExtDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 案件申请扩展表
*
* @author Donghuang
* @date Oct 02, 2024 11:30:55
*/
@Component
public class ApplicationExtDalImpl
extends BaseDalImpl<Long, ApplicationExtDO, ApplicationExtMapper>
implements ApplicationExtDal {
}

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.application.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.application.model.ApplicationExtDO;
/**
* 案件申请扩展表
*
* @author Donghuang
* @date Oct 02, 2024 11:30:55
*/
@Mapper
@Table("application_ext")
public interface ApplicationExtMapper extends BaseMapper<Long, ApplicationExtDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.application.mapper.ApplicationExtMapper">
<!--
/**
* 案件申请扩展表
*
* @author Donghuang
* @date Oct 02, 2024 11:30:55
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.application.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.application.model.ApplicationDO;
/**
* 案件原始信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:20
*/
@Mapper
@Table("application")
public interface ApplicationMapper extends BaseMapper<Long, ApplicationDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.application.mapper.ApplicationMapper">
<!--
/**
* 案件原始信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:20
*/
-->
</mapper>

View File

@ -0,0 +1,160 @@
package com.pudonghot.yo.operation.dal.application.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.math.BigDecimal;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 案件原始信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:20
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class ApplicationDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 贷款ID
*/
@NotUpdate
private Long loanId;
/**
* 总期数
*/
private Integer totalInstallments;
/**
* 当前期数
*/
private Integer currentInstallment;
/**
* 已还期数
*/
private Integer repaidInstallments;
/**
* 逾期期数
*/
private Integer overdueInstallments;
/**
* 申请时间
*/
private Date applyDate;
/**
* 批核时间
*/
private Date approveDate;
/**
* 放款时间
*/
private Date loanDate;
/**
* 当期账单日
*/
private Date dueDate;
/**
* 利率
*/
private BigDecimal interestRate;
/**
* 服务费率
*/
private BigDecimal serviceInterestRate;
/**
* 罚息利率
*/
private BigDecimal penaltyInterestRate;
/**
* 合同(申请)金额
*/
private Long applyAmount;
/**
* 放款金额
*/
private Long loanAmount;
/**
* 违约金,罚金
*/
private Long defaultFineAmount;
/**
* 逾期金额
*/
private Long overdueAmount;
/**
* 剩余本金
*/
private Long principalRemain;
/**
* 提前清贷金额
*/
private Long prepaymentAmount;
/**
* 募资方
*/
private String fundraiser;
/**
* 产品名称
*/
private String productName;
/**
* 还款方式
*/
private String repaymentType;
/**
* 贷款平台名称
*/
private String platformName;
/**
* 募资方名称
*/
private String fundraiserName;
/**
* 助贷机构名称
*/
private String loanAgencyName;
/**
* 紧急联系人关系
*/
private String emergencyContactRelation;
/**
* 紧急联系人备注名
*/
private String emergencyContactName;
/**
* 紧急联系人号码
*/
private String emergencyContactMobile;
}

View File

@ -0,0 +1,78 @@
package com.pudonghot.yo.operation.dal.application.model;
import lombok.Getter;
import lombok.Setter;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 案件申请扩展表
*
* @author Donghuang
* @date Oct 02, 2024 11:30:55
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class ApplicationExtDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 贷款ID
*/
@NotUpdate
private Long loanId;
/**
* 附加字段1
*/
private String extData1;
/**
* 附加字段2
*/
private String extData2;
/**
* 附加字段3
*/
private String extData3;
/**
* 附加字段4
*/
private String extData4;
/**
* 附加字段5
*/
private String extData5;
/**
* 附加字段6
*/
private String extData6;
/**
* 附加字段7
*/
private String extData7;
/**
* 附加字段8
*/
private String extData8;
/**
* 附加字段9
*/
private String extData9;
/**
* 附加字段10
*/
private String extData10;
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.assignment;
import com.pudonghot.yo.operation.dal.assignment.model.AssignmentDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 催收案件分单记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:37
*/
public interface AssignmentDal extends BaseDal<Long, AssignmentDO> {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.assignment.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.assignment.model.AssignmentDO;
import com.pudonghot.yo.operation.dal.assignment.mapper.AssignmentMapper;
import com.pudonghot.yo.operation.dal.assignment.AssignmentDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 催收案件分单记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:37
*/
@Component
public class AssignmentDalImpl
extends BaseDalImpl<Long, AssignmentDO, AssignmentMapper>
implements AssignmentDal {
}

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.assignment.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.assignment.model.AssignmentDO;
/**
* 催收案件分单记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:37
*/
@Mapper
@Table("assignment")
public interface AssignmentMapper extends BaseMapper<Long, AssignmentDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.assignment.mapper.AssignmentMapper">
<!--
/**
* 催收案件分单记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:37
*/
-->
</mapper>

View File

@ -0,0 +1,69 @@
package com.pudonghot.yo.operation.dal.assignment.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 催收案件分单记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:37
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class AssignmentDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 案件ID
*/
@NotUpdate
private Long loanId;
/**
* 催收员分组ID
*/
private Long groupId;
/**
* 催收员ID
*/
private Long agentId;
/**
* 协助催收员ID
*/
private Long assistantAgentId;
/**
* 催收状态在催出催
*/
private String status;
/**
* 案件分配日期
*/
private Date assignTime;
/**
* 预计出催日期
*/
private Date expectExpireDate;
/**
* 案件实际到期日期
*/
private Date actualExpireDate;
/**
* 分案方式
*/
private String assignType;
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.interaction;
import com.pudonghot.yo.operation.dal.interaction.model.InteractionDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 催收记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:55
*/
public interface InteractionDal extends BaseDal<Long, InteractionDO> {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.interaction.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
import com.pudonghot.yo.operation.dal.interaction.InteractionDal;
import com.pudonghot.yo.operation.dal.interaction.model.InteractionDO;
import com.pudonghot.yo.operation.dal.interaction.mapper.InteractionMapper;
/**
* 催收记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:55
*/
@Component
public class InteractionDalImpl
extends BaseDalImpl<Long, InteractionDO, InteractionMapper>
implements InteractionDal {
}

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.interaction.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.interaction.model.InteractionDO;
/**
* 催收记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:55
*/
@Mapper
@Table("interaction")
public interface InteractionMapper extends BaseMapper<Long, InteractionDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.interaction.mapper.InteractionMapper">
<!--
/**
* 催收记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:55
*/
-->
</mapper>

View File

@ -0,0 +1,112 @@
package com.pudonghot.yo.operation.dal.interaction.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.math.BigDecimal;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.NotUpdate;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 催收记录表
*
* @author Donghuang
* @date Oct 01, 2024 14:19:55
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class InteractionDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 催收案件ID
*/
@NotUpdate
private Long loanId;
/**
* 催收方式
*/
private String type;
/**
* 结论
*/
private String conclusion;
/**
* 催收日期
*/
private Date dueDate;
/**
* 下次跟进时间
*/
private Date recheckDate;
/**
* 操作类别:内部人工;内部自动
*/
private String handleCategory;
/**
* 是否有效联络: 有效;无效
*/
private String isCallValid;
/**
* 承诺还款日期
*/
private Date promisedPaymentDate;
/**
* 逾期原因
*/
private String overdueReason;
/**
* 本人手机号状态
*/
private String phoneStatus;
/**
* 短信表主键ID
*/
private Long smsId;
/**
* 催收操作结果
*/
private String result;
/**
* 承诺还款金额
*/
private BigDecimal promisedPaymentAmount;
/**
* 客户姓名
*/
private String name;
/**
* 客户手机
*/
private String phone;
/**
* contact表主键联系人
*/
private Long contactId;
private String relation;
/**
* 催收员ID
*/
private Long agentId;
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loan;
import com.pudonghot.yo.operation.dal.loan.model.BankCardDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 银行卡绑定信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
public interface BankCardDal extends BaseDal<Long, BankCardDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loan;
import com.pudonghot.yo.operation.dal.loan.model.ContactDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 客户联系人表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
public interface ContactDal extends BaseDal<Long, ContactDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loan;
import com.pudonghot.yo.operation.dal.loan.model.CustomerDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 客户表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
public interface CustomerDal extends BaseDal<Long, CustomerDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loan;
import com.pudonghot.yo.operation.dal.loan.model.LoanDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 信贷案件表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
public interface LoanDal extends BaseDal<Long, LoanDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loan;
import com.pudonghot.yo.operation.dal.loan.model.LoanSourceDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 案件来源表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
public interface LoanSourceDal extends BaseDal<Long, LoanSourceDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loan;
import com.pudonghot.yo.operation.dal.loan.model.RepaymentDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 还款计划表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
public interface RepaymentDal extends BaseDal<Long, RepaymentDO> {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loan.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loan.model.BankCardDO;
import com.pudonghot.yo.operation.dal.loan.mapper.BankCardMapper;
import com.pudonghot.yo.operation.dal.loan.BankCardDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 银行卡绑定信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Component
public class BankCardDalImpl
extends BaseDalImpl<Long, BankCardDO, BankCardMapper>
implements BankCardDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loan.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loan.model.ContactDO;
import com.pudonghot.yo.operation.dal.loan.mapper.ContactMapper;
import com.pudonghot.yo.operation.dal.loan.ContactDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 客户联系人表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Component
public class ContactDalImpl
extends BaseDalImpl<Long, ContactDO, ContactMapper>
implements ContactDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loan.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loan.model.CustomerDO;
import com.pudonghot.yo.operation.dal.loan.mapper.CustomerMapper;
import com.pudonghot.yo.operation.dal.loan.CustomerDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 客户表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Component
public class CustomerDalImpl
extends BaseDalImpl<Long, CustomerDO, CustomerMapper>
implements CustomerDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loan.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loan.model.LoanDO;
import com.pudonghot.yo.operation.dal.loan.mapper.LoanMapper;
import com.pudonghot.yo.operation.dal.loan.LoanDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 信贷案件表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Component
public class LoanDalImpl
extends BaseDalImpl<Long, LoanDO, LoanMapper>
implements LoanDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loan.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loan.model.LoanSourceDO;
import com.pudonghot.yo.operation.dal.loan.mapper.LoanSourceMapper;
import com.pudonghot.yo.operation.dal.loan.LoanSourceDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 案件来源表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Component
public class LoanSourceDalImpl
extends BaseDalImpl<Long, LoanSourceDO, LoanSourceMapper>
implements LoanSourceDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loan.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loan.model.RepaymentDO;
import com.pudonghot.yo.operation.dal.loan.mapper.RepaymentMapper;
import com.pudonghot.yo.operation.dal.loan.RepaymentDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 还款计划表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Component
public class RepaymentDalImpl
extends BaseDalImpl<Long, RepaymentDO, RepaymentMapper>
implements RepaymentDal {
}

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loan.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loan.model.BankCardDO;
/**
* 银行卡绑定信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Mapper
@Table("bank_card")
public interface BankCardMapper extends BaseMapper<Long, BankCardDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loan.mapper.BankCardMapper">
<!--
/**
* 银行卡绑定信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loan.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loan.model.ContactDO;
/**
* 客户联系人表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Mapper
@Table("contact")
public interface ContactMapper extends BaseMapper<Long, ContactDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loan.mapper.ContactMapper">
<!--
/**
* 客户联系人表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loan.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loan.model.CustomerDO;
/**
* 客户表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Mapper
@Table("customer")
public interface CustomerMapper extends BaseMapper<Long, CustomerDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loan.mapper.CustomerMapper">
<!--
/**
* 客户表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loan.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loan.model.LoanDO;
/**
* 信贷案件表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Mapper
@Table("loan")
public interface LoanMapper extends BaseMapper<Long, LoanDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loan.mapper.LoanMapper">
<!--
/**
* 信贷案件表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loan.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loan.model.LoanSourceDO;
/**
* 案件来源表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Mapper
@Table("loan_source")
public interface LoanSourceMapper extends BaseMapper<Long, LoanSourceDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loan.mapper.LoanSourceMapper">
<!--
/**
* 案件来源表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loan.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loan.model.RepaymentDO;
/**
* 还款计划表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Mapper
@Table("repayment")
public interface RepaymentMapper extends BaseMapper<Long, RepaymentDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loan.mapper.RepaymentMapper">
<!--
/**
* 还款计划表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
-->
</mapper>

View File

@ -0,0 +1,58 @@
package com.pudonghot.yo.operation.dal.loan.model;
import lombok.Getter;
import lombok.Setter;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 银行卡绑定信息表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class BankCardDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* loanId
*/
@NotUpdate
private Long loanId;
/**
* 开户名
*/
private String name;
/**
* 银行预留手机号
*/
private String mobile;
/**
* 银行ID
*/
private Long bankId;
/**
* 银行卡卡号
*/
private String bankCardNo;
/**
* 银行卡开户行
*/
private String bankName;
/**
* 绑定优先级
*/
private Boolean priority;
}

View File

@ -0,0 +1,53 @@
package com.pudonghot.yo.operation.dal.loan.model;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
/**
* 客户联系人表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class ContactDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 案件关联id
*/
@NotUpdate
private Long loanId;
/**
* 姓名
*/
private String name;
/**
* 手机
*/
private String mobile;
/**
* 关系
*/
private String relationType;
/**
* 联系频率
*/
private String frequency;
/**
* 联系人来源
*/
private String source;
}

View File

@ -0,0 +1,148 @@
package com.pudonghot.yo.operation.dal.loan.model;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.NotUpdate;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 客户表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class CustomerDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 案件关联id
*/
@NotUpdate
private Long loanId;
/**
* 姓名
*/
private String name;
/**
* 身份证号
*/
private String idNo;
/**
* 手机
*/
private String mobile;
/**
* 邮箱
*/
private String email;
/**
* 性别
*/
private String gender;
/**
* 民族
*/
private String nation;
/**
* 出生日期
*/
private String birthday;
/**
* 户籍地址
*/
private String censusRegisterAddress;
/**
* 学历
*/
private String educational;
/**
* 婚姻状态
*/
private String marriage;
/**
* 居住省
*/
private String residenceProvince;
/**
* 居住市
*/
private String residenceCity;
/**
* 居住区
*/
private String residenceDistrict;
/**
* 常住地址
*/
private String residenceAddress;
/**
* 居住时长
*/
private String residenceTime;
/**
* qq
*/
private String qq;
/**
* 职业
*/
private String profession;
/**
* 月收入
*/
private String salary;
/**
* 单位名称
*/
private String workCompany;
/**
* 最近工作年限
*/
private String recentlyWorkDuration;
/**
* 单位所在省
*/
private String companyProvince;
/**
* 单位所在市
*/
private String companyCity;
/**
* 单位所在区
*/
private String companyDistrict;
/**
* 单位详细地址
*/
private String companyAddress;
}

View File

@ -0,0 +1,97 @@
package com.pudonghot.yo.operation.dal.loan.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.NotUpdate;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 信贷案件表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class LoanDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 导入批次ID
*/
@NotUpdate
private Long importBatchId;
/**
* 案件来源ID
*/
@NotUpdate
private Long loanSourceId;
/**
* 外部合同号
*/
@NotUpdate
private String contractNumber;
/**
* 应还总金额单位
*/
private Long overdueAmount;
/**
* 应还本金单位
*/
private Long principalAmount;
/**
* 应还利息单位
*/
private Long interestAmount;
/**
* 应还服务费单位
*/
private Long serviceAmount;
/**
* 应还罚息单位
*/
private Long penaltyAmount;
/**
* 还款状态
*/
private String repaymentStatus;
/**
* 导入时间
*/
@NotUpdate
private Date importTime;
/**
* 颜色
*/
private String color;
/**
* 调解函地址
*/
private String mediateFile;
/**
* 调解结果
*/
private String mediateResult;
/**
* 逾期天数
*/
private Integer overdueDays;
}

View File

@ -0,0 +1,33 @@
package com.pudonghot.yo.operation.dal.loan.model;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.NotUpdate;
/**
* 案件来源表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class LoanSourceDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 渠道数据源代码
*/
@NotUpdate
private String loanSourceCode;
/**
* 渠道数据源名称
*/
private String loanSourceName;
}

View File

@ -0,0 +1,116 @@
package com.pudonghot.yo.operation.dal.loan.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
import com.pudonghot.tigon.mybatis.NotUpdateWhenNull;
/**
* 还款计划表
*
* @author Donghuang
* @date Oct 01, 2024 14:20:47
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class RepaymentDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 信贷案件表ID
*/
@NotUpdate
private Long loanId;
/**
* 期数
*/
private Integer installment;
/**
* 还款状态 UNPAID未还款 PARTIALLY_PAID 部分还款 FULLY_PAID全部还款
*/
private String status;
/**
* 预计还款时间
*/
@NotUpdateWhenNull
private Date expectRepayTime;
/**
* 实际还款时间
*/
private Date actualRepayTime;
/**
* 应还本金单位
*/
private Long expectPrincipalAmount;
/**
* 已还本金单位
*/
private Long actualPrincipalAmount;
/**
* 应还利息单位
*/
private Long expectInterestAmount;
/**
* 已还利息单位
*/
private Long actualInterestAmount;
/**
* 应还平台服务费单位
*/
private Long expectServiceAmount;
/**
* 已还平台服务费单位
*/
private Long actualServiceAmount;
/**
* 应还罚息,单位:
*/
private Long expectPenaltyAmount;
/**
* 已还罚息,单位:
*/
private Long actualPenaltyAmount;
/**
* 减免金额
*/
private Long reductionAmount;
/**
* 减免原因
*/
private String reductionReason;
/**
* 应还总金额,单位:
*/
private Long expectTotalAmount;
/**
* 已还总金额,单位:
*/
private Long actualTotalAmount;
/**
* 逾期金额单位
*/
private Long overdueAmount;
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loanimport;
import com.pudonghot.yo.operation.dal.loanimport.model.BatchNumberDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 导入批次号
*
* @author Donghuang
* @date Oct 01, 2024 14:21:59
*/
public interface BatchNumberDal extends BaseDal<Long, BatchNumberDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loanimport;
import com.pudonghot.yo.operation.dal.loanimport.model.RecordDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 导入记录
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
public interface RecordDal extends BaseDal<Long, RecordDO> {
}

View File

@ -0,0 +1,13 @@
package com.pudonghot.yo.operation.dal.loanimport;
import com.pudonghot.yo.operation.dal.loanimport.model.RecordFailDetailDO;
import com.pudonghot.tigon.dal.BaseDal;
/**
* 导入记录失败明细
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
public interface RecordFailDetailDal extends BaseDal<Long, RecordFailDetailDO> {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loanimport.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loanimport.model.BatchNumberDO;
import com.pudonghot.yo.operation.dal.loanimport.mapper.BatchNumberMapper;
import com.pudonghot.yo.operation.dal.loanimport.BatchNumberDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 导入批次号
*
* @author Donghuang
* @date Oct 01, 2024 14:21:59
*/
@Component
public class BatchNumberDalImpl
extends BaseDalImpl<Long, BatchNumberDO, BatchNumberMapper>
implements BatchNumberDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loanimport.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loanimport.model.RecordDO;
import com.pudonghot.yo.operation.dal.loanimport.mapper.RecordMapper;
import com.pudonghot.yo.operation.dal.loanimport.RecordDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 导入记录
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
@Component
public class RecordDalImpl
extends BaseDalImpl<Long, RecordDO, RecordMapper>
implements RecordDal {
}

View File

@ -0,0 +1,19 @@
package com.pudonghot.yo.operation.dal.loanimport.impl;
import org.springframework.stereotype.Component;
import com.pudonghot.yo.operation.dal.loanimport.model.RecordFailDetailDO;
import com.pudonghot.yo.operation.dal.loanimport.mapper.RecordFailDetailMapper;
import com.pudonghot.yo.operation.dal.loanimport.RecordFailDetailDal;
import com.pudonghot.tigon.dal.impl.BaseDalImpl;
/**
* 导入记录失败明细
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
@Component
public class RecordFailDetailDalImpl
extends BaseDalImpl<Long, RecordFailDetailDO, RecordFailDetailMapper>
implements RecordFailDetailDal {
}

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loanimport.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loanimport.model.BatchNumberDO;
/**
* 导入批次号
*
* @author Donghuang
* @date Oct 01, 2024 14:21:59
*/
@Mapper
@Table("import_batch_number")
public interface BatchNumberMapper extends BaseMapper<Long, BatchNumberDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loanimport.mapper.BatchNumberMapper">
<!--
/**
* 导入批次号
*
* @author Donghuang
* @date Oct 01, 2024 14:21:59
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loanimport.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loanimport.model.RecordFailDetailDO;
/**
* 导入记录失败明细
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
@Mapper
@Table("import_record_fail_detail")
public interface RecordFailDetailMapper extends BaseMapper<Long, RecordFailDetailDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loanimport.mapper.RecordFailDetailMapper">
<!--
/**
* 导入记录失败明细
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
-->
</mapper>

View File

@ -0,0 +1,17 @@
package com.pudonghot.yo.operation.dal.loanimport.mapper;
import com.pudonghot.tigon.mybatis.Table;
import org.apache.ibatis.annotations.Mapper;
import com.pudonghot.tigon.mybatis.BaseMapper;
import com.pudonghot.yo.operation.dal.loanimport.model.RecordDO;
/**
* 导入记录
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
@Mapper
@Table("import_record")
public interface RecordMapper extends BaseMapper<Long, RecordDO> {
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pudonghot.yo.operation.dal.loanimport.mapper.RecordMapper">
<!--
/**
* 导入记录
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
-->
</mapper>

View File

@ -0,0 +1,78 @@
package com.pudonghot.yo.operation.dal.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.math.BigDecimal;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 导入批次号
*
* @author Donghuang
* @date Oct 01, 2024 14:21:59
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class BatchNumberDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 批次号
*/
@NotUpdate
private String batchNumber;
/**
* 案件来源ID
*/
@NotUpdate
private Long loanSourceId;
/**
* 处置方/部门ID
*/
@NotUpdate
private Long deptId;
/**
* 委案日期
*/
private Date commissionDate;
/**
* 委托方
*/
private String commissionOrg;
/**
* 预计退案日期
*/
private Date withdrawDate;
/**
* 实际退案日期
*/
private Date withdrawDateActual;
/**
* 目标回款率
*/
private BigDecimal targetReturnRate;
/**
* 佣金系数
*/
private BigDecimal commissionRate;
/**
* 批次状态
*/
private String status;
}

View File

@ -0,0 +1,43 @@
package com.pudonghot.yo.operation.dal.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.mybatis.NotUpdate;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 导入记录
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class RecordDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 导入批次ID
*/
@NotUpdate
private Long importBatchId;
/**
* 导入总量
*/
private Integer importTotalNumber;
/**
* 导入成功总量
*/
private Integer importSuccessNumber;
/**
* 导入失败总量
*/
private Integer importFailNumber;
}

View File

@ -0,0 +1,44 @@
package com.pudonghot.yo.operation.dal.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import com.pudonghot.tigon.mybatis.NotUpdate;
import lombok.experimental.FieldNameConstants;
import com.pudonghot.tigon.dal.model.BaseDbEntity;
import com.pudonghot.tigon.mybatis.UseGeneratedKeys;
/**
* 导入记录失败明细
*
* @author Donghuang
* @date Oct 01, 2024 14:21:58
*/
@Getter
@Setter
@UseGeneratedKeys
@FieldNameConstants
public class RecordFailDetailDO extends BaseDbEntity {
private static final long serialVersionUID = 1L;
/**
* 导入记录ID
*/
@NotUpdate
private Long importRecordId;
/**
* 外部合同号
*/
@NotUpdate
private String contractNumber;
/**
* 原始数据
*/
private String originalData;
/**
* 导入失败原因
*/
private String failReason;
}

View File

@ -0,0 +1 @@
package com.pudonghot.yo.operation.dal;

View File

@ -0,0 +1,16 @@
package com.pudonghot.yo.operation.dal;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author Donghuang
* @date Feb 14, 2022 17:24:24
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = TestDriver.class)
public class BaseTest extends AbstractTransactionalJUnit4SpringContextTests {
}

View File

@ -0,0 +1,26 @@
package com.pudonghot.yo.operation.dal;
import lombok.extern.slf4j.Slf4j;
import org.junit.runner.RunWith;
import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author Donghuang
* @date Jan 20, 2022 20:55:56
*/
@Slf4j
@SpringBootTest(classes = TestDriver.class)
@RunWith(SpringRunner.class)
public class TestBase {
}
@Slf4j
@SpringBootApplication(scanBasePackages = "com.pudonghot.yo.operation.dal")
@MapperScan(basePackages = "com.pudonghot.yo.operation.dal", annotationClass = Mapper.class)
class TestDriver {
}

View File

@ -0,0 +1,22 @@
package com.pudonghot.yo.operation.dal.loan;
import org.junit.Test;
import java.util.Arrays;
import lombok.extern.slf4j.Slf4j;
import com.pudonghot.yo.operation.dal.TestBase;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @author Donghuang
* @date Oct 01, 2024 11:25:34
*/
@Slf4j
public class LoanDalTest extends TestBase {
@Autowired
private LoanDal dal;
@Test
public void testLoanList() {
dal.list(Arrays.asList(1L, 2L));
}
}

View File

@ -0,0 +1,26 @@
mybatis:
mapper-locations:
- classpath*:com/pudonghot/yo/operation/dal/*/mapper/*Mapper.xml
lazy-initialization: false
configuration:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
spring:
application:
name: tiaojie-operation-dal
datasource:
url: jdbc:mysql://localhost/tiaojie-daily?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: pudonghot
password: 123456
data:
redis:
host: localhost
port: 6379
password: 123456
database: 0
tigon:
mybatis:
# quotation-mark: "`"
cms:
table-prefix: br_

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="180 seconds">>
<property name="log.level" value="TRACE" />
<property name="log.dir" value="target/logs" />
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<!--<withJansi>true</withJansi>-->
<encoder>
<pattern>%magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread][%X{traceId}] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
</encoder>
</appender>
<appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.dir}/app.log</file>
<encoder>
<pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread][%X{traceId}] %-5level %logger{15} %msg %n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.dir}/%d{yyyy-MM, aux}/app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>32MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="org.springframework" level="INFO" additivity="false">
<appender-ref ref="Console" />
<appender-ref ref="File" />
</logger>
<logger name="org.apache" level="WARN" additivity="false">
<appender-ref ref="File" />
</logger>
<logger name="org.hibernate.validator" level="WARN" additivity="false">
<appender-ref ref="File" />
</logger>
<root level="${log.level}">
<appender-ref ref="Console" />
<appender-ref ref="File" />
</root>
</configuration>

40
operation/pom.xml Normal file
View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<artifactId>yo-tj-operation</artifactId>
<name>Yo Operation</name>
<description>Yo Operation</description>
<parent>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-tj</artifactId>
<version>${revision}</version>
</parent>
<modules>
<module>dal</module>
<module>service</module>
<module>web</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-tj-operation-dal</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-tj-operation-service</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>

View File

@ -0,0 +1 @@
# Auction Service

87
operation/service/pom.xml Normal file
View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>yo-tj-operation-service</artifactId>
<name>Yo Tiaojie Operation Service</name>
<description>Yo Tiaojie Operation Service</description>
<parent>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-tj-operation</artifactId>
<version>${revision}</version>
</parent>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-service</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-kit</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-cache</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-cms-service</artifactId>
</dependency>
<dependency>
<groupId>com.pudonghot.tigon</groupId>
<artifactId>tigon-file-oss</artifactId>
</dependency>
<!-- Provided Dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- 2nd Dependencies -->
<dependency>
<groupId>com.pudonghot.yo</groupId>
<artifactId>yo-tj-operation-dal</artifactId>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,23 @@
package com.pudonghot.yo.operation.service.common.excel.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
/**
* @author Donghuang
* @date Sep 27, 2024 16:46:03
*/
public class BooleanConverter implements Converter<Boolean> {
/**
* {@inheritDoc}
*/
@Override
public WriteCellData<?> convertToExcelData(final Boolean value,
final ExcelContentProperty contentProperty,
final GlobalConfiguration globalConfiguration) {
return new WriteCellData(Boolean.TRUE.equals(value) ? "" : "");
}
}

View File

@ -0,0 +1,26 @@
package com.pudonghot.yo.operation.service.common.excel.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.util.Date;
/**
* @author Donghuang
* @date Sep 27, 2024 16:46:13
*/
public class TimeConverter implements Converter<Date> {
/**
* {@inheritDoc}
*/
@Override
public WriteCellData<?> convertToExcelData(final Date value,
final ExcelContentProperty contentProperty,
final GlobalConfiguration globalConfiguration) {
return new WriteCellData(value != null ? DateFormatUtils.format(value, "yyyy/MM/dd HH:mm:ss") : "");
}
}

View File

@ -0,0 +1 @@
package com.pudonghot.yo.operation.service.common.excel;

View File

@ -0,0 +1 @@
package com.pudonghot.yo.operation.service.common;

View File

@ -0,0 +1,8 @@
package com.pudonghot.yo.operation.service.loanimport;
/**
* @author Donghuang
* @date Oct 01, 2024 20:00:10
*/
public interface LoanImportService {
}

View File

@ -0,0 +1,12 @@
package com.pudonghot.yo.operation.service.loanimport.impl;
import org.springframework.stereotype.Service;
import com.pudonghot.yo.operation.service.loanimport.LoanImportService;
/**
* @author Donghuang
* @date Oct 01, 2024 20:00:34
*/
@Service
public class LoanImportServiceImpl implements LoanImportService {
}

View File

@ -0,0 +1,67 @@
package com.pudonghot.yo.operation.service.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
/**
* @author Donghuang
* @date Oct 02, 2024 10:30:10
*/
@Getter
@Setter
@ToString
public class ApplicationExtImportBO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 附加字段1
*/
private String extData1;
/**
* 附加字段2
*/
private String extData2;
/**
* 附加字段3
*/
private String extData3;
/**
* 附加字段4
*/
private String extData4;
/**
* 附加字段5
*/
private String extData5;
/**
* 附加字段6
*/
private String extData6;
/**
* 附加字段7
*/
private String extData7;
/**
* 附加字段8
*/
private String extData8;
/**
* 附加字段9
*/
private String extData9;
/**
* 附加字段10
*/
private String extData10;
}

View File

@ -0,0 +1,149 @@
package com.pudonghot.yo.operation.service.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author Donghuang
* @date Oct 02, 2024 10:30:10
*/
@Getter
@Setter
@ToString
public class ApplicationImportBO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总期数
*/
private Integer totalInstallments;
/**
* 当前期数
*/
private Integer currentInstallment;
/**
* 已还期数
*/
private Integer repaidInstallments;
/**
* 逾期期数
*/
private Integer overdueInstallments;
/**
* 申请时间
*/
private Date applyDate;
/**
* 批核时间
*/
private Date approveDate;
/**
* 放款时间
*/
private Date loanDate;
/**
* 当期账单日
*/
private Date dueDate;
/**
* 利率
*/
private BigDecimal interestRate;
/**
* 服务费率
*/
private BigDecimal serviceInterestRate;
/**
* 罚息利率
*/
private BigDecimal penaltyInterestRate;
/**
* 合同(申请)金额
*/
private Long applyAmount;
/**
* 放款金额
*/
private Long loanAmount;
/**
* 违约金,罚金
*/
private Long defaultFineAmount;
/**
* 逾期金额
*/
private Long overdueAmount;
/**
* 剩余本金
*/
private Long principalRemain;
/**
* 提前清贷金额
*/
private Long prepaymentAmount;
/**
* 募资方
*/
private String fundraiser;
/**
* 产品名称
*/
private String productName;
/**
* 还款方式
*/
private String repaymentType;
/**
* 贷款平台名称
*/
private String platformName;
/**
* 募资方名称
*/
private String fundraiserName;
/**
* 助贷机构名称
*/
private String loanAgencyName;
/**
* 紧急联系人关系
*/
private String emergencyContactRelation;
/**
* 紧急联系人备注名
*/
private String emergencyContactName;
/**
* 紧急联系人号码
*/
private String emergencyContactMobile;
}

View File

@ -0,0 +1,47 @@
package com.pudonghot.yo.operation.service.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
/**
* @author Donghuang
* @date Oct 02, 2024 10:30:10
*/
@Getter
@Setter
@ToString
public class BankCardImportBO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 开户名
*/
private String name;
/**
* 银行预留手机号
*/
private String mobile;
/**
* 银行ID
*/
private Long bankId;
/**
* 银行卡卡号
*/
private String bankCardNo;
/**
* 银行卡开户行
*/
private String bankName;
/**
* 绑定优先级
*/
private Boolean priority;
}

View File

@ -0,0 +1,43 @@
package com.pudonghot.yo.operation.service.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
/**
* @author Donghuang
* @date Oct 02, 2024 10:30:10
*/
@Getter
@Setter
@ToString
public class ContactImportBO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 姓名
*/
private String name;
/**
* 手机
*/
private String mobile;
/**
* 关系
*/
private String relationType;
/**
* 联系频率
*/
private String frequency;
/**
* 联系人来源
*/
private String source;
}

View File

@ -0,0 +1,140 @@
package com.pudonghot.yo.operation.service.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author Donghuang
* @date Oct 02, 2024 10:30:10
*/
@Getter
@Setter
@ToString
public class CustomerImportBO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 姓名
*/
private String name;
/**
* 身份证号
*/
private String idNo;
/**
* 手机
*/
private String mobile;
/**
* 邮箱
*/
private String email;
/**
* 性别
*/
private String gender;
/**
* 民族
*/
private String nation;
/**
* 出生日期
*/
private String birthday;
/**
* 户籍地址
*/
private String censusRegisterAddress;
/**
* 学历
*/
private String educational;
/**
* 婚姻状态
*/
private String marriage;
/**
* 居住省
*/
private String residenceProvince;
/**
* 居住市
*/
private String residenceCity;
/**
* 居住区
*/
private String residenceDistrict;
/**
* 常住地址
*/
private String residenceAddress;
/**
* 居住时长
*/
private String residenceTime;
/**
* qq
*/
private String qq;
/**
* 职业
*/
private String profession;
/**
* 月收入
*/
private String salary;
/**
* 单位名称
*/
private String workCompany;
/**
* 最近工作年限
*/
private String recentlyWorkDuration;
/**
* 单位所在省
*/
private String companyProvince;
/**
* 单位所在市
*/
private String companyCity;
/**
* 单位所在区
*/
private String companyDistrict;
/**
* 单位详细地址
*/
private String companyAddress;
}

View File

@ -0,0 +1,104 @@
package com.pudonghot.yo.operation.service.loanimport.model;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
/**
* @author Donghuang
* @date Oct 02, 2024 10:30:10
*/
@Getter
@Setter
@ToString
public class RepaymentImportBO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 期数
*/
private Integer installment;
/**
* 还款状态 UNPAID未还款 PARTIALLY_PAID 部分还款 FULLY_PAID全部还款
*/
private String status;
/**
* 预计还款时间
*/
private Date expectRepayTime;
/**
* 实际还款时间
*/
private Date actualRepayTime;
/**
* 应还本金单位
*/
private Long expectPrincipalAmount;
/**
* 已还本金单位
*/
private Long actualPrincipalAmount;
/**
* 应还利息单位
*/
private Long expectInterestAmount;
/**
* 已还利息单位
*/
private Long actualInterestAmount;
/**
* 应还平台服务费单位
*/
private Long expectServiceAmount;
/**
* 已还平台服务费单位
*/
private Long actualServiceAmount;
/**
* 应还罚息,单位:
*/
private Long expectPenaltyAmount;
/**
* 已还罚息,单位:
*/
private Long actualPenaltyAmount;
/**
* 减免金额
*/
private Long reductionAmount;
/**
* 减免原因
*/
private String reductionReason;
/**
* 应还总金额,单位:
*/
private Long expectTotalAmount;
/**
* 已还总金额,单位:
*/
private Long actualTotalAmount;
/**
* 逾期金额单位
*/
private Long overdueAmount;
}

View File

@ -0,0 +1 @@
package com.pudonghot.yo.operation.service.loanimport;

View File

@ -0,0 +1,44 @@
package com.pudonghot.yo.operation.service.loanimport.request;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.web.multipart.MultipartFile;
import com.pudonghot.tigon.kit.bean.annotation.ShallowField;
/**
* 批量中标导出
*
* @author Donghuang
* @date Sep 27, 2024 15:16:12
*/
@Getter
@Setter
@ToString
public class LoanImportReqBO implements Serializable {
private static final long serialVersionUID = 1L;
@ShallowField
private MultipartFile file;
public enum OverwriteEnum {
ERROR,
IGNORE,
FORCE
}
@Getter
@Setter
@ToString
public static class ImportExcelModel implements Serializable {
private static final long serialVersionUID = 1L;
@ExcelProperty("ID")
private Long id;
@ExcelProperty(value = "操作(中标、流标)")
private Boolean outbid;
}
}

View File

@ -0,0 +1,96 @@
package com.pudonghot.yo.operation.service.util;
import lombok.val;
import java.io.InputStream;
import lombok.extern.slf4j.Slf4j;
import com.alibaba.excel.EasyExcel;
import lombok.experimental.UtilityClass;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.CellData;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
/**
* @author Donghuang
* @date Sep 27, 2024 16:53:37
*/
@Slf4j
@UtilityClass
public class ExcelUtil {
/**
* read excel
*
* @param inputStream input stream
* @param modelClass model class
* @param reader reader
*/
public static <T> void readExcel(
final InputStream inputStream,
final Class<T> modelClass,
final ReadListener<T> reader) {
readExcel(inputStream, modelClass, reader, null);
}
/**
* read excel
*
* @param inputStream input stream
* @param modelClass model class
* @param reader reader
* @param metaData meta data
*/
public static <T> void readExcel(
final InputStream inputStream,
final Class<T> modelClass,
final ReadListener<T> reader,
final Object metaData) {
try {
EasyExcel.read(inputStream, modelClass, reader).customObject(metaData).sheet(0).doRead();
}
catch (final ExcelDataConvertException e) {
log.error("Excel data convert exception caused.", e);
throw new IllegalStateException("Excel数据类型转换错误"
+ e.getRowIndex()
+ ",列:" + e.getColumnIndex()
+ ",数据:" + getCellValue(e.getCellData()));
}
}
/**
* get cell value
*
* @param cellData cell data
* @return value
*/
public static Object getCellValue(final CellData<?> cellData) {
if (CellDataTypeEnum.EMPTY.equals(cellData.getType())) {
return null;
}
val v1 = cellData.getStringValue();
if (v1 != null) {
return v1;
}
val v2 = cellData.getNumberValue();
if (v2 != null) {
return v2;
}
val v3 = cellData.getBooleanValue();
if (v3 != null) {
return v3;
}
val v4 = cellData.getFormulaData();
if (v4 != null) {
return v4.getFormulaValue();
}
return cellData.getData();
}
}

View File

@ -0,0 +1,26 @@
package com.pudonghot.yo.operation.service;
import lombok.extern.slf4j.Slf4j;
import org.junit.runner.RunWith;
import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author Donghuang
* @date Jan 20, 2022 20:55:56
*/
@Slf4j
@SpringBootTest(classes = TestDriver.class)
@RunWith(SpringRunner.class)
public class TestBase {
}
@Slf4j
@SpringBootApplication(scanBasePackages = "com.pudonghot.yo.operation")
@MapperScan(basePackages = "com.pudonghot.yo.operation.dal", annotationClass = Mapper.class)
class TestDriver {
}

View File

@ -0,0 +1,30 @@
package com.pudonghot.yo.operation.service.auth;
import com.pudonghot.tigon.dal.hook.AuthHook;
import org.springframework.stereotype.Component;
/**
* 租户ID获取器
*
* @author Donghuang
* @date Nov 28, 2023 15:39:41
*/
@Component
public class AuthHookImpl extends AuthHook<Long> {
/**
* {@inheritDoc}
*/
@Override
public Long doGetMemberId() {
return 1L;
}
/**
* {@inheritDoc}
*/
@Override
public Long doGetTenantId() {
return 1L;
}
}

Some files were not shown because too many files have changed in this diff Show More