【竞品与研究】森果零售通功能模块开发方案及数据库结构说明(一)---升鲜宝生鲜配送供应链管理系统源代码服务

【竞品与研究】森果零售通功能模块开发方案及数据库结构说明(一)---升鲜宝生鲜配送供应链管理系统源代码服务

|--------|------------------------------------------|
| 项目 | 内容 |
| 文档名称 | 【推理版】森果零售通功能模块开发方案及数据库结构说明 |
| 版本 | V1.0 |
| 生成日期 | 2020-03-04 |
| 适用范围 | 森果零售通竞品分析、升鲜宝门店收银/门店会员商城/门店库存/门店营销研发参考 |
| 重要说明 | 本文根据公开资料与生鲜零售业务场景进行功能和数据库推理,不代表森果真实内部设计。 |

资料依据摘要

  • 森果零售通官方页面公开描述:门店收银、微商城、线上线下打通、移动管理、数据分析、会员营销、采配系统、连锁管理等能力。
  • 森果零售通 App Store / 应用商店公开描述:商品管理、订单管理、员工管理、店铺数据、经营概况、商品售卖、会员充值、资金对账等能力。
  • 甜杏微商城公开页面:线上下单线下称重、商品库统一、会员信息同步、营销玩法通用、多退少补、接龙/分销/拼团/直播/砍价/秒杀等能力。
  • 本文数据库结构为竞品分析推理版,以 MySQL 8.0 为目标,字段命名参考 Java/Spring Boot + MyBatis-Plus 项目常用规范。

目录

    1. 产品定位与业务边界
    1. 业务角色与权限模型
    1. 总体业务架构与流程
    1. 功能模块开发方案
    1. 核心业务流程设计
    1. 状态机与关键规则
    1. 数据库总体设计
    1. 字段级数据字典
    1. ER关系与数据一致性
    1. 接口开发清单
    1. 后台菜单与页面建议
    1. 升鲜宝对标落地建议
    1. 实施优先级与研发注意事项
    1. 参考资料

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 升鲜宝优先落地方向

  1. 第一阶段:收银闭环。实现快速收银、称重收银、会员识别、支付、小票、退款、班次交接。
  2. 第二阶段:门店商品与库存。实现 shop_goods、hwms/store_inv 实时库存、盘点、报损、库存流水。
  3. 第三阶段:会员营销。打通 ums 会员、余额、积分、优惠券、会员价、储值赠送。
  4. 第四阶段:门店会员商城。实现线上下单、线下称重、多退少补、门店核销、自提/配送。
  5. 第五阶段:连锁与采配。实现多门店统一/独立会员体系、总部商品/价格/活动下发、门店要货和总部配货。
  6. 第六阶段:经营分析。实现门店日报、资金对账、商品动销、会员复购、营销效果分析。

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/ | 森果产品矩阵与果蔬流通数字化定位。 |

相关推荐
升鲜宝供应链及收银系统源代码服务3 天前
升鲜宝供应链管理系统box_周转物功能设计模块详细开发文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务
java·intellij-idea·生鲜配送源代码·升鲜宝生鲜配送源代码·后端app与手机端·b2b订货商城·客户订货系统源代码
升鲜宝供应链及收银系统源代码服务5 天前
升鲜宝 B2B 订货商城线性 --- |----- 原型图(一)---升鲜宝生鲜配送供应链管理系统源代码服务
生鲜配送源代码·升鲜宝生鲜配送源代码·后端app与手机端·b2b订货商城·客户订货系统源代码
升鲜宝供应链及收银系统源代码服务5 天前
升鲜宝云商品库功能设计与数据库表结构详细文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务
数据库·生鲜配送源代码·供应链源代码·生鲜供应链源代码·升鲜宝供应链管理系统源代码·b2b客户订货源代码
升鲜宝供应链及收银系统源代码服务12 天前
升鲜宝B2B订货商城后端开发文档(一)---升鲜宝生鲜配送供应链管理系统(源代码开发支持服务)
生鲜配送源代码·升鲜宝生鲜配送源代码·后端app与手机端·b2b订货商城·客户订货系统源代码
升鲜宝供应链及收银系统源代码服务12 天前
【研究与学习】悦厚系统商品模块功能设计与数据字典文档(一)---升鲜宝生鲜配送供应链管理系统
生鲜配送源代码·供应链源代码·生鲜供应链源代码·竞品研究与学习·生鲜配送软件系统排名
升鲜宝供应链及收银系统源代码服务12 天前
【研究与学习】易订货商品模块设计分析文档字段级数据字典 + 表关系 + 单位换算 + 价格/库存/促销链路(一)---升鲜宝生鲜配送供应链管理系统
生鲜配送源代码·供应链源代码·生鲜供应链源代码·竞品学习与研究·供应链源代码出售
升鲜宝供应链及收银系统源代码服务13 天前
【研究与学习】菜小秘后台 SaaS 租户运营控制、费用管理系统数据字典及功能设计方案详细文档(一)---升鲜宝生鲜配送供应链管理系统
生鲜配送·生鲜配送源代码·供应链源码·收银系统源代码·农批系统·分拣系统源代码
升鲜宝供应链及收银系统源代码服务16 天前
升鲜宝云仓供应链管理系统 数据库数据字典设计 (一)---升鲜宝生鲜配送供应链管理系统
java·生鲜配送源代码·供应链源代码·生鲜供应链源代码·企业erp源代码·云仓供应链管理系统
升鲜宝供应链及收银系统源代码服务1 个月前
升鲜宝后端 API 与手机端 API 开发说明(一)---升鲜宝生鲜配送供应链管理系统重构版
生鲜配送源代码·生鲜供应链管理系统·升鲜宝生鲜配送源代码·后端app与手机端