中小型电商与仓配团队普遍面临四个问题,本系统的功能边界正围绕它们划定:
1. **库存账实不符、易超卖**:库存以「人工记账 + Excel」维护,下单与扣减不同步,促销时高并发下单容易超卖;盘点、调拨、退库缺少流水,事后无法对账。
2. **采购与库存割裂**:采购申请、审核、到货入库、退货各自成表,入库不自动增加库存、退货不自动冲减,采购单状态靠人盯。
3. **多角色多端缺统一权限与审计**:仓管、采购员、商家、买家、客服操作同一套数据,谁改了什么、什么时候改的难以追溯;前后台、移动端各写一套接口又难以收敛。
4. **交易链路缺一致性保障**:下单后支付、发货、收货、售后退款跨多个动作,网络抖动下的重复提交、重复回调会造成重复扣库存、重复退款。
管理端(ware_web,13 个业务菜单)
运营仪表盘:销售/库存指标与图表
商品与分类:分类树、SPU/SKU 增改查、上下架、CSV 导入
供应商与采购:供应商档案、采购申请(提交/审核/驳回)、采购作业(下单、入库、退货、强制关单)
仓库库存:仓库与四级库位树、按仓库/库位查询、安全库存与预警规则
库存作业(盘点/调拨/预占):盘点提交与差异处理、库间调拨(出/入双流水)、预占查询与释放
扫码出入库:扫码枪/手工条码驱动的出入库
货主隔离:多货主维度库存与货主-仓库授权
智能补货:补货规则、建议列表、按供应商合并生成采购申请
订单与售后、报表系统、用户与权限(RBAC)
商城 PC(ware_pc,13 条用户路由 + 商家中心)
账号:注册 / 登录 / 改密,401 自动清 token 引导重登
商品:分类树、关键词 + 分类 + 价格区间 + 排序的分页搜索、详情页 SKU 选择与库存展示
交易:购物车、地址簿(省市区级联、默认地址)、下单(自动带 Idempotency-Key)、Mock 支付页、订单列表/详情/取消/确认收货
售后与客服:售后申请、退款列表与取消、客服工单、站内通知(未读角标、已读筛选)
个性化:商品收藏、浏览足迹
商家侧:入驻申请、卖家中心(商品、发货、退款处理)
移动端(warehouse_app)
以「查看为主、少量写操作」定位:首页概览、库存与货主库存、仓库与库位树、商品与条码查询、库存流水、库存预警、字典与报表、修改密码;写操作仅扫码入库/出库。支持登录态本地恢复与接口地址可配置。
库存一致性
sto_stock 采用双字段模型:quantity(实物)+ locked_quantity(预占),可用量 = 两者之差。所有变动统一走 StockMutationService.adjust(),四层防护:
幂等前置:request_id 查 sto_stock_log,命中直接返回首次结果
分布式锁:Redisson tryLock 锁 stock:lock:{warehouseId}:{locationId}:{skuId}(等待 3s / 租约 10s)
行级锁 + CAS:SELECT ... FOR UPDATE 取值,更新带条件 WHERE id=? AND quantity=? AND locked_quantity=?,影响行数 ≠ 1 即判并发冲突
约束 + 流水:拒绝 locked > quantity,写变动流水(前值/后值/请求号/操作人),低于安全库存时投递预警事件
下单链路走预占模型:reserveAll() 按 skuId 排序防死锁 → 写 sto_stock_reservation 并增加 locked_quantity → 支付 confirm() 实扣 → 取消/超时释放。另有 Redis Lua 原子扣减(GET 校验 + DECRBY + HSET 一步完成),经独立接口作为高并发加速通道
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论