ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Spring Boot + Vue + Element UI + Redis 超市商品管理系统设计与实现(商品/库存/销售/会员一体化)

Spring Boot + Vue + Element UI + Redis 超市商品管理系统设计与实现(商品/库存/销售/会员一体化) Spring Boot Vue Element UI Redis 超市商品管理系统设计与实现商品/库存/销售/会员一体化一、前言线下门店的日常经营围绕商品和销售两条主线展开商品档案散落在 Excel 表格里、货架与仓库的库存对不上账、收银靠人工记单容易出错、会员积分停留在纸面——这些是大多数中小超市普遍存在的管理现状。商品数量一多手工台账的弊端就被放大盘库耗时、临期商品没人盯、销量全凭感觉、进货决策缺乏数据支撑。本文完整介绍一套在实践中落地过的超市商品管理系统基于 Spring Boot MyBatis-Plus Redis Vue Element UI 技术栈实现把商品档案、仓库出入库、门店收银、会员积分、员工权限五个环节搬进了同一个后台。系统采用前后端分离架构后端提供 REST 接口负责鉴权、业务校验与数据持久化前端以单页应用SPA方式渲染管理界面构建产物直接内嵌到后端服务一次启动即可访问。业务上系统覆盖进货入库 → 货架出库 → 门店收银 → 会员积分兑换的完整零售闭环仓库按供货商批次入库商品上架到门店货架收银台逐单结账并自动扣减货架库存会员消费按九折计价并累计积分积分又可兑换指定商品形成自我循环的运营体系。系统为收银员、仓库管理员、商品管理员、人事主管、系统管理员五种岗位划分了各自的工作台与数据权限适合作为 Java Web 毕业设计、课程设计的参考实现也可以作为中小门店轻量级管理系统的原型。二、技术栈介绍层次技术说明后端框架Spring Boot 2.3内嵌 Tomcat约定优于配置统一异常处理ORMMyBatis-Plus 3.5通用 CRUD 条件构造器 分页插件少写 80% 的模板 SQL数据库连接池Druid带监控的连接池慢 SQL 可观测缓存Redis登录令牌存储、登录失败冻结、商品分类缓存数据库MySQL17 张业务表InnoDB 引擎utf8 编码前端框架Vue 2 Vue Router Vuex单页应用菜单路由动态加载UI 组件库Element UI表格、表单、弹窗、上传等后台组件HTTP 通信Axios统一封装 GET/POST/JSON 请求请求头携带 token鉴权自定义拦截器 权限注解接口级权限控制方法粒度授权架构上有三点值得一提。登录态与账户安全登录成功后服务端生成 token 存入 Redis 并设置过期时间前端把 token 与员工信息写入 Cookie此后每次请求在请求头携带 token拦截器从 Redis 校验并自动续期。密码连续输错会触发账户冻结策略在冻结窗口内该账号无法登录可有效抵御暴力破解退出登录时服务端删除 Redis 中的令牌做到登录态的完整生命周期管理。权限模型采用员工—角色—菜单三表关联设计。菜单表同时承载两类职责——前端侧边栏按角色渲染可见菜单后端接口通过权限标识flag注解校验调用资格。超管拥有全部菜单销售人员只看到销售与会员模块仓库管理员只看到库存模块实现最小授权。缓存预热商品分类这类读多写少的数据通过定时任务每日缓存进 Redis查询时优先走缓存减少数据库压力。三、功能设计系统按岗位划分为七大模块共 20 余个功能页面业务流程环环相扣。1. 销售管理门店收银台销售主页购物结账、积分兑换、销售记录、兑换记录四大入口以卡片式工作台呈现购物结账添加商品进购物车、增减数量、实时计算总价选择支付方式支付宝/微信/现金/银行卡区分会员与非会员会员自动享受九折优惠并累加积分结账成功生成唯一销售单号积分兑换选择会员后系统按其现有积分筛选可兑换的积分商品确认兑换后扣减积分并生成兑换记录销售记录/兑换记录按订单号、时间范围检索历史流水2. 商品管理分类管理商品分类的创建、修改、停用分类停用不影响历史商品商品信息商品档案管理封面图上传、售价、成本价、在售数量、备注支持编号/名称/售价/分类/状态/时间多条件组合搜索提供上架、下架、退还货架操作积分商品将指定商品设置为积分兑换品并标注所需积分销量统计按商品统计销量与销售占比环形图直观呈现为进货决策提供数据参考3. 库存管理仓库管理仓库建档、仓库信息维护与停用入库明细/出库明细记录每笔出入库的商品、数量、单价、生产日期与过期日期自动标注是否过期支持按入库编号、商品名称、时间范围与状态检索异常单据可删除供货商信息供货商名称、地址、联系电话、合作描述的档案维护库存统计汇总仓库总存储量支持下钻查看单仓商品的库存分布与占比4. 会员管理会员档案手机号、积分、状态、备注的录入、修改、删除收银时报手机号即享受会员折扣与积分累计5. 人事管理部门管理部门建档与停用员工管理新建员工、完善资料、分配职务角色、重置密码6. 系统管理角色管理角色绑定菜单权限权限树勾选菜单管理目录/菜单/按钮三级维护7. 个人中心个人资料完善含头像上传、密码修改四、数据库设计数据库supermarket_manager共 17 张表围绕人、货、场、单四条主线组织核心表及关系如下表说明关键字段employee员工登录账号phone登录名、password、isAdmin、deptIdt_role / t_emp_role / t_role_menu角色 / 员工角色 / 角色菜单角色权限模型的三座桥梁t_menu菜单目录/菜单/按钮三级purl、flag、icon、componentgoods / goods_category商品 / 商品分类售价、成本价、在售数量、销量、状态t_goods_store商品-仓库库存storeId、goodsId、residueNumt_detail_store_goods出入库明细入/出类型、数量、生产日期、过期日期supplier供货商名称、地址、联系电话、合作描述t_sale_records / detail_sale_records销售单 / 销售明细订单号、支付方式、顾客类型、总金额t_member会员手机号、积分、状态exchange_point_products_records积分兑换记录会员、积分商品、消耗积分全部建表语句随项目附带并预置了演示数据商品、会员、销售流水、出入库记录均已填充导入即可看到与演示截图一致的效果。设计上有两处细节值得说明。一是订单快照销售单与销售明细分表存储销售单冗余总数量与总金额便于列表直出明细表同时保存商品名称与成交单价快照即使商品后来改名或调价历史订单依然还原真实成交现场。二是库存账实分离商品表保存货架在售数量商品-仓库关系表保存仓库结存数量出入库明细则是全部库存变动的流水账——现存量由流水推导、可随时对账临期预警也从同一张明细表派生避免了多表重复记录同一事实。五、系统演示登录页采用深绿生鲜卖场主题输入员工手机号与密码校验通过后由后端签发 token 并写入 Redis登录后进入首页工作台左侧菜单按登录角色动态渲染未授权的菜单不会出现首页横幅汇总四大业务入口商品信息页支持多条件组合搜索列表展示封面、售价、成本价、在售数量与上下架状态操作列提供修改、退还、下架销售主页是收银员的主战场购物结账、积分兑换、销售记录、兑换记录四大功能以卡片式工作台呈现销量统计页统计各商品销量与占比总销量醒目呈现为进货决策提供参考库存统计页汇总仓库总存储量并可下钻查看单仓商品库存分布入库明细记录每笔入库的商品、数量、生产日期与过期日期自动标注是否过期供货商信息页维护供货档案会员信息页管理会员积分档案支持积分兑换一键发起员工管理支持为员工分配职务、重置密码配合角色-菜单权限实现最小授权六、小结本文完成了一套基于 Spring Boot Vue Element UI Redis 的超市商品管理系统的设计与实现后端以 MyBatis-Plus 简化数据访问以 Redis 管理登录态、账户冻结与热点缓存以员工-角色-菜单模型完成接口级鉴权前端以单页应用组织 20 余个功能页面覆盖商品、库存、销售、会员、人事、系统管理完整业务链。数据库层面 17 张表通过订单快照与流水化库存设计兼顾了数据一致性、历史可追溯与列表查询效率。从工程组织看项目按 controller-service-mapper-domain 分层统一异常处理与响应封装前端 API 按业务域拆分模块整体结构清晰、贴近企业真实开发习惯。业务闭环完整入库→出库→收银→积分兑换、岗位权限分明既适合学习企业级 Java 后台的工程组织方式也适合作为毕业设计、课程设计的实践素材。如果在实现类似系统时遇到问题欢迎评论区交流。完整资源已整理上传含全部源码、数据库脚本与部署说明SpringBootVueRedis 超市商品管理系统源码商品库存销售会员一体化含演示数据如果在实现类似系统时遇到问题欢迎评论区交流。
返回列表