文末获取资源,收藏关注不迷路
前言
进入21世纪网络和计算机得到了飞速发展,并和生活进行了紧密的结合。目前,网络的运行速度以达到了千兆,覆盖范围更是深入到生活中的角角落落。这就促使二手交易网站的发展。二手交易网站可以实现远程购物,远程选择喜欢的商品和随时追踪订单的状态。二手交易网站给人们带来前所未有的体验,满足了新时代人们的购物需求,所以网上二手交易模式得到大力发展。
本系统为基于Springboot的华强北商城二手手机管理系统,是采用计算机和网络技术进行开发的在线交易平台,可以实现商品的展示、购买、评价以及销售等。本系统采用Java语言,数据库为Mysql,运行环境为Idea。使用角色分为注册用户、游客、管理员、商家,本系统的功能包括新闻管理、商品信息展示以及管理、注册用户管理、订单管理、商品评价同时还可以管理购物车。其中,游客负责浏览信息,注册用户可以购买商品、评价商品、管理订单,商家可以销售商品管理订单,管理员可以管理所有功能以及个人信息。本系统实现了商品的在线销售与购买,方便了购买者和销售者双方的利益,提高销量和购买效率,更符合现代人生活。
一、研究背景
自计算机发展以来给人们的生活带来了改变。第一代计算机为1946年美国设计,最开始用于复杂的科学计算,占地面积、开机时间要求都非常高,经过数十几的改变计算机技术才发展到今天。现如今已是电子时代、数据时代,所有的生活都离不开计算机和网络。工作中有各类办公软件、APP,娱乐中有各类游戏软件、视频软件等都为生活带来了便捷,特别是我国的手机支付功能更是领先世界。科技推动了时代的发展。现在人们购物大多数已从传统的实体购物转换到线上购物。线上购物拥有更大的优点,商品种类全、价格优惠、售后有保障。由于传统实体购物需要亲力亲为,商品单一,价格不透明已渐渐在线上购物的打压下难以发展。
现在,网络覆盖范围扩大,价格便宜,各大商户都开放的有无线网络。手机也得到了普及,计算机技术也深入到手机中。普通生活、娱乐等都可以在线上解决。线上已成为趋势,大部分的行业都可以在线上开通业务,通过线上为人们解决问题,改变面对面方式,提高工作效率以及减少时间浪费。
二、研究意义
现在二手交易使用率高的有淘宝、58、贴吧以及刚时兴出来的直播等。对于卖家来言,想要快速销售出二手商品就需要采用多种方式,但现在二手平台不集中,人流量分散,效果并不理想。淘宝、58、贴吧这类平台都属于通用平台,对于里用户来说太过于广泛,消费群体不够精准,还没有专业针对手机的二手交易平台。
本系统采用商家对用户的模式,用户利用本平台可以购买商品、管理订单等。本系统可以帮助商家工作管理,实现商品的无地域、无时间销售。购买用户可以随时浏览、查询商品,可以了解商品的详情以及商品的其它用户的评价内容。本系统可以帮助用户更快的选择商品和跟踪订单,帮助商家增加销售途径,减少时间成本。本基于Springboot的华强北商城二手手机管理系统实现数据的自动化,减少管理员的工作内容并实现数据的清晰化。
三、主要使用技术
环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈 139
后端:Spring+SpringMVC+Mybatis+Springboot
前端:vue+CSS+JavaScript+jQuery+elementui
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置,然后运行;
运行成功后,在浏览器中输入:http://localhost:8080/项目名
四、研究内容
用动态发展的眼光看问题。
现在网上购物系统的技术发展已经非常成熟,各大电商平台的销售额也非常可观,特别是在一些重要的节日里一天的销售额都会达到几十亿。本基于Springboot的华强北商城二手手机管理系统可以方便用户选择到更适合自己的商品,并且售后服务非常完善。现在商家销售二手商品也会采用线上、线下相结合的方式进行商品的销售,由用户自主购物,商家在线发货、上新等,非常适合现代生活。二手交易网站是时代的趋势,其需求性不言而喻。本人参考大量的二手交易软件以及充分调查工作人员和商家、买家的需求,设计出的本基于Springboot的华强北商城二手手机管理系统使用角色为游客、注册用户、管理员、商家。框架界面分为前台、注册用户操作界面、管理员操作界面、商家操作界面。前台的功能设计为:
(1) 搜索功能,不管是游客和注册用户、管理员、商家都可以使用本功能进行特定商品的搜索;
(2) 新闻功能,本界面里展示了不同的新闻,游客和注册用户、商家只可以在前台进行信息的浏览;
(3) 商品展示功能,本界面里展示了所有的商品详情,游客可以详细了解,注册用户在登录后可以进行购买;
(4) 用户注册功能,实现注册目的。
后台管理员的功能设计为:
(1) 商品信息管理功能,对商品进行上架、下架、编辑等,还可以查看商品的评价;
(2) 订单管理功能,此功能可以收到用户的订单,并对订单进行审核;
(3) 新闻管理功能,实现新闻的发布;
(4) 商品类别管理功能,本功能可以帮助用户实现商品的分类;
(5) 用户管理功能,实现注册用户的管理;
(6) 管理员管理功能,实现管理员资料和密码的修改管理;
(7) 轮播图信息功能,添加图片和设置轮播图。
注册用户的功能设计为:
(1) 个人资料管理功能,实现注册时资料的修改、维护;
(2) 我的收藏功能,管理自己收藏的信息;
(3) 购物车管理功能,对购物车里的商品进行管理;
(4) 订单管理功能,管理自己购买的订单。
商家功能设计为:
(1) 个人中心功能,实现商家资料的管理;
(2) 商品信息管理功能,发布商品和管理商品的销售订单。
五、核心代码
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
六、文章目录
1系统概述 1
1.1 研究背景 1
1.2研究目的 1
1.3系统设计思想 1
2相关技术 3
2.1 MYSQL数据库 3
2.2 B/S结构 3
2.3 Spring Boot框架简介 4
2.4 VUE框架 4
3系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2经济可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1 系统安全性 6
3.2.2 数据完整性 6
3.3系统界面分析 6
3.4系统流程和逻辑 8
4系统概要设计 9
4.1概述 9
4.2系统结构 10
4.3.数据库设计 11
4.3.1数据库实体 11
4.3.2数据库设计表 13
5系统详细实现 17
5.1 管理员模块的实现 17
5.2用户模块的实现 19
6系统测试 21
6.1概念和意义 21
6.2特性 22
6.3重要性 22
6.4测试方法 23
6.5 功能测试 23
6.6可用性测试 24
6.7性能测试 24
6.8测试分析 24
6.9测试结果分析 25
结论 25
致谢语 26
参考文献 26