✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
基于SSH的便利店系统是为了满足顾客、店长和管理者的不同需求而设计的。顾客可以通过系统查询商品价格,以及按照商品名、类名和价格进行搜索。店长可以对顾客挑选的商品进行合计金额,查看天气情况,实时监控售卖情况和商品排行榜,进行订货和查询商品信息,同时还可以通过盘点功能对商品数量进行修改。管理者可以查看各家便利店的售卖情况并进行排名,确认店长的订货和商品数量修改请求,并对商品进行修改,包括上新商品和修改价格。这个系统的设计旨在提高便利店运营的效率和管理的便利性。
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Spring:Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
- Jsp:JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。 - Html:HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。
三、系统功能模块介绍:
四、数据库设计:
1:car(car)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
shopId | int | NULL | |
createTime | datetime | NULL | |
carGoods | int | NULL | |
price | decimal | NULL |
2:car_goods(car_goods)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
carId | int | NULL | |
goodsId | varchar | NULL | |
createTime | datetime | NULL |
3:code(code)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 邀请码 |
creat_date | datetime | NULL | 创建日期 |
create_admin_id | int | NULL | 创建者id |
state | varchar | NULL | 是否在回收站 |
rule | varchar | NULL |
4:goods(goods)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
shopId | int | NULL | |
type | varchar | NULL | |
name | varchar | NULL | |
pPrice | decimal | NULL | |
sPrice | decimal | NULL | |
stock | varchar | NULL | |
createDate | datetime | NULL | |
picUrl | varchar | NULL |
5:reserve(reserve)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
shopId | int | NULL | |
goodsId | varchar | NULL | |
applyState | varchar | NULL | 状态 |
applyPerson | varchar | NULL | 申请人 |
auditorPerson | varchar | NULL | 审核人 |
auditorDate | datetime | NULL | 审核时间 |
createTime | datetime | NULL | 申请时间 |
type | varchar | NULL | 类型 |
info | varchar | NULL | 数据 |
数据 | |||
6:shop(shop)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
name | varchar | NULL | |
staff_id | int | NULL | |
create_time | datetime | NULL |
7:staff(staff)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | |
username | varchar | NULL | |
sex | varchar | NULL | |
age | int | NULL | |
phone | varchar | NULL | |
address | varchar | NULL | |
account | varchar | NULL | |
password | varchar | NULL | |
createdate | datetime | NULL | |
updatedate | datetime | NULL | |
state | varchar | NULL | |
dep | varchar | NULL |
五、功能模块:
-
顾客模块:查询商品价格(按名字、按类名、按价格查询)
-
后台管理登录:
-
请求确认功能: 对店长的订货以及商品数量的修改进行确认:
-
查看各家便利店售卖情况(总金额,并进行排名):
-
商品的修改功能: 上新商品、对原来商品价格进行修改:
-
查看今日以及未来几天天气:
-
查询功能:对商品进行查询:包括价格、数量、以及订货预计数量:
-
订货功能:对所需商品进行订货,订货成功后需要管理者进行确认,确认成功后商品的库存才能增加:
-
查看今日实时售卖情况:总金额、支付笔数:
六、代码示例:
@PostMapping("/login")
public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {
if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {
return ReturnMsg.error("用户名或密码错误!");
}
ManageDTO manageDTO = new ManageDTO();
manageDTO.setUserName(param.get("username"));
manageDTO.setPassWord(param.get("password"));
QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);
manageDTOQueryWrapper.last("limit 1");
ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);
if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");
Map<String, Object> map = new HashMap<>();
map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
map.put("introduction", adminDTOS.getName() + ",你好!");
map.put("name", adminDTOS.getName());
map.put("roles", Arrays.asList("admin"));
map.put("type", adminDTOS.getStatus());
Map<String, String> returnMap = new HashMap<>();
String uuid = UUID.randomUUID().toString();
returnMap.put("token", uuid);
userInfoMap.put(uuid, JSON.toJSONString(map));
return ReturnMsg.ok(returnMap);
}
七、项目总结:
开发基于SSH的便利店系统是作为毕设作品进行设计的,这个毕设作品是我在校进行知识学习的一个毕业考核项目,也是检验我通过网络工具,图书工具等学习工具进行自学的能力水平,让我在根据程序开发的需求分析初步完成程序功能之外,还接触了程序的测试过程,了解程序测试的具体的过程,以及遇到问题怎么去寻找相应的解决办法等等,毕业作品的制作以及设计才是学校对我真正的考验。
在程序软件没能进行开发之前,我去了学校的图书馆借了有关数据库操作的书籍,在查看了sqlserver和mysql两种数据库的相关知识之后,我最后选择了我比较熟悉的mysql数据库。在编程语言的抉择上,由于自己之前接触过Java程序的开发,所以为了让我尽快在短时间内完成程序制作,我确定用Java编程语言进行程序编程。另外我从百度上下载了很多的有关信息增加,信息删除等操作的源代码,并通过不断调试以及完成配套的数据库的设计,开始完成程序的各个部分的功能。每当我粗心大意,致使我深陷程序开发困扰不能自拔之时,值得庆幸的是,我就会得到老师,还有我的寝室同学的耐心指导。
历经长达几个月的毕业作品制作,我凭借自己的知识技能,还有大家的指导帮助,能够在学校规定的时间段之内提交毕业作品。虽然已经算是完成了毕业作品,但是付出了这么多心血,还是想把这个作品做得更加完美一点。针对我的毕业作品学生信息管理系统,我觉得还有很多方面需要完善,第一就是界面上需要细微调整,比如色彩搭配有点违背广众的审美,需要细微调整,还有系统里面的字体大小也需要调大一点,太小的字体看起来有些费眼。然后在程序的功能上因为自己的入门开发水平的影响,所以目前只能做到这个境界,这个系统相比其他类似系统来说功能很简单,逻辑结构设计得也比较合理。
自己一个人完成程序的开发,我不仅亲自体验了程序的开发流程,体验到了程序开发的各种不易。这种体验也还加深了我对知识的尊重。学海无涯,知识不是大学短短四年就能学完的,在大学学到的知识在最终经历检验时,才会深深地明白自己的知识积累原来还很浅薄。所以今后不管身在何处,自己的学习心态一定要时刻体现出来,要深刻明白知识学到手里就是自己的。同时,自己也不必过多抱怨学到的知识没有用处,相信学到的知识总会有派上用处的那天。不要等到需要用时再去学习知识,那样就会导致自己错失很多本该属于自己的机遇。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接