Apple 经销商 ERP 系统对接项目需求文档
目录
第一章 引言
1.1 编写目的
本需求文档旨在明确 Apple 与经销商 ERP 平台业务数据联通系统的功能需求、数据规范及业务流程,为系统设计、开发、测试、部署及后续运维提供统一依据。
一方面确保开发团队准确理解 “构建全链路返利监控体系、实现下游渠道精细化管理” 的业务目标;另一方面让业务、测试等相关方清晰知晓系统功能边界与数据交互规则,保障系统精准追踪返利政策落地、防范数据风险,为渠道管理决策提供可靠支撑,最终推动返利管理流程规范化、高效化、透明化。
1.2 背景
为强化下游渠道精细化管理,Apple 计划通过系统对接实现与经销商 ERP 平台的业务数据联通,核心目标是构建全链路返利监控体系,精准掌握返利政策落地执行情况。
系统将通过标准化接口实时获取经销商 ERP 关键业务数据,包括订单基础信息(PO 单号、产品型号、采购金额)、库存流转状态(出库时间、出库数量)、财务结算凭证(开票状态、发票金额)等;同时追踪每笔订单返利使用明细(是否抵扣、抵扣金额、返利来源),形成 “订单 - 出库 - 开票 - 返利使用” 全流程数据闭环。
此外,系统将建立多维度校验机制:比对订单数据与返利规则匹配性、校验出库与开票信息一致性、核查返利使用金额合规性,防范数据篡改或异常申报风险,为返利政策落地与渠道决策提供可靠数据支撑。
第二章 需求规定
2.1 菜单栏
包含首页、订单管理、返利看板、数据验证、异常工单、规则配置、系统管理七大模块,覆盖系统核心业务操作入口,方便用户快速定位所需功能。
2.2 订单管理
2.2.1 查询条件
支持按经销商名称、订单编号、出库状态(已出库、未出库)、开票状态(已开票、未开票)、返利计算(已计算、未计算)、日期等进行多维度组合查询,精准筛选目标订单数据。
2.2.2 页面按钮
查询:根据设定条件,触发系统检索并展示符合条件的订单数据
重置:清空已设置的查询条件,恢复初始查询状态,便于重新筛选
导出:将当前查询结果以指定格式(如 Excel)导出,支持离线查看与数据备份
2.2.3 订单信息展示
订单主体信息:包含订单编号、经销商名称、订单日期、总金额、返利金额、出库状态、开票状态、返利计算情况、数据来源、验证状态、上传日期,全面呈现订单核心属性
订单商品项信息:展示产品编码、产品名称、数量、单价、金额,清晰反映订单内商品构成
订单主体信息和订单商品项信息为 1:N 的关系
2.3 出库查询
(
2.3.1 查询条件
支持按经销商名称(含一级经销商、二级经销商)、出库单编号、关联订单编号、出库状态(已出库、未出库)、出库仓库编码、日期(开始日期、结束日期)、数据来源等进行组合查询,快速定位目标出库数据。
2.3.2 页面按钮
查询:根据设定条件,触发系统检索并展示符合条件的出库数据
重置:清空已设置的查询条件,恢复初始查询状态,便于重新筛选
导出:将当前查询结果以指定格式(如 Excel)导出,支持离线查看与数据备份
2.3.3 出库主体信息
涵盖出库单编号、经销商代码、经销商名称、关联订单编号、出库日期、出库状态、出库仓库编码、上传日期、数据来源,记录出库业务关键节点与关联关系。
2.3.4 出库商品项信息
包含产品编码、产品名称、关联订单编号、出库数量、出库单价、出库金额,详细呈现每类商品出库明细,确保库存流转可追溯。
2.4 发票主体
2.4.1 查询条件
支持按发票编号、关联订单编号、关联出库单编号、经销商名称(一级经销商、二级经销商)、发票状态(已开票、未开票)、开票日期(开票日期的开始日期与结束日期)、数据来源等进行多维度查询,精准获取目标发票数据。
2.4.2 页面按钮
查询:根据设定条件,触发系统检索并展示符合条件的发票数据
重置:清空已设置的查询条件,恢复初始查询状态,便于重新筛选
导出:将当前查询结果以指定格式(如 Excel)导出,支持离线查看与数据备份
2.4.3 发票主体信息
包含发票编号、关联订单编号、关联出库单编号、经销商编码、经销商名称、发票总金额(含税)、开票日期、发票状态、税率、数据来源、上传日期,完整记录发票核心财务信息与业务关联。
2.4.4 发票商品明细信息
展示产品编码、产品名称、关联订单编号、开票数量、单价(不含税)、金额(不含税)、税额,实现发票金额与商品明细精准对应,满足财务核算需求。
2.5 台账信息
2.5.1 查询条件
支持按返利明细 ID、关联订单编号、经销商名称(一级经销商、二级经销商)、产品编码、操作类型(新增、扣减)、日期(台账记录日期的开始日期与结束日期)等进行组合查询,高效筛选目标台账数据。
2.5.2 页面按钮
查询:根据设定条件,触发系统检索并展示符合条件的台账数据
重置:清空已设置的查询条件,恢复初始查询状态,便于重新筛选
导出:将当前查询结果以指定格式(如 Excel)导出,支持离线查看与数据备份
2.5.3 台账主信息
包含返利明细 ID、关联订单编号、经销商编码、经销商名称、产品编码、返利金额、日期、操作类型(新增、扣减)、上传日期,记录每笔返利的产生与变动情况,形成完整返利台账,为返利核算与追溯提供依据。
2.6 返利看板
2.6.1 查询条件
支持按经销商名称、时间范围进行查询,用户可筛选特定经销商在指定时间段内的返利数据。
2.6.2 页面按钮
查询:根据设定条件,触发系统检索并展示符合条件的返利看板数据
重置:清空已设置的查询条件,恢复初始查询状态,便于重新筛选
2.6.3 图表展示
提供趋势对比图(折线图):线条 1(蓝色)代表苹果应返金额,线条 2(橙色)代表一级实际使用金额,直观呈现返利金额变化趋势与使用情况对比。
2.6.4 返利明细列表
包含返利明细 ID、关联订单编号、经销商编码、经销商名称、产品编码、返利金额、日期、操作类型(新增、扣减)、上传日期,与图表数据联动,方便查看返利明细详情。
2.7 数据验证
2.7.1 数据验证方式
时序逻辑校验:预设规则 “开票时间不得早于出库时间”“出库时间不得晚于订单创建时间”,SAP 上传数据违反时序(如未出库已开票、开票早于出库)时,判定为 “状态逻辑异常”
关联规则校验:出库数量不得大于订单物料数量(如订单 10 台则出库≤10 台)、开票金额需与订单 / 出库金额逻辑一致(如开票金额不得远超订单总金额),违规则触发异常标记
交叉比对:多维度核验数据一致性,与苹果端返利数据比对;若苹果 “应返返利” 基于 “已出库已开票订单” 计算,而 SAP 上传的出库 / 开票状态与苹果端基础数据不一致,则标记差异
2.7.2 验证时机
在订单、出口单、发票信息通过接口上传,或者通过 EXCEL 上传时,触发数据验证,验证不通过生成异常工单、验证通过生成台账信息,对经销商的返利金额进行扣减。
2.8 异常工单
2.8.1 查询条件
支持按工单 ID、工单状态(全部、待处理、处理中、已解决、已关闭)、异常类型(全部、逻辑验证异常、源头验证异常、交叉验证异常)、严重程度(全部、高、中、低)、时间范围进行组合查询,精准筛选工单数据。
2.8.2 页面按钮
查询:根据查询条件检索工单,展示符合要求的工单列表
重置:清除查询条件,恢复工单列表默认展示状态
导出:将当前工单列表数据导出为指定格式文件,便于存档与分析
批量处理:可批量修改工单状态
2.8.3 工单列表
包含工单 ID(如 WO-20250821-00001)、关联订单编号(可点击跳转至订单管理页面)、经销商名称、工单状态(全部、待处理、处理中、已解决、已关闭)、异常类型、严重程度(高(红)、中(黄)、低(蓝))、状态(待处理、处理中、已解决)、创建时间、处理人、操作(查看详情、编辑状态),全面呈现工单核心信息与操作入口。
2.8.4 工单详情
展示工单列表所有信息,并附加处理日志记录(处理时间、处理意见、上传附件),完整呈现工单处理过程与结果。
2.8.5 通知与提醒
针对高优先级工单(严重程度 “高”),系统通过顶部导航 “通知” 栏、邮件或短信自动提醒处理人;若工单超时未处理(如 24 小时),系统自动升级预警,确保高优先级问题及时处理。
2.9 产品信息
2.9.1 功能定位
产品信息维护模块作为 Apple 经销商 ERP 系统对接项目的核心基础模块,承担产品基础数据统一管理、更新与查询功能,确保订单管理、出库查询、发票主体等业务模块调用的产品数据准确、一致,为全链路业务流转与返利核算提供可靠的产品数据支撑。
2.9.2 查询条件
基础信息维度:产品编码(支持精确匹配,如 “APL - IP15 - 128G - BK”)、产品名称(支持模糊查询,如输入 “iPhone 15” 可筛选所有 iPhone 15 系列产品)、产品型号(如 “A2892”“A2893”)
属性维度:产品类别(如手机、平板电脑、笔记本电脑、配件等,支持下拉选择)、存储容量(如 128G、256G、512G、1TB,支持多选)、颜色(如黑色、白色、蓝色、粉色等,支持多选)、销售状态(在售、下架、预售,支持下拉选择)
时间维度:数据创建日期(支持选择开始日期与结束日期,筛选指定时间段内新增的产品数据)、最后更新日期(支持选择开始日期与结束日期,筛选指定时间段内修改过的产品数据)
关联维度:关联经销商等级(一级经销商专属产品、二级经销商专属产品、全渠道通用产品,支持多选)、是否参与返利(是 / 否,支持单选,用于快速定位参与返利政策的产品)
2.9.3 页面按钮
查询:点击后根据已设置的查询条件,触发系统检索产品数据库,实时展示符合条件的产品列表数据,支持分页加载
重置:点击后清空所有已设置的查询条件(包括输入框内容、下拉选择项、日期选择),恢复页面初始查询状态,便于重新筛选
新增:点击后弹出 “产品信息新增弹窗”,支持录入产品编码、名称、型号、类别等全量字段信息,录入完成后提交系统校验,校验通过则新增产品数据至数据库
编辑:选中某条产品数据后点击该按钮,弹出 “产品信息编辑弹窗”,支持修改产品名称、销售状态、关联经销商等级等非关键字段(产品编码为唯一标识,不允许修改),修改完成后提交系统保存
删除:支持单条删除与批量删除(勾选多条产品数据后点击),点击后弹出确认提示框(提示 “确认删除选中的 X 条产品数据?删除后不可恢复”),确认后系统删除对应产品数据(若产品已关联订单、出库单等业务数据,系统提示 “该产品已关联业务数据,不允许删除”,阻断删除操作)
导出:点击后将当前查询结果列表中的产品数据以 Excel 格式导出,导出文件包含产品信息所有字段,支持离线查看、数据分析与备份,导出时可选择 “导出当前页数据” 或 “导出全部符合条件数据”
批量导入:点击后弹出批量导入弹窗,提供标准化 Excel 导入模板下载(模板包含产品编码、名称、型号等必填字段说明与示例),支持上传填写完成的模板文件,系统自动校验数据格式与完整性,校验通过则批量新增 / 更新产品数据,校验失败则生成错误报告(标注错误行号与原因,如 “第 5 行产品编码格式错误,需符合 ‘APL - 产品类型 - 容量 - 颜色’ 规则”)
2.9.4 产品主信息
包含产品编码、产品名称、产品型号、产品类别、存储容量、颜色、产品图片 URL、创建人、创建日期、更新人、更新日期
3.0 经销商信息管理
3.0.1 功能定位
经销商信息管理模块作为 Apple 经销商 ERP 系统对接项目的渠道核心管理模块,承担经销商基础信息维护、资质审核记录存档及返利数据实时统计功能,实现 “基础信息 - 业务资质 - 返利金额” 一体化管理。一方面确保经销商信息的准确性与完整性,为订单分配、权限控制提供基础依据;另一方面通过实时计算并展示待返利总金额,让业务方与经销商清晰掌握返利结算进度,助力渠道返利管理透明化、高效化。
3.0.2 查询条件
支持多维度组合查询,满足不同场景下经销商信息筛选需求,具体查询维度如下:
基础信息维度:经销商编码(支持精确匹配,如 “APL-DLR-001”“APL-DLR-056”,为经销商唯一标识)、经销商名称(支持模糊查询,如输入 “XX 科技” 可筛选名称包含该关键词的所有经销商)、统一社会信用代码(支持精确匹配,用于快速定位特定资质的经销商)
属性维度:经销商等级(一级经销商、二级经销商,支持下拉选择,用于区分渠道层级)、合作状态(正常合作、暂停合作、终止合作,支持下拉选择,反映经销商当前合作情况)、所在区域(按省 / 市划分,如 “广东省 - 深圳市”“北京市 - 海淀区”,支持下拉选择,便于区域化管理)
时间维度:合作起始日期(支持选择开始日期与结束日期,筛选指定时间段内新增合作的经销商)、最后信息更新日期(支持选择开始日期与结束日期,筛选指定时间段内修改过信息的经销商)
返利维度:待返利总金额(支持区间查询,如 “0-10000 元”“10000-50000 元”“50000 元以上”,用于快速定位高返利金额经销商)、是否存在逾期未结算返利(是 / 否,支持单选,用于排查返利结算滞后的经销商)
3.0.3 页面按钮
页面按钮设计围绕经销商信息 “查询 - 维护 - 统计 - 导出” 核心流程,兼顾操作便捷性与数据安全性,具体按钮及功能如下:
查询:点击后根据已设置的查询条件,触发系统检索经销商数据库,实时展示符合条件的经销商列表数据,支持分页加载(默认 10 条 / 页,可手动调整为 20 条 / 页、50 条 / 页)
重置:点击后清空所有已设置的查询条件(包括输入框内容、下拉选择项、日期选择、金额区间设置),恢复页面初始查询状态,便于重新筛选
新增:点击后弹出 “经销商信息新增弹窗”,支持录入经销商编码、名称、统一社会信用代码、等级、所在区域、联系人、联系电话、合作起始日期等全量基础字段,上传营业执照、合作协议等资质文件(支持 PDF、JPG 格式,单个文件不超过 10MB),录入完成后提交系统校验,校验通过则新增经销商数据至数据库(经销商编码自动校验唯一性,重复编码无法提交)
编辑:选中某条经销商数据后点击该按钮,弹出 “经销商信息编辑弹窗”,支持修改经销商名称、联系人、联系电话、合作状态等非关键字段(经销商编码、统一社会信用代码为唯一标识,不允许修改),可补充上传最新资质文件(系统自动覆盖旧文件并保留历史版本记录),修改完成后提交系统保存
查看返利明细:点击后跳转至该经销商专属 “返利明细页面”,展示待返利金额的构成明细,包括关联订单编号、订单日期、应返金额、已返金额、待返金额、返利状态(待结算、结算中、已结算),支持按时间范围筛选明细数据,便于追溯待返利金额来源
导出:点击后将当前查询结果列表中的经销商数据以 Excel 格式导出,导出文件包含经销商基础信息、资质信息、返利统计信息所有字段,支持离线查看与数据备份,导出时可选择 “导出当前页数据” 或 “导出全部符合条件数据”
批量导入:点击后弹出批量导入弹窗,提供标准化 Excel 导入模板下载(模板包含经销商编码、名称、统一社会信用代码等必填字段说明与示例,标注字段格式要求),支持上传填写完成的模板文件,系统自动校验数据格式与完整性(如统一社会信用代码格式正确性、经销商等级选项合规性),校验通过则批量新增 / 更新经销商数据,校验失败则生成错误报告(标注错误行号与原因,如 “第 8 行‘合作起始日期’格式错误,需符合‘YYYY-MM-DD’规则”)
3.0.4 经销商主信息
经销商主信息字段覆盖基础信息、资质信息、返利统计信息三大类,确保数据完整且满足渠道管理与返利核算需求,具体字段及说明如下:
经销商编码、经销商名称、统一社会信用代码、经销商等级、所在区域、联系人、联系电话、合作起始日期、营业执照 URL、合作协议 URL、资质审核状态、审核意见、累计应返金额、累计已返金额、待返利总金额、最后返利更新时间、创建人、创建日期、更新人、更新日期
3.1 首页
3.1.1 功能定位
首页作为 Apple 经销商 ERP 系统对接项目的核心数据中枢与业务监控入口,不仅承担基础的信息展示与功能导航职责,更聚焦全链路业务数据的实时汇总、可视化呈现与异常预警,为用户(Apple 业务管理者、渠道运营人员、经销商对接人员)提供 “数据可视 - 风险预警 - 业务决策” 一体化支撑。
具体而言,首页通过整合累计应返金额、累计实际使用金额、未使用返利金额等核心返利数据,以及今日新增订单统计、数据验证通过率、异常预警总数等业务关键指标,让用户无需进入细分模块即可快速掌握渠道业务整体健康度;同时,通过经销商返利统计折线图直观呈现返利趋势,结合异常工单分页查询功能实现问题快速定位,最终达成 “数据实时化、监控可视化、决策高效化” 的目标,助力渠道管理从 “被动处理” 向 “主动预判” 转型。
3.1.2 首页报表
包含报表:累计应反金额(指标卡片)、累计实际使用金额(指标卡片)、未使用返利金额(指标卡片)、经销商返利统计(折线图)、今日新增订单统计(指标卡片)、异常预警总数(指标卡片)、数据验证通过率(指标卡片)、异常工单列表(分页查询)
第三章 需求规定(新增系统管理子模块)
3.1 菜单栏(补充说明)
原菜单栏中 “系统管理” 模块新增用户管理、角色管理、菜单管理、字典管理、日志管理 5 个子模块,完善系统权限控制与运维支撑能力,菜单栏结构更新如下:
(此处可补充菜单栏更新后的结构示意图)
3.2 用户管理
3.2.1 功能定位
基于若依架构的用户权限体系,实现系统用户的全生命周期管理(新增、编辑、停用、重置密码等),严格控制不同角色用户的系统访问权限,确保 “谁操作、谁负责”,支撑 Apple 经销商 ERP 系统的安全合规运营。
3.2.2 查询条件
支持多维度组合查询,精准定位目标用户,具体维度如下:
基础信息:用户名(精确匹配)、真实姓名(模糊匹配)、用户 ID(精确匹配)
状态维度:用户状态(启用 / 停用,下拉选择)
关联维度:所属角色(下拉选择,如 “系统管理员”“渠道运营”“财务审核”)、创建人(精确匹配)
时间维度:创建时间(开始日期 - 结束日期)、最后登录时间(开始日期 - 结束日期)
3.2.3 页面按钮
| 按钮名称 | 功能描述 | 操作逻辑 |
|---|---|---|
| 新增 | 弹出 “用户新增弹窗”,录入用户名、真实姓名、密码、所属角色等信息 | 密码需满足 “8-20 位含字母 + 数字 + 特殊符号” 规则,用户名自动校验唯一性 |
| 编辑 | 弹出 “用户编辑弹窗”,支持修改真实姓名、所属角色、联系方式等非关键字段 | 用户名、用户 ID 不可修改,避免权限关联异常 |
| 停用 / 启用 | 切换用户状态,停用后用户无法登录系统 | 停用前校验:若用户存在未处理的高优先级异常工单,弹出提示 “该用户有 1 条高优先级工单待处理,是否确认停用?” |
| 重置密码 | 重置用户登录密码为默认值(如 “Apple@123”),并强制用户首次登录时修改 | 重置后系统自动发送密码重置通知至用户绑定的邮箱 / 手机 |
| 导出 | 将当前查询结果以 Excel 格式导出,包含用户全量信息(脱敏处理手机号 / 邮箱) | 支持 “导出当前页”“导出全部” 两种模式 |
| 刷新 | 实时同步用户数据,展示最新的用户状态与权限配置 | 无需重新设置查询条件,直接加载最新数据 |
3.2.4 用户信息展示
列表展示字段:用户 ID、用户名、真实姓名、所属角色、状态(启用 / 停用,绿色 / 红色标识)、最后登录时间、创建人、创建时间、操作(编辑 / 停用 / 重置密码)
详情展示字段:在列表字段基础上,补充联系方式(手机号、邮箱)、备注信息、角色权限范围(如 “仅查看一级经销商数据”)
3.3 角色管理
3.3.1 功能定位
作为用户与菜单权限的中间关联层,实现 “角色定义 - 权限分配 - 用户关联” 的权限管控逻辑,支持灵活配置不同岗位的系统操作权限(如 “财务审核岗” 仅能访问发票管理与返利核算相关模块),降低权限管理复杂度。
3.3.2 查询条件
基础信息:角色名称(模糊匹配)、角色 ID(精确匹配)、角色编码(精确匹配,如 “ADMIN”“OPERATOR”)
状态维度:角色状态(启用 / 停用,下拉选择)
时间维度:创建时间(开始日期 - 结束日期)
3.3.3 页面按钮
| 按钮名称 | 功能描述 | 操作逻辑 |
|---|---|---|
| 新增 | 弹出 “角色新增弹窗”,录入角色名称、角色编码、备注等信息 | 角色编码需唯一,且符合 “大写字母 + 下划线” 格式(如 “FINANCE_AUDIT”) |
| 编辑 | 弹出 “角色编辑弹窗”,支持修改角色名称、备注、状态等字段 | 角色编码不可修改,避免已关联用户的权限失效 |
| 权限配置 | 弹出 “权限配置树形弹窗”,展示系统所有菜单(含子菜单),支持勾选配置角色可访问的菜单 | 勾选后实时保存,关联该角色的用户立即获得对应菜单权限 |
| 删除 | 删除指定角色,删除前校验是否关联用户 | 若已关联用户,弹出提示 “该角色已关联 3 个用户,不可删除,请先解绑用户” |
| 导出 | 将角色列表及关联权限信息导出为 Excel,便于权限审计 | 导出文件包含 “角色 - 菜单权限” 对应关系表 |
3.3.4 角色信息展示
列表展示字段:角色 ID、角色编码、角色名称、状态(启用 / 停用)、关联用户数、创建时间、操作(编辑 / 权限配置 / 删除)
权限配置弹窗:以树形结构展示菜单(如 “订单管理” 下含 “订单查询”“订单导出” 等子菜单),已勾选项为角色当前拥有的权限
3.4 菜单管理
3.4.1 功能定位
实现系统菜单栏的可视化配置,支持新增、编辑、排序菜单及配置菜单图标,灵活适配业务功能扩展(如后续新增 “库存预警” 模块时,可直接在菜单管理中配置入口),无需修改代码。
3.4.2 查询条件
基础信息:菜单名称(模糊匹配)、菜单 ID(精确匹配)、菜单路径(URL,精确匹配,如 “/order/query”)
类型维度:菜单类型(目录 / 菜单 / 按钮,下拉选择,“目录” 为父菜单,“菜单” 为功能页面,“按钮” 为页面操作按钮)
状态维度:菜单状态(显示 / 隐藏,下拉选择)
3.4.3 页面按钮
| 按钮名称 | 功能描述 | 操作逻辑 |
|---|---|---|
| 新增 | 弹出 “菜单新增弹窗”,选择菜单类型,录入菜单名称、路径、图标、排序号等 | 父菜单选择:“目录” 级菜单无父菜单,“菜单” 需选择所属 “目录”,“按钮” 需选择所属 “菜单” |
| 编辑 | 弹出 “菜单编辑弹窗”,支持修改菜单名称、路径、图标、排序号、状态等 | 菜单 ID 不可修改,避免角色权限关联异常 |
| 排序 | 支持拖动菜单调整显示顺序,或直接修改 “排序号”(数字越小越靠前) | 排序后实时生效,系统菜单栏立即按新顺序展示 |
| 隐藏 / 显示 | 切换菜单状态,隐藏后菜单栏不再显示该菜单,已配置权限的用户也无法访问 | 隐藏前校验:若菜单关联多个角色,弹出提示 “该菜单已关联 2 个角色,隐藏后相关用户将无法访问” |
3.4.4 菜单信息展示
列表展示字段:菜单 ID、菜单名称、父菜单名称、菜单类型、路径、图标(可视化展示,如 “📊” 代表报表类菜单)、排序号、状态(显示 / 隐藏)、操作(编辑 / 排序 / 隐藏)
树形展示:页面顶部以树形结构展示完整菜单层级,支持展开 / 折叠,直观呈现菜单关系
3.5 字典管理
3.5.1 功能定位
管理系统中所有 “键 - 值” 型静态数据(如 “出库状态” 的 “0 - 未出库 / 1 - 已出库”、“严重程度” 的 “1 - 高 / 2 - 中 / 3 - 低”),实现数据标准化与集中维护,避免相同数据在多个模块重复定义,确保数据一致性。
3.5.2 查询条件
基础信息:字典类型(精确匹配,如 “delivery_status”“severity_level”)、字典名称(模糊匹配,如 “出库状态”“严重程度”)
状态维度:字典状态(启用 / 停用,下拉选择)
3.5.3 页面按钮
| 按钮名称 | 功能描述 | 操作逻辑 |
|---|---|---|
| 新增字典类型 | 弹出 “字典类型新增弹窗”,录入字典类型(唯一标识)、字典名称、备注 | 字典类型需符合 “小写字母 + 下划线” 格式(如 “invoice_status”),自动校验唯一性 |
| 新增字典项 | 选中某字典类型后,点击 “新增字典项”,录入字典标签(显示值,如 “已出库”)、字典值(存储值,如 “1”)、排序号 | 同一字典类型下,字典值不可重复 |
| 编辑 | 分别支持编辑字典类型(修改名称、备注、状态)和字典项(修改标签、排序号) | 字典类型不可修改,避免关联业务数据失效 |
| 删除 | 支持删除字典类型(需先删除其下所有字典项)和字典项 | 删除字典项时,校验是否被业务数据引用(如 “已出库” 被 100 条出库单引用,则不可删除) |
| 导出 | 导出字典类型及对应字典项,形成 “数据字典表”,便于开发与测试参考 | 导出文件按字典类型分组,包含 “字典类型、字典名称、字典标签、字典值” |
3.5.4 字典信息展示
列表展示(字典类型):字典类型 ID、字典类型、字典名称、状态、字典项数量、创建时间、操作(编辑 / 新增字典项 / 删除)
字典项展示(选中某字典类型后):字典项 ID、字典标签、字典值、排序号、操作(编辑 / 删除)
3.6 日志管理
3.6.1 功能定位
记录系统所有关键操作日志与异常日志,包括用户登录 / 退出、功能模块操作(如订单导出、返利计算)、系统报错等,为问题排查、操作审计与安全追溯提供依据(如 “某订单返利金额被修改” 可通过日志定位操作人)
3.6.2 日志分类与查询条件
| 日志分类 | 记录内容 | 查询条件 |
|---|---|---|
| 操作日志 | 用户登录 / 退出、菜单访问、按钮点击(如 “导出订单”“编辑经销商信息”)、数据新增 / 修改 / 删除 | 用户名、操作模块(如 “订单管理”“字典管理”)、操作类型(新增 / 修改 / 删除 / 查询)、操作时间(开始 - 结束日期) |
| 异常日志 | 系统报错(如数据库连接失败、接口调用超时)、数据验证失败(如订单金额为负) | 异常类型(系统异常 / 业务异常)、异常等级(ERROR/WARN/INFO)、发生时间(开始 - 结束日期)、异常模块 |
| 登录日志 | 用户登录成功 / 失败(含失败原因,如密码错误、账号停用)、登录 IP、登录设备 | 用户名、登录状态(成功 / 失败)、登录 IP、登录时间(开始 - 结束日期) |
3.6.3 页面按钮
| 按钮名称 | 功能描述 | 操作逻辑 |
|---|---|---|
| 查看详情 | 弹出 “日志详情弹窗”,展示日志完整信息(如异常日志包含堆栈信息、操作日志包含请求参数) | 支持复制日志内容,便于问题排查时反馈给开发团队 |
| 导出 | 按当前查询条件导出日志数据为 Excel,支持离线审计与存档 | 导出文件包含日志全量字段,操作日志脱敏处理敏感信息(如密码) |
| 清空日志 | 按日志类型和时间范围清空日志(需二次确认) | 仅系统管理员有权限,清空后不可恢复,建议先导出备份 |
| 刷新 | 实时加载最新日志数据,无需重新设置查询条件 | 自动定位到当前分页,方便跟踪实时操作 |
3.6.4 日志信息展示
操作日志列表:日志 ID、用户名、操作模块、操作类型、操作内容(如 “修改经销商 A 的合作状态为‘暂停合作’”)、操作 IP、操作时间、操作结果(成功 / 失败)
异常日志列表:日志 ID、异常模块、异常类型、异常等级(ERROR 为红色,WARN 为黄色)、异常信息(简洁描述,如 “订单金额超出最大值”)、发生时间、操作人(若有)
登录日志列表:日志 ID、用户名、登录状态、登录 IP、登录设备(如 “Chrome/Windows”)、登录时间、失败原因(仅登录失败时展示)
第四章 表结构设计(完善版)
4.1 核心表结构概览
本章基于第二章需求规定,设计覆盖 “订单 - 出库 - 发票 - 返利 - 经销商 - 产品” 全链路的表结构,包含 10 张核心业务表,各表通过关键字段关联(如订单编号、经销商编码、产品编码),确保数据流转一致性与可追溯性。所有表均默认包含 create_by(创建人)、create_time(创建时间)、update_by(更新人)、update_time(更新时间)、del_flag(删除标志,0 - 未删除 / 1 - 已删除)字段,用于数据维护与权限审计,下文不再单独列出。
4.2 详细表结构设计
4.2.1 订单主表(t_order_main)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| order_id | 订单 ID | BIGINT | - | 是 | 订单唯一标识,自增主键(如 100001) | - |
| order_no | 订单编号 | VARCHAR | 30 | 否 | 订单编号,业务唯一(如 PO-20250821001) | - |
| dealer_code | 经销商编码 | VARCHAR | 20 | 否 | 经销商编码(关联经销商信息表) | t_dealer_info.dealer_code |
| dealer_name | 经销商名称 | VARCHAR | 100 | 否 | 经销商名称(冗余存储,提高查询效率) | t_dealer_info.dealer_name |
| order_date | 订单创建日期 | DATETIME | - | 否 | 订单创建日期(格式:YYYY-MM-DD HH:MM:SS) | - |
| total_amount | 订单总金额 | DECIMAL | 18,2 | 否 | 订单总金额(含税,单位:元) | - |
| rebate_amount | 订单返利金额 | DECIMAL | 18,2 | 否 | 订单返利金额(单位:元) | t_rebate_detail.rebate_amount |
| delivery_status | 出库状态 | TINYINT | 1 | 否 | 出库状态(0 - 未出库 / 1 - 已出库) | t_delivery_main.delivery_status |
| invoice_status | 开票状态 | TINYINT | 1 | 否 | 开票状态(0 - 未开票 / 1 - 已开票) | t_invoice_main.invoice_status |
| rebate_calc_flag | 返利计算状态 | TINYINT | 1 | 否 | 返利计算状态(0 - 未计算 / 1 - 已计算) | t_rebate_detail.calc_flag |
| data_source | 数据来源 | VARCHAR | 20 | 否 | 数据来源(如 “ERP 接口”“Excel 上传”) | - |
| verify_status | 数据验证状态 | TINYINT | 1 | 否 | 数据验证状态(0 - 待验证 / 1 - 验证通过 / 2 - 验证失败) | t_data_verify.verify_status |
| upload_time | 数据上传时间 | DATETIME | - | 否 | 数据上传时间(格式:YYYY-MM-DD HH:MM:SS) | - |
4.2.2 订单商品明细表(t_order_item)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| item_id | 订单商品明细 ID | BIGINT | - | 是 | 明细唯一标识,自增主键 | - |
| order_id | 关联订单 ID | BIGINT | - | 否 | 关联订单主表 ID | t_order_main.order_id |
| order_no | 订单编号 | VARCHAR | 30 | 否 | 订单编号(冗余存储) | t_order_main.order_no |
| product_code | 产品编码 | VARCHAR | 30 | 否 | 产品编码(关联产品信息表) | t_product_info.product_code |
| product_name | 产品名称 | VARCHAR | 50 | 否 | 产品名称(冗余存储) | t_product_info.product_name |
| product_qty | 商品数量 | INT | - | 否 | 商品数量 | - |
| unit_price | 商品单价 | DECIMAL | 18,2 | 否 | 商品单价(含税,单位:元) | - |
| item_amount | 商品明细金额 | DECIMAL | 18,2 | 否 | 商品明细金额(item_amount=product_qty×unit_price,单位:元) | - |
4.2.3 出库主表(t_delivery_main)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| delivery_id | 出库单 ID | BIGINT | - | 是 | 出库单唯一标识,自增主键 | - |
| delivery_no | 出库单编号 | VARCHAR | 30 | 否 | 出库单编号(如 OUT-20250821001) | - |
| dealer_code | 经销商编码 | VARCHAR | 20 | 否 | 经销商编码 | t_dealer_info.dealer_code |
| dealer_name | 经销商名称 | VARCHAR | 100 | 否 | 经销商名称(冗余存储) | t_dealer_info.dealer_name |
| order_no | 关联订单编号 | VARCHAR | 30 | 否 | 关联订单编号 | t_order_main.order_no |
| delivery_date | 出库日期 | DATETIME | - | 否 | 出库日期(格式:YYYY-MM-DD HH:MM:SS) | - |
| delivery_status | 出库状态 | TINYINT | 1 | 否 | 出库状态(0 - 未出库 / 1 - 已出库) | - |
| warehouse_code | 出库仓库编码 | VARCHAR | 20 | 否 | 出库仓库编码(如 WH-EAST01) | - |
| data_source | 数据来源 | VARCHAR | 20 | 否 | 数据来源(如 “ERP 接口”“Excel 上传”) | - |
| upload_time | 数据上传时间 | DATETIME | - | 否 | 数据上传时间 | - |
4.2.4 出库商品明细表(t_delivery_item)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| delivery_item_id | 出库商品明细 ID | BIGINT | - | 是 | 出库明细唯一标识,自增主键 | - |
| delivery_id | 关联出库单 ID | BIGINT | - | 否 | 关联出库主表 ID | t_delivery_main.delivery_id |
| delivery_no | 出库单编号 | VARCHAR | 30 | 否 | 出库单编号(冗余存储) | t_delivery_main.delivery_no |
| order_no | 关联订单编号 | VARCHAR | 30 | 否 | 关联订单编号 | t_order_main.order_no |
| product_code | 产品编码 | VARCHAR | 30 | 否 | 产品编码 | t_product_info.product_code |
| product_name | 产品名称 | VARCHAR | 50 | 否 | 产品名称(冗余存储) | t_product_info.product_name |
| delivery_qty | 出库数量 | INT | - | 否 | 出库数量 | - |
| delivery_price | 出库单价 | DECIMAL | 18,2 | 否 | 出库单价(含税,单位:元) | - |
| delivery_amount | 出库明细金额 | DECIMAL | 18,2 | 否 | 出库明细金额(delivery_amount=delivery_qty×delivery_price,单位:元) | - |
4.2.5 发票主表(t_invoice_main)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| invoice_id | 发票 ID | BIGINT | - | 是 | 发票唯一标识,自增主键 | - |
| invoice_no | 发票编号 | VARCHAR | 30 | 否 | 发票编号(如 INV-20250821001) | - |
| order_no | 关联订单编号 | VARCHAR | 30 | 否 | 关联订单编号 | t_order_main.order_no |
| delivery_no | 关联出库单编号 | VARCHAR | 30 | 否 | 关联出库单编号 | t_delivery_main.delivery_no |
| dealer_code | 经销商编码 | VARCHAR | 20 | 否 | 经销商编码 | t_dealer_info.dealer_code |
| dealer_name | 经销商名称 | VARCHAR | 100 | 否 | 经销商名称(冗余存储) | t_dealer_info.dealer_name |
| total_amount | 发票总金额(含税) | DECIMAL | 18,2 | 否 | 发票总金额(含税,单位:元) | - |
| invoice_date | 开票日期 | DATE | - | 否 | 开票日期(格式:YYYY-MM-DD) | - |
| invoice_status | 发票状态 | TINYINT | 1 | 否 | 发票状态(0 - 未开票 / 1 - 已开票) | - |
| tax_rate | 税率 | DECIMAL | 5,2 | 否 | 税率(如 13.00 代表 13%) | - |
| data_source | 数据来源 | VARCHAR | 20 | 否 | 数据来源(如 “ERP 接口”“Excel 上传”) | - |
| upload_time | 数据上传时间 | DATETIME | - | 否 | 数据上传时间 | - |
4.2.6 发票商品明细表(t_invoice_item)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| invoice_item_id | 发票商品明细 ID | BIGINT | - | 是 | 发票明细唯一标识,自增主键 | - |
| invoice_id | 关联发票 ID | BIGINT | - | 否 | 关联发票主表 ID | t_invoice_main.invoice_id |
| invoice_no | 发票编号 | VARCHAR | 30 | 否 | 发票编号(冗余存储) | t_invoice_main.invoice_no |
| order_no | 关联订单编号 | VARCHAR | 30 | 否 | 关联订单编号 | t_order_main.order_no |
| product_code | 产品编码 | VARCHAR | 30 | 否 | 产品编码 | t_product_info.product_code |
| product_name | 产品名称 | VARCHAR | 50 | 否 | 产品名称(冗余存储) | t_product_info.product_name |
| invoice_qty | 开票数量 | INT | - | 否 | 开票数量 | - |
| unit_price_no_tax | 不含税单价 | DECIMAL | 18,2 | 否 | 不含税单价(单位:元) | - |
| amount_no_tax | 不含税明细金额 | DECIMAL | 18,2 | 否 | 不含税明细金额(amount_no_tax=invoice_qty×unit_price_no_tax,单位:元) | - |
| tax_amount | 税额 | DECIMAL | 18,2 | 否 | 税额(tax_amount=amount_no_tax×tax_rate,单位:元) | t_invoice_main.tax_rate |
4.2.7 返利台账明细表(t_rebate_detail)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| rebate_id | 返利明细 ID | BIGINT | - | 是 | 返利明细唯一标识,自增主键 | - |
| rebate_no | 返利明细编号 | VARCHAR | 30 | 否 | 返利明细编号(如 REBATE-20250821001) | - |
| order_no | 关联订单编号 | VARCHAR | 30 | 否 | 关联订单编号 | t_order_main.order_no |
| dealer_code | 经销商编码 | VARCHAR | 20 | 否 | 经销商编码 | t_dealer_info.dealer_code |
| dealer_name | 经销商名称 | VARCHAR | 100 | 否 | 经销商名称(冗余存储) | t_dealer_info.dealer_name |
| product_code | 产品编码 | VARCHAR | 30 | 否 | 产品编码 | t_product_info.product_code |
| rebate_amount | 返利金额 | DECIMAL | 18,2 | 否 | 返利金额(单位:元,新增为正,扣减为负) | - |
| rebate_date | 返利记录日期 | DATE | - | 否 | 返利记录日期(格式:YYYY-MM-DD) | - |
| operate_type | 操作类型 | TINYINT | 1 | 否 | 操作类型(1 - 新增 / 2 - 扣减) | - |
| calc_flag | 返利计算状态 | TINYINT | 1 | 否 | 返利计算状态(0 - 未计算 / 1 - 已计算) | - |
| upload_time | 数据上传时间 | DATETIME | - | 否 | 数据上传时间 | - |
4.2.8 异常工单表(t_exception_workorder)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| workorder_id | 工单 ID | BIGINT | - | 是 | 异常工单唯一标识,自增主键(如 100001) | - |
| workorder_no | 工单编号 | VARCHAR | 30 | 否 | 工单业务编号,格式为 “WO-YYYYMMDD-XXXX”(如 WO-20250821-00001) | - |
| order_no | 关联订单编号 | VARCHAR | 30 | 否 | 关联异常数据对应的订单编号,无关联时可为空 | t_order_main.order_no |
| dealer_code | 经销商编码 | VARCHAR | 20 | 否 | 异常相关经销商编码,无关联时可为空 | t_dealer_info.dealer_code |
| dealer_name | 经销商名称 | VARCHAR | 100 | 否 | 经销商名称(冗余存储),无关联时可为空 | t_dealer_info.dealer_name |
| exception_type | 异常类型 | TINYINT | 1 | 否 | 异常类型(1 - 逻辑验证异常 / 2 - 源头验证异常 / 3 - 交叉验证异常) | - |
| severity_level | 严重程度 | TINYINT | 1 | 否 | 严重程度(1 - 高 / 2 - 中 / 3 - 低,对应红色、黄色、蓝色标识) | - |
| workorder_status | 工单状态 | TINYINT | 1 | 否 | 工单状态(1 - 待处理 / 2 - 处理中 / 3 - 已解决 / 4 - 已关闭) | - |
| create_time | 工单创建时间 | DATETIME | - | 否 | 工单创建时间(格式:YYYY-MM-DD HH:MM:SS) | - |
| expect_complete_time | 预计处理完成时间 | DATETIME | - | 否 | 工单预计处理完成时间,根据严重程度默认配置(高:24h / 中:48h / 低:72h) | - |
| handler_user | 处理人 | VARCHAR | 20 | 否 | 工单处理人账号(如 “admin”“op_user01”),未分配时可为空 | - |
| exception_desc | 异常描述 | VARCHAR | 500 | 否 | 异常详情描述,如 “开票时间 2025-08-22 早于出库时间 2025-08-23,违反时序规则” | - |
| handle_suggest | 处理建议 | VARCHAR | 500 | 否 | 系统自动生成的处理建议,如 “请核查出库时间与开票时间,修正后重新上传数据” | - |
| data_source | 数据来源 | VARCHAR | 20 | 否 | 异常数据来源(如 “ERP 接口”“Excel 上传”),无关联时可为空 | - |
4.2.9 异常工单处理日志表(t_exception_workorder_log)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| log_id | 日志 ID | BIGINT | - | 是 | 处理日志唯一标识,自增主键 | - |
| workorder_id | 关联工单 ID | BIGINT | - | 否 | 关联异常工单表的主键 ID,用于追溯工单处理历史 | t_exception_workorder.workorder_id |
| workorder_no | 关联工单编号 | VARCHAR | 30 | 否 | 关联工单业务编号(冗余存储,提高查询效率) | t_exception_workorder.workorder_no |
| handle_user | 处理人 | VARCHAR | 20 | 否 | 本次处理操作人账号 | - |
| handle_time | 处理时间 | DATETIME | - | 否 | 本次处理操作时间(格式:YYYY-MM-DD HH:MM:SS) | - |
| before_status | 处理前状态 | TINYINT | 1 | 否 | 工单处理前的状态(1 - 待处理 / 2 - 处理中 / 3 - 已解决 / 4 - 已关闭) | - |
| after_status | 处理后状态 | TINYINT | 1 | 否 | 工单处理后的状态(1 - 待处理 / 2 - 处理中 / 3 - 已解决 / 4 - 已关闭) | - |
| handle_opinion | 处理意见 | VARCHAR | 500 | 否 | 处理人填写的操作意见,如 “已联系经销商修正出库时间,待重新上传数据” | - |
| attach_url | 附件 URL | VARCHAR | 200 | 否 | 处理时上传的附件(如修正后的单据截图)存储 URL,无附件时可为空 | - |
4.2.10 经销商信息表(t_dealer_info)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| dealer_id | 经销商 ID | BIGINT | - | 是 | 经销商唯一标识,自增主键 | - |
| dealer_code | 经销商编码 | VARCHAR | 20 | 否 | 经销商业务编码(业务唯一,如 APL-DLR-001) | - |
| dealer_name | 经销商名称 | VARCHAR | 100 | 否 | 经销商全称(如深圳市 XX 科技有限公司) | - |
| credit_code | 统一社会信用代码 | VARCHAR | 18 | 否 | 经销商营业执照统一社会信用代码,唯一标识 | - |
| dealer_level | 经销商等级 | TINYINT | 1 | 否 | 经销商等级(1 - 一级经销商 / 2 - 二级经销商) | - |
| region | 所在区域 | VARCHAR | 50 | 否 | 经销商所在区域,格式为 “省 - 市”(如 “广东省 - 深圳市”“北京市 - 海淀区”) | - |
| contact_person | 联系人 | VARCHAR | 50 | 否 | 经销商对接人姓名 | - |
| contact_phone | 联系电话 | VARCHAR | 20 | 否 | 对接人手机号或固定电话(如 13800138000、010-12345678) | - |
| cooperate_start_date | 合作起始日期 | DATE | - | 否 | 与 Apple 合作的起始日期(格式:YYYY-MM-DD) | - |
| cooperate_status | 合作状态 | TINYINT | 1 | 否 | 合作状态(1 - 正常合作 / 2 - 暂停合作 / 3 - 终止合作) | - |
| business_license_url | 营业执照 URL | VARCHAR | 200 | 否 | 经销商营业执照扫描件存储 URL,支持预览 | - |
| cooperation_agreement_url | 合作协议 URL | VARCHAR | 200 | 否 | 合作协议扫描件存储 URL,支持预览 | - |
| qualification_audit_status | 资质审核状态 | TINYINT | 1 | 否 | 资质审核状态(1 - 待审核 / 2 - 审核通过 / 3 - 审核不通过) | - |
| audit_opinion | 审核意见 | VARCHAR | 500 | 否 | 资质审核意见,仅审核通过或不通过时填写 | - |
| total_rebate_amount | 累计应返金额 | DECIMAL | 18,2 | 否 | 自合作以来累计应返返利总金额(单位:元),系统自动计算 | t_rebate_detail.rebate_amount |
| used_rebate_amount | 累计已返金额 | DECIMAL | 18,2 | 否 | 自合作以来累计已结算返利金额(单位:元),系统自动计算 | t_rebate_detail.rebate_amount |
| pending_rebate_amount | 待返利总金额 | DECIMAL | 18,2 | 否 | 当前待结算返利金额(pending_rebate_amount=total_rebate_amount-used_rebate_amount,单位:元) | - |
| last_rebate_update_time | 最后返利更新时间 | DATETIME | - | 否 | 返利数据最后更新时间(格式:YYYY-MM-DD HH:MM:SS),系统自动更新 | - |
4.2.11 产品信息表(t_product_info)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| product_id | 产品 ID | BIGINT | - | 是 | 产品唯一标识,自增主键,用于系统内产品数据唯一定位 | - |
| product_code | 产品编码 | VARCHAR | 30 | 否 | 产品业务编码,格式为 “APL - 产品类型 - 容量 - 颜色”(如 “APL-IP15-128G-BK”),业务唯一 | - |
| product_name | 产品名称 | VARCHAR | 50 | 否 | 产品完整名称(如 “Apple iPhone 15 128GB 黑色 5G 手机”),需与苹果官方名称一致 | - |
| product_model | 产品型号 | VARCHAR | 20 | 否 | 苹果官方产品型号(如 “A2892”“A2941”),唯一对应产品硬件规格 | - |
| product_type | 产品类别 | VARCHAR | 20 | 否 | 产品分类(可选值:手机、平板电脑、笔记本电脑、台式电脑、智能手表、耳机、其他配件) | - |
| storage_capacity | 存储容量 | VARCHAR | 10 | 否 | 产品存储容量(如 128G、256G、512G、1TB),配件类产品(如耳机)可为空 | - |
| color | 产品颜色 | VARCHAR | 10 | 否 | 产品配色(如黑色、白色、蓝色、粉色、黄色),无颜色差异产品(如充电器)可为空 | - |
| product_img_url | 产品图片 URL | VARCHAR | 200 | 否 | 产品主图存储 URL(如 “https://xxx.com/img/ip15-black.jpg”),支持点击预览 | - |
| official_price | 官方指导价 | DECIMAL | 18,2 | 否 | 苹果官方公布的全国统一零售价(单位:元),如 “5999.00”“8999.00”,作为返利计算核心基准 | - |
| sale_status | 销售状态 | TINYINT | 1 | 否 | 产品销售状态(0 - 下架、1 - 在售、2 - 预售),状态变更同步影响订单创建 | - |
| rebate_flag | 是否参与返利 | TINYINT | 1 | 否 | 标记产品是否纳入返利政策(0 - 否、1 - 是),未参与返利产品订单不计算返利 | - |
| sale_start_date | 销售起始日期 | DATE | - | 否 | 产品正式开售日期(格式:YYYY-MM-DD),预售产品需填写该日期,用于判断产品是否进入销售周期 | - |
| sale_end_date | 销售终止日期 | DATE | - | 否 | 产品停售日期(格式:YYYY-MM-DD),下架产品需填写该日期,在售产品可为空,用于自动触发产品状态变更(如到期自动下架) | - |
| remark | 产品备注 | VARCHAR | 500 | 否 | 产品补充说明(如 “支持 5G 网络”“含充电头”),无特殊说明可为空,用于记录产品特殊属性 | - |
4.2.12 用户表(t_sys_user)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| user_id | 用户 ID | BIGINT | - | 是 | 自增主键,用户唯一标识 | - |
| username | 用户名 | VARCHAR | 50 | 否 | 登录账号,业务唯一 | - |
| real_name | 真实姓名 | VARCHAR | 50 | 否 | 用户真实姓名 | - |
| password | 密码 | VARCHAR | 100 | 否 | 加密存储(MD5 + 盐值) | - |
| phone | 手机号 | VARCHAR | 20 | 否 | 可用于密码重置通知 | - |
| 邮箱 | VARCHAR | 100 | 否 | 可用于密码重置通知 | - | |
| status | 状态 | TINYINT | 1 | 否 | 0 - 停用 / 1 - 启用 | - |
| last_login_time | 最后登录时间 | DATETIME | - | 否 | 记录用户最近一次登录时间 | - |
| last_login_ip | 最后登录 IP | VARCHAR | 50 | 否 | 记录用户最近一次登录 IP | - |
| remark | 备注 | VARCHAR | 500 | 否 | 用户相关补充说明 | - |
4.2.13 角色表(t_sys_role)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| role_id | 角色 ID | BIGINT | - | 是 | 自增主键,角色唯一标识 | - |
| role_code | 角色编码 | VARCHAR | 50 | 否 | 角色唯一编码(如 “ADMIN”) | - |
| role_name | 角色名称 | VARCHAR | 100 | 否 | 角色名称(如 “系统管理员”) | - |
| status | 状态 | TINYINT | 1 | 否 | 0 - 停用 / 1 - 启用 | - |
| remark | 备注 | VARCHAR | 500 | 否 | 角色相关补充说明 | - |
4.2.14 用户角色关联表(t_sys_user_role)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| id | 关联 ID | BIGINT | - | 是 | 自增主键 | - |
| user_id | 用户 ID | BIGINT | - | 否 | 关联用户表主键 | t_sys_user.user_id |
| role_id | 角色 ID | BIGINT | - | 否 | 关联角色表主键 | t_sys_role.role_id |
4.2.15 菜单表(t_sys_menu)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| menu_id | 菜单 ID | BIGINT | - | 是 | 自增主键,菜单唯一标识 | - |
| parent_id | 父菜单 ID | BIGINT | - | 否 | 0 表示顶级菜单(目录) | t_sys_menu.menu_id |
| menu_name | 菜单名称 | VARCHAR | 100 | 否 | 菜单显示名称 | - |
| menu_type | 菜单类型 | CHAR | 1 | 否 | 0 - 目录 / 1 - 菜单 / 2 - 按钮 | - |
| path | 菜单路径 | VARCHAR | 200 | 否 | 访问 URL(如 “/order/query”) | - |
| icon | 菜单图标 | VARCHAR | 50 | 否 | 图标样式(如 “el-icon-s-order”) | - |
| sort | 排序号 | INT | - | 否 | 数字越小,菜单显示越靠前 | - |
| status | 状态 | TINYINT | 1 | 否 | 0 - 隐藏 / 1 - 显示 | - |
| perms | 权限标识 | VARCHAR | 100 | 否 | 按钮级权限标识(如 “order:export”) | - |
4.2.16 角色菜单关联表(t_sys_role_menu)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| id | 关联 ID | BIGINT | - | 是 | 自增主键 | - |
| role_id | 角色 ID | BIGINT | - | 否 | 关联角色表主键 | t_sys_role.role_id |
| menu_id | 菜单 ID | BIGINT | - | 否 | 关联菜单表主键 | t_sys_menu.menu_id |
4.2.17 字典类型表(t_sys_dict_type)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| dict_type_id | 字典类型 ID | BIGINT | - | 是 | 自增主键 | - |
| dict_type | 字典类型 | VARCHAR | 50 | 否 | 字典唯一标识(如 “delivery_status”) | - |
| dict_name | 字典名称 | VARCHAR | 100 | 否 | 字典显示名称(如 “出库状态”) | - |
| status | 状态 | TINYINT | 1 | 否 | 0 - 停用 / 1 - 启用 | - |
| remark | 备注 | VARCHAR | 500 | 否 | 字典类型补充说明 | - |
4.2.18 字典项表(t_sys_dict_item)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| dict_item_id | 字典项 ID | BIGINT | - | 是 | 自增主键 | - |
| dict_type_id | 字典类型 ID | BIGINT | - | 否 | 关联字典类型表 | t_sys_dict_type.dict_type_id |
| dict_label | 字典标签 | VARCHAR | 100 | 否 | 显示值(如 “已出库”) | - |
| dict_value | 字典值 | VARCHAR | 50 | 否 | 存储值(如 “1”) | - |
| sort | 排序号 | INT | - | 否 | 数字越小,下拉选择时越靠前 | - |
| remark | 备注 | VARCHAR | 500 | 否 | 字典项补充说明 | - |
4.2.19 系统日志表(t_sys_log)
| 字段名称 | 字段中文名称 | 字段类型 | 字段长度 | 是否主键 | 字段说明 | 关联表 |
|---|---|---|---|---|---|---|
| log_id | 日志 ID | BIGINT | - | 是 | 自增主键 | - |
| log_type | 日志类型 | CHAR | 1 | 否 | 0 - 操作日志 / 1 - 异常日志 / 2 - 登录日志 | - |
| user_id | 用户 ID | BIGINT | - | 否 | 操作人 ID(异常日志可为空) | t_sys_user.user_id |
| username | 用户名 | VARCHAR | 50 | 否 | 操作人账号(冗余存储) | t_sys_user.username |
| module | 操作模块 | VARCHAR | 100 | 否 | 涉及模块(如 “订单管理”) | - |
| operation | 操作内容 | VARCHAR | 500 | 否 | 具体操作(如 “导出订单数据”) | - |
| ip | 操作 IP | VARCHAR | 50 | 否 | 操作人 IP 地址 | - |
| log_time | 日志时间 | DATETIME | - | 否 | 操作发生时间 | - |
| status | 操作结果 | TINYINT | 1 | 否 | 0 - 失败 / 1 - 成功(仅操作日志 / 登录日志有效) | - |
| error_msg | 错误信息 | TEXT | - | 否 | 异常日志详情(如堆栈信息) | - |
| request_param | 请求参数 | TEXT | - | 否 | 操作时的请求参数(脱敏处理敏感信息) | - |
(注:文档部分内容可能由 AI 生成)






