一、系统权限与配置(RBAC)
admin_user
业务说明:管理员账号,按 role_id 关联角色;密码 bcrypt 加密。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| username | varchar(50) | 否 | — | UNI | 登录账号 |
| password | varchar(255) | 否 | — | — | 加密密码 |
| real_name | varchar(50) | 是 | — | — | 真实姓名 |
| mobile | varchar(20) | 是 | — | — | 手机号 |
| varchar(100) | 是 | — | — | 邮箱 | |
| role_id | bigint(20) | 否 | — | MUL | 角色ID |
| status | tinyint(4) | 是 | 1 | MUL | 状态:1启用 0禁用 |
| last_login_ip | varchar(50) | 是 | — | — | — |
| last_login_time | datetime | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
admin_role
业务说明:管理员角色(内置角色:SUPER/OPERATION/FINANCE/LOGISTICS/V6/DATA_VIEWER 等),role_level 决定菜单与数据可见范围。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| role_code | varchar(50) | 否 | — | UNI | 角色编码 |
| role_name | varchar(50) | 否 | — | — | 角色名称 |
| role_level | tinyint(4) | 否 | — | — | 角色等级:1-6 |
| description | varchar(255) | 是 | — | — | — |
| is_system | tinyint(4) | 是 | 0 | — | 是否系统内置:1是 0否 |
| status | tinyint(4) | 是 | 1 | — | 状态:1启用 0禁用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
admin_permission
业务说明:权限点(菜单/按钮/数据三类),树形 parent_id;operation_level 1常规/2敏感/3高危,高危接口需二次密码。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| parent_id | bigint(20) | 是 | 0 | MUL | 父权限ID |
| perm_code | varchar(100) | 否 | — | UNI | 权限编码 |
| perm_name | varchar(50) | 否 | — | — | 权限名称 |
| perm_type | tinyint(4) | 否 | — | MUL | 类型:1菜单 2按钮 3数据 |
| path | varchar(200) | 是 | — | — | 前端路由路径 |
| icon | varchar(50) | 是 | — | — | 菜单图标 |
| sort_order | int(11) | 是 | 0 | — | 排序 |
| operation_level | tinyint(4) | 是 | 1 | — | 操作等级:1常规 2敏感 3高危 |
| status | tinyint(4) | 是 | 1 | — | 状态 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
admin_role_permission
业务说明:角色↔权限多对多关联,SUPER_ADMIN 自动拥有全部。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| role_id | bigint(20) | 否 | — | MUL | — |
| perm_id | bigint(20) | 否 | — | — | — |
admin_data_scope
业务说明:数据权限规则(region/dept/self),配合 V6 隔离等场景。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| role_id | bigint(20) | 否 | — | MUL | — |
| scope_type | varchar(50) | 否 | — | — | 范围类型:region/dept/self |
| scope_value | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
admin_operation_log
业务说明:所有后台操作审计,高危操作强制记录 before/after 数据,留存≥180天。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| admin_id | bigint(20) | 否 | — | MUL | — |
| admin_name | varchar(50) | 否 | — | — | — |
| role_code | varchar(50) | 是 | — | — | — |
| operation_level | tinyint(4) | 是 | 1 | MUL | 1常规 2敏感 3高危 |
| module | varchar(50) | 是 | — | — | — |
| operation_type | varchar(50) | 否 | — | — | — |
| target_user_id | bigint(20) | 是 | — | MUL | — |
| request_url | varchar(200) | 是 | — | — | — |
| request_method | varchar(10) | 是 | — | — | — |
| request_params | json | 是 | — | — | — |
| before_data | json | 是 | — | — | — |
| after_data | json | 是 | — | — | — |
| result | tinyint(4) | 是 | 1 | — | 1成功 0失败 |
| error_msg | varchar(500) | 是 | — | — | — |
| client_ip | varchar(50) | 是 | — | — | — |
| user_agent | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | MUL | — |
admin_session
业务说明:JWT/刷新令牌存储与吊销(黑名单)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| admin_id | bigint(20) | 否 | — | MUL | — |
| jwt_token | varchar(500) | 否 | — | — | — |
| refresh_token | varchar(500) | 是 | — | — | — |
| expire_at | datetime | 否 | — | MUL | — |
| is_revoked | tinyint(4) | 是 | 0 | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
admin_announcement_read
业务说明:后台管理员公告已读记录(按管理员维度标记已读)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| admin_id | bigint(20) | 否 | — | MUL | — |
| announcement_id | bigint(20) | 否 | — | MUL | — |
| read_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
admin_task
业务说明:后台定时任务注册表(任务名/表达式/状态/最近运行),控制面板读取此处。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| task_key | varchar(40) | 否 | — | MUL | 任务标识(= think 命令名,如 point:release) |
| title | varchar(60) | 否 | — | — | 展示名 |
| command | varchar(120) | 否 | — | — | think 命令名(php think <command>) |
| cron_expr | varchar(40) | 否 | — | — | cron 表达式 |
| enabled | tinyint(4) | 否 | 1 | — | 1启用 0停用 |
| last_run_at | datetime | 是 | — | — | 上次执行时间 |
| last_status | tinyint(4) | 否 | 0 | — | 0未跑 1成功 2失败 3运行中 |
| last_duration | int(11) | 否 | 0 | — | 上次耗时(毫秒) |
| sort | int(11) | 否 | 0 | — | 排序 |
| line | varchar(20) | 否 | — | — | 双线:findhere / xyanda |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
admin_task_log
业务说明:定时任务执行日志(开始/结束/耗时/结果/异常摘要),用于运维排查。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| task_id | bigint(20) | 否 | — | MUL | — |
| task_key | varchar(40) | 是 | — | — | — |
| command | varchar(120) | 是 | — | — | — |
| output | mediumtext | 是 | — | — | 命令输出(已去除控制台标记) |
| exit_code | int(11) | 否 | 0 | — | — |
| duration_ms | int(11) | 否 | 0 | — | — |
| trigger | varchar(20) | 否 | cron | — | cron / manual |
| line | varchar(20) | 否 | — | MUL | 双线:findhere / xyanda |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | MUL | — |
app_version
业务说明:APP 升级版本表(版本号/下载地址/强制升级标记/灰度),C 端升级中心读取。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(10) unsigned | 否 | — | PRI | — |
| appid | varchar(64) | 否 | — | MUL | app标识(plus.runtime.appid, 如 __UNI__3CBE0A6) |
| platform | varchar(32) | 否 | Android | — | 平台: Android/iOS/Harmony |
| type | varchar(16) | 否 | native_app | — | native_app=整包, wgt=热更新资源包 |
| version | varchar(32) | 否 | — | — | 版本号(整包=versionName; wgt=wgt version) |
| wgt_version | varchar(32) | 否 | — | — | wgt 类型的版本号(整包可为空) |
| min_uni_version | varchar(32) | 否 | — | — | wgt 要求的最低原生版本(原生可为空) |
| url | varchar(512) | 否 | — | — | 安装包/资源包地址(七牛云或静态) |
| title | varchar(128) | 否 | — | — | 更新标题 |
| contents | text | 是 | — | — | 更新内容(换行分隔) |
| is_mandatory | tinyint(4) | 否 | 0 | — | 1=强制更新(不可关闭) |
| is_silently | tinyint(4) | 否 | 0 | — | 1=静默更新(仅 wgt 生效, 后台下载下次启动生效) |
| status | tinyint(4) | 否 | 0 | — | 0=下线 1=上线发行(仅上线版参与检测, 每 appid+platform+type 同时仅 1 个上线) |
| create_time | int(10) unsigned | 否 | 0 | — | — |
| update_time | int(10) unsigned | 否 | 0 | — | — |
config_param
业务说明:系统参数键值表:积分释放率、分享/团队/反加速比例、各 V 级分红率、晋升门槛、手续费等,结算引擎读取此处。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| param_key | varchar(100) | 否 | — | UNI | 参数键 |
| param_name | varchar(100) | 否 | — | — | 参数名称 |
| param_value | varchar(255) | 否 | — | — | 当前值 |
| default_value | varchar(255) | 是 | — | — | 默认值 |
| new_value | varchar(255) | 是 | — | — | 待生效值 |
| status | tinyint(4) | 是 | 1 | — | 状态:1已生效 2待生效 3已失效 |
| remark | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | — | — | — |
| updated_at | datetime | 是 | — | — | — |
二、会员与资产
member
会员表(含推荐关系 recommend_id/path、四池资产、微信绑定 openid/unionid/wechat_bound_at)
业务说明:会员主表:四池资产(消费/兑换/锁仓积分 + 现金红包)、推荐关系(recommend_id 直接上级 + recommend_path 祖先链含自身)、等级 1-6;微信绑定 openid(登录凭据)+ unionid(预留打通)+ wechat_bound_at(绑定时间,登录补绑推荐关系见 Auth::tryBindRecommend)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| nickname | varchar(50) | 否 | — | — | 昵称 |
| username | varchar(50) | 是 | — | UNI | 用户名 |
| avatar | varchar(500) | 是 | — | — | 头像URL |
| mobile | varchar(20) | 是 | — | UNI | 手机号 |
| password | varchar(255) | 是 | — | — | 登录密码(hash) |
| pay_password | varchar(255) | 是 | — | — | 支付密码哈希 |
| real_name | varchar(50) | 是 | — | — | 真实姓名 |
| id_card | varchar(30) | 是 | — | — | 身份证 |
| level | tinyint(4) | 是 | 0 | MUL | 会员等级 1-6 => V1-V6 |
| effective_member | tinyint(1) | 否 | 0 | MUL | 有效会员:1=有效消费>0(独立档位,不参与分红计权) |
| effective_amount | decimal(14,2) | 否 | 0.00 | — | 累计有效消费额(口径同 rebate_amount 之和) |
| effective_at | datetime | 是 | — | — | 首次成为有效会员时间 |
| consume_point | decimal(12,2) | 是 | 0.00 | — | 消费积分余额 |
| exchange_point | decimal(12,2) | 是 | 0.00 | — | 兑换积分余额 |
| balance_point | decimal(12,2) | 否 | 0.00 | — | 积分余额(后台第三方入账/红包互转落点,独立于兑换积分) |
| rebate_point | decimal(14,2) | 否 | 0.00 | — | 让利值(每订单明细让利累计,元;月度代理商奖励运营查看/手动核算用) |
| has_gift_purchase | tinyint(1) | 否 | 0 | — | 是否买过礼包(有效用户标记):1=买过,未买过则奖励全额烧伤归平台 |
| lock_point | decimal(12,2) | 是 | 0.00 | — | 锁仓积分余额 |
| lock_released | decimal(12,2) | 否 | 0.00 | — | 已解冻锁仓累计 |
| exchange_equity | decimal(14,2) | 否 | 0.00 | — | 兑换权益余额(兑换积分静态释放产生,可申请兑换) |
| red_packet | decimal(12,2) | 是 | 0.00 | — | 现金红包余额 |
| recommend_id | bigint(20) | 是 | 0 | MUL | 推荐人会员ID |
| recommend_path | varchar(255) | 否 | — | MUL | 推荐链路径枚举,逗号分隔祖先含自身 |
| invite_code | varchar(10) | 否 | — | UNI | 邀请码(5位,C端分享用) |
| status | tinyint(4) | 是 | 1 | MUL | 1正常 0禁用 2冻结 |
| registered_at | datetime | 是 | — | — | 注册时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| quick_pay | tinyint(4) | 否 | 0 | — | 1开启快捷支付 |
| openid | varchar(64) | 否 | — | MUL | 微信 openid(小程序/公众号 JSAPI 支付买家标识) |
| unionid | varchar(64) | 是 | — | — | 微信开放平台unionid(预留) |
| wechat_bound_at | datetime | 是 | — | — | 微信绑定时间 |
| alipay_user_id | varchar(64) | 否 | — | — | 支付宝 user_id(支付宝小程序支付买家标识) |
| active_value | int(11) | 否 | 0 | — | 活跃值(累计签到次数,每日签到+1) |
| stock_equity | decimal(12,2) | 否 | 0.00 | — | 上市股票兑换权益台账(内部记账·股) |
point_record
业务说明:积分流水(四池变动明细),type:1充值/2扣减/3释放/4奖励发放/5消费;point_type:1消费/2兑换/3锁仓;balance_after 为变动后余额,与 member 余额须一致(对账依据)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | — |
| nickname | varchar(50) | 是 | — | — | — |
| type | tinyint(4) | 否 | — | MUL | 1充值 2扣减 3释放 4奖励发放 5消费 |
| point_type | tinyint(4) | 是 | 1 | — | 1消费 2兑换 3锁仓 |
| amount | decimal(12,2) | 否 | — | — | 变动额(正/负) |
| balance_after | decimal(12,2) | 是 | 0.00 | — | — |
| remark | varchar(255) | 是 | — | — | — |
| operator_id | bigint(20) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | MUL | — |
| biz_no | varchar(64) | 否 | — | — | 业务单号(第三方入账幂等键) |
| grant_key | varchar(64) | 是 | — | UNI | 入账幂等键:u{uid}:o{oid}:i{iid}:g{gid}:t{pool};NULL=不约束 |
| source | varchar(30) | 否 | — | — | 来源/渠道标识(third_party等) |
| order_id | bigint(20) | 否 | 0 | MUL | 订单ID(sales_order.id) |
| item_id | bigint(20) | 否 | 0 | — | 订单明细ID(order_item.id) |
| goods_id | bigint(20) | 否 | 0 | MUL | 商品ID(goods.id) |
| goods_name | varchar(120) | 否 | — | — | 商品名称快照 |
daily_behavior
业务说明:会员每日签到+广告完播,前置条件满足后才允许当日积分释放/解冻。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | 0 | MUL | — |
| date | date | 否 | — | MUL | — |
| signed | tinyint(4) | 否 | 0 | — | 0未签 1已签 |
| ad_done | tinyint(4) | 否 | 0 | — | 0未看 1已看 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
member_promotion_log
业务说明:会员晋升记录(from_level→to_level),晋升按团队业绩快照门槛,仅升不降。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | 0 | MUL | — |
| from_level | tinyint(4) | 否 | 0 | — | — |
| to_level | tinyint(4) | 否 | 0 | — | — |
| team_performance | decimal(14,2) | 否 | 0.00 | — | — |
| reason | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
team_performance_snapshot
业务说明:每日团队/直推业绩快照,异步预计算避免实时递归。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | 0 | MUL | — |
| date | date | 否 | — | MUL | — |
| team_performance | decimal(14,2) | 否 | 0.00 | — | 团队总业绩 |
| direct_performance | decimal(14,2) | 否 | 0.00 | — | 直推业绩 |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
三、商品体系
goods_category
业务说明:商品分类(树形 parent_id)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| parent_id | bigint(20) | 是 | 0 | MUL | 父分类ID,0为一级 |
| name | varchar(50) | 否 | — | — | 分类名称 |
| wx_cat_id | varchar(32) | 否 | — | MUL | 微信小店类目ID(cat_id),空=本地自建 |
| level | tinyint(4) | 否 | 0 | — | 类目层级 1/2/3,0=未知 |
| is_leaf | tinyint(4) | 否 | 0 | — | 是否叶子类目 1=可挂商品 |
| path | varchar(255) | 否 | — | — | 类目面包屑,如 个人护理>口腔护理 |
| source | varchar(16) | 否 | local | MUL | 类目来源 local/wx/dhj |
| sort | int(11) | 是 | 0 | — | 排序 |
| status | tinyint(4) | 是 | 1 | — | 1启用 0禁用 |
| image | varchar(512) | 否 | — | — | 分类图标 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| home_nav | tinyint(4) | 否 | 1 | — | 首页分类导航显示(1显示/0隐藏) |
| home_nav_sort | int(11) | 否 | 0 | — | 首页分类导航排序(升序,同级按 sort 兜底) |
goods_category_rel
业务说明:商品↔分类多对多(一个商品可归属多个分类)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| goods_id | bigint(20) | 否 | — | PRI | 商品ID |
| category_id | bigint(20) | 否 | — | PRI | 分类ID |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
goods
商品表(含审核状态机 + 商户/供应商/运费/预售/限购/多规格扩展字段)
业务说明:商品主表:type 引用 goods_type.id(0=组合);扩展字段含商户/供应商/运费模板/预售/限购/标签/多规格开关。引入审核状态机:review_status 0草稿/1待审核/2已通过(可上架)/3已驳回,status 仅 review_status=2 时有效(0下架/1上架);reviewer_id 平台审核人;submitted_at/reviewed_at 审核时间戳;review_remark 驳回原因。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| name | varchar(120) | 否 | — | — | 商品名称 |
| code | varchar(40) | 是 | — | UNI | 业务编码(导入/导出幂等键),UK,可空;老数据为空按 name+type 匹配 |
| type | bigint(20) | 否 | 0 | MUL | 商品类型ID 引用 goods_type.id(原 1礼包/2普通 已映射为 goods_type 的 id) |
| category_id | bigint(20) | 是 | 0 | MUL | 分类ID |
| topic_id | bigint(20) | 否 | 0 | MUL | 商品专题ID 0未归属 |
| price | decimal(12,2) | 是 | 0.00 | — | 售价 |
| stock | int(11) | 是 | 0 | — | 库存 |
| sales | int(11) | 是 | 0 | — | 销量 |
| cover | varchar(255) | 是 | — | — | 封面图 |
| detail | text | 是 | — | — | 详情 |
| status | tinyint(4) | 是 | 1 | — | 1上架 0下架 |
| review_status | tinyint(4) | 否 | 0 | MUL | 审核状态 0草稿 1待审核 2已通过(可上架) 3已驳回 |
| review_remark | varchar(255) | 否 | — | — | 驳回原因/审核备注 |
| submitted_at | datetime | 是 | — | — | 提交审核时间 |
| reviewed_at | datetime | 是 | — | — | 审核处理时间 |
| reviewer_id | bigint(20) | 否 | 0 | — | 平台审核人 admin_id 0=未审核 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| merchant_id | bigint(20) | 是 | 0 | — | 商户ID 0=平台自营 |
| store_id | bigint(20) | 否 | 0 | — | 归属门店(0=商家整体) |
| supplier_id | bigint(20) | 是 | 0 | — | 供应商ID 0=无 |
| delivery_type | tinyint(4) | 是 | 1 | — | 1快递 2虚拟 3自提 4预售 |
| is_multi_spec | tinyint(4) | 是 | 0 | — | 是否多规格 0单品 1多规格 |
| min_price | decimal(12,2) | 是 | 0.00 | — | 展示最低价(单品=price/SKU最低) |
| max_price | decimal(12,2) | 是 | 0.00 | — | 展示最高价(SKU最高) |
| limit_buy | int(11) | 是 | 0 | — | 每人限购 0不限 |
| shipping_template_id | bigint(20) | 是 | 0 | — | 运费模板 0=平台默认 |
| presale_deposit | decimal(12,2) | 是 | 0.00 | — | 预售定金 |
| presale_delivery_at | datetime | 是 | — | — | 预售发货日 |
| tags | varchar(255) | 是 | — | — | 标签,逗号分隔 |
| recommend | tinyint(4) | 否 | 0 | — | 是否精选 1是 |
| profit_rate | decimal(5,2) | 否 | 20.00 | — | 让利值% |
| cost_price | decimal(12,2) | 否 | 0.00 | — | 进货价/成本价(历史缺失默认售价×0.6) |
| sort | int(11) | 否 | 0 | — | 商品后台排序值(全局统一, 越小越靠前; 拖拽排序回写1..n, 默认0=未参与排序) |
goods_audit_log
业务说明:商品审核/上下架/治理操作审计轨迹:action(submit/approve/reject/withdraw/listing_on/listing_off/force_off)、operator_id/operator_role(merchant|admin)、remark;全链路留痕。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | 商品 |
| merchant_id | bigint(20) | 否 | 0 | MUL | 归属商家(审计透视) |
| action | varchar(30) | 否 | — | MUL | submit/approve/reject/withdraw/listing_on/listing_off/force_off |
| operator_id | bigint(20) | 否 | 0 | — | 操作人(商户员工或平台 admin) |
| operator_role | varchar(10) | 否 | — | — | merchant/admin |
| remark | varchar(255) | 否 | — | — | 备注/驳回原因 |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | MUL | — |
goods_type
业务说明:商品类型(可自定义):礼包/普通实物等,决定交付方式、是否走运费/库存/虚拟。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| code | varchar(30) | 是 | — | UNI | 类型编码(唯一,程序/前端引用 gift/physical/virtual/presale) |
| name | varchar(50) | 否 | — | — | 类型名称(可自定义) |
| icon | varchar(255) | 是 | — | — | 类型图标 |
| delivery_type | tinyint(4) | 是 | 1 | — | 默认交付方式 1快递 2虚拟 3自提 4预售(商品可覆盖) |
| require_sku | tinyint(4) | 是 | 0 | — | 是否要求多规格 0否 1是 |
| require_shipping | tinyint(4) | 是 | 1 | — | 是否走运费 0否(虚拟/自提) 1是 |
| require_stock | tinyint(4) | 是 | 1 | — | 是否管理实物库存 0否(虚拟) 1是 |
| is_virtual | tinyint(4) | 是 | 0 | — | 是否虚拟商品(下单自动交付) |
| allow_presale | tinyint(4) | 是 | 0 | — | 是否支持预售 |
| sort | int(11) | 是 | 0 | — | — |
| status | tinyint(4) | 是 | 1 | — | 1启用 0禁用 |
| merchant_enabled | tinyint(4) | 否 | 0 | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
goods_spec
业务说明:商品规格名(如颜色/尺寸)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | — |
| name | varchar(30) | 否 | — | — | 规格名 如 颜色/尺寸 |
| sort | int(11) | 是 | 0 | — | — |
goods_spec_value
业务说明:规格值(如红/蓝),可配图。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | — |
| spec_id | bigint(20) | 否 | — | — | — |
| value | varchar(60) | 否 | — | — | 规格值 如 红/蓝 |
| image | varchar(255) | 是 | — | — | 规格值配图 |
| sort | int(11) | 是 | 0 | — | — |
goods_sku
业务说明:SKU(规格组合定价/库存/重量/成本),唯一键 (goods_id, sku_code)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | — |
| sku_code | varchar(60) | 是 | — | — | SKU编码/条码 |
| spec_snapshot | text | 是 | — | — | JSON:[{"name":"颜色","value":"红"},...] |
| price | decimal(12,2) | 是 | 0.00 | — | 售价 |
| market_price | decimal(12,2) | 是 | 0.00 | — | 划线价 |
| cost_price | decimal(12,2) | 是 | 0.00 | — | 成本价 |
| stock | int(11) | 是 | 0 | — | 库存 |
| weight | decimal(10,3) | 是 | 0.000 | — | 重量(kg) 运费计算用 |
| image | varchar(255) | 是 | — | — | 规格图(覆盖主图) |
| status | tinyint(4) | 是 | 1 | — | 1启用 0禁用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
goods_gallery
业务说明:商品相册(主图轮播)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | — |
| url | varchar(255) | 否 | — | — | — |
| sort | int(11) | 是 | 0 | — | — |
goods_detail_image
业务说明:商品详情底图集。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | — |
| url | varchar(255) | 否 | — | — | — |
| sort | int(11) | 是 | 0 | — | — |
goods_video
业务说明:商品视频。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| goods_id | bigint(20) | 否 | — | MUL | — |
| url | varchar(255) | 否 | — | — | — |
| sort | int(11) | 是 | 0 | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
goods_topic
业务说明:商品专题(平台级聚合页:标题/封面/关联商品/启停),首页或活动入口引用。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| name | varchar(120) | 否 | — | — | 专题名称 |
| cover | varchar(255) | 否 | — | — | 封面图 |
| banner | varchar(255) | 否 | — | — | 头图/Banner(专题页顶部大图) |
| subtitle | varchar(255) | 否 | — | — | 副标题/一句话简介 |
| sort | int(11) | 否 | 0 | — | 排序(越大越靠前) |
| status | tinyint(4) | 否 | 1 | MUL | 状态 1启用 0停用 |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
goods_cost_import
业务说明:旧站(多汇家)真实进货价导入暂存表:用于把历史成本快照修正为真实进货价,迁移对账用。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| code | varchar(40) | 否 | — | PRI | 旧站 post_code 原值(如 DHJ00189332) |
| code_suffix | char(8) | 否 | — | UNI | 8 位流水号(前缀无关的连接键,如 00189332) |
| cost_price | decimal(12,2) | 否 | 0.00 | — | 进货价:正常取 post_buying;post_buying>=post_price 时按售价钳制 |
| sell_price | decimal(12,2) | 否 | 0.00 | — | 旧站 post_price 售价(校验用) |
| post_id | int(10) unsigned | 否 | 0 | — | 旧站商品主键 |
| usable | tinyint(1) | 否 | 0 | — | 1=可回填(进货价>0 且 售价>0,含按售价钳制的行) |
| note | varchar(60) | 否 | — | — | 不可回填原因 / 钳制说明 |
supplier
业务说明:供应商(厂家/批发/代发)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| name | varchar(120) | 否 | — | MUL | 供应商名称 |
| merchant_id | bigint(20) | 否 | 0 | — | 归属商家(0=平台公共) |
| type | tinyint(4) | 是 | 1 | — | 1厂家 2批发 3代发 |
| contact | varchar(80) | 是 | — | — | 联系人/电话 |
| region | varchar(100) | 是 | — | — | 所在地 |
| status | tinyint(4) | 是 | 1 | MUL | 1启用 0禁用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
goods_import_task
业务说明:商品导入任务(幂等键 task_no,审计/异步)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| task_no | varchar(40) | 否 | — | UNI | — |
| filename | varchar(255) | 是 | — | — | — |
| total | int(11) | 是 | 0 | — | — |
| success | int(11) | 是 | 0 | — | — |
| failed | int(11) | 是 | 0 | — | — |
| status | tinyint(4) | 是 | 1 | — | 1完成 2部分失败 3全失败 |
| operator_id | bigint(20) | 是 | 0 | — | — |
| error_file | varchar(255) | 是 | — | — | 失败行 CSV 下载地址 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
shipping_template
业务说明:运费模板(按件/按重/包邮/固定;首费+续费+满额包邮)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| name | varchar(80) | 否 | — | — | — |
| calc_type | tinyint(4) | 是 | 1 | — | 1按件 2按重 3包邮 4固定 |
| first_num | decimal(10,2) | 是 | 1.00 | — | 首件/首重 |
| first_fee | decimal(10,2) | 是 | 0.00 | — | 首费 |
| add_num | decimal(10,2) | 是 | 1.00 | — | 续件/续重 |
| add_fee | decimal(10,2) | 是 | 0.00 | — | 续费 |
| free_amount | decimal(12,2) | 是 | 0.00 | — | 满额包邮 0=不参与 |
| status | tinyint(4) | 是 | 1 | — | — |
| merchant_id | bigint(20) | 否 | 0 | MUL | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
shipping_template_area
模板区域分段运费(含 area_codes 编码数组)
业务说明:模板区域分段运费(地区名 areas 或编码 area_codes)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| template_id | bigint(20) | 否 | — | MUL | — |
| areas | text | 是 | — | — | JSON 区域编码/名称数组 |
| area_codes | text | 是 | — | — | JSON 区域编码数组(对应 region.code),运费试算优先按编码匹配 |
| first_num | decimal(10,2) | 是 | 1.00 | — | — |
| first_fee | decimal(10,2) | 是 | 0.00 | — | — |
| add_num | decimal(10,2) | 是 | 1.00 | — | — |
| add_fee | decimal(10,2) | 是 | 0.00 | — | — |
四、订单与物流
sales_order
订单表(含多规格/拆单/地区化迁移字段)
业务说明:订单主表:type=goods_type.id(0=组合);amount 订单金额;status 1待支付/2已支付/3已发货/4已完成/5已取消/6异常;pay_status 0未付/1已付;含收货人/电话/地区编码结构化字段。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| order_no | varchar(40) | 否 | — | UNI | 订单号 |
| user_id | bigint(20) | 是 | 0 | MUL | 下单用户ID |
| nickname | varchar(50) | 是 | — | — | 用户昵称 |
| type | bigint(20) | 否 | 0 | — | 订单类型(=goods_type.id, 0=组合订单) |
| merchant_id | bigint(20) | 否 | 0 | — | 商户ID(拆单后单商户, 0=平台自营) |
| amount | decimal(12,2) | 是 | 0.00 | — | 订单金额 |
| status | tinyint(4) | 是 | 1 | MUL | 1待支付 2已支付 3已发货 4已完成 5已取消 6异常 |
| pay_method | varchar(30) | 是 | — | — | 支付方式 |
| pay_status | tinyint(4) | 是 | 0 | — | 0未付 1已付 |
| address | varchar(255) | 是 | — | — | 收货地址 |
| remark | varchar(255) | 是 | — | — | 备注 |
| coupon_id | bigint(20) | 否 | 0 | — | 使用的会员券ID(0未用) |
| coupon_amount | decimal(12,2) | 否 | 0.00 | — | 优惠券抵扣金额 |
| rebate_amount | decimal(12,2) | 否 | 0.00 | — | 订单让利额汇总 = Σ order_item.rebate_amount |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| receiver_name | varchar(50) | 否 | — | — | 收货人 |
| receiver_phone | varchar(30) | 否 | — | — | 收货电话 |
| receiver_region_code | varchar(20) | 否 | — | — | 收货地区编码(末级 region.code) |
| receiver_region_name | varchar(150) | 否 | — | — | 收货地区名称路径 如 广东省 深圳市 南山区 |
| logistics_company | varchar(60) | 否 | — | — | 物流公司 |
| tracking_no | varchar(60) | 否 | — | — | 快递单号 |
| shipped_at | datetime | 是 | — | — | 发货时间 |
| profit | decimal(12,2) | 否 | 0.00 | — | 订单利润=Σ(售价−进货价)×qty |
| settle_invalid | tinyint(1) | 否 | 0 | MUL | 不计入代理结算:1=已失效(取消/退款) |
| settle_invalid_at | datetime | 是 | — | — | 标记失效时间 |
| settle_invalid_reason | varchar(50) | 否 | — | — | 失效原因:admin_close/merchant_refund/refund_done |
| region_code | varchar(20) | 是 | — | — | 末级行政区划编码 region.code(辖区=区县级) |
order_item
订单明细(含 SKU/商户/供应商/类型溯源 + amount 逐商品计提基数)
业务说明:订单明细:商品名/单价/数量,扩展 SKU/商户/供应商/类型/规格快照溯源;amount=price×qty 为逐商品积分/奖励计提基数(多商品拆单场景)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| order_id | bigint(20) | 否 | — | MUL | 订单ID |
| goods_id | bigint(20) | 是 | 0 | — | 商品ID |
| goods_name | varchar(120) | 是 | — | — | 商品名称 |
| sku_id | bigint(20) | 否 | 0 | — | SKU ID(单品=0) |
| merchant_id | bigint(20) | 否 | 0 | — | 商户ID |
| store_id | bigint(20) | 否 | 0 | — | 归属门店(0=商家整体) |
| supplier_id | bigint(20) | 否 | 0 | — | 供应商ID |
| spec_snapshot | text | 是 | — | — | 规格快照JSON [{"name":"颜色","value":"红"}] |
| price | decimal(12,2) | 是 | 0.00 | — | 单价 |
| qty | int(11) | 是 | 1 | — | 数量 |
| amount | decimal(12,2) | 否 | 0.00 | — | 应付金额 = price×qty(逐商品积分/奖励计提基数) |
| coupon_amount | decimal(12,2) | 否 | 0.00 | — | 本明细分摊的订单级优惠券金额 |
| pay_amount | decimal(12,2) | 否 | 0.00 | — | 入账基数 = amount - coupon_amount(含红包口径) |
| rebate_amount | decimal(12,2) | 否 | 0.00 | — | 让利额 = pay_amount × profit_rate/100 |
| goods_type_id | bigint(20) | 是 | 0 | — | 商品类型ID 引用 goods_type.id(支付后分流依据) |
| profit_rate | decimal(5,2) | 否 | 20.00 | — | 下单时让利值快照% |
| cost_price | decimal(12,2) | 否 | 0.00 | — | 下单时进货价快照(单价口径) |
delivery
业务说明:发货/物流:物流公司/单号/签收状态。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| order_id | bigint(20) | 是 | 0 | MUL | 订单ID |
| order_no | varchar(40) | 是 | — | — | 订单号 |
| company | varchar(50) | 是 | — | — | 物流公司 |
| express_no | varchar(60) | 是 | — | — | 物流单号 |
| status | tinyint(4) | 是 | 0 | MUL | 0待发货 1已发货 2已签收 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
merchant_verify
业务说明:线下商家核销记录(让利金额核销)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | 商家ID |
| user_id | bigint(20) | 否 | 0 | — | 消费会员ID(0=未绑定) |
| user_mobile | varchar(20) | 否 | — | — | 消费会员手机号快照 |
| member_name | varchar(50) | 否 | — | — | 消费会员昵称快照 |
| rebate_rate | decimal(5,2) | 否 | 0.00 | — | 核销时让利比例(%)快照 |
| rebate_amount | decimal(12,2) | 否 | 0.00 | — | 让利额(核销金额×让利比例) |
| points | decimal(12,2) | 否 | 0.00 | — | 发放兑换积分(让利额×5×50%) |
| store_id | bigint(20) | 否 | 0 | — | 归属门店(0=商家整体) |
| amount | decimal(12,2) | 是 | 0.00 | — | 核销金额 |
| operator_id | bigint(20) | 是 | 0 | — | 操作人 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | MUL | — |
| rebate | decimal(12,2) | 否 | 0.00 | — | 本次核销让利额=金额×商家rate% |
| region_code | varchar(20) | 是 | — | — | 末级行政区划编码 region.code(取自商家) |
五、线下商家与区域代理
merchant
业务说明:线下商家:经营类目/区域/让利比例/审核状态。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| name | varchar(120) | 否 | — | — | 商家名称 |
| category | varchar(50) | 是 | — | — | 经营类目 |
| type | tinyint(4) | 否 | 2 | — | 1=线上商家 2=线下商家 |
| region | varchar(100) | 是 | — | MUL | 所属区域 |
| contact | varchar(50) | 是 | — | — | 联系人/电话 |
| license_no | varchar(60) | 是 | — | — | 证照编号 |
| license_image | varchar(255) | 是 | — | — | 执照图片(资质留档) |
| legal_person | varchar(40) | 是 | — | — | 法人代表 |
| phone | varchar(20) | 是 | — | — | 联系电话 |
| rate | decimal(5,2) | 是 | 0.00 | — | 让利比例(%) |
| status | tinyint(4) | 是 | 0 | MUL | 0待审核 1启用 2禁用 3驳回 |
| guided | tinyint(4) | 否 | 0 | — | 开店引导是否完成(0否/1是) |
| audit_remark | varchar(255) | 是 | — | — | 驳回原因 |
| settled_at | datetime | 是 | — | — | 开通时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| region_code | varchar(20) | 是 | — | — | 末级行政区划编码 region.code |
| region_name | varchar(150) | 是 | — | — | 地区名称路径(空格分隔) 如 浙江省 杭州市 西湖区 |
| member_id | bigint(20) | 是 | — | MUL | 关联C端会员ID(推荐链来源) |
| bind_source | tinyint(4) | 否 | 0 | — | 绑定来源:0无/1C端带入/2PC端验证/3平台代建 |
| bind_at | datetime | 是 | — | — | 绑定时间 |
agent
业务说明:区域代理(工作室/区县/市级/省级),含考核业绩 performance。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| name | varchar(120) | 否 | — | — | 代理名称/姓名 |
| level | tinyint(4) | 是 | 1 | MUL | 1工作室 2区县 3市级 4省级 |
| region | varchar(100) | 是 | — | — | 管辖区域 |
| contact | varchar(50) | 是 | — | — | 联系方式 |
| performance | decimal(14,2) | 是 | 0.00 | — | 考核业绩 |
| status | tinyint(4) | 是 | 0 | MUL | 0待审核 1启用 2禁用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| region_code | varchar(20) | 是 | — | — | 末级行政区划编码 region.code |
| region_name | varchar(150) | 是 | — | — | 地区名称路径(空格分隔) |
| red_packet | decimal(12,2) | 否 | 0.00 | — | 区域收益红包累计(机制A/B 计提入账) |
| owner_member_id | bigint(20) | 否 | 0 | — | 关联推荐树根会员ID(团队礼包业绩归集) |
| member_id | bigint(20) | 是 | — | UNI | 关联会员ID(添加代理商时必填;NULL=未绑定,允许多个未绑定) |
agent_funds
业务说明:代理经费发放(扶持经费/激励费用),operator_id 操作人。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| agent_id | bigint(20) | 否 | — | MUL | 代理ID |
| type | tinyint(4) | 是 | 1 | — | 1扶持经费 2激励费用 |
| amount | decimal(12,2) | 是 | 0.00 | — | 金额 |
| status | tinyint(4) | 是 | 0 | — | 0待发放 1已发放 2驳回 |
| operator_id | bigint(20) | 是 | 0 | — | 操作人 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| remark | varchar(255) | 否 | — | — | 计提/经费备注 |
agent_equity_ledger
业务说明:区域代理权益流水(按代理维度记录权益发放/消耗,对齐代理计提)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| agent_id | bigint(20) | 否 | 0 | MUL | 代理ID, 0=平台沉淀(差额蒸发/无对应级) |
| agent_level | tinyint(4) | 是 | 0 | — | 代理级别 2区县 3市级 4省级 (0=平台沉淀) |
| settle_id | bigint(20) | 是 | 0 | — | 关联 agent_monthly_settle.id(发放后回填) |
| mechanism | tinyint(4) | 否 | — | — | 1=机制A订单利润补贴 2=机制B月度区域计提 |
| source_type | varchar(20) | 是 | — | MUL | 来源类型 order_profit / offline_rebate |
| source_id | bigint(20) | 是 | 0 | — | 来源单据ID sales_order.id / merchant_verify.id |
| region_code | varchar(20) | 是 | — | — | 辖区末级编码 |
| region_name | varchar(150) | 是 | — | — | 辖区名称路径 |
| amount | decimal(12,2) | 否 | 0.00 | — | 计入金额(元) |
| settle_month | varchar(8) | 是 | — | MUL | 结算月份 YYYYMM |
| remark | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
agent_monthly_settle
业务说明:区域代理月度结算(按辖区月度汇总生成结算单:业绩/提成/应发/已发)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| agent_id | bigint(20) | 否 | — | MUL | — |
| agent_level | tinyint(4) | 是 | 0 | — | 2区县 3市级 4省级 |
| region_code | varchar(20) | 是 | — | — | 代理辖区末级编码 |
| region_name | varchar(150) | 是 | — | — | 代理辖区名称路径 |
| settle_month | varchar(8) | 否 | — | MUL | 结算月份 YYYYMM |
| order_profit_sum | decimal(12,2) | 是 | 0.00 | — | 机制A 辖区累计订单利润 |
| offline_rebate_sum | decimal(12,2) | 是 | 0.00 | — | 机制B 辖区线下核销让利额合计 |
| equity_a_amount | decimal(12,2) | 是 | 0.00 | — | 机制A 订单利润补贴合计 |
| equity_b_amount | decimal(12,2) | 是 | 0.00 | — | 机制B 月度区域计提合计 |
| total_amount | decimal(12,2) | 是 | 0.00 | — | 应发合计 = A+B |
| status | tinyint(4) | 是 | 0 | — | 0待发放 1已发放 |
| operator_id | bigint(20) | 是 | 0 | — | — |
| settled_at | datetime | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
region_monthly_stats
业务说明:辖区月度汇总(区域代理计提基础:辖区 GMV/让利/有效会员等月度聚合)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| region_code | varchar(20) | 否 | — | MUL | 末级区编码 region.code (level=3) |
| region_name | varchar(150) | 是 | — | — | 区名称路径 |
| province_code | varchar(20) | 是 | — | — | 省编码 |
| province_name | varchar(50) | 是 | — | — | 省名称 |
| city_code | varchar(20) | 是 | — | — | 市编码 |
| city_name | varchar(50) | 是 | — | — | 市名称 |
| district_code | varchar(20) | 是 | — | — | 区编码(=region_code) |
| district_name | varchar(50) | 是 | — | — | 区名称 |
| settle_month | varchar(8) | 否 | — | — | 结算月份 YYYYMM |
| order_profit | decimal(12,2) | 是 | 0.00 | — | 辖区线上订单利润合计 |
| offline_rebate | decimal(12,2) | 是 | 0.00 | — | 辖区线下核销让利额合计 |
| equity_a_province | decimal(12,2) | 是 | 0.00 | — | 机制A 省补贴 ¥1 |
| equity_a_city | decimal(12,2) | 是 | 0.00 | — | 机制A 市补贴 ¥2 |
| equity_a_district | decimal(12,2) | 是 | 0.00 | — | 机制A 区补贴 ¥3 |
| equity_b_province | decimal(12,2) | 是 | 0.00 | — | 机制B 省计提 1% |
| equity_b_city | decimal(12,2) | 是 | 0.00 | — | 机制B 市计提 2% |
| equity_b_district | decimal(12,2) | 是 | 0.00 | — | 机制B 区计提 6% |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
六、奖励与分红结算
reward_record
奖励记录(含 should/actual/burn 三额 + status/batch_no 结算字段)
业务说明:三大加速奖计提:share 分享奖(直接推荐人)、team 团队奖(沿链 0.5^d 衰减)、recommend 反加速(获奖者招募人由平台拨付)。should_amount 应发/actual_amount 实发/burn_amount 烧伤三额;status 0待结算/1已结算;batch_no 结算批次(逐商品 order#id:item#id)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 是 | 0 | MUL | 领奖人 |
| from_user_id | bigint(20) | 是 | 0 | — | 来源用户 |
| reward_type | varchar(30) | 是 | — | MUL | share/team/recommend |
| should_amount | decimal(12,2) | 是 | 0.00 | — | 应得 |
| actual_amount | decimal(12,2) | 是 | 0.00 | — | 实发 |
| burn_amount | decimal(12,2) | 是 | 0.00 | — | 烧伤 |
| status | tinyint(4) | 否 | 0 | MUL | 1=已计提(accrued) 2=已发放(paid) 3=已冲正(revoked) |
| batch_no | varchar(40) | 否 | — | MUL | 结算批次号 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| line | tinyint(4) | 否 | 0 | MUL | 归属线:0通用/1购买者线/2商户线 |
| merchant_id | bigint(20) | 是 | — | MUL | 商户线来源商户ID |
| source_event | varchar(30) | 是 | — | — | 商户线事件类型:verify/settle 等 |
| direction | varchar(16) | 否 | — | MUL | 团队加速方向:share=分享奖(推荐人奖)/up=向上/down=向下;空=旧口径 |
| direction_level | tinyint(4) | 否 | 0 | — | 团队加速层级:up=第k级上级/down=第d层下级(1-based);share及旧口径=0 |
| revoked_at | datetime | 是 | — | — | å†²æ£æ—¶é—´ï¼ˆstatus=3 时写入) |
| revoked_reason | varchar(255) | 是 | — | — | 冲æ£åŽŸå› ï¼šorder_close/order_cancel/merchant_refund/manual |
dividend_record
分红记录(含 source 来源列)
业务说明:分红记录:按会员等级 V1-V6 分池,source 1线上(礼包流水)/2线下(让利);status 0待审批/1已审批/2已发放/3驳回。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 是 | 0 | MUL | 分红人 |
| level | tinyint(4) | 是 | 1 | — | 等级V1-V6 |
| source | tinyint(4) | 否 | 1 | MUL | 分红来源 1线上(礼包流水) 2线下(让利) |
| amount | decimal(12,2) | 是 | 0.00 | — | 分红金额 |
| batch_no | varchar(40) | 是 | — | — | 批次号 |
| status | tinyint(4) | 是 | 0 | MUL | 0待审批 1已审批 2已发放 3驳回 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
platform_tax_reserve
平台税/烧伤沉淀台账(Q20 骨架 P0):加速奖 6% 税与差额烧伤额的沉淀与释放,台账行只增不改(冲正靠反向行)
业务说明:平台税/烧伤沉淀台账(Q20 骨架 P0):加速奖 6% 税与差额烧伤额的沉淀与释放,台账行只增不改(冲正靠反向行)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| direction | tinyint(4) | 否 | — | — | 1=沉淀(平台留存/收入) 2=释放(支出) |
| source | varchar(32) | 否 | — | MUL | accel_tax=加速奖6%税 / burn_gap=差额烧伤 / revoke_tax=冲正释放 |
| ref_type | varchar(32) | 否 | — | — | ref_id 所属表名:reward_record / order_refund |
| ref_id | bigint(20) unsigned | 否 | — | — | ref_type 对应主键;与 source 组成幂等键(同源同单只落一行) |
| order_id | bigint(20) unsigned | 是 | — | MUL | 关联订单(可空,便于按单据对账) |
| item_id | bigint(20) unsigned | 是 | — | — | 关联订单明细(可空) |
| user_id | bigint(20) unsigned | 是 | — | MUL | 税/烧伤的来源会员(该金额不属其所有) |
| base_amount | decimal(12,2) | 否 | 0.00 | — | 计税 / 烧伤基数 |
| tax_rate | decimal(6,4) | 是 | — | — | 税率,仅 accel_tax / revoke_tax 有值(0.0600) |
| amount | decimal(12,2) | 否 | — | — | 本次留存/释放金额(恒为正,方向看 direction) |
| status | tinyint(4) | 否 | 1 | — | 1=有效。★台账行不可变:冲正靠新增 direction=2 反向行,不回改历史行 |
| remark | varchar(255) | 是 | — | — | — |
| created_at | datetime | 否 | — | MUL | — |
exchange_equity_apply
业务说明:兑换权益申请表(会员用积分/资产兑换权益的审批单:类型/数量/状态机)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | 会员ID |
| amount | decimal(14,2) | 否 | 0.00 | — | 申请数量 |
| remark | varchar(200) | 否 | — | — | 用途说明 |
| status | tinyint(4) | 否 | 0 | MUL | 0待审核 1已通过 2已驳回 |
| audit_remark | varchar(200) | 否 | — | — | 审核意见 |
| audit_admin_id | bigint(20) | 否 | 0 | — | 审核管理员ID |
| audited_at | datetime | 是 | — | — | 审核时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | 申请时间 |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
exchange_equity_record
业务说明:兑换权益流水(兑换权益的发放与消耗明细,对齐四池资产)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | 会员ID |
| change_type | varchar(30) | 否 | — | — | daily_release每日释放转入 apply_deduct申请兑换扣减 |
| amount | decimal(14,2) | 否 | 0.00 | — | 变动额(正=转入 负=扣减) |
| balance_after | decimal(14,2) | 否 | 0.00 | — | 变动后兑换权益余额 |
| ref_type | varchar(30) | 否 | — | — | 关联类型 |
| ref_id | bigint(20) | 否 | 0 | — | 关联ID(申请ID等) |
| ref_date | date | 是 | — | — | 归属日期(每日释放幂等键) |
| remark | varchar(200) | 否 | — | — | 备注 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
announcement
业务说明:后台公告(置顶/发布/草稿/阅读数)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| title | varchar(120) | 否 | — | — | 标题 |
| content | text | 是 | — | — | 内容 |
| content_md | mediumtext | 是 | — | — | Markdown 原文(后台编辑器回填用;content 存渲染后的 HTML) |
| is_top | tinyint(4) | 是 | 0 | — | 1置顶 |
| status | tinyint(4) | 是 | 1 | MUL | 1已发布 0草稿 |
| read_count | int(11) | 是 | 0 | — | 阅读数 |
| publish_at | datetime | 是 | — | — | — |
| expire_at | datetime | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
config_log
业务说明:config_param 的修改历史(旧值→新值、原因、生效时间 effective_at、操作人 operator_id)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| param_key | varchar(100) | 否 | — | MUL | — |
| old_value | varchar(255) | 是 | — | — | — |
| new_value | varchar(255) | 否 | — | — | — |
| operator_id | bigint(20) | 否 | — | — | 操作人ID |
| reason | varchar(255) | 是 | — | — | 修改原因 |
| effective_at | datetime | 是 | — | — | 生效时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
七、资金与红包
withdraw
提现申请表(含备付金 T+1 兑付跟踪列)
业务说明:提现申请:金额/手续费(3%内扣)/实际到账;status 0待审/1处理中/2已完成/3驳回;reserve_settled 备付金 T+1 外部兑付标志。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | — |
| nickname | varchar(50) | 是 | — | — | — |
| amount | decimal(12,2) | 否 | — | — | 提现金额 |
| fee | decimal(12,2) | 是 | 0.00 | — | 手续费 |
| actual_amount | decimal(12,2) | 是 | 0.00 | — | 实际到账 |
| method | varchar(50) | 是 | 交易所仓票兑换 | — | — |
| status | tinyint(4) | 是 | 0 | MUL | 0待审核 1处理中 2已完成 3已驳回 |
| reject_reason | varchar(255) | 是 | — | — | — |
| operator_id | bigint(20) | 是 | — | — | — |
| remark | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | MUL | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| reserve_settled | tinyint(4) | 否 | 0 | — | 备付金是否已 T+1 兑付(外部出金) 0未 1已 |
| reserve_settled_at | datetime | 是 | — | — | 备付金兑付时间 |
transfer
业务说明:链内转账:仅同 V6 根推荐链且祖先后代关系可转;手续费 0.1% 入平台;status 0待处理/1成功/2失败。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| from_user_id | bigint(20) | 否 | 0 | MUL | — |
| to_user_id | bigint(20) | 否 | 0 | MUL | — |
| chain_root | bigint(20) | 否 | 0 | — | 同V6根推荐链ID |
| amount | decimal(12,2) | 否 | 0.00 | — | 转账金额 |
| fee | decimal(12,2) | 否 | 0.00 | — | 手续费 |
| status | tinyint(4) | 否 | 0 | — | 0待处理 1成功 2失败 |
| batch_no | varchar(40) | 否 | — | UNI | — |
| remark | varchar(255) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
red_packet_ledger
业务说明:现金红包流水(统一记账):income/reward/dividend/transfer_out/in/withdraw/consume;ref_type+ref_id 关联业务。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | 0 | MUL | — |
| change_type | varchar(30) | 否 | — | MUL | income/reward/dividend/transfer_out/transfer_in/withdraw/consume |
| sub_type | varchar(30) | 否 | — | — | 细分来源(仅 change_type=reward 有值: reward_share/reward_team/reward_team_merchant/reward_lock/reward_recommend) |
| amount | decimal(12,2) | 否 | 0.00 | — | 正为入负为出 |
| balance_after | decimal(12,2) | 否 | 0.00 | — | — |
| ref_type | varchar(30) | 是 | — | — | 关联业务 |
| ref_id | bigint(20) | 是 | 0 | — | — |
| remark | varchar(255) | 否 | — | — | 备注(后台手工调账必填) |
| order_id | bigint(20) | 否 | 0 | MUL | 订单ID(sales_order.id) |
| item_id | bigint(20) | 否 | 0 | — | 订单明细ID(order_item.id) |
| goods_id | bigint(20) | 否 | 0 | MUL | 商品ID(goods.id) |
| goods_name | varchar(120) | 否 | — | — | 商品名称快照 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
stock_exchange_apply
业务说明:上市股票兑换申请(内部记账:会员用资产兑换股票份额的申请与状态机)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| member_id | bigint(20) | 否 | — | MUL | 申请会员ID |
| exchange_point | decimal(12,2) | 否 | 0.00 | — | 申请兑换的兑换积分(兑换积分池) |
| stock_amount | decimal(12,2) | 否 | 0.00 | — | 兑换股票权益数量(内部记账·股) |
| rate | decimal(12,4) | 否 | 0.0000 | — | 兑换比率=兑换积分/股(申请时快照) |
| status | tinyint(4) | 否 | 0 | MUL | 0待审 1通过 2驳回 |
| remark | varchar(255) | 是 | — | — | — |
| audit_by | bigint(20) | 是 | 0 | — | 审核人(admin_id) |
| audit_at | datetime | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
八、行政区划
region
业务说明:行政区划(省/市/区三级):code 唯一、parent_code 父级、path 祖先编码链、name_path 名称链;运费试算/收货地址/商家区域匹配用。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| code | varchar(20) | 否 | — | UNI | 行政区划编码 area_id |
| name | varchar(50) | 否 | — | — | 名称 |
| parent_code | varchar(20) | 否 | — | MUL | 父级编码 area_pid |
| level | tinyint(4) | 否 | — | MUL | 1省/直辖市/自治区/港澳台 2市 3区·街道 |
| path | varchar(255) | 否 | — | — | 祖先编码路径,逗号分隔(含自身) |
| name_path | varchar(255) | 否 | — | — | 祖先名称路径,空格分隔 |
| zop_code | varchar(20) | 否 | — | — | 联通ZOP编码 |
| sort | int(11) | 否 | 0 | — | — |
| status | tinyint(4) | 否 | 1 | — | — |
九、结算引擎基础设施(无 Redis 自研)
job_queue
业务说明:自研队列表(替代 think-queue):tube 任务类型、payload JSON、status、attempt、batch_id 幂等唯一。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| tube | varchar(60) | 否 | default | MUL | 任务类型 |
| payload | mediumtext | 否 | — | — | JSON 参数 |
| status | tinyint(4) | 否 | 0 | — | 0待处理 1处理中 2完成 3失败 |
| attempt | int(11) | 否 | 0 | — | — |
| batch_id | varchar(40) | 是 | — | UNI | 幂等批次,NULL 不约束;非NULL唯一 |
| available_at | datetime | 是 | CURRENT_TIMESTAMP | — | 可消费时间 |
| reserved_at | datetime | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
schedule_lock
业务说明:调度/幂等锁(替代 Redis):key 唯一,owner+expire_at 防并发重复执行。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| key | varchar(128) | 否 | — | UNI | — |
| owner | varchar(64) | 否 | — | — | — |
| expire_at | datetime | 否 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
十、支付与结算(多渠道支付体系)
pay_channel
支付渠道配置(策略网关注册表:channel_code 唯一、gateway_class 网关类、mode 清分模式、config_json 渠道密钥参数)
业务说明:支付渠道配置(策略网关注册表):channel_code 唯一;gateway_class 网关类(PaymentGatewayInterface 实现);mode 1实时分账(需子商户)/2平台代收;status 开关;priority 优先级;min_amount/max_amount 金额区间(路由:订单指定>商户绑定>金额区间>平台默认);config_json 渠道密钥参数 JSON(敏感字段后台脱敏);health_status/last_checked_at/fail_count 健康检查。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| channel_code | varchar(30) | 否 | — | UNI | 渠道编码 joinpay/kuaifu/wechat/alipay/ecny |
| channel_name | varchar(60) | 否 | — | — | 渠道名称 汇聚支付/快付支付/微信支付/支付宝/数字人民币 |
| gateway_class | varchar(120) | 否 | — | — | 网关实现类全名 appservicegatewayXxxGateway |
| mode | tinyint(4) | 否 | 1 | — | 1实时分账(服务商+子商户) 2平台代收+下游结算 |
| status | tinyint(4) | 否 | 0 | MUL | 0禁用 1启用 |
| priority | tinyint(4) | 否 | 99 | MUL | 平台默认优先级(越小越优先) |
| min_amount | decimal(12,2) | 否 | 0.00 | — | 启用金额下限(元),路由金额区间用 |
| max_amount | decimal(12,2) | 否 | 0.00 | — | 启用金额上限(元),0=不限 |
| config_json | mediumtext | 是 | — | — | 渠道密钥/主商户号/网关地址/证书路径等(JSON) |
| remark | varchar(255) | 否 | — | — | 备注 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| health_status | tinyint(4) | 否 | 0 | — | 0未知 1健康 2异常(容灾自动跳过) |
| last_checked_at | datetime | 是 | — | — | 最近一次健康检查时间 |
| fail_count | int(11) | 否 | 0 | — | 连续下单失败计数(容灾观测) |
| fail_at | datetime | 是 | — | — | 最近一次下单失败时间 |
pay_trade
支付流水(每笔支付唯一记录,含订单关联/渠道单号/回调原文/重试计数)
业务说明:支付流水(每笔支付唯一记录):out_trade_no 我方交易号、channel_trade_no 渠道交易号、order_no 关联订单、merchant_id、channel_code、sub_merchant_no 子商户号、pay_method 支付方式、amount 金额、balance_offset 红包/余额抵扣额、status 0待支付/1成功/2已关单/3退款、notify_data 回调原文、notify_count/last_notify_at 回调重试。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| out_trade_no | varchar(64) | 否 | — | UNI | 平台内部交易号(我们生成) |
| channel_trade_no | varchar(64) | 否 | — | MUL | 支付商交易号(回调回填) |
| order_no | varchar(40) | 否 | — | MUL | 关联订单号 sales_order.order_no |
| merchant_id | bigint(20) | 否 | 0 | MUL | 归属商家 0=平台自营 |
| channel_code | varchar(30) | 否 | — | MUL | 支付渠道编码 |
| sub_merchant_no | varchar(64) | 否 | — | — | 实际收款子商户号(路径A) |
| pay_method | varchar(30) | 否 | — | — | 支付方式 微信/支付宝/银行卡/余额 |
| amount | decimal(12,2) | 否 | 0.00 | — | 交易金额(元) |
| balance_offset | decimal(12,2) | 否 | 0.00 | — | 余额/红包抵扣金额 |
| currency | varchar(10) | 否 | CNY | — | — |
| subject | varchar(120) | 否 | — | — | 订单标题 |
| trade_type | tinyint(4) | 否 | 1 | — | 1收款 2退款 |
| status | tinyint(4) | 否 | 0 | — | 0待支付 1支付中 2已支付 3已关闭 4退款中 5已退款 9失败 |
| notify_data | mediumtext | 是 | — | — | 原始回调报文(JSON) |
| paid_at | datetime | 是 | — | MUL | 支付成功时间(回调回填) |
| expire_at | datetime | 是 | — | — | 订单超时时间 |
| client_ip | varchar(45) | 否 | — | — | 下单客户端IP |
| return_url | varchar(255) | 否 | — | — | 同步跳转地址 |
| notify_url | varchar(255) | 否 | — | — | 异步回调地址 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| notify_count | int(11) | 否 | 0 | — | 回调通知累计次数(重放观测) |
| last_notify_at | datetime | 是 | — | — | 最近一次收到回调的时间 |
pay_split_rule
清分规则与结果(mode=1 实时分账:分账比例/金额/渠道分账单号)
业务说明:清分规则与结果:trade_id/out_trade_no 关联支付流水,merchant_id 参与方、split_mode 分账方式、split_value 比例或金额、amount 分账额、provider_split_no 渠道分账单号、status 0待分/1成功/2失败。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| trade_id | bigint(20) | 否 | 0 | MUL | 关联 pay_trade.id |
| out_trade_no | varchar(64) | 否 | — | MUL | 平台交易号(冗余,便于对账) |
| order_no | varchar(40) | 否 | — | MUL | 关联订单号 |
| merchant_id | bigint(20) | 否 | 0 | MUL | 分账接收方商家(子商户) 0=平台 |
| channel_code | varchar(30) | 否 | — | — | 渠道编码 |
| split_mode | tinyint(4) | 否 | 1 | — | 1按比例(%) 2固定金额(元) |
| split_value | decimal(12,2) | 否 | 0.00 | — | 比例值 或 固定金额 |
| amount | decimal(12,2) | 否 | 0.00 | — | 实际分账金额(计算回填) |
| status | tinyint(4) | 否 | 0 | MUL | 0待分账 1已分账 2失败 3无需分账 |
| provider_split_no | varchar(64) | 否 | — | — | 支付商分账流水号(路径A回填) |
| error_msg | varchar(255) | 否 | — | — | 分账失败原因 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
member_bank_agreement
会员签约卡(joinpay 等渠道免密支付签约,卡号/姓名掩码存储)
业务说明:会员签约卡(免密支付):member_id/channel_code/merchant_id、mch_no 商户号、sign_no 渠道签约号、bank_code/bank_card_type/bank_card_mask 卡号掩码、payer_name_mask 姓名掩码、status 0未签约/1已签约、signed_at/last_used_at。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| member_id | bigint(20) | 否 | 0 | MUL | 会员ID → member.id |
| channel_code | varchar(30) | 否 | joinpay | — | 支付渠道编码(默认 joinpay 快捷协议支付) |
| merchant_id | bigint(20) | 否 | 0 | — | 签约所用平台商户(0=平台默认 joinpay 配置) → merchant.id |
| mch_no | varchar(64) | 否 | — | MUL | 汇聚商户号(签约归属的商户号,sign_no 与之绑定) |
| sign_no | varchar(64) | 否 | — | MUL | 签约ID(汇聚 smsSign 返回,后续支付/解约上送) |
| sign_order_no | varchar(40) | 否 | — | — | 签约订单号(汇聚 signSms 下发短信时生成,smsSign 须携带一致) |
| bank_code | varchar(20) | 否 | — | — | 银行简码(签约成功返回) |
| bank_card_type | tinyint(4) | 否 | 0 | — | 1借记卡 2贷记卡 |
| bank_card_mask | varchar(30) | 否 | — | — | 脱敏卡号(如 6225****8888) |
| payer_name_mask | varchar(30) | 否 | — | — | 脱敏持卡人姓名(如 张*) |
| id_type | varchar(4) | 否 | 1 | — | 证件类型(默认 1=身份证) |
| status | tinyint(4) | 否 | 1 | MUL | 1生效 0已解约 |
| last_used_at | datetime | 是 | — | — | 最近一次支付使用时间 |
| signed_at | datetime | 是 | — | — | 签约成功时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
merchant_pay_channel
商户绑定支付渠道(商户×渠道多对多,含子商户入驻状态)
业务说明:商户绑定支付渠道:merchant_id×channel_code 多对多、priority 优先级、sub_merchant_no/sub_merchant_key 子商户号与密钥、settle_account 结算账户、sub_status 子商户入驻状态(0未申请/1待审/2已入驻)、config_json。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | 0 | MUL | 商家ID → merchant.id |
| channel_code | varchar(30) | 否 | — | MUL | 渠道编码(同 pay_channel) |
| status | tinyint(4) | 否 | 0 | — | 0禁用 1启用 |
| priority | tinyint(4) | 否 | 99 | — | 商户级优先级(覆盖平台默认) |
| sub_merchant_no | varchar(64) | 否 | — | — | 子商户号(入驻API返回) |
| sub_merchant_key | varchar(255) | 否 | — | — | 子商户独立密钥/证书标识(可选) |
| settle_account | varchar(64) | 否 | — | — | 结算账户(银行卡/钱包标识) |
| sub_status | tinyint(4) | 否 | 0 | MUL | 0未入驻 1入驻中 2已入驻 3入驻失败 |
| sub_raw | mediumtext | 是 | — | — | 入驻API原始返回(JSON,便于排障) |
| config_json | mediumtext | 是 | — | — | 商户级覆盖配置(JSON) |
| applied_at | datetime | 是 | — | — | 入驻申请时间 |
| activated_at | datetime | 是 | — | — | 入驻完成时间 |
| remark | varchar(255) | 否 | — | — | 备注 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
kuaifu_merchant_apply
业务说明:快付(GDKF)商户进件申请记录:商户资质/子商户号/进件状态,作为 merchant_pay_channel 子商户入驻的来源。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| merchant_id | bigint(20) unsigned | 否 | — | MUL | 本地商家ID(merchant.id) |
| out_mer_code | varchar(32) | 否 | — | UNI | 外部商户号(唯一,字母数字下划线) |
| channel_code | varchar(32) | 否 | easypay | — | 渠道编号 |
| business_role | varchar(12) | 否 | ACQUIRING | — | ACQUIRING收单/SPLIT分账接收方 |
| h5_register_flow | varchar(64) | 否 | — | MUL | H5进件流水号 |
| register_id | varchar(64) | 否 | — | MUL | 申请单号(产品开通后返回) |
| register_url | varchar(512) | 否 | — | — | H5注册地址 |
| status | varchar(16) | 否 | WAIT | MUL | WAIT/DOING/FAIL/SUCCESS |
| fail_desc | varchar(255) | 否 | — | — | 进件失败描述 |
| sign_status | varchar(16) | 否 | — | — | 签约 WAIT/DOING/SUCCESS/FAIL |
| sign_url | varchar(512) | 否 | — | — | 签约地址 |
| split_sign_status | varchar(16) | 否 | — | — | 分账协议签约状态(必返回字段) |
| split_sign_url | varchar(512) | 否 | — | — | 分账协议签约地址 |
| wx_auth_status | varchar(32) | 否 | — | — | 微信开户意愿确认状态 |
| alipay_auth_status | varchar(32) | 否 | — | — | 支付宝实名确认状态 |
| user_id | varchar(32) | 否 | — | — | 快付用户ID(SUCCESS后返回) |
| application_id | varchar(48) | 否 | — | — | 应用APPID(SUCCESS后返回,交易/配置接口用) |
| notify_url | varchar(512) | 否 | — | — | 进件通知地址 |
| pro_open_status | varchar(16) | 否 | — | — | 产品开通:空/DOING/SUCCESS/FAIL |
| pro_open_desc | varchar(255) | 否 | — | — | 产品开通描述 |
| split_add_status | varchar(16) | 否 | — | — | 分账接收方添加:空/SUCCESS/FAIL |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
十一、优惠券与营销
coupon
优惠券模板(满减券:金额/门槛/有效期/发放量)
业务说明:优惠券模板(满减):amount 面额、min_amount 使用门槛、expire_days 领取后有效期(天)、total/taken 发放总量/已领取、status 0停用/1启用。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| name | varchar(80) | 否 | — | — | — |
| amount | decimal(10,2) | 否 | 0.00 | — | 抵扣金额 |
| min_amount | decimal(10,2) | 否 | 0.00 | — | 满额门槛 |
| expire_days | int(11) | 否 | 7 | — | 领取后有效期(天) |
| total | int(11) | 否 | 0 | — | 发行量 |
| taken | int(11) | 否 | 0 | — | 已领取 |
| status | tinyint(4) | 否 | 1 | MUL | 1启用 0停用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
member_coupon
会员持有优惠券(领取/核销状态,order_no 关联核销订单)
业务说明:会员持有优惠券:user_id/coupon_id 领取来源、name/amount/min_amount 快照、expire_at 到期时间、status 0未用/1已用/2已过期、used_at/order_no 核销信息。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | — |
| coupon_id | bigint(20) | 否 | — | — | — |
| name | varchar(80) | 否 | — | — | — |
| amount | decimal(10,2) | 否 | 0.00 | — | — |
| min_amount | decimal(10,2) | 否 | 0.00 | — | — |
| expire_at | datetime | 否 | — | — | — |
| status | tinyint(4) | 否 | 1 | — | 1未用 2已用 3过期 |
| used_at | datetime | 是 | — | — | 使用时间 |
| order_no | varchar(40) | 是 | — | — | 抵扣的订单号 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
group_buy_activity
拼团活动(拼团价/成团人数/库存/上下架时间窗)
业务说明:拼团活动:goods_id/goods_name/cover、origin_price 原价、group_price 拼团价、group_size 成团人数、stock/sold 库存/销量、status 0停用/1进行中、start_at/end_at 时间窗。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(10) unsigned | 否 | — | PRI | — |
| goods_id | int(10) unsigned | 否 | 0 | MUL | — |
| goods_name | varchar(120) | 否 | — | — | — |
| cover | varchar(255) | 否 | — | — | — |
| origin_price | decimal(12,2) | 否 | 0.00 | — | — |
| group_price | decimal(12,2) | 否 | 0.00 | — | — |
| group_size | int(10) unsigned | 否 | 3 | — | 成团所需人数 |
| stock | int(10) unsigned | 否 | 0 | — | 活动库存 |
| sold | int(10) unsigned | 否 | 0 | — | 已成团件数(按成功团计) |
| status | tinyint(4) | 否 | 1 | MUL | 1进行中 0下架 |
| start_at | datetime | 是 | — | — | — |
| end_at | datetime | 是 | — | — | — |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
group_buy_team
拼团团队(团长/成团进度/过期时间)
业务说明:拼团团队:activity_id、leader_id 团长、status 0拼团中/1成功/2失败/3已退款、current_num/need_num 当前/需成团人数、expire_at 拼团截止。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(10) unsigned | 否 | — | PRI | — |
| activity_id | int(10) unsigned | 否 | 0 | MUL | — |
| leader_id | bigint(20) | 否 | 0 | — | 开团人 |
| status | tinyint(4) | 否 | 1 | MUL | 1拼团中 2已成团 3已失败/过期 |
| current_num | int(10) unsigned | 否 | 1 | — | 当前参团人数 |
| need_num | int(10) unsigned | 否 | 3 | — | 需要人数 |
| expire_at | datetime | 是 | — | — | 拼团截止 |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
group_buy_member
拼团成员(团队成员与团长标识)
业务说明:拼团成员:team_id/activity_id/user_id、is_leader 是否团长、joined_at 参团时间。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(10) unsigned | 否 | — | PRI | — |
| team_id | int(10) unsigned | 否 | 0 | MUL | — |
| activity_id | int(10) unsigned | 否 | 0 | MUL | — |
| user_id | bigint(20) | 否 | 0 | MUL | — |
| is_leader | tinyint(4) | 否 | 0 | — | 1团长 0团员 |
| joined_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
home_banner
首页轮播(主题色/图片/跳转链接/排序/启停)
业务说明:首页轮播:title/subtitle、theme 主题色、image 图片、link_type 跳转类型(商品/分类/活动/链接)、link_target、sort 排序、status 启停。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| title | varchar(100) | 否 | — | — | Banner 标题 |
| subtitle | varchar(200) | 是 | — | — | 副标题 |
| theme | varchar(20) | 是 | gold | — | 主题色: gold / brown / dark |
| image | varchar(500) | 是 | — | — | 图片 URL |
| link_type | varchar(20) | 是 | none | — | 跳转类型: none / goods / store / url |
| link_target | varchar(500) | 是 | — | — | 跳转目标 |
| sort | int(11) | 是 | 0 | MUL | 排序(越小越前) |
| status | tinyint(4) | 是 | 1 | MUL | 1启用 0禁用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
十二、会员功能扩展
member_address
会员收货地址(地区编码+名称快照,is_default 默认标记)
业务说明:收货地址:user_id、name/phone、region_code/region_name 地区编码+名称快照、detail 详细地址、is_default 是否默认。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| user_id | int(10) unsigned | 否 | — | MUL | — |
| name | varchar(50) | 否 | — | — | 收货人 |
| phone | varchar(20) | 否 | — | — | 手机号 |
| region_code | varchar(20) | 否 | — | — | 末级地区 code(关联 region 表) |
| region_name | varchar(100) | 否 | — | — | 完整地区名路径(省/市/区) |
| detail | varchar(255) | 否 | — | — | 详细地址 |
| is_default | tinyint(4) | 否 | 0 | — | 1=默认地址 |
| created_at | int(11) | 否 | 0 | — | — |
| updated_at | int(11) | 否 | 0 | — | — |
member_favorite
会员商品收藏(user_id+goods_id 唯一)
业务说明:商品收藏:user_id+goods_id 唯一,created_at 收藏时间。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | — |
| goods_id | bigint(20) | 否 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
member_cart
购物车(user_id 隔离,goods_id+sku_id 维度,selected 勾选状态)
业务说明:购物车:user_id 隔离、goods_id+sku_id 商品维度、qty 数量、selected 勾选状态;结算清购物车在订单创建事务内删除。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| user_id | int(10) unsigned | 否 | — | MUL | — |
| goods_id | int(10) unsigned | 否 | — | — | — |
| sku_id | int(10) unsigned | 否 | 0 | — | 0 表示非多规格(取商品主价) |
| qty | int(10) unsigned | 否 | 1 | — | — |
| selected | tinyint(4) | 否 | 1 | — | 1=选中参与结算 0=未选 |
| created_at | int(11) | 否 | 0 | — | — |
| updated_at | int(11) | 否 | 0 | — | — |
member_message
站内信(类型/标题/内容)
业务说明:站内信:user_id、type 类型、title/content、created_at。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | 0 | MUL | 0=全员公告;>0 指定会员私信 |
| type | tinyint(4) | 否 | 1 | — | 1系统公告 2私信 |
| title | varchar(120) | 否 | — | — | — |
| content | text | 是 | — | — | 正文(支持纯文本) |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | MUL | — |
member_message_read
站内信已读记录(user_id+message_id)
业务说明:站内信已读:user_id+message_id、read_at。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | 0 | MUL | — |
| message_id | bigint(20) | 否 | 0 | — | — |
| read_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
member_invite_log
业务说明:邀请注册流水(邀请人/被邀请人/注册时间/奖励发放标记),裂变拉新对账用。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| inviter_id | bigint(20) unsigned | 否 | — | MUL | 邀请人 member.id |
| invitee_id | bigint(20) unsigned | 否 | — | MUL | 被邀请人 member.id |
| invite_code | varchar(32) | 否 | — | — | 使用的邀请码 |
| channel | varchar(16) | 否 | card | — | 来源:card卡片/qrcode小程序码/link链接 |
| status | tinyint(4) | 否 | 1 | — | 1有效 0失效(解绑/风控) |
| created_at | datetime | 否 | — | — | — |
sms_code
短信验证码(手机号/验证码/类型/过期/使用标记)
业务说明:短信验证码:mobile、code、type 用途、used 是否使用、expired_at 过期时间。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | 主键 |
| mobile | varchar(20) | 否 | — | MUL | 手机号 |
| code | varchar(10) | 否 | — | — | 验证码(明文,5 分钟内有效) |
| type | varchar(20) | 否 | login | — | 场景 login/register(预留扩展) |
| used | tinyint(4) | 否 | 0 | — | 0未使用 1已使用 |
| expired_at | datetime | 否 | — | MUL | 过期时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
verify_code
通用验证码(scene 场景区分:登录/注册/改密等)
业务说明:通用验证码:mobile、code、scene 场景(login/register/reset 等)、expires_at、used。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| mobile | varchar(20) | 否 | — | MUL | — |
| code | varchar(10) | 否 | — | — | — |
| scene | varchar(20) | 否 | merchant_apply | — | — |
| expires_at | datetime | 否 | — | — | — |
| used | tinyint(4) | 否 | 0 | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
sms_config
短信服务商配置(driver 驱动 + config_json)
业务说明:短信服务商配置:driver 驱动(aliyun/tencent 等)、config_json 密钥参数、status 启停。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(11) | 否 | 1 | PRI | 单例行固定 1 |
| driver | varchar(16) | 否 | mock | — | 短信驱动 mock/aliyun |
| config_json | mediumtext | 是 | — | — | 驱动相关参数(JSON,含密钥) |
| status | tinyint(4) | 否 | 1 | — | 0禁用 1启用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
storage_config
对象存储配置(driver 驱动 + config_json,如七牛云)
业务说明:对象存储配置:driver 驱动(如 qiniu 七牛云)、config_json(下划线键 access_key/secret_key)、status。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(11) | 否 | 1 | PRI | 单例行固定 1 |
| driver | varchar(16) | 否 | local | — | 存储驱动 local/qiniu/aliyun |
| config_json | mediumtext | 是 | — | — | 驱动相关参数(JSON,含密钥) |
| status | tinyint(4) | 否 | 1 | — | 0禁用 1启用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
member_points_log
积分流水(旧版表,已废弃——真实流水见 point_record)
业务说明:积分流水(旧版,已废弃):真实流水见 point_record(type 收入/支出/锁定/解冻,point_type 消费/兑换/锁仓)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| user_id | bigint(20) | 否 | — | MUL | — |
| kind | tinyint(4) | 否 | 1 | — | 1积分 2红包 |
| type | tinyint(4) | 否 | 1 | — | 1收入 2支出 |
| amount | decimal(12,2) | 否 | 0.00 | — | — |
| balance | decimal(12,2) | 否 | 0.00 | — | 变动后余额 |
| remark | varchar(120) | 是 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
十三、商家与门店
merchant_apply
商家入驻申请(含营业执照/代建账号,审核状态机)
业务说明:商家入驻申请:apply_no 申请单号、merchant_name、type/category 类型类目、region/contact/mobile、legal_person 法人、license_no/license_image 营业执照、username/password 代建登录账号(bcrypt)、status 0待审/1通过/2驳回、audit_remark、reviewed_by/at 审核人/时间。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| apply_no | varchar(32) | 否 | — | UNI | 申请编号 |
| merchant_name | varchar(120) | 否 | — | — | 商户名称 |
| type | tinyint(4) | 否 | 2 | — | 1线上/2线下 |
| category | varchar(50) | 是 | — | — | 经营类目 |
| region | varchar(100) | 是 | — | — | 地区 name_path 文本 |
| contact | varchar(50) | 是 | — | — | 联系人 |
| mobile | varchar(20) | 否 | — | MUL | 实名手机 |
| legal_person | varchar(40) | 是 | — | — | 法人 |
| license_no | varchar(60) | 是 | — | — | 执照号 |
| license_image | varchar(255) | 是 | — | — | 执照图片URL |
| username | varchar(50) | 否 | — | UNI | 自设登录账号 |
| password | varchar(255) | 否 | — | — | 自设密码 bcrypt 哈希 |
| status | tinyint(4) | 否 | 0 | MUL | 0待审核/1通过/2驳回 |
| audit_remark | varchar(255) | 是 | — | — | 驳回原因/审核备注 |
| reviewed_by | bigint(20) | 是 | — | — | 审核人 admin_id |
| reviewed_at | datetime | 是 | — | — | 审核时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| region_code | varchar(20) | 是 | — | — | 末级行政区划编码 region.code |
| region_name | varchar(150) | 是 | — | — | 地区名称路径(空格分隔) |
| member_id | bigint(20) | 是 | — | MUL | 申请关联的C端会员ID |
| bind_source | tinyint(4) | 否 | 0 | — | 绑定来源:0无/1C端带入/2PC端验证 |
merchant_store
门店(商户下多门店,含定位/评分/营业时间)
业务说明:门店:merchant_id、name、region/address、contact、region_code/region_name、lat/lng 定位、rating 评分、logo、category、business_hours、status。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | 所属商家 |
| name | varchar(120) | 否 | — | — | 门店名称 |
| region | varchar(100) | 是 | — | — | 所在区域(省/市/区路径) |
| address | varchar(255) | 是 | — | — | 详细地址 |
| contact | varchar(50) | 是 | — | — | 门店联系人/电话 |
| status | tinyint(4) | 是 | 1 | — | 0禁用 1启用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| region_code | varchar(20) | 是 | — | — | 末级行政区划编码 region.code |
| region_name | varchar(150) | 是 | — | — | 地区名称路径(空格分隔) |
| lat | decimal(10,6) | 是 | — | — | 纬度 |
| lng | decimal(10,6) | 是 | — | — | 经度 |
| rating | decimal(2,1) | 否 | 5.0 | — | 评分(0-5) |
| logo | varchar(255) | 是 | — | — | 门店Logo |
| category | varchar(30) | 是 | — | — | 经营分类(餐饮/零售/服务) |
| business_hours | varchar(60) | 是 | — | — | 营业时间 |
| banner | varchar(512) | 否 | — | — | 门店顶部banner图 |
| intro | varchar(500) | 否 | — | — | 店铺简介 |
merchant_role
商家角色(权限点 + 门店数据范围 data_scope)
业务说明:商家角色(RBAC):merchant_id、role_code/role_name、permissions 权限点 JSON、data_scope 门店数据范围(0全部/1本店/2自定义)、status。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | 所属商家(0=系统内置模板) |
| role_code | varchar(50) | 否 | — | — | 角色代码 owner/operator/finance/service/readonly |
| role_name | varchar(50) | 否 | — | — | 角色名称 |
| description | varchar(255) | 是 | — | — | 描述 |
| permissions | text | 是 | — | — | 权限码 JSON 数组 |
| data_scope | tinyint(4) | 是 | 1 | — | 1=全部门店 2=指定门店 |
| status | tinyint(4) | 是 | 1 | — | 0禁用 1启用 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
merchant_staff
商家员工(角色绑定 role_id + 门店范围 store_ids)
业务说明:商家员工:username/password(bcrypt)、real_name/mobile、role_id 角色、store_ids 管辖门店 JSON、status、last_login_ip/time。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | 所属商家 |
| username | varchar(50) | 否 | — | — | 登录账号 |
| password | varchar(255) | 否 | — | — | bcrypt 密码 |
| real_name | varchar(50) | 是 | — | — | 姓名 |
| mobile | varchar(20) | 是 | — | — | 手机号 |
| role_id | bigint(20) | 是 | 0 | — | 角色(复用 admin_role) |
| store_ids | text | 是 | — | — | 负责门店ID JSON 数组(空=按角色 data_scope) |
| status | tinyint(4) | 是 | 1 | — | 0禁用 1启用 |
| last_login_ip | varchar(50) | 是 | — | — | 最近登录IP |
| last_login_time | datetime | 是 | — | — | 最近登录时间 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| member_id | bigint(20) | 是 | — | — | 对应C端会员(owner) |
merchant_balance
商家余额(可用/冻结/累计进出,version 乐观锁)
业务说明:商家余额:available 可用/frozen 冻结/total_in 累计入/total_out 累计出、version 乐观锁。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | UNI | 关联 merchant.id |
| available | decimal(12,2) | 否 | 0.00 | — | 可用余额 |
| frozen | decimal(12,2) | 否 | 0.00 | — | 冻结余额 |
| total_in | decimal(12,2) | 否 | 0.00 | — | 累计入账 |
| total_out | decimal(12,2) | 否 | 0.00 | — | 累计出账 |
| version | int(11) | 否 | 0 | — | 乐观锁 |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
merchant_balance_ledger
商家余额流水(变动类型/变动后余额/业务引用)
业务说明:商家余额流水:change_type 变动类型、amount、balance_after 变动后余额、ref_type/ref_id 业务引用、remark。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | — |
| change_type | varchar(30) | 否 | — | — | pay_settle=订单清分入账 / platform_fee=平台抽成(归属平台,merchant_id=0) / withdraw=提现出账 / adjust=手工调整 |
| amount | decimal(12,2) | 否 | 0.00 | — | — |
| balance_after | decimal(12,2) | 否 | 0.00 | — | — |
| ref_type | varchar(30) | 否 | — | MUL | pay_trade / withdraw / manual |
| ref_id | bigint(20) | 否 | 0 | — | — |
| remark | varchar(255) | 否 | — | — | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
merchant_notify
商家通知(类型/标题/内容/已读)
业务说明:商家通知:type、title/content、is_read、created_at。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | 关联 merchant |
| type | varchar(30) | 否 | audit | — | 通知类型 |
| title | varchar(120) | 否 | — | — | — |
| content | text | 是 | — | — | — |
| is_read | tinyint(4) | 否 | 0 | MUL | — |
| created_at | datetime | 是 | CURRENT_TIMESTAMP | — | — |
merchant_bind_log
业务说明:商户-C端会员绑定留痕(线下商家与 C 端会员的绑定/解绑记录,用于核销与权益归属)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) | 否 | — | PRI | — |
| merchant_id | bigint(20) | 否 | — | MUL | 商户ID(0=仅申请阶段绑定) |
| apply_id | bigint(20) | 否 | 0 | MUL | 入驻申请ID(申请阶段绑定留痕) |
| member_id | bigint(20) | 否 | — | MUL | 绑定会员ID |
| action | varchar(16) | 否 | bind | — | bind/unbind/rebind |
| source | tinyint(4) | 否 | 0 | — | 1C端带入/2PC端验证/3平台代建 |
| mobile | varchar(20) | 是 | — | — | 绑定手机号快照 |
| operator_type | varchar(16) | 否 | system | — | admin/member/system |
| operator_id | bigint(20) | 否 | 0 | — | 操作者ID |
| remark | varchar(255) | 是 | — | — | — |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
十四、交易售后与评价
order_refund
退款申请(退款单号/原因/金额/状态机)
业务说明:退款申请:refund_no 退款单号、order_id/order_no、user_id、reason、amount、status 0待审/1通过/2驳回/3已退款、remark。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(10) unsigned | 否 | — | PRI | — |
| refund_no | varchar(32) | 否 | — | UNI | 退款单号 RF + 时间 + 随机 |
| order_id | int(10) unsigned | 否 | 0 | MUL | 关联 sales_order.id |
| order_no | varchar(32) | 否 | — | — | 关联订单号(冗余便于展示) |
| user_id | int(10) unsigned | 否 | 0 | MUL | 申请人(会员) |
| reason | varchar(255) | 否 | — | — | 退款原因 |
| amount | decimal(12,2) | 否 | 0.00 | — | 退款金额 |
| status | tinyint(4) | 否 | 1 | — | 1申请中 2已退款 3已驳回 |
| remark | varchar(255) | 否 | — | — | 平台处理备注 |
| created_at | datetime | 是 | — | — | — |
| updated_at | datetime | 是 | — | — | — |
order_review
订单评价(商品/评分/图文/匿名/审核状态)
业务说明:订单评价:order_id/order_no/order_item_id、user_id/goods_id/sku_id/merchant_id、goods_name/spec_str 快照、rating 星级、content/images、is_anonymous 匿名、status 0待审/1已发布/2隐藏。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| order_id | bigint(20) unsigned | 否 | — | — | 订单ID |
| order_no | varchar(32) | 否 | — | — | 订单号 |
| order_item_id | bigint(20) unsigned | 否 | — | UNI | 订单商品行ID |
| user_id | bigint(20) unsigned | 否 | — | MUL | 评价会员ID |
| goods_id | bigint(20) unsigned | 否 | — | MUL | 商品ID |
| sku_id | bigint(20) unsigned | 否 | 0 | — | 规格SKU ID |
| merchant_id | bigint(20) unsigned | 否 | 0 | — | 商家ID |
| goods_name | varchar(200) | 是 | — | — | 商品名快照 |
| spec_str | varchar(255) | 是 | — | — | 规格文本快照 |
| rating | tinyint(4) | 否 | 5 | — | 评分 1-5 |
| content | varchar(1000) | 是 | — | — | 评价内容 |
| images | text | 是 | — | — | 晒图JSON数组 |
| is_anonymous | tinyint(4) | 否 | 0 | — | 是否匿名 1是 |
| status | tinyint(4) | 否 | 1 | — | 状态 1显示 0隐藏 |
| created_at | datetime | 是 | — | — | 评价时间 |
十五、AI 智能客服
ai_cs_config
业务说明:AI 客服运行配置(开关/模型选择/限流/脱敏/卡片意图阈值等全局参数)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| key | varchar(64) | 否 | — | UNI | 配置键 |
| value | text | 是 | — | — | 配置值 |
| updated_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
ai_cs_session
业务说明:AI 客服会话(用户维度会话上下文:状态/最后消息/来源渠道)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| session_no | varchar(32) | 否 | — | UNI | 会话编号(对外展示) |
| user_id | bigint(20) unsigned | 否 | 0 | MUL | 会员ID,0=匿名 |
| store_id | bigint(20) unsigned | 否 | 0 | — | 商户ID,0=平台统一客服(多商户预留) |
| status | tinyint(4) | 否 | 0 | MUL | 0=进行中 1=已关闭 2=已转人工 |
| last_intent | varchar(32) | 否 | — | — | 最近一次意图(shipment/refund/order/points/faq/human) |
| message_count | int(10) unsigned | 否 | 0 | — | 消息条数(含用户+助手) |
| handoff_id | bigint(20) unsigned | 否 | 0 | — | 关联的转人工单ID |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
ai_cs_message
业务说明:AI 客服消息(用户与机器人逐条消息:角色/内容/耗时/命中卡片)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| session_id | bigint(20) unsigned | 否 | 0 | MUL | — |
| store_id | bigint(20) unsigned | 否 | 0 | — | 商户ID,0=平台统一客服(多商户预留) |
| role | varchar(16) | 否 | user | — | user/assistant/system |
| content | text | 否 | — | — | 消息文本 |
| intent | varchar(32) | 否 | — | — | 该条消息意图标签 |
| quick_replies | text | 是 | — | — | 助手消息携带的快捷回复(JSON数组) |
| card | text | 是 | — | — | 富消息卡片JSON(order/goods/points/logistics) |
| tokens | int(10) unsigned | 否 | 0 | — | 本次消耗的token(仅assistant) |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | MUL | — |
ai_cs_faq
业务说明:AI 客服 FAQ 知识库(问题/标准答案/关键词/分类/置信阈值,语义召回用)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| question | varchar(255) | 否 | — | — | 标准问法(用于展示) |
| answer | text | 否 | — | — | 标准答案 |
| keywords | text | 是 | — | — | 触发关键词(JSON数组,命中任一即召回) |
| similar | varchar(1000) | 是 | — | — | 相似问法(JSON数组) |
| category | varchar(32) | 否 | general | MUL | 分类:general/shipment/refund/order/points/payment |
| sort | int(11) | 否 | 0 | — | 排序(小在前) |
| enabled | tinyint(4) | 否 | 1 | MUL | 1=启用 0=停用 |
| hits | int(10) unsigned | 否 | 0 | — | 命中次数(运营参考) |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
ai_cs_model
业务说明:AI 客服模型通道配置(多模型失败切换:provider/model/key/优先级/启停)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| name | varchar(64) | 否 | — | UNI | 通道显示名(如 通义千问 / DeepSeek / 自建GPT) |
| provider | varchar(32) | 否 | openai | — | 供应商标识:dashscope/deepseek/openai/azure/...(仅用于展示与日志) |
| base_url | varchar(255) | 否 | — | — | OpenAI 兼容 base_url(到 /chat/completions 之前) |
| model | varchar(64) | 否 | — | — | 模型名(如 qwen-plus / deepseek-chat / gpt-4o) |
| api_key | varchar(512) | 否 | — | — | 敏感凭证;列表接口脱敏为 ****+后4位,绝不返回明文 |
| priority | int(11) | 否 | 0 | — | 优先级:越小越优先(失败切换顺序) |
| enabled | tinyint(4) | 否 | 1 | MUL | 1=启用 0=停用(停用通道不参与切换) |
| is_default | tinyint(4) | 否 | 0 | — | 1=默认通道(同优先级下优先,且作为配置页展示默认值) |
| temperature | decimal(3,2) | 是 | — | — | 生成温度(可空,空则回落 config/ai.php 的 temperature) |
| max_tokens | int(11) | 是 | — | — | 最大输出 token(可空,空则回落 config/ai.php 的 max_tokens) |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
| updated_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
ai_cs_decision_log
业务说明:AI 客服决策审计日志(gate/card_type/cost_ms/resolved,指代消解打 [coref] 标)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | int(10) unsigned | 否 | — | PRI | — |
| session_id | int(10) unsigned | 否 | 0 | — | 会话ID |
| user_id | int(10) unsigned | 否 | 0 | MUL | 会员ID(0=匿名) |
| question | varchar(500) | 否 | — | — | 用户提问原文 |
| intent | varchar(32) | 否 | — | — | 路由意图 |
| gate | varchar(32) | 否 | — | MUL | 命中闸门: order_no/human/card_points/card_logistics/.../faq/ai/fallback |
| card_type | varchar(32) | 否 | — | — | 卡片类型 |
| faq_id | int(10) unsigned | 否 | 0 | — | 命中的FAQ ID |
| ai_called | tinyint(1) | 否 | 0 | — | 是否尝试调用大模型 |
| ai_ok | tinyint(1) | 否 | 0 | — | 大模型是否成功返回 |
| tokens | int(10) unsigned | 否 | 0 | — | 本次消耗token |
| cost_ms | int(10) unsigned | 否 | 0 | — | 本次耗时(毫秒) |
| resolved | tinyint(1) | 否 | 1 | MUL | 1=已解决 0=未解决(知识缺口) |
| created_at | datetime | 是 | — | MUL | — |
ai_cs_handoff
业务说明:AI 客服转人工工单(触发转人工后的工单:用户/问题摘要/处理人/状态)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| session_id | bigint(20) unsigned | 否 | 0 | MUL | — |
| user_id | bigint(20) unsigned | 否 | 0 | — | 会员ID,0=匿名 |
| reason | varchar(255) | 否 | — | — | 转人工原因/摘要 |
| last_question | text | 是 | — | — | 用户最后的问题(便于人工接手) |
| contact | varchar(64) | 否 | — | — | 匿名用户留的联系方式(可选) |
| status | tinyint(4) | 否 | 0 | MUL | 0=待接待 1=接待中 2=已解决 |
| admin_note | text | 是 | — | — | 人工处理备注 |
| resolved_at | datetime | 是 | — | — | — |
| created_at | datetime | 否 | CURRENT_TIMESTAMP | — | — |
十六、页面 CMS 与访问埋点
page_page
业务说明:页面定义(草稿/发布分离:path/标题/状态/发布版本)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| page_key | varchar(50) | 否 | — | UNI | 页面标识(uk,如 home) |
| page_name | varchar(50) | 否 | — | — | 页面名称 |
| status | tinyint(4) | 否 | 1 | — | 0停用 1启用 |
| version | int(11) | 否 | 1 | — | 发布版本号 |
| draft_json | text | 是 | — | — | 草稿快照(控件配置JSON) |
| published_json | text | 是 | — | — | 已发布快照(C端只读) |
| published_at | datetime | 是 | — | — | 最后发布时间 |
| scope | varchar(16) | 否 | all | — | 端范围:all/H5/MP(预留多版本) |
| created_at | datetime | 否 | — | — | — |
| updated_at | datetime | 否 | — | — | — |
page_widget
业务说明:页面控件实例(首页/自定义页的组件实例:类型/配置 JSON/排序/所属页)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| page_id | bigint(20) unsigned | 否 | — | MUL | page_page.id |
| widget_key | varchar(50) | 否 | — | — | 页面内控件标识(uk) |
| widget_type | varchar(30) | 否 | — | — | 控件类型(banner/nav_grid/goods_list/waterfall/...) |
| title | varchar(100) | 否 | — | — | 控件名称 |
| params | text | 是 | — | — | 控件参数JSON(数据源+样式) |
| sort | int(11) | 否 | 0 | — | 排序(升序) |
| status | tinyint(4) | 否 | 1 | — | 0草稿 1发布 2停用 |
| created_at | datetime | 否 | — | — | — |
| updated_at | datetime | 否 | — | — | — |
| scope | varchar(16) | 否 | all | — | 端范围:all/H5/MP |
page_visit_log
业务说明:页面访问流水(埋点:user_id/path/停留/来源,明细级)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| session_id | varchar(64) | 否 | — | — | 会话ID(前端每次启动生成) |
| device_id | varchar(64) | 否 | — | — | 设备指纹(本地持久化,游客去重UV) |
| member_id | bigint(20) unsigned | 是 | — | MUL | 会员ID(游客为空) |
| page_path | varchar(200) | 否 | — | MUL | 页面路径 |
| page_name | varchar(50) | 否 | — | — | 页面名称 |
| refer_page | varchar(200) | 否 | — | — | 来源页面路径 |
| refer_source | varchar(16) | 否 | direct | — | 来源:share/nav/search/qr/direct/poster |
| share_code | varchar(32) | 否 | — | — | 分享码原值(invite=XSxxx) |
| inviter_id | bigint(20) unsigned | 是 | — | MUL | 解析后的邀请人member.id |
| channel | varchar(16) | 否 | none | MUL | 渠道:card/qrcode/link/poster/none |
| client_type | varchar(16) | 否 | H5 | — | 端:MP-WEIXIN/MP-ALIPAY/H5/APP |
| os | varchar(30) | 否 | — | — | 操作系统 |
| device | varchar(80) | 否 | — | — | 设备型号 |
| screen | varchar(30) | 否 | — | — | 分辨率(宽x高) |
| ua | varchar(255) | 否 | — | — | User-Agent(截断) |
| duration_sec | int(11) | 否 | 0 | — | 停留时长(秒) |
| first_visit | tinyint(4) | 否 | 0 | — | 会话内首访标记 |
| ip | varchar(45) | 否 | — | — | 客户端IP |
| created_at | datetime | 否 | — | MUL | 访问时间 |
visit_daily
业务说明:页面访问日聚合(容量优化,visit:daily 命令写入,按日按页汇总 PV/UV)。
| 字段 | 类型 | 可空 | 默认 | 键 | 说明 |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | 否 | — | PRI | — |
| stat_date | date | 否 | — | MUL | 统计日期 |
| page_path | varchar(200) | 否 | — | — | 页面路径 |
| page_name | varchar(50) | 否 | — | — | 页面名称 |
| refer_source | varchar(16) | 否 | direct | — | 来源:share/nav/search/qr/direct/poster |
| channel | varchar(16) | 否 | none | — | 渠道:card/qrcode/link/poster/none |
| client_type | varchar(16) | 否 | H5 | — | 端:MP-WEIXIN/MP-ALIPAY/H5/APP |
| pv | int(10) unsigned | 否 | 0 | — | 访问量 |
| uv | int(10) unsigned | 否 | 0 | — | 独立访客(登录按member,游客按device,兜底session) |
| duration_sec | bigint(20) unsigned | 否 | 0 | — | 停留总时长(秒) |
| first_visits | int(10) unsigned | 否 | 0 | — | 会话内首访次数 |
| created_at | datetime | 否 | — | — | 首次聚合时间 |
| updated_at | datetime | 否 | — | — | 最近聚合时间 |