Files
huang ad946af5ee add: 提交部分表设计
update: 1.所有model嵌入gorm公用model 2.所有model嵌入BaseModel
2025-12-15 11:32:33 +08:00

18 KiB

代理商/店铺表

字段名 说明
id 主键id
name 代理商名称/店铺名称
parent_shop_id 上级代理/店铺 ID
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

账号表

字段名称 说明
id 主键ID
username 用户名
phone 手机号
password 密码(用MD5加密)
user_type 用户类型 1 root 2 平台/运营 3 代理 4 企业
shop_id 店铺ID 该账号绑定到哪个店铺下的
parent_id 账号上级(应当移除)
status 0 禁用 1启用
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

角色表

字段名称 说明
id 主键ID
role_name 角色名称
role_desc 角色描述
role_type 角色类型 1 超级 2 代理 3 企业
status 0 禁用 1启用
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

权限表(菜单/按钮/操作)

字段名称 说明
id 主键ID
perm_name 权限名称
perm_type 权限类型 1 菜单 2 按钮
url 权限路径 菜单 按钮
parent_id 上级ID
perm_code 权限编码
sort 排序
status 0 禁用 1启用
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

账号-角色表

字段名 说明
id 主键ID
account_id 账号ID
role_id 角色ID
status 0 禁用 1启用
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

角色-权限表

字段名 说明
id 主键ID
role_id 角色ID
perm_id 权限ID
status 0 禁用 1启用
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

套餐系列(套餐分类)

字段名 说明
id 主键ID
code 套餐系列编码
name 套餐系列名称
type 业务套餐类型 流量卡,号卡
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

说明

  • type: 用以区分业务, 流量卡只能使用流量卡套餐 号卡只能使用号卡套餐

套餐表

字段名 说明
id 主键ID
code 套餐编码
套餐系列code 套餐系列code
type 套餐类型 叠加包/月卡套餐/自然月套餐/
name 套餐名称
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

说明:

  • judgment_target: 销售数量存储个数,销售金额存储分

代理/店铺套餐表

字段名 说明
id 主键ID
shop_id 代理/店铺ID
套餐系列名称 套餐系列名称
套餐系列ID 套餐系列的主键ID
套餐code 套餐编码
套餐名称 套餐名称
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

流量卡表

字段名 说明
id 主键ID
created_at 创建时间
updated_at 更新时间
creator 创建人(创建人ID)
updater 更新人(更新人ID)
deleted_at 删除时间 (为null为没有删除)

返佣梯度模板表

用途: 预设的返佣梯度模板,提供初始配置值,可被多个代理引用

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
template_name VARCHAR(100) NOT NULL 模板名称
template_code VARCHAR(50) NOT NULL UNIQUE 模板编码(唯一标识)
description TEXT NULL 模板说明
card_type VARCHAR(20) NOT NULL 卡类型: phone_card(号卡) / iot_card(物联网卡)
judgment_type VARCHAR(20) NOT NULL 判断类型: sales_quantity(套餐销售数量) / sales_amount(套餐销售金额)
rebate_timing VARCHAR(20) NOT NULL 返佣时效: immediate(即可返佣) / delayed(延迟返佣)
rebate_condition_type VARCHAR(20) NOT NULL 返佣条件类型: accumulated_recharge(累计充值) / single_recharge(一次充值)
rebate_condition_amount BIGINT NOT NULL 返佣条件目标值(分为单位)
require_sanwu_check BOOLEAN NOT NULL DEFAULT false 是否三无校验(仅号卡需要,物联网卡不需要)
is_long_term BOOLEAN NOT NULL DEFAULT false 是否长期返佣
termination_type VARCHAR(20) NULL 长期终止方式: month_count(指定月数) / end_date(指定日期)
termination_value VARCHAR(50) NULL 终止值: 月数(如"36")或日期(如"2026-11-20")
is_active BOOLEAN NOT NULL DEFAULT true 是否启用
created_by BIGINT NOT NULL 创建人 ID
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

返佣梯度条目表

用途: 模板中的具体梯度条目,定义每个梯度的判断目标和返佣规则

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
template_id BIGINT NOT NULL 关联模板 ID
tier_level INT NOT NULL 梯度等级(从1开始递增)
judgment_target BIGINT NOT NULL 判断目标值(数量或金额,金额以分为单位)
rebate_type VARCHAR(20) NOT NULL 返佣属性: percentage(比例金额) / fixed(固定金额)
rebate_value BIGINT NOT NULL 返佣假定值(比例用万分比,如1000=10%;固定金额用分)
max_cap_amount BIGINT NULL 封顶金额(分为单位,NULL表示无封顶)
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

说明:

  • rebate_value: 比例类型存储万分比(10000=100%, 1000=10%),固定金额存储分
  • judgment_target: 销售数量存储个数,销售金额存储分

代理商-套餐-返佣规则快照表

