Files
nxxmdata/bank-backend/models/LoanApplication.js

92 lines
2.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 贷款申请模型
* @file LoanApplication.js
* @description 银行系统贷款申请数据模型
*/
const { DataTypes } = require('sequelize');
const BaseModel = require('./BaseModel');
class LoanApplication extends BaseModel {
/**
* 获取申请状态文本
* @returns {String} 状态文本
*/
getStatusText() {
const statusMap = {
pending: '待审核',
approved: '已通过',
rejected: '已拒绝',
completed: '已完成'
};
return statusMap[this.status] || this.status;
}
/**
* 格式化申请金额
* @returns {String} 格式化后的金额
*/
getFormattedAmount() {
return `${this.loan_amount.toFixed(2)}`;
}
}
// 初始化LoanApplication模型
LoanApplication.init({
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
customer_name: {
type: DataTypes.STRING(100),
allowNull: false,
comment: '客户姓名'
},
customer_phone: {
type: DataTypes.STRING(20),
allowNull: false,
comment: '客户电话'
},
customer_id_card: {
type: DataTypes.STRING(18),
allowNull: false,
comment: '客户身份证号'
},
loan_amount: {
type: DataTypes.DECIMAL(15, 2),
allowNull: false,
comment: '贷款金额'
},
loan_term: {
type: DataTypes.INTEGER,
allowNull: false,
comment: '贷款期限(月)'
},
interest_rate: {
type: DataTypes.DECIMAL(5, 2),
allowNull: false,
comment: '贷款利率(%'
},
application_date: {
type: DataTypes.DATEONLY,
allowNull: false,
comment: '申请日期'
},
status: {
type: DataTypes.ENUM('pending', 'approved', 'rejected', 'completed'),
allowNull: true,
defaultValue: 'pending',
comment: '申请状态'
}
}, {
sequelize: require('../config/database').sequelize,
modelName: 'LoanApplication',
tableName: 'loan_applications',
timestamps: true,
underscored: true,
createdAt: 'created_at',
updatedAt: 'updated_at'
});
module.exports = LoanApplication;