基于微信小程序+Springboot技术的校园二手商城系统设计与实现
博主介绍:硕士研究生,专注于Java技术领域开发与管理,以及毕业项目实战✌
从事基于java BS架构、CS架构、c/c++ 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架构思想、较扎实的技术功底和资深的项目管理经验。
先后担任过技术总监、部门经理、项目经理、开发组长、java高级工程师及c++工程师等职位,在工业互联网、国家标识解析体系、物联网、分布式集群架构、大数据通道处理、接口开发、远程教育、办公OA、财务软件(工资、记账、决策、分析、报表统计等方面)、企业内部管理软件(ERP、CRM等)、arggis地图等信息化建设领域有较丰富的实战工作经验;拥有BS分布式架构集群、数据库负载集群架构、大数据存储集群架构,以及高并发分布式集群架构的设计、开发和部署实战经验;拥有大并发访问、大数据存储、即时消息等瓶颈解决方案和实战经验。
拥有产品研发和发明专利申请相关工作经验,完成发明专利构思、设计、编写、申请等工作,并获得发明专利1枚。
大家在毕设选题、项目升级、论文写作,就业毕业等相关问题都可以给我留言咨询,非常乐意帮助更多的人或加w 908925859。
相关博客地址:
csdn专业技术博客:https://blog.csdn.net/mr_lili_1986?type=blog
Iteye博客: https://www.iteye.com/blog/user/mr-lili-1986-163-com
一、 前言介绍:
随着消费水平的不断提升,大学生在日常生活中会产生大量的闲置物品,如旧书、电子设备、生活用品等。这些物品往往具有一定的使用价值,但由于各种原因被原主人所闲置。同时,由于大学生目前还不能做到经济独立,个人的经济能力有限。网上二手交易平台的推广,对大学生来说有一定的吸引力。卖出自己不用的物品,能够获得一定的回报,而买入一些低价实用的二手商品,则可以为大学生们节约一定的钱财。
近些年来随着互联网技术迅速发展,使得不同地点的人们在任何时间都可以轻松获取自己需要的信息。javaEE技术以其交互性、动态性的特点,大大扩展了互联网的应用范围。校园网的推行也为大学生上网提供了便利条件。当前社会上,各种类型的电子商务类网站纷纷建立,可以很大程度上解决人们信息资源的闭塞以及地域上的限制。大学生在网络的使用上占了很大一部分比例,他们熟练操作各种软件,热衷于网上购物、网上聊天。传统的二手物品交易方式,如跳蚤市场、线下交易等,虽然在一定程度上解决了闲置物品的处理问题,但存在效率低下、信息传播范围有限等弊端。这些方式并不能满足二手商品畅通交流的要求。
基于Springboot框架设计和实现一套二手物品交易系统,可以为学生提供一个便捷、高效的在线交易平台,促进二手物品的合理流通和资源再利用。目前在本课题范围内,分析了管理人员对二手商品的管理现状和现有的用户对管理人员的服务的要求。首先根据以前的校园二手商城的设计模块,总结出符合自己的技术,便于开发商城,选择基于SpringBoot的框架开发的系统,将此技术运用于商城研发。用户端采用Vue、uniapp等技术来实现。开发工具软件选择IDEA,数据库软件选择MySQL服务器。本系统采用的是B/S模式,web方向的研发,另外还使用了Spring和Mybatis框架技术。系统具有专门的供用户使用的前台和专门供管理人员使用的后台。
在校园二手商城小程序的实现下,管理人员能够充分发挥信息化处理的优势,提高日常管理的处理速率。用户一方可以更好的享受信息化处理带来的便利。系统运行能够稳定且高效。并且人机友好程度能够显著提升。
二 、功能设计:
校园二手商城系统选用B/S架构设计,即网页页面和网站架构模式的开发方式。这类系统构造可以理解为正确 C/S 系统构造的改变与推广能够分布式系统信息,减少资源成本,提升订制系统的性能。在这样的设计下,极少有事务管理在前,大部分关键事务管理模式必须在服务器上进行。
系统的性能层表明给用户网页页面,表明与理解用户数据,回到用户所提供的数据,递交给系统解决方法,给予用户与系统间的通讯操作面板;系统通讯层为性能层提供以下数据,联接性能层和系统后台管理系统间的通讯。HTTP/HTTPS协议书选用,系统控制层首先从HTTP要求中获得信息,获得主要参数。并把它发放给不一样的处理方式服务项目(service层),并把service层处理过的数据回到前边(本系统应用JSON数据);系统业务逻辑层的主要作用是挑选用户键入信息开展特定业务逻辑和数据浏览;系统数据浏览层主要面向操作流程数据,为业务逻辑层或控制层给予数据服务项目;系统数据库是系统存放数据的地区。与众不同的业务需要数据可以用,务必纪录信息才能达到工作内容。系统的整体架构图如下图所示
三、功能实现:
3.1 小程序用户端:
在校园二手商城小程序中,核心业务用例的实现效果如下所示。受篇幅所限,介绍购买二手商品、添加二手商品和添加二手商品分类相关的三个模块核心功能。
用户登录网站之后,浏览二手商品信息,选择自己喜欢的二手商品,点击进入详情页面,点击购物,对二手商品进行购买操作,将购买信息发送到控制层,采用 Ajax发送异步请求,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行插入并返回结果
3.2 网页端展示
管理人员对二手商品进行添加操作,采用Ajax发送异步请求将二手商品信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行更改并返回结果
四、库表设计:
通过对校园二手商城小程序在需求分析中的领域对象、业务对象及对象之间的分析,进行了对校园二手商城小程序的数据库建表设计。园二手商城小程序数据库管理部分采用MySQL。针对校园二手商城小程序的功能性需求方面的了解,系统概念模型(ER图)如图所示
五、关键代码:
5.1 用户二手商品购买模块
该模块控制层主要代码:
@RequestMapping("cartadd")
public String addcart(Model model){
List<Product> product= productService.list("");
// 放入转发参数
model.addAttribute("product", product);
return "pages/cart/cartadd";
}
//添加数据
@RequestMapping("cartinsert")
public String insertCart(Cart cart,Model model){
String forword=request.getParameter("forword");
String w=" and uname='"+request.getParameter("uname")+"' and product="+cart.getProduct();
List<Cart> cs= cartService.list(w);
String addtime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
if (cs.size()>0)
{//nums
//cart.setNums(cart.getNums());
//cartService.update(cart);
model.addAttribute("msg","该二手商品已存在于购物车");
}
else
{
cartService.insert(cart);
model.addAttribute("msg","成功");
}
model.addAttribute("path",forword);
return "success";
} }
5.2 百度编辑器插件UEditor
(1)对于界面中要输入的大批量文字和含有特殊符号的内容的情况下,经过各种editor的比较,最后决定采用百度编辑器插件UEditor实现大批量文字输入和特殊表情。UEditor可以以高度可视化的编辑方式编辑大批量文字和含有特殊符号的内容。其可操作性和执行效率要比JavaScript的方式要高。
(2)由于登录时管理人员和用户使用共同的登录页面,需要登录页面去判断当前登陆账号是用户还是管理人员,进而跳转至不同的主页。因此在登录界面中,其控制层的实现方式代码如下所示。
Map<String, Object> map = userService.getUserByName(userName);//检查是否是管理员
Map<String, Object> userLogin = frontReaderService.getReaderByName(userName);//检查是否是用户
// 用户名和密码是否正确,同时检查是用户还是管理员
if (map != null && map.get("password").equals(passwordMD5)) {
HttpSession session = request.getSession(true);
session.setAttribute(Params.SESSION_ATTR_KEY_USER, userName);
retMap.put(Params.RET_CODE, Params.RET_CODE_SUCCESS);
retMap.put(Params.RET_OBJ, "登录成功");
retMap.put(Params.RET_MSG, "管理员");
return retMap;
} else {
if(userLogin != null && userLogin.get("readerPassWord").equals(passwordMD5)){
HttpSession session = request.getSession(true);
session.setAttribute(Params.SESSION_ATTR_KEY_USER, userName);
retMap.put(Params.RET_CODE, Params.RET_CODE_SUCCESS);
retMap.put(Params.RET_OBJ, "登录成功");
retMap.put(Params.RET_MSG, "用户");
return retMap;
六、论文参考:
七、其他案例: