分享一个开源的商城系统:SpringBoot + Vue +Redis + MyBatis 前后端分离技术栈

前言

之前在业余时间开发过一个商城管理系统,技术栈是目前比较主流的前后端分离。前端主要使用的是Vue框架、后端是SpringBoot框架、中间件采用的是Redis、数据库采用的是Mysql、持久层框架是Mybatis。目前代码已经开源到GitHub、对初学者来说有一定的参考价值~

更多文章:更多资源

需求功能说明

基本上包括了从管理员发布商品,到用户下订单购买收货的大致流程。简化了相关的逻辑,进攻参考学习。这里大致说明一下功能:商品分类管理、商品管理、订单管理、用户浏览商品,下订单购买、查看订单状态等。后台管理多为列表,增删改查这些操作。了解掌握一个模块,大部分模块即可掌握。注意:这里的业务逻辑经过简化,不代表实际生产操作。

实现效果截图

这里截取部分页面效果,页面设计的也较为简单。

图1 首页

相关代码

/** * 查询商品 * * @param id 商品id * @return 商品 */ public Good getGoodById(Long id) { String redisKey = RedisConstants.GOOD_ID_KEY + id; //从redis中查,若有则返回 Good redisGood = redisTemplate.opsForValue().get(redisKey); if (redisGood != null) { redisTemplate.expire(redisKey, RedisConstants.GOOD_ID_TTL, TimeUnit.MINUTES); return redisGood; } //若redis中没有则去数据库查 Good dbGood = lambdaQuery().eq(Good::getIsDelete, Boolean.FALSE).eq(Good::getId, id).one(); if (dbGood != null) { //将商品信息存入redis redisTemplate.opsForValue().set(redisKey, dbGood, RedisConstants.GOOD_ID_TTL, TimeUnit.MINUTES); return dbGood; } //数据库中没有则返回异常 throw new BizException(Status.NO_RESULT, "无结果"); }

图2 商品详情

相关代码

/** * 分页查询商品 - 带查询条件 * * @param pageNum 页数 * @param pageSize 分页大学 * @param searchText 查询文本 * @param categoryId 分类id * @return 商品列表 */ public IPage<GoodVo> findPage(Integer pageNum, Integer pageSize, String searchText, Integer categoryId) { LambdaQueryWrapper<Good> query = Wrappers.<Good>lambdaQuery() //对商品名称模糊匹配 .like(StrUtil.isNotBlank(searchText), Good::getName, searchText).or() //对商品描述模糊匹配 .like(StrUtil.isNotBlank(searchText), Good::getDescription, searchText).or() //商品id查询 .eq(StrUtil.isNotBlank(searchText), Good::getId, searchText) .eq(categoryId != null, Good::getCategoryId, categoryId) .eq(Good::getIsDelete, Boolean.FALSE) .orderByDesc(Good::getId); //分页查询 IPage<Good> page = this.page(new Page<>(pageNum, pageSize), query); IPage<GoodVo> goodVoPage = page.convert(good -> { GoodVo goodVo = new GoodVo(); BeanUtil.copyProperties(good, goodVo); return goodVo; }); for (GoodVo good : goodVoPage.getRecords()) { //附上最低价格 good.setPrice(getMinPrice(good.getId())); } return goodVoPage; }

图3 商品详情列表

相关代码

/** * 分页查询商品 - 带查询条件 * * @param pageNum 页数 * @param pageSize 分页大学 * @param searchText 查询文本 * @param categoryId 分类id * @return 商品列表 */ public IPage<GoodVo> findPage(Integer pageNum, Integer pageSize, String searchText, Integer categoryId) { LambdaQueryWrapper<Good> query = Wrappers.<Good>lambdaQuery() //对商品名称模糊匹配 .like(StrUtil.isNotBlank(searchText), Good::getName, searchText).or() //对商品描述模糊匹配 .like(StrUtil.isNotBlank(searchText), Good::getDescription, searchText).or() //商品id查询 .eq(StrUtil.isNotBlank(searchText), Good::getId, searchText) .eq(categoryId != null, Good::getCategoryId, categoryId) .eq(Good::getIsDelete, Boolean.FALSE) .orderByDesc(Good::getId); //分页查询 IPage<Good> page = this.page(new Page<>(pageNum, pageSize), query); IPage<GoodVo> goodVoPage = page.convert(good -> { GoodVo goodVo = new GoodVo(); BeanUtil.copyProperties(good, goodVo); return goodVo; }); for (GoodVo good : goodVoPage.getRecords()) { //附上最低价格 good.setPrice(getMinPrice(good.getId())); } return goodVoPage; }

分享几个开源的项目(在GitHub上)

🎯 项目一:美妆商城系统

技术栈:SpringBoot + Vue + mybatis + mysql

https://github.com/zhengyuzh/meizhuangshop

🚀 项目二:智能美妆商城系统

技术栈:SpringBoot + Vue + 协同过滤算法 + 敏感词过滤 + mybatis + mysql

https://github.com/zhengyuzh/mzshop

🛍️ 项目三:通用商城系统

技术栈:前后端分离 SpringBoot + Vue + mybatis + mysql

https://github.com/zhengyuzh/mallsystem

💗 项目四:大学生心理健康管理系统

技术栈:SpringBoot + mybatis + mysql 等

https://github.com/zhengyuzh/Mental-health-management-system

📚 项目五:智能书籍借阅系统

技术栈:SpringBoot + Vue + Redis + Mybatis-plus + 微信小程序

https://github.com/zhengyuzh/Book-borrowing-system

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9大免费论文查重工具推荐,每天不限次数使用,让学术写作更轻松高效

核心工具对比速览 工具名称 查重速度 降重效果 特色功能 适用场景 aicheck 极快 重复率可降30% 专业术语保留 高重复率紧急处理 aibiye 中等 逻辑优化明显 学术表达增强 提升论文质量 askpaper 快 结构保持完整 多语言支持 外文论文降重 秒篇 极快 上下文…

7款AI论文写作神器解析:如何快速提升效率并避免论文重复问题

AI写论文工具排名&#xff1a;7大模型查重率低技巧推荐 7大AI论文工具核心对比 工具名称 核心功能 查重优化 适用场景 效率评分 AiBiye 论文全流程辅助 智能降重 从选题到定稿 ★★★★★ AiCheck 查重与降重 深度降重算法 论文修改阶段 ★★★★☆ AskPaper …

基于stm32单片机的智能灌溉系统

目录 系统概述核心硬件组成软件设计要点典型工作流程应用优势 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 基于STM32单片机的智能灌溉系统是一种利用嵌入式技术、传感器和自动控制算法实现的精准农业解决方案。该系统通过…

AI论文写作工具精选7款:高效撰写与降低重复率的实用技巧分享

AI写论文工具排名&#xff1a;7大模型查重率低技巧推荐 7大AI论文工具核心对比 工具名称 核心功能 查重优化 适用场景 效率评分 AiBiye 论文全流程辅助 智能降重 从选题到定稿 ★★★★★ AiCheck 查重与降重 深度降重算法 论文修改阶段 ★★★★☆ AskPaper 文…

基于STM32单片机的智慧病房系统

目录 STM32智慧病房系统概述核心功能模块硬件设计软件架构应用优势典型代码片段&#xff08;环境监测&#xff09; 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; STM32智慧病房系统概述 智慧病房系统基于STM32单片机设计&#xff0c…

零成本论文查重工具精选9款,支持每日无限次检测,学术写作更无忧

核心工具对比速览 工具名称 查重速度 降重效果 特色功能 适用场景 aicheck 极快 重复率可降30% 专业术语保留 高重复率紧急处理 aibiye 中等 逻辑优化明显 学术表达增强 提升论文质量 askpaper 快 结构保持完整 多语言支持 外文论文降重 秒篇 极快 上下文…

基于stm32单片机的智能充电宝系统

目录系统概述硬件设计软件设计核心功能应用场景开发工具源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 基于STM32单片机的智能充电宝系统是一种集成了电池管理、充放电控制、状态监测和用户交互功能的便携式设备。STM32作为主…

电商行业中的多维数据分析模型

电商行业中的多维数据分析模型 关键词:电商行业、多维数据分析模型、数据仓库、OLAP、数据挖掘 摘要:本文聚焦于电商行业中的多维数据分析模型。随着电商业务的迅猛发展,海量数据不断产生,如何从这些数据中提取有价值的信息以支持决策成为关键。多维数据分析模型为电商企业…

STL练习

2058: [STL训练]Whos in the Middle 题目描述 FJ is surveying his herd to find the most average cow.He wants to know how much milk this median cow gives:half of the cows give as much or more than the median; half give as much or less. Given an odd number …

学术写作必备:9大免费查重工具,每天无限次检测,提升论文质量更便捷

核心工具对比速览 工具名称 查重速度 降重效果 特色功能 适用场景 aicheck 极快 重复率可降30% 专业术语保留 高重复率紧急处理 aibiye 中等 逻辑优化明显 学术表达增强 提升论文质量 askpaper 快 结构保持完整 多语言支持 外文论文降重 秒篇 极快 上下文…

基于stm32单片机的智能安防系统

目录硬件组成核心功能软件设计典型应用场景扩展功能源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;硬件组成 STM32单片机作为主控芯片&#xff0c;通常选用STM32F1/F4系列&#xff0c;搭配传感器模块&#xff08;如红外人体感应HC-SR5…

全网最全MBA必备AI论文写作软件TOP10测评

全网最全MBA必备AI论文写作软件TOP10测评 2026年MBA论文写作工具测评&#xff1a;为何需要一份精准指南&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文写作工具逐渐成为MBA学生和研究者的重要辅助工具。然而&#xff0c;市面上的工具种类繁多&#xff0c;功能参差…

基于android的大学学校食堂点餐系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

基于android的个人健康系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

基于stm32单片机的智能拐杖系统

目录 硬件设计软件设计功能实现应用场景 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 硬件设计 STM32单片机作为主控芯片&#xff0c;通常选择STM32F103系列&#xff0c;因其性价比高且外设丰富。系统配备超声波传感器用于障碍物检…

无需付费的9款论文查重神器,24小时不限次数使用,为学术创作保驾护航

核心工具对比速览 工具名称 查重速度 降重效果 特色功能 适用场景 aicheck 极快 重复率可降30% 专业术语保留 高重复率紧急处理 aibiye 中等 逻辑优化明显 学术表达增强 提升论文质量 askpaper 快 结构保持完整 多语言支持 外文论文降重 秒篇 极快 上下文…

【AI+教育】人机协同教学研究的五大落地路径

基于技术开展人机协同教学研究与实践&#xff0c;是AI教育领域的重要方向。我们可从多个维度出发&#xff0c;探索人机协同教学研究的具体展开方式。 一、基本维度&#xff1a;围绕是否使用技术展开 使用或不使用技术、采用不同的技术组合&#xff0c;会对教学效果产生不同影…

【毕业设计】Python高校社团学生会管理系统

&#x1f49f;博主&#xff1a;程序员陈辰&#xff1a;CSDN作者、博客专家、全栈领域优质创作者 &#x1f49f;专注于计算机毕业设计&#xff0c;大数据、深度学习、Java、小程序、python、安卓等技术领域 &#x1f4f2;文章末尾获取源码数据库 &#x1f308;还有大家在毕设选题…

免费又好用的9个论文查重工具,支持每日无限检测,让学术写作事半功倍

核心工具对比速览 工具名称 查重速度 降重效果 特色功能 适用场景 aicheck 极快 重复率可降30% 专业术语保留 高重复率紧急处理 aibiye 中等 逻辑优化明显 学术表达增强 提升论文质量 askpaper 快 结构保持完整 多语言支持 外文论文降重 秒篇 极快 上下文…

电商行业的数据分析与优化策略

电商行业的数据分析与优化策略关键词&#xff1a;电商行业、数据分析、优化策略、用户行为、销售预测摘要&#xff1a;本文聚焦于电商行业的数据分析与优化策略。首先介绍了电商数据分析的背景&#xff0c;包括目的、预期读者、文档结构和相关术语。接着阐述了核心概念&#xf…