用途: 代理商分销套餐时生成的返佣规则快照,独立于模板,允许个性化调整

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
agent_id BIGINT NOT NULL 代理商 ID
package_id BIGINT NOT NULL 套餐 ID
template_id BIGINT NULL 原始模板 ID(可为空,表示自定义规则)
rule_name VARCHAR(100) NOT NULL 规则名称
card_type VARCHAR(20) NOT NULL 卡类型: phone_card / iot_card
judgment_type VARCHAR(20) NOT NULL 判断类型
rebate_timing VARCHAR(20) NOT NULL 返佣时效
rebate_condition_type VARCHAR(20) NOT NULL 返佣条件类型
rebate_condition_amount BIGINT NOT NULL 返佣条件目标值(分)
require_sanwu_check BOOLEAN NOT NULL DEFAULT false 是否三无校验
is_long_term BOOLEAN NOT NULL DEFAULT false 是否长期返佣
termination_type VARCHAR(20) NULL 长期终止方式
termination_value VARCHAR(50) NULL 终止值
is_active BOOLEAN NOT NULL DEFAULT true 是否启用
created_by BIGINT NOT NULL 创建人 ID
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

代理商返佣规则梯度条目表

用途: 代理商快照规则中的具体梯度条目(从模板复制或自定义)

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
rule_id BIGINT NOT NULL 关联规则 ID
tier_level INT NOT NULL 梯度等级
judgment_target BIGINT NOT NULL 判断目标值
rebate_type VARCHAR(20) NOT NULL 返佣属性
rebate_value BIGINT NOT NULL 返佣假定值
max_cap_amount BIGINT NULL 封顶金额
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

佣金记录表

用途: 记录每一笔佣金的生成、状态变化、金额计算等核心信息

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
record_no VARCHAR(50) NOT NULL UNIQUE 佣金记录号(业务唯一标识)
agent_id BIGINT NOT NULL 代理商 ID
package_id BIGINT NOT NULL 套餐 ID
rule_id BIGINT NOT NULL 返佣规则 ID
tier_item_id BIGINT NOT NULL 梯度条目 ID
related_identifier VARCHAR(50) NOT NULL 关联标识符(ICCID 或号码)
identifier_type VARCHAR(20) NOT NULL 标识符类型: iccid / phone_number
card_type VARCHAR(20) NOT NULL 卡类型: phone_card / iot_card
billing_month VARCHAR(7) NOT NULL 计费月份(格式: YYYY-MM)
judgment_type VARCHAR(20) NOT NULL 判断类型
judgment_value BIGINT NOT NULL 判断实际值(数量或金额)
rebate_timing VARCHAR(20) NOT NULL 返佣时效
rebate_type VARCHAR(20) NOT NULL 返佣属性
rebate_base_amount BIGINT NOT NULL 返佣基数(成本价,分)
rebate_rate BIGINT NULL 返佣比例(万分比,仅比例类型)
commission_amount BIGINT NOT NULL 佣金金额(分)
status VARCHAR(20) NOT NULL 状态: frozen(已冻结) / normal(正常) / invalid(无效) / withdraw_pending(提取申请中) / withdraw_rejected(提取驳回) / withdrawn(已提取) / clawback(已回溯)
freeze_reason TEXT NULL 冻结原因
invalid_reason TEXT NULL 无效原因
clawback_reason TEXT NULL 回溯原因
clawback_amount BIGINT NOT NULL DEFAULT 0 回溯金额(分,负数表示扣减)
is_long_term BOOLEAN NOT NULL DEFAULT false 是否长期返佣
long_term_month_index INT NULL 长期返佣月份索引(第几个月)
frozen_at TIMESTAMP NULL 冻结时间
unfrozen_at TIMESTAMP NULL 解冻时间
unfrozen_by BIGINT NULL 解冻操作人 ID
invalidated_at TIMESTAMP NULL 标记无效时间
invalidated_by BIGINT NULL 标记无效操作人 ID
clawback_at TIMESTAMP NULL 回溯时间
clawback_by BIGINT NULL 回溯操作人 ID
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

状态流转说明:

  • frozennormal: 解冻
  • frozeninvalid: 巡检发现不满足条件
  • normalwithdraw_pending: 提交提现申请
  • withdraw_pendingwithdrawn: 审批通过
  • withdraw_pendingwithdraw_rejected: 审批驳回
  • withdraw_rejectednormal: 问题解决后恢复
  • withdrawnclawback: 客户退款导致回溯

佣金解冻凭证表

用途: 记录运营提交的解冻凭证,支持批量解冻操作

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
voucher_no VARCHAR(50) NOT NULL UNIQUE 凭证批次号
voucher_source VARCHAR(50) NOT NULL 凭证来源: carrier_official(运营商官方) / upstream_channel(上游渠道) / other(其他)
voucher_file_url TEXT NULL 凭证文件 URL
billing_month VARCHAR(7) NOT NULL 结算月份
total_count INT NOT NULL DEFAULT 0 凭证包含总数
unfrozen_count INT NOT NULL DEFAULT 0 成功解冻数量
failed_count INT NOT NULL DEFAULT 0 解冻失败数量
unfreeze_password VARCHAR(100) NULL 解冻密码(加密存储)
status VARCHAR(20) NOT NULL 状态: pending(待处理) / processing(处理中) / completed(已完成) / failed(失败)
process_started_at TIMESTAMP NULL 处理开始时间
process_completed_at TIMESTAMP NULL 处理完成时间
created_by BIGINT NOT NULL 创建人 ID
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

