威海市网站建设_网站建设公司_域名注册_seo优化
2026/1/21 21:18:53 网站建设 项目流程

前言

之前在业余时间开发过一个商城管理系统,技术栈是目前比较主流的前后端分离。前端主要使用的是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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询