600 lines
32 KiB
MySQL
600 lines
32 KiB
MySQL
|
|
-- ============================================
|
|||
|
|
-- RentEase 租房管理系统 - 数据库表结构
|
|||
|
|
-- 生成时间: 2025-01-11
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 设置字符集
|
|||
|
|
SET NAMES utf8mb4;
|
|||
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 1. 租户相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 租户表 (SaaS系统租户)
|
|||
|
|
DROP TABLE IF EXISTS `tenants`;
|
|||
|
|
CREATE TABLE `tenants` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '租户ID',
|
|||
|
|
`code` varchar(50) NOT NULL COMMENT '租户编码(唯一标识)',
|
|||
|
|
`contactName` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
|
|||
|
|
`contactPhone` varchar(20) DEFAULT NULL COMMENT '联系人电话',
|
|||
|
|
`contactEmail` varchar(100) DEFAULT NULL COMMENT '联系人邮箱',
|
|||
|
|
`status` enum('active','suspended') NOT NULL DEFAULT 'active' COMMENT '租户状态:active-正常,suspended-暂停',
|
|||
|
|
`billingStatus` enum('trial_active','trial_expired','paid_active','paid_expired','suspended') NOT NULL DEFAULT 'trial_active' COMMENT '计费状态',
|
|||
|
|
`planId` int(11) DEFAULT NULL COMMENT '当前套餐ID',
|
|||
|
|
`trialStartDate` datetime DEFAULT NULL COMMENT '试用期开始日期',
|
|||
|
|
`trialEndDate` datetime DEFAULT NULL COMMENT '试用期结束日期',
|
|||
|
|
`paidStartDate` datetime DEFAULT NULL COMMENT '付费期开始日期',
|
|||
|
|
`paidEndDate` datetime DEFAULT NULL COMMENT '付费期结束日期',
|
|||
|
|
`currentPeriodStart` datetime DEFAULT NULL COMMENT '当前计费周期开始',
|
|||
|
|
`currentPeriodEnd` datetime DEFAULT NULL COMMENT '当前计费周期结束',
|
|||
|
|
`maxUsers` int(11) NOT NULL DEFAULT '10' COMMENT '最大用户数',
|
|||
|
|
`maxApartments` int(11) NOT NULL DEFAULT '5' COMMENT '最大公寓数',
|
|||
|
|
`maxRooms` int(11) NOT NULL DEFAULT '50' COMMENT '最大房间数',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `code` (`code`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_billing_status` (`billingStatus`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户表';
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 2. 用户权限相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 用户表
|
|||
|
|
DROP TABLE IF EXISTS `users`;
|
|||
|
|
CREATE TABLE `users` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
|||
|
|
`username` varchar(50) NOT NULL COMMENT '用户名',
|
|||
|
|
`password` varchar(255) NOT NULL COMMENT '密码(加密存储)',
|
|||
|
|
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
|
|||
|
|
`avatar` varchar(255) DEFAULT NULL COMMENT '头像URL',
|
|||
|
|
`roleId` int(11) DEFAULT NULL COMMENT '角色ID',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`userType` enum('super_admin','tenant_admin','user') NOT NULL DEFAULT 'user' COMMENT '用户类型:super_admin-系统管理员,tenant_admin-租户管理员,user-普通用户',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用',
|
|||
|
|
`lastLoginTime` datetime DEFAULT NULL COMMENT '最后登录时间',
|
|||
|
|
`lastLoginIp` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `username` (`username`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_role` (`roleId`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
|
|||
|
|
|
|||
|
|
-- 角色表
|
|||
|
|
DROP TABLE IF EXISTS `roles`;
|
|||
|
|
CREATE TABLE `roles` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
|||
|
|
`name` varchar(50) NOT NULL COMMENT '角色名称',
|
|||
|
|
`code` varchar(50) NOT NULL COMMENT '角色编码',
|
|||
|
|
`description` varchar(255) DEFAULT NULL COMMENT '角色描述',
|
|||
|
|
`permissions` json DEFAULT NULL COMMENT '权限列表(JSON格式)',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_code` (`code`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
|
|||
|
|
|
|||
|
|
-- 菜单表
|
|||
|
|
DROP TABLE IF EXISTS `menus`;
|
|||
|
|
CREATE TABLE `menus` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
|
|||
|
|
`parentId` int(11) DEFAULT NULL COMMENT '父菜单ID',
|
|||
|
|
`name` varchar(50) NOT NULL COMMENT '菜单名称',
|
|||
|
|
`code` varchar(50) NOT NULL COMMENT '菜单编码',
|
|||
|
|
`type` enum('menu','button') NOT NULL DEFAULT 'menu' COMMENT '类型:menu-菜单,button-按钮',
|
|||
|
|
`path` varchar(100) DEFAULT NULL COMMENT '路由路径',
|
|||
|
|
`component` varchar(100) DEFAULT NULL COMMENT '组件路径',
|
|||
|
|
`icon` varchar(50) DEFAULT NULL COMMENT '图标',
|
|||
|
|
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
|
|||
|
|
`visible` enum('show','hide') NOT NULL DEFAULT 'show' COMMENT '是否可见:show-显示,hide-隐藏',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用',
|
|||
|
|
`isBasic` int(11) NOT NULL DEFAULT '0' COMMENT '是否基础菜单(0:否,1:是),新租户默认分配基础菜单',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_parent` (`parentId`),
|
|||
|
|
KEY `idx_code` (`code`),
|
|||
|
|
KEY `idx_type` (`type`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';
|
|||
|
|
|
|||
|
|
-- 角色菜单关联表
|
|||
|
|
DROP TABLE IF EXISTS `role_menus`;
|
|||
|
|
CREATE TABLE `role_menus` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|||
|
|
`roleId` int(11) NOT NULL COMMENT '角色ID',
|
|||
|
|
`menuId` int(11) NOT NULL COMMENT '菜单ID',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `idx_role_menu` (`roleId`,`menuId`),
|
|||
|
|
KEY `idx_menu` (`menuId`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关联表';
|
|||
|
|
|
|||
|
|
-- 操作日志表
|
|||
|
|
DROP TABLE IF EXISTS `operation_logs`;
|
|||
|
|
CREATE TABLE `operation_logs` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
|||
|
|
`userId` int(11) DEFAULT NULL COMMENT '用户ID',
|
|||
|
|
`username` varchar(50) DEFAULT NULL COMMENT '用户名',
|
|||
|
|
`module` varchar(50) NOT NULL DEFAULT '' COMMENT '操作模块',
|
|||
|
|
`action` varchar(50) NOT NULL DEFAULT '' COMMENT '操作类型',
|
|||
|
|
`description` text COMMENT '操作描述',
|
|||
|
|
`method` varchar(10) DEFAULT NULL COMMENT '请求方法',
|
|||
|
|
`url` varchar(500) DEFAULT NULL COMMENT '请求URL',
|
|||
|
|
`ip` varchar(50) DEFAULT NULL COMMENT 'IP地址',
|
|||
|
|
`params` text COMMENT '请求参数',
|
|||
|
|
`result` text COMMENT '操作结果',
|
|||
|
|
`status` enum('success','fail') NOT NULL DEFAULT 'success' COMMENT '操作状态',
|
|||
|
|
`duration` int(11) DEFAULT NULL COMMENT '执行时长(毫秒)',
|
|||
|
|
`tenantId` int(11) DEFAULT NULL COMMENT '租户ID',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user` (`userId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_createTime` (`createTime`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志表';
|
|||
|
|
|
|||
|
|
-- 登录日志表
|
|||
|
|
DROP TABLE IF EXISTS `login_logs`;
|
|||
|
|
CREATE TABLE `login_logs` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
|||
|
|
`userId` int(11) DEFAULT NULL COMMENT '用户ID',
|
|||
|
|
`username` varchar(50) DEFAULT NULL COMMENT '用户名',
|
|||
|
|
`loginType` enum('login','logout') NOT NULL DEFAULT 'login' COMMENT '登录类型',
|
|||
|
|
`ip` varchar(50) DEFAULT NULL COMMENT 'IP地址',
|
|||
|
|
`userAgent` text COMMENT '浏览器信息',
|
|||
|
|
`status` enum('success','fail') NOT NULL DEFAULT 'success' COMMENT '登录状态',
|
|||
|
|
`message` varchar(255) DEFAULT NULL COMMENT '登录信息/失败原因',
|
|||
|
|
`tenantId` int(11) DEFAULT NULL COMMENT '租户ID',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user` (`userId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_createTime` (`createTime`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='登录日志表';
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 3. 房源相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 公寓表
|
|||
|
|
DROP TABLE IF EXISTS `apartments`;
|
|||
|
|
CREATE TABLE `apartments` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '公寓ID',
|
|||
|
|
`name` varchar(100) NOT NULL COMMENT '公寓名称',
|
|||
|
|
`address` varchar(200) DEFAULT NULL COMMENT '地址',
|
|||
|
|
`description` text COMMENT '描述',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公寓表';
|
|||
|
|
|
|||
|
|
-- 房间表
|
|||
|
|
DROP TABLE IF EXISTS `rooms`;
|
|||
|
|
CREATE TABLE `rooms` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '房间ID',
|
|||
|
|
`apartmentId` int(11) NOT NULL COMMENT '所属公寓ID',
|
|||
|
|
`roomNumber` varchar(50) NOT NULL COMMENT '房间号',
|
|||
|
|
`floor` int(11) DEFAULT NULL COMMENT '楼层',
|
|||
|
|
`roomType` varchar(50) DEFAULT NULL COMMENT '户型(如一室一厅、两室一厅等)',
|
|||
|
|
`area` decimal(10,2) DEFAULT NULL COMMENT '面积(平方米)',
|
|||
|
|
`orientation` varchar(20) DEFAULT NULL COMMENT '朝向',
|
|||
|
|
`monthlyPrice` decimal(10,2) DEFAULT NULL COMMENT '月租金',
|
|||
|
|
`yearlyPrice` decimal(10,2) DEFAULT NULL COMMENT '年租金',
|
|||
|
|
`deposit` decimal(10,2) DEFAULT NULL COMMENT '押金',
|
|||
|
|
`description` text COMMENT '描述',
|
|||
|
|
`sortOrder` int(11) NOT NULL DEFAULT '0' COMMENT '排序字段',
|
|||
|
|
`status` enum('empty','reserved','rented') NOT NULL DEFAULT 'empty' COMMENT '状态:empty-空置,reserved-预定,rented-已租',
|
|||
|
|
`rentalStatus` enum('normal','soon_expire','expired') DEFAULT 'normal' COMMENT '租约状态',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '所属租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_apartment` (`apartmentId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_rental_status` (`rentalStatus`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房间表';
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 4. 租赁相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 租赁表
|
|||
|
|
DROP TABLE IF EXISTS `rentals`;
|
|||
|
|
CREATE TABLE `rentals` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '租赁ID',
|
|||
|
|
`roomId` int(11) NOT NULL COMMENT '房间ID',
|
|||
|
|
`renterId` int(11) NOT NULL COMMENT '租客ID',
|
|||
|
|
`startDate` date NOT NULL COMMENT '开始日期',
|
|||
|
|
`endDate` date NOT NULL COMMENT '结束日期',
|
|||
|
|
`rent` decimal(10,2) NOT NULL COMMENT '租金',
|
|||
|
|
`deposit` decimal(10,2) DEFAULT NULL COMMENT '押金',
|
|||
|
|
`paymentType` enum('monthly','quarterly','half_year','yearly') NOT NULL DEFAULT 'monthly' COMMENT '付租方式',
|
|||
|
|
`status` enum('active','expired','terminated') NOT NULL DEFAULT 'active' COMMENT '状态:active-有效,expired-到期,terminated-提前终止',
|
|||
|
|
`operator` varchar(50) DEFAULT NULL COMMENT '经办人',
|
|||
|
|
`remark` text COMMENT '备注',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_room` (`roomId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_dates` (`startDate`,`endDate`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租赁表';
|
|||
|
|
|
|||
|
|
-- 租客表
|
|||
|
|
DROP TABLE IF EXISTS `renters`;
|
|||
|
|
CREATE TABLE `renters` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '租客ID',
|
|||
|
|
`name` varchar(50) NOT NULL COMMENT '姓名',
|
|||
|
|
`phone` varchar(20) DEFAULT NULL COMMENT '电话',
|
|||
|
|
`idCard` varchar(18) DEFAULT NULL COMMENT '身份证号',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态:active-正常,inactive-已退房',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_phone` (`phone`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租客表';
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 5. 财务相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 账单表(统一账单管理)
|
|||
|
|
DROP TABLE IF EXISTS `bills`;
|
|||
|
|
CREATE TABLE `bills` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '账单ID',
|
|||
|
|
`billNo` varchar(50) NOT NULL COMMENT '账单编号',
|
|||
|
|
`roomId` int(11) DEFAULT NULL COMMENT '房间ID(可选)',
|
|||
|
|
`renterId` int(11) DEFAULT NULL COMMENT '租客ID(可选)',
|
|||
|
|
`rentalId` int(11) DEFAULT NULL COMMENT '租赁ID(可选)',
|
|||
|
|
`type` enum('income','expense') NOT NULL COMMENT '账单类型:income-收入,expense-支出',
|
|||
|
|
`category` varchar(50) NOT NULL COMMENT '分类:rent-租金, water-水费, electricity-电费, gas-燃气费, deposit-押金, maintenance-维修费, property_fee-物业费, agency_fee-中介费, penalty-违约金, other_income-其他收入, other_expense-其他支出',
|
|||
|
|
`receivableAmount` decimal(10,2) NOT NULL COMMENT '应收金额',
|
|||
|
|
`receivedAmount` decimal(10,2) DEFAULT '0.00' COMMENT '已收金额',
|
|||
|
|
`status` enum('unpaid','partial','paid','cancelled') NOT NULL DEFAULT 'unpaid' COMMENT '状态:unpaid-未收, partial-部分收款, paid-已收清, cancelled-已取消',
|
|||
|
|
`billMonth` varchar(7) DEFAULT NULL COMMENT '账单月份(格式:YYYY-MM)',
|
|||
|
|
`billDate` date NOT NULL COMMENT '账单日期',
|
|||
|
|
`sourceType` varchar(50) DEFAULT NULL COMMENT '来源类型:meter_reading-抄表记录',
|
|||
|
|
`sourceId` int(11) DEFAULT NULL COMMENT '来源ID',
|
|||
|
|
`paymentMethod` varchar(50) DEFAULT NULL COMMENT '支付方式:cash-现金, bank_transfer-银行转账, alipay-支付宝, wechat-微信支付',
|
|||
|
|
`remark` text COMMENT '备注',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `billNo` (`billNo`),
|
|||
|
|
KEY `idx_room` (`roomId`),
|
|||
|
|
KEY `idx_renter` (`renterId`),
|
|||
|
|
KEY `idx_rental` (`rentalId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_type` (`type`),
|
|||
|
|
KEY `idx_category` (`category`),
|
|||
|
|
KEY `idx_bill_month` (`billMonth`),
|
|||
|
|
KEY `idx_source` (`sourceType`,`sourceId`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='统一账单表';
|
|||
|
|
|
|||
|
|
-- 账单支付流水表
|
|||
|
|
DROP TABLE IF EXISTS `bill_payments`;
|
|||
|
|
CREATE TABLE `bill_payments` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '支付流水ID',
|
|||
|
|
`billId` int(11) NOT NULL COMMENT '账单ID',
|
|||
|
|
`amount` decimal(10,2) NOT NULL COMMENT '本次支付金额',
|
|||
|
|
`paymentMethod` enum('cash','bank_transfer','alipay','wechat','other') NOT NULL COMMENT '支付方式:cash-现金, bank_transfer-银行转账, alipay-支付宝, wechat-微信支付, other-其他',
|
|||
|
|
`paymentTime` datetime NOT NULL COMMENT '支付时间',
|
|||
|
|
`transactionNo` varchar(100) DEFAULT NULL COMMENT '交易流水号/凭证号',
|
|||
|
|
`remark` text COMMENT '备注',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_bill` (`billId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_payment_time` (`paymentTime`),
|
|||
|
|
KEY `idx_payment_method` (`paymentMethod`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账单支付流水表';
|
|||
|
|
|
|||
|
|
-- 抄表记录表(水电气)
|
|||
|
|
DROP TABLE IF EXISTS `meter_readings`;
|
|||
|
|
CREATE TABLE `meter_readings` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
|
|||
|
|
`roomId` int(11) NOT NULL COMMENT '房间ID',
|
|||
|
|
`renterId` int(11) DEFAULT NULL COMMENT '租客ID(可选)',
|
|||
|
|
`rentalId` int(11) DEFAULT NULL COMMENT '租赁ID(可选)',
|
|||
|
|
`meterType` enum('water','electricity','gas') NOT NULL COMMENT '表类型:water-水表, electricity-电表, gas-燃气表',
|
|||
|
|
`previousReading` decimal(10,2) NOT NULL COMMENT '上期读数',
|
|||
|
|
`currentReading` decimal(10,2) NOT NULL COMMENT '本期读数',
|
|||
|
|
`usage` decimal(10,2) NOT NULL COMMENT '用量',
|
|||
|
|
`unitPrice` decimal(10,2) NOT NULL COMMENT '单价',
|
|||
|
|
`amount` decimal(10,2) NOT NULL COMMENT '金额',
|
|||
|
|
`billMonth` varchar(7) NOT NULL COMMENT '账单月份(格式:YYYY-MM)',
|
|||
|
|
`readingDate` date NOT NULL COMMENT '抄表日期',
|
|||
|
|
`billId` int(11) DEFAULT NULL COMMENT '关联账单ID',
|
|||
|
|
`remark` text COMMENT '备注',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_room` (`roomId`),
|
|||
|
|
KEY `idx_renter` (`renterId`),
|
|||
|
|
KEY `idx_rental` (`rentalId`),
|
|||
|
|
KEY `idx_meter_type` (`meterType`),
|
|||
|
|
KEY `idx_bill_month` (`billMonth`),
|
|||
|
|
KEY `idx_bill` (`billId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
UNIQUE KEY `uk_room_type_month` (`roomId`, `meterType`, `billMonth`, `tenantId`, `isDeleted`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抄表记录表(水电气)';
|
|||
|
|
|
|||
|
|
-- 交易记录表
|
|||
|
|
DROP TABLE IF EXISTS `transactions`;
|
|||
|
|
CREATE TABLE `transactions` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '交易ID',
|
|||
|
|
`billId` int(11) DEFAULT NULL COMMENT '账单ID',
|
|||
|
|
`roomId` int(11) DEFAULT NULL COMMENT '房间ID',
|
|||
|
|
`renterId` int(11) DEFAULT NULL COMMENT '租客ID',
|
|||
|
|
`type` enum('income','expense') NOT NULL COMMENT '类型:income-收入,expense-支出',
|
|||
|
|
`category` varchar(50) NOT NULL COMMENT '分类',
|
|||
|
|
`amount` decimal(10,2) NOT NULL COMMENT '金额',
|
|||
|
|
`paymentMethod` enum('cash','bank_transfer','alipay','wechat') DEFAULT NULL COMMENT '支付方式',
|
|||
|
|
`transactionDate` date NOT NULL COMMENT '交易日期',
|
|||
|
|
`remark` text COMMENT '备注',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_bill` (`billId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_type` (`type`),
|
|||
|
|
KEY `idx_date` (`transactionDate`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易记录表';
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 6. 订阅计费相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 订阅套餐表
|
|||
|
|
DROP TABLE IF EXISTS `subscription_plans`;
|
|||
|
|
CREATE TABLE `subscription_plans` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '套餐ID',
|
|||
|
|
`code` varchar(50) NOT NULL COMMENT '套餐编码',
|
|||
|
|
`name` varchar(100) NOT NULL COMMENT '套餐名称',
|
|||
|
|
`description` text COMMENT '套餐描述',
|
|||
|
|
`maxApartments` int(11) NOT NULL DEFAULT '0' COMMENT '最大公寓数(0表示无限制)',
|
|||
|
|
`maxRooms` int(11) NOT NULL DEFAULT '0' COMMENT '最大房间数(0表示无限制)',
|
|||
|
|
`maxUsers` int(11) NOT NULL DEFAULT '0' COMMENT '最大用户数(0表示无限制)',
|
|||
|
|
`monthlyPrice` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '月价格',
|
|||
|
|
`yearlyPrice` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '年价格',
|
|||
|
|
`isDefault` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认套餐(0:否,1:是)',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态',
|
|||
|
|
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `code` (`code`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订阅套餐表';
|
|||
|
|
|
|||
|
|
-- 租户资源使用表
|
|||
|
|
DROP TABLE IF EXISTS `tenant_resource_usage`;
|
|||
|
|
CREATE TABLE `tenant_resource_usage` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`currentApartments` int(11) NOT NULL DEFAULT '0' COMMENT '当前公寓数',
|
|||
|
|
`currentRooms` int(11) NOT NULL DEFAULT '0' COMMENT '当前房间数',
|
|||
|
|
`currentUsers` int(11) NOT NULL DEFAULT '0' COMMENT '当前用户数',
|
|||
|
|
`recordDate` date NOT NULL COMMENT '记录日期',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `idx_tenant_date` (`tenantId`,`recordDate`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户资源使用表';
|
|||
|
|
|
|||
|
|
-- 租户计费明细表
|
|||
|
|
DROP TABLE IF EXISTS `tenant_billing_details`;
|
|||
|
|
CREATE TABLE `tenant_billing_details` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`billingPeriod` varchar(7) NOT NULL COMMENT '计费周期(格式:YYYY-MM)',
|
|||
|
|
`planId` int(11) DEFAULT NULL COMMENT '套餐ID',
|
|||
|
|
`baseAmount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '基础费用',
|
|||
|
|
`extraAmount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '超额费用',
|
|||
|
|
`discountAmount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额',
|
|||
|
|
`totalAmount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '总计金额',
|
|||
|
|
`status` enum('pending','paid','overdue') NOT NULL DEFAULT 'pending' COMMENT '状态',
|
|||
|
|
`paidTime` datetime DEFAULT NULL COMMENT '支付时间',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `idx_tenant_period` (`tenantId`,`billingPeriod`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户计费明细表';
|
|||
|
|
|
|||
|
|
-- 订单表
|
|||
|
|
DROP TABLE IF EXISTS `orders`;
|
|||
|
|
CREATE TABLE `orders` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID',
|
|||
|
|
`orderNo` varchar(50) NOT NULL COMMENT '订单编号',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`planId` int(11) NOT NULL COMMENT '套餐ID',
|
|||
|
|
`planName` varchar(100) NOT NULL COMMENT '套餐名称',
|
|||
|
|
`months` int(11) NOT NULL DEFAULT '1' COMMENT '购买月数',
|
|||
|
|
`amount` decimal(10,2) NOT NULL COMMENT '订单金额',
|
|||
|
|
`discountAmount` decimal(10,2) DEFAULT '0.00' COMMENT '优惠金额',
|
|||
|
|
`actualAmount` decimal(10,2) NOT NULL COMMENT '实付金额',
|
|||
|
|
`status` enum('pending','paid','cancelled') NOT NULL DEFAULT 'pending' COMMENT '状态:pending-待支付,paid-已支付,cancelled-已取消',
|
|||
|
|
`paidTime` datetime DEFAULT NULL COMMENT '支付时间',
|
|||
|
|
`expireTime` datetime NOT NULL COMMENT '过期时间',
|
|||
|
|
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `orderNo` (`orderNo`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
|
|||
|
|
|
|||
|
|
-- 支付记录表
|
|||
|
|
DROP TABLE IF EXISTS `payments`;
|
|||
|
|
CREATE TABLE `payments` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '支付ID',
|
|||
|
|
`orderId` int(11) NOT NULL COMMENT '订单ID',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`amount` decimal(10,2) NOT NULL COMMENT '支付金额',
|
|||
|
|
`paymentMethod` enum('alipay','wechat','bank','other') DEFAULT 'other' COMMENT '支付方式:alipay-支付宝,wechat-微信支付,bank-银行转账,other-其他(线下转账)',
|
|||
|
|
`transactionId` varchar(100) DEFAULT NULL COMMENT '第三方交易号',
|
|||
|
|
`status` enum('pending','success','failed') NOT NULL DEFAULT 'pending' COMMENT '状态:pending-处理中,success-成功,failed-失败',
|
|||
|
|
`paidAt` datetime DEFAULT NULL COMMENT '支付时间',
|
|||
|
|
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_order` (`orderId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';
|
|||
|
|
|
|||
|
|
-- 定价配置表
|
|||
|
|
DROP TABLE IF EXISTS `pricing_configs`;
|
|||
|
|
CREATE TABLE `pricing_configs` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|||
|
|
`overageApartmentPrice` decimal(10,2) NOT NULL DEFAULT '10.00' COMMENT '超额公寓单价(每栋/月)',
|
|||
|
|
`overageRoomPrice` decimal(10,2) NOT NULL DEFAULT '2.00' COMMENT '超额房间单价(每间/月)',
|
|||
|
|
`overageUserPrice` decimal(10,2) NOT NULL DEFAULT '5.00' COMMENT '超额用户单价(每人/月)',
|
|||
|
|
`currency` varchar(10) NOT NULL DEFAULT 'CNY' COMMENT '货币',
|
|||
|
|
`effectiveDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '生效日期',
|
|||
|
|
`isActive` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否生效',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_is_active` (`isActive`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定价配置表';
|
|||
|
|
|
|||
|
|
-- 支付设置表
|
|||
|
|
DROP TABLE IF EXISTS `payment_settings`;
|
|||
|
|
CREATE TABLE `payment_settings` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|||
|
|
`alipayAccount` varchar(100) DEFAULT NULL COMMENT '支付宝收款账号',
|
|||
|
|
`alipayName` varchar(50) DEFAULT '支付宝' COMMENT '支付宝显示名称',
|
|||
|
|
`wechatId` varchar(50) DEFAULT NULL COMMENT '客服微信号',
|
|||
|
|
`wechatText` varchar(100) DEFAULT '请添加客服微信' COMMENT '微信显示文字',
|
|||
|
|
`bankName` varchar(100) DEFAULT NULL COMMENT '开户行',
|
|||
|
|
`bankAccount` varchar(50) DEFAULT NULL COMMENT '银行账号',
|
|||
|
|
`bankHolder` varchar(100) DEFAULT NULL COMMENT '户名',
|
|||
|
|
`servicePhone` varchar(20) DEFAULT NULL COMMENT '客服电话',
|
|||
|
|
`serviceTime` varchar(50) DEFAULT '9:00-18:00' COMMENT '工作时间',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付设置表';
|
|||
|
|
|
|||
|
|
SET FOREIGN_KEY_CHECKS = 1;
|
|||
|
|
|
|||
|
|
-- ============================================
|
|||
|
|
-- 7. 参数设置相关表
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 系统设置表
|
|||
|
|
DROP TABLE IF EXISTS `settings`;
|
|||
|
|
CREATE TABLE `settings` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '设置ID',
|
|||
|
|
`key` varchar(100) NOT NULL COMMENT '设置键名',
|
|||
|
|
`value` text COMMENT '设置值',
|
|||
|
|
`description` varchar(255) DEFAULT NULL COMMENT '设置描述',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_key_tenant` (`key`, `tenantId`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统设置表';
|
|||
|
|
|
|||
|
|
-- 收支类目表
|
|||
|
|
DROP TABLE IF EXISTS `categories`;
|
|||
|
|
CREATE TABLE `categories` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '类目ID',
|
|||
|
|
`name` varchar(50) NOT NULL COMMENT '类目名称',
|
|||
|
|
`code` varchar(50) NOT NULL COMMENT '类目编码',
|
|||
|
|
`type` enum('income','expense') NOT NULL COMMENT '类型:income-收入,expense-支出',
|
|||
|
|
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
|
|||
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active' COMMENT '状态:active-启用,inactive-禁用',
|
|||
|
|
`isDefault` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认类目(0:否,1:是)',
|
|||
|
|
`tenantId` int(11) NOT NULL COMMENT '租户ID',
|
|||
|
|
`createBy` int(11) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`updateBy` int(11) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`isDeleted` int(11) NOT NULL DEFAULT '0' COMMENT '删除状态(0:未删除,1:已删除)',
|
|||
|
|
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_tenant` (`tenantId`),
|
|||
|
|
KEY `idx_type` (`type`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_code` (`code`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收支类目表';
|