本项目为本地社区生鲜店打造一套完整的线上团购后端系统,支撑从用户浏览、下单、支付、派单到团长核销、佣金结算的全流程业务。系统覆盖用户端、团长端与管理后台三大角色,旨在解决传统生鲜零售中库存积压严重(平均损耗率约15%) 和最后一公里配送成本高(单均配送成本约3-5元) 的痛点。上线后预期帮助门店将库存周转天数从3天缩短至1.5天,单均履约成本降低60%以上(通过自提模式,成本降至0元配送,仅需团长佣金)。
核心功能:
1、商品管理,多级分类展示(水果、蔬菜、肉禽等)、关键词搜索、按销量/价格排序、库存实时同步,提升用户查找效率30%以上;
2、限时秒杀,定时场次(每日10:00/20:00,可配置)、倒计时显示、限量抢购、独立秒杀频道,刺激非高峰时段下单,单场活动可带动200%的销量峰值;
3、购物车与订单,批量加购、数量修改、库存二次校验、订单合并支付(微信支付),降低下单失败率,支付成功率提升至99.5%;
4、团长派单,系统根据用户LBS定位自动匹配最近社区团长(精度可达50米),订单成功后即时派发,派单响应<100ms,避免人工分单滞后;
5、订单核销,用户到店出示提货码,团长端扫码确认核销,核销操作<2秒,减少排队及错拿货风险;
6、用户端显示“已提货”状态;佣金结算,按订单金额比例(如5%~8%)阶梯计算,支持日结/周结,自动生成结算单并推送至团长钱包,佣金计算偏差<0.01元,结算效率提升80%。
技术难点与解决方案:
1、秒杀活动高并发,瞬时并发请求可达5000+ QPS,若处理不当会导致DB连接池耗尽、订单超卖,解决方案:使用Redis预减库存(lua脚本保证原子性);RocketMQ削峰填谷,异步创建订单;分布式锁(Redisson)防止库存超卖。实测可支撑8000 QPS平稳运行;
2、库存一致性,普通售卖+秒杀+退款退库存等多场景并发下,易出现数据不一致(误差超过5%),解决方案:引入Seata AT模式分布式事务,保证支付、扣库存、生成订单的一致性;退款时采用本地消息表+重试机制,最终一致性达成率99.99%;
3、团长佣金阶梯计算,不同团购点佣金比例不同(基础5%,月GMV超1万元部分提升至8%),月需处理超10万笔结算单,解决方案:设计规则引擎(Drools) 动态配置佣金策略;采用离线批处理(T+1模式) 对昨日订单批量计算,并通过对账任务自动核对差异,错误率低于0.01;%
4、地理位置匹配派单,用户手动选错团长或定位漂移导致派单不准(投诉率曾达3%),解决方案:基于高德地图API逆地理编码二次校准用户经纬度;建立团长辐射范围缓存(GeoHash) ,优先匹配距离≤200米的团长;若匹配失败则降级为最近可提货点排序供用户手动选择。优化后派单准确率提升至99.6%。
项目整体技术架构:
1、前后端分离:后端统一提供 RESTful API,前端使用微信小程序框架(如 Uni-app);
2、核心框架:Spring Cloud + Spring Boot + MyBatis-Plus,Maven 多模块管理;
3、数据库:MySQL 8.0(主从同步,读写分离),分库分表按订单月维度;
4、缓存:Redis(主从+哨兵),用于缓存热点商品、库存、用户 Session;
5、消息队列:RabbitMQ,处理订单超时取消、支付回调通知、团长消息推送;
6、其他组件:Lombok、Swagger/Knife4j(接口文档)、Spring Task(定时任务)、Redisson(分布式锁);
在项目中,作为后端核心开发,我主要负责以下模块的功能设计以及开发:
1、商品秒杀系统,设计并实现秒杀商品的缓存预热、Redis Lua脚本原子扣库存、异步下单、乐观锁兜底的全流程,支撑 5000 QPS 并发,超卖数量 0,接口平均耗时从 350ms 降至 45ms;
2、购物车与订单创建链路,实现购物车加购、批量下单、库存二次校验、订单生成(分布式雪花ID)、微信支付统一下单,订单创建成功率 99.6%,下单链路 TPS 达 1200,支持单日 5万+ 订单;
3、订单超时自动取消,基于 RabbitMQ 延迟消息(TTL+死信队列)实现,下单后 30 分钟未支付自动取消并回滚库存,取消准确率 100%,消息积压 < 0.01%,平均取消延迟 ≤ 2秒;
4、团长派单与订单核销,开发 LBS 匹配算法(GeoHash + 高德API),自动分配最近团长;设计提货码生成规则及扫码核销接口,派单准确率 99.6%,核销操作 < 2秒,支持日均 2000+ 核销请求;
5、库存一致性保障,设计 Redis 缓存库存与 MySQL 数据库的最终一致性方案,包含秒杀预减、正常下单扣减、退款回滚、每日对账任务,库存误差率 < 0.01%,缺货率由原来的 8% 降至 1.5%;