【竞品与研究】森果零售通功能模块开发方案及数据库结构说明(一)---升鲜宝生鲜配送供应链管理系统源代码服务
|--------|------------------------------------------|
| 项目 | 内容 |
| 文档名称 | 【推理版】森果零售通功能模块开发方案及数据库结构说明 |
| 版本 | V1.0 |
| 生成日期 | 2020-03-04 |
| 适用范围 | 森果零售通竞品分析、升鲜宝门店收银/门店会员商城/门店库存/门店营销研发参考 |
| 重要说明 | 本文根据公开资料与生鲜零售业务场景进行功能和数据库推理,不代表森果真实内部设计。 |
资料依据摘要
- 森果零售通官方页面公开描述:门店收银、微商城、线上线下打通、移动管理、数据分析、会员营销、采配系统、连锁管理等能力。
- 森果零售通 App Store / 应用商店公开描述:商品管理、订单管理、员工管理、店铺数据、经营概况、商品售卖、会员充值、资金对账等能力。
- 甜杏微商城公开页面:线上下单线下称重、商品库统一、会员信息同步、营销玩法通用、多退少补、接龙/分销/拼团/直播/砍价/秒杀等能力。
- 本文数据库结构为竞品分析推理版,以 MySQL 8.0 为目标,字段命名参考 Java/Spring Boot + MyBatis-Plus 项目常用规范。
目录
-
- 产品定位与业务边界
-
- 业务角色与权限模型
-
- 总体业务架构与流程
-
- 功能模块开发方案
-
- 核心业务流程设计
-
- 状态机与关键规则
-
- 数据库总体设计
-
- 字段级数据字典
-
- ER关系与数据一致性
-
- 接口开发清单
-
- 后台菜单与页面建议
-
- 升鲜宝对标落地建议
-
- 实施优先级与研发注意事项
-
- 参考资料
1. 产品定位与业务边界
1.1 产品定位
森果零售通定位为果蔬零售门店经营管理系统,核心服务水果店、生鲜店、社区生鲜门店、连锁水果店、加盟门店、门店+线上商城一体化经营商户。它不是单纯收银台,而是围绕"门店收银 + 商品管理 + 会员营销 + 微商城 + 数据分析 + 采配 + 连锁管理"的一体化门店经营平台。
设计判断:森果零售通的核心不是传统进销存,而是"称重零售场景下的交易效率、会员复购和线上线下一体化"。升鲜宝可把它对标到门店收银 POS、门店会员商城、门店库存 HWMS/store_inv、门店营销 store_promo 与会员 UMS。
1.2 目标客户
|-----------|-------------------|---------------------|----------------------------|
| 客户类型 | 典型场景 | 核心诉求 | 零售通能力对应 |
| 小型水果夫妻店 | 单店称重收银、会员充值、日常经营 | 快速上手、收银快、少算错账 | 标准版:门店收银、商品、订单、会员、店铺数据 |
| 中大型生鲜单店 | 员工分工、库存、会员营销、线上私域 | 管理精细化、营销留客、数据分析 | 专业版:员工权限、营销活动、库存流水、经营分析 |
| 初级连锁门店 | 多个门店统一商品/价格/会员/报表 | 总部管控、门店执行、数据汇总 | 连锁版:总部后台、分店管理、商品/价格下发 |
| 大型直营/加盟连锁 | 跨区域多门店、加盟商、标准化运营 | 统一会员、统一营销、分店业绩、成本控制 | 旗舰版:连锁后台集中控制、精准管控分店 |
| 线上私域商城商家 | 小程序/微商城接单,门店称重履约 | 线上下单线下称重、多退少补、会员同步 | 甜杏微商城/零售通联动:商城订单、称重确认、补差退款 |
1.3 业务边界
|---------|-------------------------------------|-------------------------------|
| 边界项 | 包含 | 不作为核心范围 |
| 收银交易 | 称重收银、扫码收银、现金/微信/支付宝/余额支付、退款、抹零、优惠核销 | 复杂批发档口代卖结算属于批发易/货主帮范畴 |
| 商品与库存 | 门店商品、分类、条码、单位、售价、上下架、门店轻量库存 | 公司级 WMS 仓库精细库位、批次成本核算不是零售通主链路 |
| 会员与营销 | 会员等级、余额、积分、优惠券、满减、秒杀、拼团、付费会员、生日权益 | B2B 客户授信账期、批发应收对账属于批发/B2B链路 |
| 线上商城 | 微商城货架、线上订单、线下称重、多退少补、会员同步 | 复杂平台多商户市场和跨商户结算不是单店零售通核心 |
| 采配与连锁 | 门店要货、总部采配、分店配货、连锁商品/价格/营销下发 | 大型云仓运输路线、司机配送优化不是零售通主范围 |
| 数据分析 | 经营概况、商品售卖、会员充值、资金对账、门店排行 | 全集团 BI 仓库级财务报表不是零售通基础版范围 |
2. 业务角色与权限模型
|------------|-----------------------------------|------------------------|
| 角色 | 主要职责 | 权限控制要点 |
| 总部老板/机构管理员 | 查看全门店经营、配置商品/会员/营销/连锁策略、查看资金与数据报表 | 全局数据权限,可按门店/区域/品牌维度授权 |
| 门店店长 | 管理本店商品、员工、收银、库存、会员、活动执行、日结对账 | 本店数据权限,敏感操作需总部授权 |
| 收银员 | 门店收银、扫码核销、打印小票、退货申请、挂单/取单 | 仅能查看本人班次和本店订单,退款/作废需权限 |
| 理货/称重员 | 称重、贴标签、商品上架、库存调整申请 | 只允许操作称重、上架和库存申请 |
| 采购/采配员 | 门店要货、采购入库、总部配货、供应商协同 | 按仓/门店/供应商授权 |
| 营销运营 | 配置优惠券、满减、秒杀、拼团、直播、会员权益 | 可配置活动但不能直接操作资金 |
| 财务 | 查看资金对账、会员充值、退款、收款账户、日结月结 | 资金类全局或区域权限 |
| 会员/消费者 | 线上下单、会员码、余额、积分、优惠券、订单、售后 | 只可查看本人数据 |
2.1 权限设计建议
- 权限模型采用"机构/总部 -> 区域 -> 门店 -> 员工"的树形数据范围,结合角色菜单权限和按钮权限。
- 收银相关敏感权限包括:退货退款、订单作废、金额改价、优惠手动调整、现金差异处理、班次强制交接。
- 连锁门店需要支持总部统一配置、门店可局部覆盖两种模式,例如商品售价、会员价、活动价、库存预警阈值。
- 会员资金类操作必须写入资金流水和操作日志,充值、退款、余额支付、赠送金额使用要分别记录。
3. 总体业务架构与流程
3.1 总体模块图
森果零售通 / 升鲜宝对标零售门店系统
总部/机构管理
├─ 门店管理 / 区域管理 / 员工权限
├─ 商品中心 / 价格策略 / 门店商品下发
├─ 会员体系 / 储值 / 积分 / 等级 / 付费会员
├─ 营销中心 / 优惠券 / 满减 / 秒杀 / 拼团 / 直播 / 接龙
├─ 采配中心 / 门店要货 / 总部采购 / 分店配货
└─ 数据中心 / 经营分析 / 资金对账 / 商品售卖 / 会员分析
门店作业端
├─ 称重收银 / 快速收银 / 挂单取单
├─ 订单管理 / 退款 / 售后 / 小票打印
├─ 商品上下架 / 标签打印 / 条码管理
├─ 门店库存 / 入库 / 出库 / 盘点 / 报损
├─ 会员识别 / 会员充值 / 积分 / 优惠核销
└─ 日结班次 / 收款对账 / 员工绩效
线上商城端
├─ 微商城装修 / 商城货架 / 线上商品
├─ 线上下单 / 门店接单 / 称重确认
├─ 多退少补 / 补差支付 / 原路退款
├─ 线上会员 / 优惠券 / 营销活动
└─ 自提 / 配送 / 核销 / 评价
3.2 核心闭环
|------------|---------------------------------------------------------------|-------------------------------|
| 闭环 | 流程 | 关键数据 |
| 线下收银闭环 | 商品选择/扫码/称重 -> 会员识别 -> 优惠计算 -> 收款 -> 打印小票 -> 扣库存 -> 资金对账 | 销售订单、订单明细、支付流水、库存流水、会员积分/余额流水 |
| 线上下单线下称重闭环 | 微商城下单 -> 门店接单 -> 实际称重 -> 重算金额 -> 多退少补 -> 核销/自提/配送 -> 完成 | 线上订单、称重确认单、补差/退款单、核销码、库存流水 |
| 会员营销闭环 | 会员注册 -> 充值/积分 -> 领取优惠券 -> 消费核销 -> 复购分析 -> 精准营销 | 会员档案、等级、余额、积分、优惠券、营销效果 |
| 门店库存闭环 | 采购/配货入库 -> 销售出库 -> 报损/盘点 -> 库存调整 -> 库存预警 | 库存、库存流水、盘点、报损、配货记录 |
| 连锁采配闭环 | 门店要货 -> 总部汇总 -> 采购/调拨 -> 分店配货 -> 门店收货 -> 销售反馈 | 要货单、采购单、配货单、收货单、门店销售数据 |
| 经营分析闭环 | 订单/支付/会员/库存/营销数据 -> 日报/月报 -> 商品/门店/员工分析 -> 经营决策 | 日汇总、门店排行、商品动销、会员复购、资金差异 |
4. 功能模块开发方案
4.1 门店收银模块
|---------|-----------------------------------------|------------------------------|
| 功能项 | 开发说明 | 关键规则 |
| 快速收银 | 支持扫码枪、触屏选品、分类选品、常用商品、称重商品快速录入。 | 收银页必须低延迟,商品价格、库存、活动规则建议本地缓存。 |
| 称重收银 | 对接电子秤/标签秤,支持毛重、皮重、净重、单价、金额;支持临时改价和手动重量。 | 重量、单价、金额要保留称重原始值与人工修改值。 |
| 会员识别 | 支持手机号、会员码、扫码、刷脸/外设扩展识别会员。 | 会员权益要在订单试算时统一返回,不在前端散算。 |
| 优惠试算 | 支持会员价、折扣、优惠券、满减、限时折扣、积分抵扣。 | 优惠应有优先级、互斥、叠加规则和快照。 |
| 支付收款 | 支持现金、微信、支付宝、余额、组合支付、挂账/待支付。 | 每笔支付写支付流水;失败、撤销、退款需可追溯。 |
| 挂单取单 | 支持未结算购物车临时保存,按收银员/设备/会员区分。 | 支付成功后挂单必须自动释放,超时挂单可清理。 |
| 小票打印 | 支持收银小票、退款小票、充值小票、核销小票、标签。 | 模板可配置,打印记录要留痕。 |
| 班次日结 | 收银员开班、交班、现金盘点、支付渠道对账、差异处理。 | 班次结束后原则上不可修改本班次订单,改动需审批。 |
4.2 商品与价格模块
|---------|-------------------------------|---------------------------|
| 功能项 | 开发说明 | 关键规则 |
| 商品档案 | 管理门店商品名称、分类、图片、规格、单位、条码、销售状态。 | 门店商品可来源于总部下发,也可门店自建。 |
| 多单位与称重 | 支持斤、公斤、个、盒、箱等单位;称重商品按重量计价。 | 称重单位换算要与电子秤单位一致,避免斤/公斤差异。 |
| 商品上下架 | 门店可控制商品是否线上售卖、是否收银可售、是否称重。 | 线下可售与线上上架分开控制。 |
| 售价管理 | 普通价、会员价、线上价、门店价、活动价。 | 价格变更要写价格日志,可按门店生效。 |
| 条码管理 | 一品多码、散称标签码、供应商码、内部码。 | 标签码可解析重量/价格时,应记录解析规则。 |
| 商品素材库 | 图片、海报、详情图、视频,供微商城装修和商品详情使用。 | 素材权限按机构/门店隔离。 |
4.3 订单与售后模块
|---------|--------------------------------|-----------------------------------|
| 功能项 | 开发说明 | 关键规则 |
| 线下订单 | 收银台生成订单和明细,保存商品、价格、优惠、支付、会员快照。 | 订单明细必须保存成交时商品名称、单位、价格,防止商品改名影响历史。 |
| 线上订单 | 微商城订单进入门店待接单/待称重/待核销流程。 | 线上订单在实际称重后才能最终确认称重商品金额。 |
| 退款退货 | 支持整单退、部分退、仅退款、退货退款、原路退、余额退。 | 退款要反向处理库存、积分、优惠券和支付流水。 |
| 订单核销 | 自提码/二维码/条码核销,核销后完成订单。 | 核销人、核销门店、核销时间必须留痕。 |
| 订单评价 | 线上订单完成后支持评价与售后反馈。 | 差评/售后应触发消息提醒。 |
4.4 会员体系模块
|---------|---------------------------|--------------------------|
| 功能项 | 开发说明 | 关键规则 |
| 会员档案 | 会员手机号、昵称、生日、注册门店、归属门店、标签。 | 手机号唯一,跨门店会员体系需支持统一/独立配置。 |
| 会员等级 | 按成长值、消费金额、充值金额升级。 | 等级权益包括折扣、积分倍率、专属券。 |
| 会员余额 | 充值、本金、赠送金额、余额支付、退款入账。 | 本金和赠送金额建议分账本,赠送金额退款规则独立。 |
| 积分体系 | 消费得积分、积分抵扣、积分兑换。 | 积分来源、有效期、冻结/解冻需要流水。 |
| 会员码 | 会员码用于线下识别、线上核销、储值支付。 | 会员码需要动态刷新或风控限制,避免截图盗刷。 |
| 会员标签 | 按购买偏好、客单价、活跃度、品类偏好打标签。 | 用于精准营销和复购提醒。 |
4.5 营销活动模块
|----------|----------------------------|--------------------|
| 功能项 | 开发说明 | 关键规则 |
| 优惠券 | 满减券、折扣券、商品券、新人券、生日券、储值赠送券。 | 支持线上/线下/全渠道可用范围。 |
| 满减满送 | 订单满额减、满额送商品、满件折。 | 试算时要生成优惠明细快照。 |
| 限时折扣 | 商品限时价、会员专属价。 | 活动价与会员价叠加规则需配置。 |
| 秒杀/拼团/砍价 | 线上流量型活动,增强私域裂变。 | 库存锁定和超卖控制是核心。 |
| 直播/接龙 | 直播卖货、群接龙订单汇总。 | 接龙订单后续可能进入采配和称重确认。 |
| 营销效果 | 统计发券、领券、用券、转化、销售额、复购。 | 活动必须有数据回收闭环。 |
4.6 微商城与线上线下打通模块
|---------|---------------------------|-----------------------|
| 功能项 | 开发说明 | 关键规则 |
| 商城装修 | 模板、Banner、图标、分类、商品货架、素材库。 | 门店可配置,连锁总部可统一下发。 |
| 线上商品 | 可复制线下商品库,也可独立创建线上商品。 | 线上商品与线下商品需建立映射,支持线上价。 |
| 线上下单 | 会员在小程序选择门店、商品、配送/自提方式下单。 | 下单时校验门店营业状态、库存、配送范围。 |
| 线下称重 | 称重商品线上下单后,门店实际称重确认。 | 确认后重算金额,形成称重调整记录。 |
| 多退少补 | 实收与预付差异支持补差支付或原路退款。 | 差额单必须绑定原订单和支付单。 |
| 会员同步 | 线上线下会员、余额、积分、优惠券统一。 | 不同门店会员体系配置要影响权益是否可用。 |
4.7 门店库存与采配模块
|---------|------------------------------|----------------------|
| 功能项 | 开发说明 | 关键规则 |
| 门店库存 | 记录可售库存、锁定库存、在途库存、库存金额。 | 收银扣库存、线上订单锁库存、退货回库存。 |
| 入库/出库 | 采购入库、总部配货入库、销售出库、报损出库、调整出入库。 | 库存流水必须记录来源单据。 |
| 盘点 | 按商品/分类盘点,生成盘盈盘亏。 | 盘点审核后写库存流水,不允许重复审核。 |
| 报损 | 坏果、过期、损耗、试吃等报损。 | 报损可影响成本和毛利分析。 |
| 门店要货 | 门店向总部/采购中心提交要货。 | 可按销量预测、库存预警自动建议要货。 |
| 总部配货 | 总部汇总门店要货,生成采购或配货任务。 | 配货差异需门店确认。 |
4.8 连锁总部管理模块
|---------|------------------------|---------------------|
| 功能项 | 开发说明 | 关键规则 |
| 组织与门店 | 区域、门店、加盟/直营、营业时间、收款账户。 | 数据权限按组织树和门店授权。 |
| 商品下发 | 总部统一商品、分类、价格,门店接收。 | 支持总部强控和门店可改两种策略。 |
| 营销下发 | 总部配置全门店/区域/指定门店活动。 | 活动生效范围和时间要清晰。 |
| 会员体系 | 支持统一会员体系和门店独立会员体系。 | 余额、积分、优惠券是否跨店用需配置。 |
| 报表汇总 | 门店销售排行、员工绩效、商品动销、资金对账。 | 报表按日汇总,避免实时查明细拖慢系统。 |
4.9 数据分析与资金对账模块
|---------|-------------------------|---------------------|
| 功能项 | 开发说明 | 关键规则 |
| 经营概况 | 销售额、订单数、客单价、毛利、退款、会员新增。 | 支持今日、昨日、本周、本月、同比环比。 |
| 商品售卖 | 销量、销售额、毛利、动销率、滞销、报损。 | 称重商品需按重量和金额双指标分析。 |
| 会员分析 | 充值、消费、复购、客单价、沉睡会员。 | 可为精准营销提供标签。 |
| 资金对账 | 现金、微信、支付宝、余额、退款、差异。 | 按班次、门店、支付渠道对账。 |
| 营销分析 | 活动拉新、转化、券核销、活动销售额。 | 需记录活动来源和优惠分摊。 |
5. 核心业务流程设计
|----------|------------------------------------------------------------------------------------|--------------------------------------|
| 流程 | 步骤 | 关键控制点 |
| 线下称重收银 | 1. 选择/扫码商品;2. 读取电子秤重量;3. 识别会员;4. 订单试算;5. 选择支付;6. 支付成功;7. 打印小票;8. 扣库存;9. 会员积分/余额流水。 | 称重原始数据留存;优惠快照;支付幂等;库存扣减幂等;小票重打留痕。 |
| 线上下单线下称重 | 1. 会员选择门店;2. 下单预付;3. 门店接单;4. 拣货称重;5. 实际金额确认;6. 多退少补;7. 自提/配送核销;8. 完成订单。 | 预估金额与实际金额分开;差额单独流水;补差未付不得完成;退款失败需重试。 |
| 会员充值消费 | 1. 会员充值;2. 记录本金/赠送;3. 余额支付;4. 消费扣减;5. 退款回退;6. 对账。 | 本金赠送分账;支付密码/验证码;充值撤销规则;余额流水不可物理删除。 |
| 门店盘点 | 1. 创建盘点单;2. 录入账面数;3. 实盘;4. 差异确认;5. 审核;6. 生成库存调整流水。 | 盘点期间可锁定商品库存;审核幂等;差异原因必填。 |
| 营销活动核销 | 1. 配置活动;2. 发布;3. 用户领取/参与;4. 订单试算;5. 支付后核销;6. 统计效果。 | 活动规则版本化;核销后不可重复使用;退款后按规则恢复或作废。 |
| 班次交接 | 1. 收银员开班;2. 收款;3. 交班盘点现金;4. 系统汇总渠道;5. 差异处理;6. 财务审核。 | 交班前未结订单提醒;差异备注;审核后锁定。 |
5.1 线上下单线下称重金额模型
预估金额 = 预估重量 × 线上单价 - 下单优惠
实际金额 = 实际重量 × 实际成交单价 - 实际优惠
差额金额 = 实际金额 - 已支付金额
差额金额 > 0:生成补差支付单,会员补付后订单可完成
差额金额 = 0:订单直接进入待核销/待配送/已完成
差额金额 < 0:生成退款单,支持原路退或余额退
系统必须保存:预估重量、实际重量、预估金额、实际金额、差额金额、称重人、称重设备、称重时间。
6. 状态机与关键规则
6.1 销售订单状态
|---------|----------|-----------------|---------------------|
| 状态值 | 状态名称 | 说明 | 可流转到 |
| 0 | 待支付 | 订单已创建但未支付 | 已支付、已取消 |
| 10 | 已支付 | 支付成功,等待履约或完成 | 待称重、待核销、待配送、已完成、退款中 |
| 20 | 待称重 | 线上称重商品等待门店实际称重 | 待补差、待退款、待核销、已取消 |
| 30 | 待补差 | 实际金额大于已付金额,需要补差 | 待核销、待配送、已取消 |
| 40 | 待退款 | 实际金额小于已付金额,需要退款 | 待核销、待配送、已完成 |
| 50 | 待核销 | 自提订单等待核销 | 已完成、退款中 |
| 60 | 待配送 | 配送订单等待配送 | 配送中、已完成、退款中 |
| 70 | 已完成 | 订单履约完成 | 退款中 |
| 80 | 退款中 | 订单发生退款申请 | 已退款、已完成 |
| 90 | 已退款 | 订单已全额退款 | 无 |
| 99 | 已取消 | 订单未支付或履约前取消 | 无 |
6.2 班次状态
|---------|----------|---------------|-----------------------|
| 状态值 | 状态名称 | 说明 | 规则 |
| 0 | 未开班 | 收银员未开始班次 | 不能收银 |
| 10 | 进行中 | 已开班,可收银 | 一个设备/收银员同一时间只能一个进行中班次 |
| 20 | 待审核 | 已交班,等待财务/店长审核 | 允许补充差异说明 |
| 30 | 已审核 | 班次对账完成 | 订单与收款数据锁定 |
| 90 | 已作废 | 误开班或异常作废 | 需管理员权限 |
6.3 库存单据状态
|---------|----------|---------|----------------|
| 状态值 | 状态名称 | 说明 | 规则 |
| 0 | 草稿 | 单据可编辑 | 不影响库存 |
| 10 | 待审核 | 提交审核 | 冻结编辑 |
| 20 | 已审核 | 库存流水已生成 | 不可重复审核 |
| 30 | 已反审核 | 库存已回滚 | 必须校验后续业务是否允许回滚 |
| 90 | 已作废 | 单据作废 | 不影响库存 |
6.4 关键规则清单
|----------|----------------------------------|--------------------------------------------------|
| 规则类型 | 规则说明 | 开发落点 |
| 支付幂等 | 同一订单同一支付请求不能重复入账,第三方回调可能重复。 | payment_no 唯一;回调按支付单状态机处理。 |
| 库存幂等 | 订单支付成功扣库存、退款退货回库存、盘点审核调库存都必须防重复。 | source_type + source_id + source_detail_id 建唯一键。 |
| 优惠快照 | 订单优惠不能依赖活动当前配置,需要保存成交时规则和金额。 | order_promo_snapshot / order_item_promo_amount。 |
| 会员资金安全 | 余额、积分、赠送金额要流水化,不允许直接改余额。 | 账户表汇总 + flow表流水 + 幂等业务单号。 |
| 称重差额 | 预估金额与实际金额差异必须通过补差/退款单处理。 | retail_weight_adjust + retail_payment/refund。 |
| 连锁配置覆盖 | 总部配置与门店配置冲突时应按策略判断。 | config_scope:总部强控/门店可覆盖/仅门店自定义。 |
7. 数据库总体设计
命名说明:以下表结构采用 sg_retail_ 前缀,表示"森果零售通竞品分析推理版"。升鲜宝落地时可替换为 pos_、shop_goods_、ums_、store_promo_、hwms_ 或 store_inv_ 等既有前缀。
|-------------------------------|----------|------------------|
| 表名 | 中文名称 | 说明 |
| sg_retail_org | 机构/总部表 | 连锁总部或单店机构主档 |
| sg_retail_store | 门店表 | 门店基础资料、营业状态、区域信息 |
| sg_retail_store_config | 门店配置表 | 收银、库存、会员、线上营业配置 |
| sg_retail_employee | 员工表 | 门店员工、收银员、店长、运营 |
| sg_retail_role | 角色表 | 门店/总部角色 |
| sg_retail_employee_role | 员工角色表 | 员工与角色关系 |
| sg_retail_device | 设备表 | 收银台、电子秤、打印机、扫码枪 |
| sg_retail_shift | 收银班次表 | 开班、交班、对账 |
| sg_retail_shift_payment | 班次收款汇总表 | 按支付方式汇总班次金额 |
| sg_retail_goods_category | 商品分类表 | 门店商品分类 |
| sg_retail_goods | 商品SPU表 | 门店商品主档 |
| sg_retail_goods_unit | 商品销售单位表 | 销售单位、称重单位、线上单位 |
| sg_retail_goods_barcode | 商品条码表 | 一品多码、标签码 |
| sg_retail_goods_price | 商品价格表 | 门店价、会员价、线上价 |
| sg_retail_goods_price_log | 价格变更日志表 | 商品价格变化留痕 |
| sg_retail_stock | 门店库存表 | 实时库存、锁定库存 |
| sg_retail_stock_flow | 库存流水表 | 销售、退货、入库、盘点、报损 |
| sg_retail_stocktake | 盘点单主表 | 门店库存盘点 |
| sg_retail_stocktake_item | 盘点单明细表 | 商品实盘与差异 |
| sg_retail_loss | 报损单主表 | 坏果/过期/损耗 |
| sg_retail_loss_item | 报损单明细表 | 报损商品明细 |
| sg_retail_sale_order | 销售订单主表 | 线下收银/线上商城订单统一订单 |
| sg_retail_sale_order_item | 销售订单明细表 | 商品成交明细 |
| sg_retail_order_promo | 订单优惠明细表 | 优惠券/满减/折扣等分摊 |
| sg_retail_payment | 支付流水表 | 现金、微信、支付宝、余额等 |
| sg_retail_refund | 退款单表 | 订单退款/退货退款 |
| sg_retail_refund_item | 退款明细表 | 按商品部分退款 |
| sg_retail_weight_adjust | 称重调整表 | 线上下单线下称重多退少补 |
| sg_retail_member | 会员表 | 系统会员基础资料 |
| sg_retail_member_store | 会员门店关系表 | 会员在门店下的权益/归属 |
| sg_retail_member_level | 会员等级表 | 等级规则与权益 |
| sg_retail_member_account | 会员账户表 | 余额、赠送、积分汇总 |
| sg_retail_member_balance_flow | 会员余额流水表 | 充值、消费、退款 |
| sg_retail_member_points_flow | 会员积分流水表 | 积分获取/消耗 |
| sg_retail_coupon | 优惠券定义表 | 券模板 |
| sg_retail_coupon_receive | 优惠券领取表 | 会员券实例 |
| sg_retail_promo_activity | 营销活动表 | 满减、秒杀、拼团、接龙等 |
| sg_retail_promo_rule | 营销规则表 | 活动规则JSON/条件 |
| sg_retail_online_page | 微商城页面表 | 首页装修、模板 |
| sg_retail_online_goods | 线上商品货架表 | 线上商品与线下商品映射 |
| sg_retail_requisition | 门店要货单表 | 门店向总部/采购中心要货 |
| sg_retail_requisition_item | 门店要货明细表 | 要货商品明细 |
| sg_retail_distribution | 配货单主表 | 总部向门店配货 |
| sg_retail_distribution_item | 配货单明细表 | 配货商品明细 |
| sg_retail_report_daily | 经营日报表 | 门店日汇总 |
| sg_retail_goods_sale_stat | 商品销售统计表 | 商品动销日汇总 |
| sg_retail_member_stat | 会员统计表 | 会员消费/充值/复购统计 |
| sg_retail_operation_log | 操作日志表 | 关键业务操作审计 |
| sg_retail_print_template | 打印模板表 | 小票、标签、交班单模板 |
| sg_retail_media | 素材库表 | 图片、视频、海报素材 |
8. 字段级数据字典
字段类型说明:bigint 使用雪花ID或数据库自增均可;金额使用 decimal(18,2);数量/重量使用 decimal(18,4);状态使用 tinyint/int;时间使用 datetime。所有业务表建议包含 tenant_id/org_id、created_at、updated_at、deleted_flag、remark 等通用字段。
8.x sg_retail_org(机构/总部表)
|-------------------|--------------|----------|--------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| org_code | varchar(50) | UK | 机构编码 |
| org_name | varchar(100) | | 机构名称 |
| org_type | tinyint | | 1单店 2连锁总部 3加盟总部 |
| contact_name | varchar(50) | | 联系人 |
| contact_phone | varchar(30) | | 联系电话 |
| enabled_flag | tinyint | | 启用标记 |
| member_scope_type | tinyint | | 会员体系范围 1机构统一 2门店独立 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_store(门店表)
|-----------------|---------------|----------|------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_code | varchar(50) | UK | 门店编码 |
| store_name | varchar(100) | | 门店名称 |
| store_type | tinyint | | 1直营 2加盟 3合作 |
| region_id | bigint | IDX | 区域ID |
| address | varchar(255) | | 门店地址 |
| longitude | decimal(12,6) | | 经度 |
| latitude | decimal(12,6) | | 纬度 |
| business_status | tinyint | | 营业状态 1营业 2休息 3停业 |
| open_time | varchar(20) | | 营业开始时间 |
| close_time | varchar(20) | | 营业结束时间 |
| manager_id | bigint | | 店长ID |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_store_config(门店配置表)
|--------------|--------------|----------|---------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| config_key | varchar(100) | | 配置键 |
| config_value | text | | 配置值 |
| config_type | varchar(50) | | 配置类型 |
| control_mode | tinyint | | 1总部强控 2门店可覆盖 3门店自定义 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_employee(员工表)
|---------------|--------------|----------|-----------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 所属门店 |
| employee_no | varchar(50) | UK | 员工编号 |
| real_name | varchar(50) | | 姓名 |
| phone | varchar(30) | | 手机号 |
| post_type | tinyint | | 1店长 2收银员 3理货员 4财务 5运营 |
| login_name | varchar(80) | | 登录名 |
| password_hash | varchar(200) | | 密码哈希 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_role(角色表)
|-----------------|--------------|----------|-------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| role_code | varchar(50) | UK | 角色编码 |
| role_name | varchar(80) | | 角色名称 |
| scope_type | tinyint | | 1总部 2门店 3区域 |
| permission_json | json | | 菜单/按钮权限JSON |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_employee_role(员工角色表)
|--------------|--------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| employee_id | bigint | IDX | 员工ID |
| role_id | bigint | IDX | 角色ID |
| store_id | bigint | IDX | 门店ID |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_device(设备表)
|------------------|--------------|----------|-------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| device_code | varchar(80) | UK | 设备编码 |
| device_name | varchar(100) | | 设备名称 |
| device_type | tinyint | | 1收银台 2电子秤 3打印机 4扫码枪 5客显 |
| bind_employee_id | bigint | | 绑定员工 |
| device_sn | varchar(100) | | 设备序列号 |
| online_status | tinyint | | 在线状态 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_shift(收银班次表)
|-------------------|---------------|----------|-----------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| cashier_id | bigint | IDX | 收银员ID |
| device_id | bigint | | 收银设备ID |
| shift_no | varchar(60) | UK | 班次号 |
| start_time | datetime | | 开班时间 |
| end_time | datetime | | 交班时间 |
| opening_cash | decimal(18,2) | | 开班备用金 |
| closing_cash | decimal(18,2) | | 交班现金 |
| system_cash | decimal(18,2) | | 系统现金 |
| difference_amount | decimal(18,2) | | 差异金额 |
| status | tinyint | | 0未开班 10进行中 20待审核 30已审核 90作废 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_shift_payment(班次收款汇总表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| shift_id | bigint | IDX | 班次ID |
| store_id | bigint | IDX | 门店ID |
| pay_method | tinyint | | 支付方式 |
| order_count | int | | 订单数 |
| pay_amount | decimal(18,2) | | 收款金额 |
| refund_amount | decimal(18,2) | | 退款金额 |
| net_amount | decimal(18,2) | | 净收金额 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods_category(商品分类表)
|------------------|--------------|----------|--------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID,0表示总部分类 |
| parent_id | bigint | IDX | 上级分类ID |
| category_code | varchar(50) | | 分类编码 |
| category_name | varchar(100) | | 分类名称 |
| sort_no | int | | 排序 |
| icon_url | varchar(255) | | 图标 |
| online_show_flag | tinyint | | 线上展示 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods(商品SPU表)
|---------------|--------------|----------|---------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID,0表示总部商品 |
| goods_code | varchar(80) | UK | 商品编码 |
| goods_name | varchar(150) | | 商品名称 |
| category_id | bigint | IDX | 分类ID |
| brand_name | varchar(100) | | 品牌 |
| origin_place | varchar(100) | | 产地 |
| goods_type | tinyint | | 1普通 2称重 3服务 4套餐 |
| main_image | varchar(255) | | 主图 |
| sale_status | tinyint | | 销售状态 |
| online_status | tinyint | | 线上状态 |
| source_type | tinyint | | 1总部下发 2门店自建 3云商品库导入 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods_unit(商品销售单位表)
|---------------------|---------------|----------|-------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| goods_id | bigint | IDX | 商品ID |
| store_id | bigint | IDX | 门店ID |
| unit_name | varchar(30) | | 单位名称 |
| unit_type | tinyint | | 1销售单位 2称重单位 3包装单位 |
| convert_rate | decimal(18,6) | | 与基础单位换算率 |
| weight_flag | tinyint | | 是否称重单位 |
| default_flag | tinyint | | 默认单位 |
| sale_enabled_flag | tinyint | | 是否可售 |
| online_enabled_flag | tinyint | | 是否线上可售 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods_barcode(商品条码表)
|---------------|--------------|----------|-------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | IDX | 商品单位ID |
| barcode | varchar(100) | UK | 条码 |
| barcode_type | tinyint | | 1普通条码 2标签秤码 3供应商码 |
| parse_rule | varchar(200) | | 称重标签解析规则 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods_price(商品价格表)
|-----------------|---------------|----------|---------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | IDX | 单位ID |
| price_type | tinyint | | 1门店价 2会员价 3线上价 4活动价 |
| member_level_id | bigint | | 会员等级ID |
| sale_price | decimal(18,2) | | 销售价 |
| cost_price | decimal(18,2) | | 参考成本价 |
| start_time | datetime | | 生效时间 |
| end_time | datetime | | 失效时间 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods_price_log(价格变更日志表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | | 单位ID |
| old_price | decimal(18,2) | | 原价 |
| new_price | decimal(18,2) | | 新价 |
| change_reason | varchar(200) | | 变更原因 |
| operator_id | bigint | | 操作人 |
| operate_time | datetime | | 操作时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_stock(门店库存表)
|----------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | IDX | 单位ID |
| batch_no | varchar(80) | | 批次号 |
| stock_qty | decimal(18,4) | | 可用库存 |
| lock_qty | decimal(18,4) | | 锁定库存 |
| in_transit_qty | decimal(18,4) | | 在途库存 |
| stock_amount | decimal(18,2) | | 库存金额 |
| last_flow_time | datetime | | 最后变动时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_stock_flow(库存流水表)
|---------------|---------------|----------|-------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | IDX | 单位ID |
| batch_no | varchar(80) | | 批次号 |
| flow_type | tinyint | | 1入库 2出库 3锁定 4释放 5调整 |
| biz_type | tinyint | | 1销售 2退货 3采购 4盘点 5报损 6配货 |
| source_no | varchar(80) | IDX | 来源单号 |
| before_qty | decimal(18,4) | | 变动前数量 |
| change_qty | decimal(18,4) | | 变动数量 |
| after_qty | decimal(18,4) | | 变动后数量 |
| unit_cost | decimal(18,4) | | 单位成本 |
| flow_time | datetime | | 流水时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_stocktake(盘点单主表)
|-------------------|---------------|----------|--------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| stocktake_no | varchar(80) | UK | 盘点单号 |
| stocktake_type | tinyint | | 1全盘 2抽盘 3分类盘 |
| status | tinyint | | 状态 |
| plan_time | datetime | | 计划盘点时间 |
| audit_time | datetime | | 审核时间 |
| auditor_id | bigint | | 审核人 |
| difference_qty | decimal(18,4) | | 差异总数量 |
| difference_amount | decimal(18,2) | | 差异总金额 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_stocktake_item(盘点单明细表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| stocktake_id | bigint | IDX | 盘点单ID |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | | 单位ID |
| book_qty | decimal(18,4) | | 账面数量 |
| actual_qty | decimal(18,4) | | 实盘数量 |
| diff_qty | decimal(18,4) | | 差异数量 |
| diff_amount | decimal(18,2) | | 差异金额 |
| reason | varchar(200) | | 差异原因 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_loss(报损单主表)
|--------------|---------------|----------|---------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| loss_no | varchar(80) | UK | 报损单号 |
| loss_type | tinyint | | 1坏果 2过期 3试吃 4破损 5其他 |
| status | tinyint | | 状态 |
| total_qty | decimal(18,4) | | 总数量 |
| total_amount | decimal(18,2) | | 总金额 |
| audit_time | datetime | | 审核时间 |
| auditor_id | bigint | | 审核人 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_loss_item(报损单明细表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| loss_id | bigint | IDX | 报损单ID |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | | 单位ID |
| loss_qty | decimal(18,4) | | 报损数量 |
| unit_cost | decimal(18,4) | | 单位成本 |
| loss_amount | decimal(18,2) | | 报损金额 |
| reason | varchar(200) | | 报损原因 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_sale_order(销售订单主表)
|----------------------|---------------|----------|--------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| order_no | varchar(80) | UK | 订单号 |
| order_source | tinyint | | 1线下收银 2微商城 3接龙 4直播 |
| member_id | bigint | IDX | 会员ID |
| cashier_id | bigint | | 收银员ID |
| shift_id | bigint | | 班次ID |
| order_status | tinyint | | 订单状态 |
| goods_amount | decimal(18,2) | | 商品金额 |
| discount_amount | decimal(18,2) | | 优惠金额 |
| payable_amount | decimal(18,2) | | 应付金额 |
| paid_amount | decimal(18,2) | | 实付金额 |
| refund_amount | decimal(18,2) | | 退款金额 |
| weight_adjust_status | tinyint | | 称重调整状态 |
| pay_time | datetime | | 支付时间 |
| finish_time | datetime | | 完成时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_sale_order_item(销售订单明细表)
|---------------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| order_id | bigint | IDX | 订单ID |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | | 单位ID |
| goods_name_snapshot | varchar(150) | | 商品名称快照 |
| unit_name_snapshot | varchar(30) | | 单位快照 |
| sale_qty | decimal(18,4) | | 销售数量/重量 |
| origin_price | decimal(18,2) | | 原单价 |
| sale_price | decimal(18,2) | | 成交单价 |
| goods_amount | decimal(18,2) | | 商品金额 |
| discount_amount | decimal(18,2) | | 优惠分摊 |
| payable_amount | decimal(18,2) | | 应付金额 |
| cost_amount | decimal(18,2) | | 成本金额 |
| refund_qty | decimal(18,4) | | 已退数量 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_order_promo(订单优惠明细表)
|-----------------|---------------|----------|-----------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| order_id | bigint | IDX | 订单ID |
| order_item_id | bigint | IDX | 订单明细ID |
| promo_type | tinyint | | 1会员价 2优惠券 3满减 4折扣 5积分 |
| promo_id | bigint | | 活动/券ID |
| promo_name | varchar(100) | | 优惠名称 |
| discount_amount | decimal(18,2) | | 优惠金额 |
| rule_snapshot | json | | 规则快照 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_payment(支付流水表)
|----------------|---------------|----------|---------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| order_id | bigint | IDX | 订单ID |
| payment_no | varchar(80) | UK | 支付流水号 |
| pay_method | tinyint | | 1现金 2微信 3支付宝 4余额 5银行卡 6组合 |
| pay_amount | decimal(18,2) | | 支付金额 |
| pay_status | tinyint | | 0待支付 1成功 2失败 3撤销 |
| third_trade_no | varchar(120) | | 第三方交易号 |
| pay_time | datetime | | 支付时间 |
| callback_time | datetime | | 回调时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_refund(退款单表)
|---------------|---------------|----------|----------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| order_id | bigint | IDX | 原订单ID |
| refund_no | varchar(80) | UK | 退款单号 |
| refund_type | tinyint | | 1仅退款 2退货退款 3差额退款 |
| refund_amount | decimal(18,2) | | 退款金额 |
| refund_status | tinyint | | 0申请 10审核中 20已退款 30拒绝 |
| refund_method | tinyint | | 1原路退 2余额退 3现金退 |
| reason | varchar(200) | | 退款原因 |
| apply_time | datetime | | 申请时间 |
| finish_time | datetime | | 完成时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_refund_item(退款明细表)
|-------------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| refund_id | bigint | IDX | 退款单ID |
| order_item_id | bigint | IDX | 订单明细ID |
| goods_id | bigint | | 商品ID |
| refund_qty | decimal(18,4) | | 退款数量 |
| refund_amount | decimal(18,2) | | 退款金额 |
| stock_return_flag | tinyint | | 是否退回库存 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_weight_adjust(称重调整表)
|-----------------|---------------|----------|------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| order_id | bigint | IDX | 订单ID |
| adjust_no | varchar(80) | UK | 称重调整单号 |
| estimate_weight | decimal(18,4) | | 预估重量 |
| actual_weight | decimal(18,4) | | 实际重量 |
| estimate_amount | decimal(18,2) | | 预估金额 |
| actual_amount | decimal(18,2) | | 实际金额 |
| diff_amount | decimal(18,2) | | 差额金额 |
| adjust_status | tinyint | | 0待称重 10待补差 20待退款 30已完成 |
| weigher_id | bigint | | 称重人 |
| weigh_time | datetime | | 称重时间 |
| device_id | bigint | | 称重设备ID |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member(会员表)
|-------------------|--------------|----------|--------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| member_no | varchar(80) | UK | 会员编号 |
| phone | varchar(30) | UK | 手机号 |
| nickname | varchar(80) | | 昵称 |
| real_name | varchar(50) | | 姓名 |
| gender | tinyint | | 性别 |
| birthday | date | | 生日 |
| register_store_id | bigint | IDX | 注册门店 |
| register_channel | tinyint | | 1线下 2小程序 3导入 |
| member_status | tinyint | | 会员状态 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member_store(会员门店关系表)
|-----------------|--------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| member_id | bigint | IDX | 会员ID |
| store_id | bigint | IDX | 门店ID |
| member_level_id | bigint | | 会员等级 |
| open_time | datetime | | 开通时间 |
| enabled_flag | tinyint | | 是否可用 |
| benefit_scope | tinyint | | 权益范围 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member_level(会员等级表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| level_code | varchar(50) | UK | 等级编码 |
| level_name | varchar(80) | | 等级名称 |
| growth_min | int | | 成长值下限 |
| discount_rate | decimal(10,4) | | 折扣率 |
| points_rate | decimal(10,4) | | 积分倍率 |
| benefit_json | json | | 权益配置 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member_account(会员账户表)
|------------------|---------------|----------|----------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| member_id | bigint | UK | 会员ID |
| store_id | bigint | IDX | 门店ID,0表示机构统一账户 |
| balance_amount | decimal(18,2) | | 余额本金 |
| gift_amount | decimal(18,2) | | 赠送余额 |
| points_balance | int | | 积分余额 |
| frozen_amount | decimal(18,2) | | 冻结金额 |
| last_change_time | datetime | | 最后变动时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member_balance_flow(会员余额流水表)
|---------------|---------------|----------|---------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| member_id | bigint | IDX | 会员ID |
| store_id | bigint | IDX | 门店ID |
| flow_no | varchar(80) | UK | 流水号 |
| flow_type | tinyint | | 1充值 2消费 3退款 4赠送 5调整 |
| change_amount | decimal(18,2) | | 变动金额 |
| before_amount | decimal(18,2) | | 变动前余额 |
| after_amount | decimal(18,2) | | 变动后余额 |
| source_no | varchar(80) | IDX | 来源单号 |
| flow_time | datetime | | 流水时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member_points_flow(会员积分流水表)
|---------------|--------------|----------|-----------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| member_id | bigint | IDX | 会员ID |
| store_id | bigint | IDX | 门店ID |
| flow_no | varchar(80) | UK | 积分流水号 |
| flow_type | tinyint | | 1获得 2消费 3过期 4调整 |
| change_points | int | | 变动积分 |
| before_points | int | | 变动前积分 |
| after_points | int | | 变动后积分 |
| source_no | varchar(80) | IDX | 来源单号 |
| expire_time | datetime | | 积分过期时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_coupon(优惠券定义表)
|------------------|---------------|----------|------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| coupon_code | varchar(80) | UK | 优惠券编码 |
| coupon_name | varchar(100) | | 优惠券名称 |
| coupon_type | tinyint | | 1满减 2折扣 3商品券 4新人券 5生日券 |
| use_scope | tinyint | | 1全场 2分类 3商品 4门店 |
| threshold_amount | decimal(18,2) | | 使用门槛 |
| discount_amount | decimal(18,2) | | 优惠金额 |
| discount_rate | decimal(10,4) | | 折扣率 |
| start_time | datetime | | 有效开始 |
| end_time | datetime | | 有效结束 |
| total_qty | int | | 发行数量 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_coupon_receive(优惠券领取表)
|---------------|--------------|----------|---------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| coupon_id | bigint | IDX | 优惠券ID |
| member_id | bigint | IDX | 会员ID |
| store_id | bigint | IDX | 门店ID |
| receive_no | varchar(80) | UK | 券实例编号 |
| coupon_status | tinyint | | 0未使用 1已使用 2已过期 3已作废 |
| receive_time | datetime | | 领取时间 |
| use_time | datetime | | 使用时间 |
| order_id | bigint | | 使用订单ID |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_promo_activity(营销活动表)
|-----------------|--------------|----------|-------------------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| activity_code | varchar(80) | UK | 活动编码 |
| activity_name | varchar(100) | | 活动名称 |
| activity_type | tinyint | | 1满减 2限时折扣 3秒杀 4拼团 5砍价 6直播 7接龙 |
| scope_type | tinyint | | 1全机构 2指定门店 3指定商品 |
| start_time | datetime | | 开始时间 |
| end_time | datetime | | 结束时间 |
| activity_status | tinyint | | 状态 |
| priority | int | | 优先级 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_promo_rule(营销规则表)
|--------------|--------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| activity_id | bigint | IDX | 活动ID |
| rule_type | varchar(50) | | 规则类型 |
| rule_json | json | | 规则内容JSON |
| mutex_json | json | | 互斥配置 |
| stack_json | json | | 叠加配置 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_online_page(微商城页面表)
|----------------|--------------|----------|---------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| page_code | varchar(80) | | 页面编码 |
| page_name | varchar(100) | | 页面名称 |
| page_type | tinyint | | 1首页 2专题 3自定义页 |
| template_id | bigint | | 模板ID |
| layout_json | json | | 装修布局JSON |
| publish_status | tinyint | | 发布状态 |
| publish_time | datetime | | 发布时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_online_goods(线上商品货架表)
|-----------------|---------------|----------|--------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 线下商品ID |
| goods_unit_id | bigint | | 商品单位ID |
| online_title | varchar(150) | | 线上标题 |
| online_price | decimal(18,2) | | 线上售价 |
| stock_show_flag | tinyint | | 是否显示库存 |
| delivery_type | tinyint | | 1自提 2配送 3都支持 |
| online_status | tinyint | | 上架状态 |
| sort_no | int | | 排序 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_requisition(门店要货单表)
|--------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 要货门店 |
| req_no | varchar(80) | UK | 要货单号 |
| req_date | date | | 要货日期 |
| status | tinyint | | 状态 |
| submitter_id | bigint | | 提交人 |
| total_qty | decimal(18,4) | | 总数量 |
| audit_time | datetime | | 审核时间 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_requisition_item(门店要货明细表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| req_id | bigint | IDX | 要货单ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | | 单位ID |
| req_qty | decimal(18,4) | | 要货数量 |
| approved_qty | decimal(18,4) | | 审批数量 |
| remark | varchar(500) | | 备注 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_distribution(配货单主表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| from_store_id | bigint | IDX | 发货门店/仓 |
| to_store_id | bigint | IDX | 收货门店 |
| dist_no | varchar(80) | UK | 配货单号 |
| source_req_id | bigint | | 来源要货单 |
| status | tinyint | | 状态 |
| ship_time | datetime | | 发货时间 |
| receive_time | datetime | | 收货时间 |
| total_qty | decimal(18,4) | | 总数量 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_distribution_item(配货单明细表)
|---------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| dist_id | bigint | IDX | 配货单ID |
| goods_id | bigint | IDX | 商品ID |
| goods_unit_id | bigint | | 单位ID |
| ship_qty | decimal(18,4) | | 发货数量 |
| receive_qty | decimal(18,4) | | 收货数量 |
| diff_qty | decimal(18,4) | | 差异数量 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_report_daily(经营日报表)
|------------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| report_date | date | IDX | 报表日期 |
| order_count | int | | 订单数 |
| sale_amount | decimal(18,2) | | 销售额 |
| refund_amount | decimal(18,2) | | 退款额 |
| net_amount | decimal(18,2) | | 净销售额 |
| gross_profit | decimal(18,2) | | 毛利 |
| new_member_count | int | | 新增会员 |
| recharge_amount | decimal(18,2) | | 充值金额 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_goods_sale_stat(商品销售统计表)
|--------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| goods_id | bigint | IDX | 商品ID |
| stat_date | date | IDX | 统计日期 |
| sale_qty | decimal(18,4) | | 销售数量 |
| sale_amount | decimal(18,2) | | 销售额 |
| gross_profit | decimal(18,2) | | 毛利 |
| refund_qty | decimal(18,4) | | 退货数量 |
| loss_qty | decimal(18,4) | | 报损数量 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_member_stat(会员统计表)
|----------------------|---------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| member_id | bigint | IDX | 会员ID |
| stat_month | varchar(7) | IDX | 统计月份 |
| consume_count | int | | 消费次数 |
| consume_amount | decimal(18,2) | | 消费金额 |
| recharge_amount | decimal(18,2) | | 充值金额 |
| last_consume_time | datetime | | 最后消费时间 |
| favorite_category_id | bigint | | 偏好分类 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_operation_log(操作日志表)
|--------------|--------------|----------|------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| operator_id | bigint | IDX | 操作人 |
| biz_type | varchar(60) | | 业务类型 |
| biz_no | varchar(80) | IDX | 业务单号 |
| operate_type | varchar(60) | | 操作类型 |
| before_json | json | | 变更前 |
| after_json | json | | 变更后 |
| operate_time | datetime | | 操作时间 |
| ip_address | varchar(60) | | IP地址 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_print_template(打印模板表)
|------------------|--------------|----------|----------------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID,0表示通用 |
| template_code | varchar(80) | UK | 模板编码 |
| template_name | varchar(100) | | 模板名称 |
| template_type | tinyint | | 1收银小票 2退款小票 3标签 4交班单 |
| template_content | text | | 模板内容 |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
8.x sg_retail_media(素材库表)
|--------------|--------------|----------|-------------|
| 字段名 | 类型 | 键/索引 | 说明 |
| store_id | bigint | IDX | 门店ID |
| media_type | tinyint | | 1图片 2视频 3文件 |
| media_name | varchar(150) | | 素材名称 |
| media_url | varchar(255) | | 素材URL |
| biz_type | varchar(60) | | 业务类型 |
| biz_id | bigint | | 业务ID |
| enabled_flag | tinyint | | 启用标记 |
| id | bigint | PK | 主键ID |
| tenant_id | bigint | IDX | 租户ID/机构隔离 |
| org_id | bigint | IDX | 机构/总部ID |
| created_at | datetime | | 创建时间 |
| updated_at | datetime | | 更新时间 |
| deleted_flag | tinyint | | 删除标记 0否 1是 |
| remark | varchar(500) | | 备注 |
9. ER关系与数据一致性
9.1 核心ER关系说明
|--------------------------|------------------------------------------------------------------------------|---------|------------------------|
| 主表 | 子表/关联表 | 关系 | 说明 |
| sg_retail_org | sg_retail_store | 1:N | 一个机构/总部下有多个门店。 |
| sg_retail_store | sg_retail_employee / sg_retail_device / sg_retail_shift | 1:N | 门店拥有员工、设备、班次。 |
| sg_retail_goods | sg_retail_goods_unit / sg_retail_goods_barcode / sg_retail_goods_price | 1:N | 商品下有多个单位、条码和价格。 |
| sg_retail_goods_unit | sg_retail_stock | 1:N | 按门店+商品+单位维护库存。 |
| sg_retail_sale_order | sg_retail_sale_order_item / sg_retail_payment / sg_retail_order_promo | 1:N | 订单对应明细、支付和优惠分摊。 |
| sg_retail_sale_order | sg_retail_refund / sg_retail_weight_adjust | 1:N或1:1 | 订单可有退款单;线上称重订单有称重调整记录。 |
| sg_retail_member | sg_retail_member_store / sg_retail_member_account / sg_retail_coupon_receive | 1:N | 会员与门店权益、账户和券实例关联。 |
| sg_retail_promo_activity | sg_retail_promo_rule | 1:N | 一个活动可有多个规则和互斥配置。 |
| sg_retail_requisition | sg_retail_requisition_item / sg_retail_distribution | 1:N | 门店要货单生成配货单。 |
9.2 一致性校验
|-----------|--------------------------------------|--------------------|
| 一致性主题 | 校验逻辑 | 异常处理 |
| 订单-支付一致 | 订单 paid_amount = 成功支付流水合计 - 成功退款合计。 | 不一致进入资金对账异常表或班次差异。 |
| 订单-库存一致 | 已支付/已完成订单必须存在销售出库库存流水;退款退货应存在反向流水。 | 补写流水前必须校验幂等键。 |
| 会员账户一致 | 会员账户余额 = 余额流水累计结果;积分同理。 | 禁止直接改账户汇总,必须经流水调整。 |
| 称重差额一致 | 差额金额 = 实际金额 - 已付金额;补差/退款金额必须等于差额绝对值。 | 差额未结清订单不得完成。 |
| 班次资金一致 | 班次收款汇总 = 班次内支付流水按支付方式汇总。 | 差异需交班备注和店长/财务审核。 |
10. 接口开发清单
|--------|----------|------------------------------------------|-------------------------|--------------------------|-------------------|
| 模块 | 接口名称 | 方法/路径建议 | 入参主体 | 返回主体 | 说明 |
| 收银 | 收银台商品搜索 | GET /retail/cashier/goods/search | keyword, storeId | 商品列表 | 支持条码、名称、拼音、分类。 |
| 收银 | 订单试算 | POST /retail/cashier/order/calculate | ReqRetailOrderCalculate | RespRetailOrderCalculate | 统一计算会员价、优惠、积分、库存。 |
| 收银 | 提交收银订单 | POST /retail/cashier/order/submit | ReqRetailOrderSubmit | RespRetailOrderSubmit | 创建订单并发起支付/现金收款。 |
| 收银 | 挂单保存 | POST /retail/cashier/hold/save | ReqRetailHoldSave | RespRetailHold | 保存临时购物车。 |
| 收银 | 取单 | GET /retail/cashier/hold/list | storeId,cashierId | 挂单列表 | 按收银员和设备过滤。 |
| 称重 | 上传称重数据 | POST /retail/weight/record | ReqRetailWeightRecord | RespWeightRecord | 电子秤或手动称重。 |
| 订单 | 订单列表 | GET /retail/order/page | ReqRetailOrderPage | RespPageRetailOrder | 线下/线上订单统一查询。 |
| 订单 | 订单详情 | GET /retail/order/detail/{id} | id | RespRetailOrderDetail | 订单、明细、支付、优惠、退款。 |
| 退款 | 申请退款 | POST /retail/refund/apply | ReqRetailRefundApply | RespRetailRefund | 支持整单/部分退款。 |
| 支付 | 支付回调 | POST /retail/payment/callback | 第三方回调 | 成功/失败 | 幂等处理。 |
| 会员 | 会员注册 | POST /retail/member/register | ReqRetailMemberRegister | RespRetailMember | 手机号注册。 |
| 会员 | 会员查询 | GET /retail/member/search | phone/memberNo | RespRetailMember | 收银台快速识别。 |
| 会员 | 会员充值 | POST /retail/member/recharge | ReqMemberRecharge | RespMemberRecharge | 余额本金/赠送金额入账。 |
| 会员 | 会员余额流水 | GET /retail/member/balance/flow | memberId | 流水列表 | 账户对账。 |
| 营销 | 优惠券领取 | POST /retail/coupon/receive | ReqCouponReceive | RespCouponReceive | 线上/线下领券。 |
| 营销 | 活动试算 | POST /retail/promo/calculate | ReqPromoCalculate | RespPromoCalculate | 供订单试算调用。 |
| 商城 | 商城首页 | GET /retail/online/home | storeId,memberId | RespOnlineHome | Banner、分类、货架、活动。 |
| 商城 | 线上下单 | POST /retail/online/order/submit | ReqOnlineOrderSubmit | RespOnlineOrderSubmit | 预估金额订单。 |
| 商城 | 称重确认 | POST /retail/online/order/weight-confirm | ReqWeightConfirm | RespWeightAdjust | 实际称重和多退少补。 |
| 商城 | 核销订单 | POST /retail/online/order/verify | ReqOrderVerify | RespOrderVerify | 自提核销。 |
| 库存 | 库存查询 | GET /retail/stock/page | ReqRetailStockPage | RespPageRetailStock | 门店实时库存。 |
| 库存 | 盘点提交 | POST /retail/stocktake/submit | ReqStocktakeSubmit | RespStocktake | 生成盘点单。 |
| 库存 | 报损审核 | POST /retail/loss/audit | ReqLossAudit | RespLoss | 审核写库存流水。 |
| 采配 | 门店要货提交 | POST /retail/requisition/submit | ReqRequisitionSubmit | RespRequisition | 门店要货。 |
| 采配 | 配货发货 | POST /retail/distribution/ship | ReqDistributionShip | RespDistribution | 总部配货发货。 |
| 采配 | 门店收货 | POST /retail/distribution/receive | ReqDistributionReceive | RespDistribution | 确认到货差异。 |
| 报表 | 经营日报 | GET /retail/report/daily | storeId,date | RespRetailDailyReport | 经营概况。 |
| 报表 | 资金对账 | GET /retail/report/payment | storeId,date | RespPaymentReport | 按渠道汇总。 |
11. 后台菜单与页面建议
|----------|----------|------------------------|--------------------|
| 一级菜单 | 二级菜单 | 页面/功能 | 说明 |
| 收银中心 | 收银台 | cashier.vue | 快速收银、称重收银、会员识别、支付。 |
| 收银中心 | 订单管理 | retail-order.vue | 线下/线上订单查询、详情、退款。 |
| 收银中心 | 班次交接 | retail-shift.vue | 开班、交班、资金对账。 |
| 商品中心 | 商品管理 | retail-goods.vue | 门店商品、分类、条码、单位。 |
| 商品中心 | 价格管理 | retail-price.vue | 门店价、线上价、会员价、价格日志。 |
| 商品中心 | 标签打印 | retail-label-print.vue | 标签秤码、小票标签。 |
| 会员中心 | 会员管理 | retail-member.vue | 会员档案、等级、标签。 |
| 会员中心 | 充值管理 | member-recharge.vue | 充值、余额、赠送、流水。 |
| 会员中心 | 积分管理 | member-points.vue | 积分流水、积分兑换。 |
| 营销中心 | 优惠券 | retail-coupon.vue | 券模板、发放、领取、核销。 |
| 营销中心 | 营销活动 | retail-promo.vue | 满减、秒杀、拼团、接龙、直播。 |
| 微商城 | 商城装修 | online-page.vue | 首页、模板、Banner、素材。 |
| 微商城 | 线上商品 | online-goods.vue | 商城货架、线上价、配送/自提。 |
| 微商城 | 线上订单 | online-order.vue | 接单、称重、补差、核销。 |
| 库存中心 | 实时库存 | retail-stock.vue | 门店库存、库存流水。 |
| 库存中心 | 盘点管理 | stocktake.vue | 盘点单、审核、差异。 |
| 库存中心 | 报损管理 | loss.vue | 报损、审核、库存扣减。 |
| 采配中心 | 门店要货 | requisition.vue | 门店要货申请。 |
| 采配中心 | 总部配货 | distribution.vue | 配货、发货、收货差异。 |
| 连锁管理 | 门店管理 | store.vue | 门店、区域、营业配置。 |
| 连锁管理 | 员工权限 | employee-role.vue | 员工、角色、权限。 |
| 数据中心 | 经营日报 | report-daily.vue | 销售、订单、会员、毛利。 |
| 数据中心 | 资金对账 | report-payment.vue | 支付渠道、班次、差异。 |
| 数据中心 | 商品分析 | report-goods.vue | 动销、滞销、报损、毛利。 |
| 设置中心 | 设备管理 | device.vue | 收银台、电子秤、打印机。 |
| 设置中心 | 打印模板 | print-template.vue | 小票、标签、交班单模板。 |
12. 升鲜宝对标落地建议
12.1 与升鲜宝现有业务域映射
|-------------|---------------------------|-------------------------------------------------------------------------------|
| 森果零售通能力 | 升鲜宝建议落地业务域/表前缀 | 落地说明 |
| 门店称重收银 | pos_ + mall_shop_order | POS交易、支付、退款、班次、打印;线上订单可继续使用 mall_shop_order。 |
| 门店商品 | shop_goods_ | 门店商品前缀建议使用 shop_goods、shop_goods_unit、shop_goods_category、shop_goods_barcode。 |
| 门店库存 | hwms_ / store_inv_ | 当前口径门店库存主链路使用 hwms_;后续可平滑到 store_inv_。 |
| 会员体系 | ums_ | 会员域继续使用 ums_ 前缀,不改为 member_。 |
| 门店营销 | store_promo_ | 优惠券、满减、限时折扣、会员价、新人券、生日券等。 |
| 微商城装修 | mall_ / cms_ / shop装修相关表 | 门店商城 Banner、金刚区、分类、页面装修、素材库。 |
| 采配中心 | pur_ + hwms_ + shop/order | 门店要货、总部配货、采购入库。 |
| 数据报表 | report_ / stats_ | 经营日报、商品动销、会员复购、资金对账建议异步汇总。 |
12.2 升鲜宝优先落地方向
- 第一阶段:收银闭环。实现快速收银、称重收银、会员识别、支付、小票、退款、班次交接。
- 第二阶段:门店商品与库存。实现 shop_goods、hwms/store_inv 实时库存、盘点、报损、库存流水。
- 第三阶段:会员营销。打通 ums 会员、余额、积分、优惠券、会员价、储值赠送。
- 第四阶段:门店会员商城。实现线上下单、线下称重、多退少补、门店核销、自提/配送。
- 第五阶段:连锁与采配。实现多门店统一/独立会员体系、总部商品/价格/活动下发、门店要货和总部配货。
- 第六阶段:经营分析。实现门店日报、资金对账、商品动销、会员复购、营销效果分析。
12.3 关键技术建议
- 后端建议沿用 Spring Boot + MyBatis-Plus,服务层保持升鲜宝既有 controller/service/serviceImpl/dao/entity/xml 分层。
- 收银台前端要支持离线缓存商品、会员、价格、活动基础数据;网络恢复后同步订单和支付状态。
- 支付、库存、会员余额、积分必须用幂等业务单号和流水表,避免重复扣款、重复扣库存。
- 称重商品金额不要只保存最终金额,要保存预估重量、实际重量、称重设备、称重人、称重时间。
- 门店会员商城的线上商品和门店商品必须建立映射,会员权益和库存扣减必须回到门店维度。
- 报表建议按日异步汇总,避免经营看板直接大范围扫描订单明细。
13. 实施优先级与研发注意事项
|---------|-----------|--------------------------|-------------------|
| 阶段 | 目标 | 核心交付物 | 注意事项 |
| P0 基础准备 | 基础数据与权限 | 门店、员工、设备、商品、分类、价格、会员基础表 | 先统一门店维度和商品最小销售粒度。 |
| P1 收银闭环 | 线下门店能完整收银 | 收银台、订单、支付、小票、退款、班次 | 支付和库存幂等是最重要风险。 |
| P2 库存闭环 | 门店库存可查可控 | 库存、流水、盘点、报损、入库、出库 | 销售扣库存和退货回库存必须闭环。 |
| P3 会员营销 | 提升复购 | 会员等级、余额、积分、优惠券、满减 | 账户资金流水必须可审计。 |
| P4 微商城 | 线上线下一体化 | 商城装修、线上商品、线上订单、称重确认、多退少补 | 称重差额支付/退款要流程化。 |
| P5 连锁采配 | 多门店扩张 | 总部配置、商品下发、门店要货、总部配货 | 总部强控和门店覆盖策略要提前设计。 |
| P6 数据分析 | 经营决策 | 日报、资金对账、商品分析、会员分析、营销分析 | 异步统计和导出审计。 |
13.1 研发风险清单
|-----------|------------------|---------------------------------|
| 风险 | 表现 | 解决建议 |
| 称重单位混乱 | 斤/公斤/克换算错误导致金额错误 | 统一单位换算组件,电子秤返回单位要标准化。 |
| 优惠重复叠加 | 会员价、券、满减重复导致亏损 | 建立营销规则引擎和互斥优先级。 |
| 支付重复回调 | 订单重复入账 | payment_no + third_trade_no 幂等。 |
| 库存重复扣减 | 订单重复回调后库存负数 | 库存流水唯一幂等键。 |
| 会员余额错账 | 余额直接修改、退款重复入账 | 账户汇总只由流水归集。 |
| 线上称重差额难处理 | 预付金额与实际金额不一致 | 引入 weight_adjust 和差额支付/退款单。 |
| 连锁配置冲突 | 总部和门店价格/活动不一致 | 配置作用域与覆盖策略字段化。 |
14. 参考资料
|-----------------|--------------------------------------------------|------------------------------------------------------|
| 资料 | 链接 | 用于本文的内容 |
| 森果零售通官方页面 | https://ls.senguo.cc/lst/ | 产品定位、门店收银、微商城、线上线下打通、移动管理、数据分析、会员营销、采配系统、连锁管理。 |
| 森果零售通 App Store | https://apps.apple.com/ca/app/森果零售通/id1493885127 | 商品管理、订单管理、员工管理、店铺数据、经营概况、商品售卖、会员充值、资金对账、版本更新。 |
| 甜杏微商城官方页面 | https://ls.senguo.cc/wsc/ | 线上下单线下称重、商品库统一、会员信息同步、营销玩法通用、多退少补、接龙/分销/拼团/直播/砍价/秒杀。 |
| 森果云官网 | https://www.senguo.cc/ | 森果产品矩阵与果蔬流通数字化定位。 |