佣金解冻凭证明细表

用途: 解冻凭证中的每条 ICCID/号码记录

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
voucher_id BIGINT NOT NULL 关联凭证 ID
identifier VARCHAR(50) NOT NULL ICCID 或号码
identifier_type VARCHAR(20) NOT NULL 标识符类型: iccid / phone_number
commission_record_id BIGINT NULL 关联佣金记录 ID(匹配后填充)
sanwu_check_passed BOOLEAN NULL 三无校验是否通过
traffic_usage BIGINT NULL 流量用量(字节)
voice_usage BIGINT NULL 语音用量(秒)
sms_usage INT NULL 短信用量(条)
unfreeze_result VARCHAR(20) NOT NULL 解冻结果: success(成功) / failed(失败) / not_found(未找到)
fail_reason TEXT NULL 失败原因
unfrozen_at TIMESTAMP NULL 解冻时间
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间

提现申请表

用途: 代理商的提现申请记录

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
request_no VARCHAR(50) NOT NULL UNIQUE 提现申请单号
agent_id BIGINT NOT NULL 代理商 ID
withdrawal_amount BIGINT NOT NULL 提现金额(分)
available_balance BIGINT NOT NULL 申请时可用余额(分)
bank_account_name VARCHAR(100) NOT NULL 收款账户名
bank_account_number VARCHAR(50) NOT NULL 收款账号
bank_name VARCHAR(100) NOT NULL 开户行
status VARCHAR(20) NOT NULL 状态: pending(待审批) / approved(已批准) / rejected(已驳回) / paid(已放款) / failed(放款失败)
reject_reason TEXT NULL 驳回原因
paid_amount BIGINT NULL 实际放款金额(分)
paid_at TIMESTAMP NULL 放款时间
paid_by BIGINT NULL 放款操作人 ID
payment_voucher_url TEXT NULL 放款凭证 URL
transaction_no VARCHAR(100) NULL 支付流水号
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间
deleted_at TIMESTAMP NULL 软删除时间

提现审批记录表

用途: 提现申请的审批流程记录,支持多级审批和操作留痕

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
request_id BIGINT NOT NULL 关联提现申请 ID
approval_level INT NOT NULL 审批级别(1,2,3...)
approver_id BIGINT NOT NULL 审批人 ID
approver_name VARCHAR(100) NOT NULL 审批人姓名
action VARCHAR(20) NOT NULL 操作: approve(批准) / reject(驳回) / pay(放款)
comment TEXT NULL 审批意见
approved_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 审批时间
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间

说明:

  • 每次审批操作(批准/驳回/放款)都会插入一条记录
  • approval_level 用于区分多级审批流程
  • action='pay' 的记录代表最终放款操作

提现-佣金关联表

用途: 关联提现申请和具体的佣金记录,支持一次提现包含多笔佣金

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
request_id BIGINT NOT NULL 关联提现申请 ID
commission_record_id BIGINT NOT NULL 关联佣金记录 ID
commission_amount BIGINT NOT NULL 佣金金额(分)
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间

代理商佣金账户表

用途: 代理商的佣金账户余额和统计信息(实时显示分佣金额)

字段名 类型 约束 说明
id BIGSERIAL PRIMARY KEY 主键
agent_id BIGINT NOT NULL UNIQUE 代理商 ID
total_earned BIGINT NOT NULL DEFAULT 0 累计获得佣金(分)
frozen_amount BIGINT NOT NULL DEFAULT 0 冻结中金额(分)
available_amount BIGINT NOT NULL DEFAULT 0 可提现金额(分)
withdrawn_amount BIGINT NOT NULL DEFAULT 0 已提现金额(分)
invalid_amount BIGINT NOT NULL DEFAULT 0 无效佣金金额(分)
clawback_amount BIGINT NOT NULL DEFAULT 0 已回溯金额(分)
pending_withdrawal_amount BIGINT NOT NULL DEFAULT 0 提现申请中金额(分)
last_withdrawal_at TIMESTAMP NULL 最后提现时间
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 更新时间

字段计算规则:

  • available_amount = 状态为 normal 的佣金总和
  • frozen_amount = 状态为 frozen 的佣金总和
  • pending_withdrawal_amount = 状态为 withdraw_pending 的佣金总和
  • withdrawn_amount = 状态为 withdrawn 的佣金总和
  • invalid_amount = 状态为 invalid 的佣金总和
  • clawback_amount = 所有 clawback_amount 字段的累加(负数)