feat(recommendation): 实现推荐客户管理全流程功能
- 新增推荐记录、推荐人信息、推荐费结算实体及数据库表结构 - 实现推荐记录小程序端接口,包括新增报备、获取推荐码、查询我的推荐及统计 - 实现后台管理端推荐记录分页查询、确认有效、作废、结算及批量结算接口 - 实现推荐人信息查询及推荐统计汇总逻辑 - 实现推荐记录导出功能,支持导出推荐详情数据 - 完成推荐状态变更时推荐人统计数据同步更新 - 添加相关Mapper接口和Service接口及实现 - 使用MyBatis Plus分页插件支持分页查询 - 集成Spring Security权限校验和操作日志注解 - 优化推荐码生成和唯一性校验机制
This commit is contained in:
81
src/main/resources/db/sql/app_lead_referral.sql
Normal file
81
src/main/resources/db/sql/app_lead_referral.sql
Normal file
@@ -0,0 +1,81 @@
|
||||
-- ============================================================
|
||||
-- 推荐客户模块 SQL
|
||||
-- 包: app
|
||||
-- 创建时间: 2026-04-16
|
||||
-- ============================================================
|
||||
|
||||
-- 1. 推荐记录表
|
||||
CREATE TABLE `app_lead_referral` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`referral_code` VARCHAR(32) DEFAULT NULL COMMENT '推荐码(推荐人分享给客户的码)',
|
||||
`referrer_id` INT DEFAULT NULL COMMENT '推荐人用户ID(NULL=匿名推荐)',
|
||||
`referrer_name` VARCHAR(64) DEFAULT NULL COMMENT '推荐人姓名',
|
||||
`referrer_phone` VARCHAR(20) DEFAULT NULL COMMENT '推荐人手机号',
|
||||
|
||||
`customer_name` VARCHAR(64) NOT NULL COMMENT '客户姓名',
|
||||
`customer_phone` VARCHAR(20) NOT NULL COMMENT '客户手机号',
|
||||
`customer_company` VARCHAR(255) DEFAULT NULL COMMENT '客户公司名称',
|
||||
`requirement` TEXT DEFAULT NULL COMMENT '客户需求描述',
|
||||
`appointment_time` DATETIME DEFAULT NULL COMMENT '预约联系时间',
|
||||
`remarks` VARCHAR(500) DEFAULT NULL COMMENT '推荐人备注',
|
||||
|
||||
`referral_fee` DECIMAL(10,2) DEFAULT '0.00' COMMENT '推荐费(元)',
|
||||
`referral_status` TINYINT NOT NULL DEFAULT '0' COMMENT '推荐状态: 0=待确认, 1=有效, 2=无效/作废, 3=已结算',
|
||||
`invalid_reason` VARCHAR(255) DEFAULT NULL COMMENT '作废原因',
|
||||
`invalid_time` DATETIME DEFAULT NULL COMMENT '作废时间',
|
||||
`confirmed_time` DATETIME DEFAULT NULL COMMENT '确认有效时间',
|
||||
`settled_time` DATETIME DEFAULT NULL COMMENT '结算时间',
|
||||
|
||||
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
|
||||
`create_by` INT DEFAULT NULL COMMENT '创建人ID',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` INT DEFAULT NULL COMMENT '更新人ID',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`deleted` TINYINT NOT NULL DEFAULT '0' COMMENT '删除标记: 0=未删, 1=已删',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_referrer_id` (`referrer_id`),
|
||||
KEY `idx_customer_phone` (`customer_phone`),
|
||||
KEY `idx_referral_status` (`referral_status`),
|
||||
KEY `idx_create_time` (`create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='推荐记录表';
|
||||
|
||||
-- 2. 推荐人信息表
|
||||
CREATE TABLE `app_referrer_info` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` INT NOT NULL COMMENT '用户ID',
|
||||
`referral_code` VARCHAR(32) NOT NULL COMMENT '推荐码(唯一)',
|
||||
`total_referrals` INT NOT NULL DEFAULT '0' COMMENT '累计推荐人数',
|
||||
`valid_referrals` INT NOT NULL DEFAULT '0' COMMENT '有效推荐数',
|
||||
`settled_count` INT NOT NULL DEFAULT '0' COMMENT '已结算数',
|
||||
`total_earned` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '累计获得推荐费(元)',
|
||||
`pending_amount` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '待结算金额(元)',
|
||||
|
||||
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
|
||||
`create_by` INT DEFAULT NULL COMMENT '创建人ID',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` INT DEFAULT NULL COMMENT '更新人ID',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`deleted` TINYINT NOT NULL DEFAULT '0' COMMENT '删除标记: 0=未删, 1=已删',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_user_id` (`user_id`),
|
||||
UNIQUE KEY `uk_referral_code` (`referral_code`),
|
||||
KEY `idx_create_time` (`create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='推荐人信息表';
|
||||
|
||||
-- 3. 推荐费结算记录表
|
||||
CREATE TABLE `app_referral_settlement` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`referral_id` BIGINT NOT NULL COMMENT '关联推荐记录ID',
|
||||
`referrer_id` INT NOT NULL COMMENT '推荐人用户ID',
|
||||
`amount` DECIMAL(10,2) NOT NULL COMMENT '结算金额(元)',
|
||||
`settlement_no` VARCHAR(32) DEFAULT NULL COMMENT '结算单号',
|
||||
`remarks` VARCHAR(500) DEFAULT NULL COMMENT '结算备注',
|
||||
|
||||
`tenant_id` INT DEFAULT NULL COMMENT '租户ID',
|
||||
`create_by` INT DEFAULT NULL COMMENT '结算操作人ID',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '结算时间',
|
||||
`deleted` TINYINT NOT NULL DEFAULT '0' COMMENT '删除标记: 0=未删, 1=已删',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_referral_id` (`referral_id`),
|
||||
KEY `idx_referrer_id` (`referrer_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='推荐费结算记录表';
|
||||
Reference in New Issue
Block a user