一、设计思路
私信获取完整代码
本篇简单的讲解一个基于SSM框架搭建的商城购物系统,可参考设计思路做毕业设计,也可以作为学校实训项目,主要分享一下业务逻辑,设计思路。
我会分享此类项目的可迭代性,可优化性,作为一个开发项目而言如何在此项目技术栈上有一个更多的提升。
本项目技术栈:SSM+AJAX+JQuery+JSP(如果纯学设计,建议后期基于Springboot以及vue开发)
运行环境:IDEA 、Tomcat、JDK1.8 、mysql8.0或者mysql5.0
- 1
- 2
- 3
本篇相关内容不讲框架代码,主要分享思想
作为一个商城购物系统,一定要有角色管理:管理员和普通用户
管理员可以在后台进行商品管理,订单管理,管理员账号管理,商城用户账号管理,以及购物车管理和推荐管理等等(可迭代)
商品分类管理:用户可以查看商品,商品有大类别和小类别,比如手机和相机属于数码类,iPhone属于手机类等。
所以数据库字段可以多设置几层分类
点击数码可以看到更多分类
如平板类,手机类,笔记本,电玩,相机等等………点击手机进入可以查看商城中手机列表
例:点击食品可以看到分类
如果蔬,特产,零食,饮料等等………数据设计分享:
id, img(图片路径),type(最大类型-如数码),typedetail(手机,平板等),info(iphone系列),name(具体的商品,如iPhoneX……),stock(库存),goodDetails(商品详情介绍),weight(权重),extends(拓展),del(是否删除字段0,1-根据实际需求自定义)
备注:
1、初学者设计很容易漏掉库存这一个字段,一定要设计,当用户购物或者下单后该库存逻辑-1
2、如上分类至少三层分类,商品的预览显示效果可以根据不同的分类进行不同的排版,增加了兼容性
个人信息页面:本页面仅供参考设计比较简单,相关输入框一定要做校验等,如密码,电话等等。当然此表按真实逻辑应该设计的更加详细。大家根据需求完善改进。
Java业务逻辑里面看看能否设计到:事务管理等相关代码,可学习迭代拓展思路
如下继续学习一下分类:书城-软件-更细分的书籍软件书籍的详情页面,可以查看价格等信息。当然这里还可以再做一层该书籍的具体详情页面,包含详情介绍等等(拓展使用)
购物车模块:购物车表设计主要是用户id和商品的id相互绑定,当用户再次登录的时候可以查看到自己购物信息订单模块:这里应该有取消订单和确认收货,管理员后台可以模仿做一个发货的按钮,用户前端做一个确认收货的按钮。点击确认收货后当前数据保存在订单表中,订单状态应该是已收货。
微信支付:对应的支付功能可以在这一版迭代实现
搜索框:这里肯定是支持模糊搜索的根据任何关键词搜索出商品信息中含有此关键词的,同时当数据量特别大的时候,我们可以考虑一下优化(代码逻辑,SQL)等推荐管理: 上述说的可配置问题,开发设计前期不一定要将页面中文写死,如下方框数据都是可以做一个数据库的表,然后我们动态的从数据库表中取出来排列呈现,这样管理员就做到了可以配置
业务相关:管理员配置可以收取推荐费,和正常的广告一样效果,商家多层盈利
管理员后端业务补充:做一个完整的系统一定要有管理端
1、商品管理:管理员实现对商品的管理,优化的点文件存储服务器就在这里可以完成
2、订单管理:管理员知道有哪些订单,方便商品发货
3、用户管理:可以查询到系统所有用户的账号,可以管理用户信息,以及管理端身份创建
4、购物车管理:可以查看所有加购物车的商品,以及具体添加商品的用户,现实中方便联系沟通
5、推荐管理:如首页或者显示出来的商品,我们可以动态配置,首先是商品权重的配置,查询出来的商品列表会放在一个list集合中,权重高的会优先展示,另外如上所说首页等链接配置成动态从数据库中获取的这样管理员可以根据市场行情决定显示顺序
未完待续………
二、优化迭代
补充1:为什么管理员要做购物车管理等 ,推荐管理等等?
备注:如果是个人做的玩的项目,仅仅学习,开发起来费劲的话可以简化为订单管理,商品管理,用户管理
业务实用:因为作为商家,可以查看到用户A和用户B目前加入购物车商品,商家可以主动推销联系售卖产品。真实场景业务实用。
这里如淘宝一样,当我们加入某个商品后往往会收到商家信息,一定程度上商品销量增多
补充2:如果作为实训项目or毕设:在技术上可以做什么增加
1、可以增加Redis缓存数据库,用线程锁相关技术实现将查询出来的数据存储在redis中减少查询数据库的压力(高并发情况)
2、文件存储服务器:目前图片存储在项目本地不利于迭代,建议搭一个文件存储服务器,将商品图片等文件进行存储(可以利用Nginx搭建一个免费的文件存储服务器实现动静分离),同时服务器的启动效率也会得到提高
学习参考:Nginx(正向代理、反向代理、负载均衡、动静分离)
3、微信支付功能:商品加入购物车后支付可以增加此功能
4、商品增加评价留言功能:这里算是需求增加,会涉及到数据库表的增加,增加一个评论表和商品id相关联
5、Echarts图表显示功能:可以给管理端增加echarts图表显示每一个商品的销量,柱状图、折线图、饼状图等等都可以拓展
6、登录拓展:用户登录增加手机验证码登录,滑块登录,数字校验等登录方式(前端后台配合)
7、爬虫技术:Java或者Python代码实现,每个商品对应很多图片,这里我们可以利用爬虫去网上爬取不同的图片作为我们的初始化数据。(仅仅学习使用)
8、消息队列:引入rabbitmq等消息队列,实现解耦
案例参考:手把手学习RabbitMQ消息队列
9、单点登录:如果把系统拆分前后端的话可以尝试一下 单点登录
相关设计思想还是很值得学习的
10、Shrio安全框架:强大且易用的Java安全框架,封装了很多使用方法,可以学习了解 Shrio安全框架
11、分类管理和推荐管理:真真好的项目,都是可跌打可拓展的,所有的东西都是可以配置的,即大部分显示的东西都是存储在数据库中,可以自己取出来,即你现在首页看到的是如下列表,这些数据最好是存储在数据库中取出来显示的,这样当你不想推荐手机的时候,你可以把手机这一栏去掉,换上你想推荐的,如书籍,网课等等(业务相关)
12、权限设计:用户表,角色表,角色权限表,尽可能的实现不同用户登录的时候显示的页面不一样,即管理员登录看到的肯定比普通用户多(根据需求设计,也可以单独做电商管理员后台)
很多毕业设计都可以参考上面介绍的优化点, 拓展、迭代、技术升级!
…………未完待续 欢迎留言 等你补充
小结:本篇旨在总结反思之前涉及过的项目中相关好的思想和思路,以及自己以前不熟悉的业务逻辑,供自己反思和学习成长,