- 引言
- 开发背景及意义
校园二手交易网站是一种专门针对学校校园内的二手交易的网站。它的设计和开发主要是为了满足学生之间的二手物品交易需求,方便大家在线买卖二手物品。近年来,随着互联网技术的发展,人们越来越喜欢在线购物,二手交易也不例外。许多学生希望能够通过网络来买卖二手物品,但是由于缺乏一个专门的平台,他们往往只能在论坛、社交媒体等地方进行交易,这不仅不安全,而且不方便。因此,校园二手交易网站的出现是非常必要的。它不仅可以为学生提供一个安全、便捷的交易平台,而且还可以为学校提供一个管理二手物品交易的有效途径。通过这个网站,学生们可以轻松地买卖二手物品,减少浪费。
让学生们更好地利用资源。其次,校园二手交易网站还可以促进学校内部的社交互动,增强学生之间的联系,提高学校的整体形象。因为它是一个针对学校校园的专门平台,可以更好地保证交易的安全性和有效性,为学生提供更好的服务。此外,校园二手交易网站还能够为学校提供一个管理二手物品交易的有效途径。通过这个网站,学校可以更好地监管二手物品交易,保证交易的公平性和公正性,为学生提供更好的保障。总之,校园二手交易网站的出现不仅有利于学生之间的交流和交易,而且还能够为学校提供一种管理和服务的有效途径,对于提升学校的整体形象、改善学生的生活质量具有重要的意义。
-
- 系统可行性
- 技术可行性
- 系统可行性
校园二手物品交易平台的设计与实现运用采用了Springboot和Vue开源框架、MySQL和Druid连接池等技术支持,能较为容易的解决程序中的功能模块所运用的技术等问题。而且在开源的支持下这些技术都已经很完善了,不会出现较大的软件危险等问题。运用这些技术能满足此次软件的开发,这种技术方案是可行的。
-
-
- 操作可行性
-
该系统的设计是基于使用者的实际工作中流程机制来进行开发的,它能有效地解决工作过程中所遇到的各种问题。系统设计的UI符合人们使用习惯,并且页面设计比较简约操作得心应手,不需要复杂的操作流程,适用于普通大众且能满足正常工作中的使用,这种操作是可行的。
-
开发工具及主要技术- 开发工具
1.3.1.1 IDEA开发工具
IDEA作为一个软件集成开发环境,它是一个基于Java的开放源代码的、可扩展的应用程序开发平台 。本系统在开发时使用的是JavaEE程序开发中被广泛使用的IDEA版本。作为软件项目开发工具,IDEA具有很多优势:第一点,IDEA自身携带的插件丰富,还可以根据自己的需求去安装自定义插件;第二点它有着丰富的快捷键,可提高开发效率。
1.3.1.2 MySQL 8.0 数据库
MySQL是时下应用最为广泛的关系型数据库管理系统,在 WEB 开发中,MySQL是使用最为频繁的软件之一。它具有良好的数据存取能力,适合小规模的项目使用,而且MySQL是开源的,不需要支付额外的费用。
-
-
- 主要技术
-
1.3.2.1 B/S模式
B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。基于浏览器的应用,把业务层交给服务器完成,客户端仅仅完成界面的渲染和数据的交换。它具有只开发服务器端,可以跨平台,移植性较强的优点。具体关系如图1-1所示。
- B/S模式示意图
1.3.2.2 MVC设计模式
MVC设计模式中的MVC是由英文字母Model, View和Controller的首字母组成,这三个字母翻译为中文分别是模型层、视图层和控制层的意思。MVC模式是一种很基础的、成熟的网站设计模式,它的设计理念是把应用程序的输入、输出和处理全部分开,将其分为三个核心部分。View层:视图层是将信息反馈给用户并且实现信息交互的界面;Model层:模型层主要实现业务逻辑,数据库的连接与控制等;Controller层:控制层主要是接受用户的请求并调用模型和视图去为用户完成响应。具体关系如图1-2所示。
- MVC业务流程示意图
- 开发环境
(1)硬件环境
CPU中央处理器:Intel Core i7-5200U CPU @ 2.71GHz
内存:4 GB
硬盘:SK HYNIX HFS128G3BTND-N210A
(2)软件环境
操作系统:Windows 10
数据库: MySQL 8.0
开发平台:IDEA 2021
技术框架:B/S ,MVC,SpringBoot
- 系统需求分析
- 问题分析
校园二手交易网站需要具有简洁易用的界面设计,能够吸引用户的注意力,提高用户的使用体验。需要具备交易物品的基本功能,包括发布物品信息、查看物品信息、购买物品等。此外,网站还可以提供其他附加功能,如物品分类、支付等。校园二手交易网站需要保证用户的信息安全,防止信息泄露和恶意篡改。因此,网站需要采取加密技术、身份验证机制等措施,来保证用户的信息安全。校园二手交易网站的设计和开发需要考虑网站的可维护性。网站需要提供良好的操作说明,方便用户查看和使用;网站也需要定期更新和维护,以保证网站的正常运行。
-
- 系统需求分析
- 管理员功能需求
- 系统需求分析
(1)登录:管理员能够根据账号访问系统。
(2)用户管理:管理员可以添加、删除、修改用户信息,查看用户列表,对用户进行管理和控制。例如,管理员可以查看每个用户的个人信息、交易记录等,并可以对用户的交易行为进行审核和管理。
(3)商品管理:管理员可以添加、删除、修改物品信息,查看物品列表,对物品进行管理和控制。例如,管理员可以查看每个物品的详细信息、交易记录等,并可以对物品的交易情况进行审核和管理。
(4)订单管理:管理员可以查看交易信息,对交易进行管理和控制。例如,管理员可以查看每笔交易的详细信息,包括交易物品、交易时间、交易金额等,并可以对交易进行审核和管理。
(5)退出模块:管理员可以在使用完系统后,进行系统退出操作,用于保证系统的安全性,避免自己不在的时候,别人登录系统。
-
-
- 用户功能需求
-
(1)登录:用户能够根据账号访问系统。
(2)主界面:系统首页对校园二手物品,根据商品的种类进行展示,能较为直接的对所需要的物品进行查看。
(3)物品发布:用户可以通过物品发布按钮,发布自己的闲置物品。可以上传二手物品名称、物品详细信息、地区、物品的类别、价格和上传和商品的信息有关展示图片展示等。
(4)消息模块:用户可以在商品信息下方,发表自己对商品的评价并可以在消息模块内对商品的信息进行相关的留言查,并能显示自己评论的时间、相关内容和对此评价的物品信息等。
(5)物品购买模块:用户可以通过立即购买按钮,对所需要的物品进行购买,如果是对一次进行购买的用户,需要输入自己的收货地址。相关信息填写完毕后,便可以通过支付按钮进行相关支付操作。
(6)收藏模块:用户可以把自己的喜欢的商品进行收,可以等到后期需要的时候不需要花费太多的时间对商品进行重新的选择。
(7)下架模块:用户可以对自己上传的商品进行下架处理,当自己上传的商品不想再进行销售时候,可以进行下架操作。
(8)售出、购买模块:用户可在售出模块内,对自己物品的销量进行查看,能够实时的掌握自己的商品最新的销售状态,以便能及时的进行补货上新操作。在购买模块中,可以对自己进行购买过的商品信息进行查看,以便于对近期购买的商品有个直观的掌握。
(9)个人资料:用户可以在个人资料模块内,对自己的名称和密码进行维护等操作啊,可以提高自己账号的安全性。
(10)退出模块:用户可以在使用完系统后,进行系统退出操作,用于保证系统的安全性,避免自己不在的时候,别人登录系统。
-
-
- 游客功能需求
-
(1)游客在没有进行注册登录时候,只能对商品的信息进行查看,无法进行购买和留言等一系列操作。
(2)游客可以通过注册页面填写所需要的注册信息进行注册。
-
- 系统流程分析
- 操作流程
- 系统流程分析
用户想进入系统,首先进入系统登录界面,通过正确的用户名、密码,选择登录类型登录,系统会检查登录信息,信息正确,然后输入相应的功能界面,提示信息错误,登录失败。系统操作流程如图2-1所示。
图2-1操作流程图
-
-
- 添加信息流程
-
添加信息,编号系统使用自动编号模式,没有用户填写,用户添加信息输入信息,系统将自动确认的信息和数据,验证的成功是有效的信息添加到数据库,信息无效,重新输入信息。添加信息流程如图2-2所示。
图2-2添加信息流程图
-
-
- 删除信息流程
-
用户选择要删除的信息并单击Delete按钮。系统提示是否删除信息。如果用户想要删除信息,系统将删除信息。系统数据库删除信息。删除信息流程图如图2-3所示。
图2-3删除信息流程图
-
- 系统E-R图
管理员信息表是用于存储管理员的基本信息,例如用ID、户名、密码等。
管理员实体属性如图2-4。
图2-4 管理员实体
(2)用户信息表是用于存储用户的基本信息,例如用户名、密码、注册时间和状态等。
用户实体属性如图2-5。
图2-5 用户实体
(3)地址表是用于描述收货人收货地址的基本信息,例如编号、手机号和默认地址等。
地址表属性如图2-6。
图2-6 交易物品实体
(4)收藏表是用于描述用户对喜欢的商品进行收藏的信息,包括编号、收藏时间和闲置主键等。收藏表表实体属性如图2-7。
图2-7 评价信息实体
(5)订单信息表是用于存储用户下单时的信息,例如用户名、物品编号、价格等。
订单信息表实体属性如图2-8。
图2-8订单信息表实体
(6)商品表是用于描述用户上传闲置商品的信息表,例如图集、详情、价格和发布时间等。商品表表实体属性如图2-9。
图2-9 商品信息实体
(7)消息表是用于描述用户对商品进行相关评价的信息表,例如留言内容、留言时间和所回复用户等。订单信息表实体属性如图2-10。
图2-10 商品信息实体
- 系统概要设计
- 系统的整体架构
该系统的整体架构如下图3-1所示。
图3-1 系统整体架构图
通过对该系统的分析之后,该系统的整体架构可以分为如下五层:Pojo层、Dao层、Service层、Controller层、View层。
Pojo层其实就是对应着数据库中的实体类,并且实体类中的属性名与数据库属性名一样,在数据库没有访问的时候,Pojo层中的实体类有Spring提供的容器进行管理。
Dao层是数据访问层,和数据库联系比较密切。MyBaits提供了接口式编程方式,只需创建接口和在对应的配置文件中编写SQL语句[9],即可实现对数据库的增删改查。
Service层是业务层,用来处理具体的业务逻辑,并且不需要考虑其具体实现,通过调用Dao层对象实现业务逻辑的编写。
Controller层是控制层,该层和View层联系特别紧密,需要对前台用户发送的请求进行处理和页面跳转,并且需要调用Service层的对象。
View层是视图层,主要用来展示前台JSP页面,可以向后台发送请求,并且可以对后台返回的数据和结果进行响应。
-
- 系统功能结构图
校园二手物品交易平台主要的参与者有游客、学生和管理员三个角色。游客具有查看网站首页和注册的功能。没有注册之前游客只能观看首页并不能进行留言和购买等多种权限操作。学生可以通过系统进行登录、物品发布、消息模块、物品购买模、收藏模块、下架模块、售出模块、购买模块、退出模块和个人信息模块内对自己的商品信息进行维护,可以发布自己的新的商品,对比较满意的商品做出适当的评价。也可以收藏别人发布的商品,便于自己九七进行购买。并且可以根据自己的需要对物品进行下架等操作。可以根据实际的情况来调整物品的上架和下架信息。也可以通过个人信息模块对自己的用户名和密码信息进行维护。管理员具有登录、用户管理、商品管理、订单管理和退出模块等功能。其可以在用户管理模块内对系统中的用户进行相应的管理。如若某些账号因为发布不法的商品可以对用户做出封号处理。商品信息模块内可以对上线的物品进行相应的处理,如果违规则可以进行下架处理。订单管理模块内可以对用户进行购买的订单进行相应的管理等。并且管理员在不使用系统时,可以选择退出系统等操作。如图3-2校园二手物品交易平台。
图3-2校园二手物品交易平台模块
-
- 数据库表
- 管理员表
- 数据库表
管理员表包含着其个人的基本资料信息,如编号、密码和管理员名字等字段,其具体展示见表3-1。
表3-1 管理员表
字段名
数据类型
描述
id
int(11)
编号
account_number
int(11)
管理员账号
admin_password
varchar(20)
管理员密码
admin_name
varchar(32)
管理员名字
-
-
- 学生表
-
学生表包含着其个人基本信息资料,如账号、登录密码和注册时间等字段,其具体展示见表3-2。
表3-2 学生表
字段名
数据类型
描述
id
int(11)
编号
account_number
varchar(20)
账号
user_password
varchar(32)
密码
nickname
varchar(20)
昵称
avatar
varchar(20)
头像
sign_in_time
date
注册时间
user_status
int(1)
状态
-
-
- 地址表
-
学生表包含着其基本资料,如收货人姓名、收货人手机号和详细地址等字段。其具体展示见表3-3。
表3-3 地址表
字段名
数据类型
描述
id
int(11)
编号
consignee_name
varchar(20)
收货下姓名
consignee_phone
varchar(32)
收货人手机号
province_name
varchar(20)
省
city_name
varchar(20)
市
region_name
varchar(20)
区
detail_address
varchar(20)
详细地址
default_flag
varchar(20)
默认地址
user_id
varchar(20)
用户主键
-
-
- 消息表
-
消息表是用于展示用户给相关物品的评价信息表,包含留言内容、留言时间和所回复的留言等字段,其具体展示见表3-4。
表3-4 消息表
字段名
数据类型
描述
id
int(11)
编号
user_id
int(11)
用户主键
idle_id
int(11)
闲置主键
create_time
date
留言时间
content
int(11)
留言内容
to_message
varchar(20)
所回复的留言
to_user
int(11)
所回复的用户
-
-
- 收藏表
-
收藏表是用于展示学生对喜欢的物品进行收藏等信息,包含收藏时间、用户主键和闲置主键等字段,其具体展示见表3-5。
表3-5 收藏表
字段名
数据类型
描述
id
int(11)
编号
create_time
date
加入收藏的时间
user_id
int(11)
用户主键
idle_id
int(11)
闲置主键
-
-
- 商品表
-
商品表是用于展示学生上传的商品等信息,包含闲置商品名称、详情和图集等字段,其具体展示见表3-6。
表3-6 商品表
字段名
数据类型
描述
id
int(11)
编号
idle_name
varchar(20)
闲置物品名称
idle_details
varchar(255)
详情
picture_list
varchar(20)
图集
idle_price
double(20,0)
价格
idle_place
varchar(50)
发货地区
idle_label
varchar(50)
分类标签
idle_status
int(1)
状态
user_id
int(11)
用户主键
release_time
date
发布时间
-
-
- 订单表
-
订单表是用于展示学生卖出商品的订单相关的物品信息,包含订单总价、支付方式和支付时间等字段,其具体展示见表3-7。
表3-7 订单表
字段名
数据类型
描述
id
int(11)
编号
order_number
varchar(50)
订单编号
user_id
varchar(50)
用户主键
idle_id
varchar(50)
闲置物品主键
order_price
double(20,0)
订单总价
payment_status
int(11)
支付状态
payment_way
varchar(50)
支付方式
create_time
Date
创建时间
order_status
int(4)
订单状态
is_deleted
int(4)
是否删除
- 系统实现
- 登录功能模块
系统的“角色”在进行登录时,分为普通用户和管理员登录页面,在进行登录时系统会根据登录不同的方式来进行判断类别。不同的“角色”输入自己的专属账号时,系统会根据使用者的登录类型,会自动筛选出相应的登录成功后的页面。其具体展现见图4-1。
图4-1 登录界面
@RequestMapping("login")
public ResultVo login(@RequestParam("accountNumber") @NotEmpty @NotNull String accountNumber,
@RequestParam("userPassword") @NotEmpty @NotNull String userPassword,
HttpServletResponse response) {
UserModel userModel = userService.userLogin(accountNumber, userPassword);
System.out.println("登录:" + userModel);
if (null == userModel) {
return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);
}
if(userModel.getUserStatus()!=null&&userModel.getUserStatus().equals((byte) 1)){
return ResultVo.fail(ErrorMsg.ACCOUNT_Ban);
}
Cookie cookie = new Cookie("shUserId", String.valueOf(userModel.getId()));
// cookie.setMaxAge(60 * 60 * 24 * 30);
cookie.setPath("/");
cookie.setHttpOnly(false);
response.addCookie(cookie);
return ResultVo.success(userModel);
}
@GetMapping("login")
public ResultVo login(@RequestParam("accountNumber") @NotNull @NotEmpty String accountNumber,
@RequestParam("adminPassword") @NotNull @NotEmpty String adminPassword,
HttpSession session){
AdminModel adminModel=adminService.login(accountNumber,adminPassword);
if (null == adminModel) {
return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);
}
session.setAttribute("admin",adminModel);
return ResultVo.success(adminModel);
}
-
- 管理员功能模块
商品管理:管理员可以对上线的物品进行相应的管理,可以对违规商品进行下架处理。并可以在下架的二手物品模块内可以对下架的物品进行删除等操作。其具体展现见图4-2,4-3所示。
图4-2 上线的二手物品界面
图4-3 下架的二手物品界面
订单管理:管理员可以对物品的交易订单进行查看,并能根据相应的需求进行删除等操作。其具体展现见图4-4。
图4-4 订单管理界面
@PostMapping("add")
public ResultVo addAdmin(HttpSession session,
@RequestBody AdminModel adminModel){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
if(adminService.addAdmin(adminModel)){
return ResultVo.success();
}
return ResultVo.fail(ErrorMsg.PARAM_ERROR);
}
@GetMapping("idleList")
public ResultVo idleList(HttpSession session,
@RequestParam("status") @NotNull @NotEmpty Integer status,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
return ResultVo.success(idleItemService.adminGetIdleList(status,p,n));
}
用户管理:用户管理模块内包含正常用户、违规用户和管理员等三个小模块。正常用户内显示没有违规的用户信息。违规用户内显示已经违规的用户账户信息。管理员模块内显示管理员相关的信息等。其具体展现见图4-5、4-6和4-7所示。
图4-5 正常用户界面
图4-6 违规用户界面
图4-7管理员界面
@PostMapping("/add")
public ResultVo addOrder(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderModel orderModel){
if(OrderTaskHandler.orderService==null){
OrderTaskHandler.orderService=orderService;
}
orderModel.setOrderNumber(IdFactoryUtil.getOrderId());
orderModel.setCreateTime(new Date());
orderModel.setUserId(Long.valueOf(shUserId));
orderModel.setOrderStatus((byte) 0);
orderModel.setPaymentStatus((byte)0);
if(orderService.addOrder(orderModel)){
return ResultVo.success(orderModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
@GetMapping("/info")
public ResultVo getOrderInfo(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestParam Long id){
OrderModel orderModel=orderService.getOrder(id);
if(orderModel.getUserId().equals(Long.valueOf(shUserId))||
orderModel.getIdleItem().getUserId().equals(Long.valueOf(shUserId))){
return ResultVo.success(orderModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
@PostMapping("/update")
public ResultVo updateOrder(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderModel orderModel){
if(orderModel.getPaymentStatus()!=null&&orderModel.getPaymentStatus().equals((byte) 1)){
orderModel.setPaymentTime(new Date());
}
if(orderService.updateOrder(orderModel)){
return ResultVo.success(orderModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
-
- 学生模块
主页面:主页面是用于展示学生需要卖出的商品信息等。包含各种种类的商品信息。其具体展现如4-8所示。
图4-8系统主界面
物品发布模块:物品发布模块内学生可以对自己的闲置物品进行出售。其具体展现见图4-9。
图4-9物品发布界面
消息模块:消息模块内用户查看自己对商品的评价信息等。其具体展现见图4-10。
图4-10 消息界面
@PostMapping("/send")
public ResultVo sendMessage(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody MessageModel messageModel){
messageModel.setUserId(Long.valueOf(shUserId));
messageModel.setCreateTime(new Date());
if(messageService.addMessage(messageModel)){
return ResultVo.success(messageModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
发布商品模块:学生可以在发布商品模块内对自己发布的商品信息进行查看。其具体展现见图4-11。
图4-11 发布商品列表界面
下架商品模块:学生可以在下架商品模块内对自己下架的商品信息进行查看。其具体展现见图4-12。
图4-12 下架商品列表界面
@PostMapping("/add")
public ResultVo addOrderAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderAddressModel orderAddressModel){
return ResultVo.success(orderAddressService.addOrderAddress(orderAddressModel));
}
@PostMapping("/update")
public ResultVo updateOrderAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderAddressModel orderAddressModel){
if(orderAddressService.updateOrderAddress(orderAddressModel)){
return ResultVo.success(orderAddressModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
- 系统测试
在软件设计过程中,进行系统测试是具有很大意义的。一旦项目开始在线运行,在项目中途如果发生了差错,往往将会造成很大的损失。如果是轻微的话,就会丢失使用者。如果是严重的,就会造成巨大的损失。所以项目上线时,一定要做好系统的软件测试[10]。在对系统的测试过程中要及时发现软件的缺陷和隐藏的风险,尽量减少出现问题的可能性。
-
- 用户注册模块测试
用户注册模块,是系统设计的核心模块,因此选取了用户注册模块进行了测试。其具体展示见表5-1。
表5-1 用户注册模块测试用例
编号
等价类
输入
预期输出
1
用户名,账号,密码,重复密码合法
用户名:xx
密码: 520
重复密码: 520
显示注册成功,跳转到首页
2
用户名,账号,密码,重复密码不合法
用户名:xx
密码: 520
重复密码: 521
显示注册失败,跳转到注册页面
3
用户名,密码,重复密码合法,
用户名:xx
密码: 520
重复密码: 521
显示注册失败,跳转到注册页面
-
- 用户登录模块测试
用户登录模块在系统中具有重要的作用,必须保证账户信息的可靠性。系统的安全性才能得到相应的保证。其具体展示见表5-2。
表5-2 用户登录测试用例
编号
等价类
输入
预期输出
1
用户名正确、密码正确
用户名:xx
密码: 520
显示登录成功,跳转到首页
2
用户名错误、密码正确
用户名:xxx
密码: 520
显示登录失败,跳转到登录页
3
用户名正确、密码错误
用户名:xx
密码: 521
显示登录失败,跳转到登录页
-
- 功能测试
功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。
本系统功能测试如表5-3所示:
表5-3系统功能测试
测试内容
测试结果
适用性
好
准确性
好
可操作性
好
依从性
好
安全性
好
-
- 安全测试
安全测试用于测试系统防止各种非法入侵的能力。通过扮演非法入侵者的角色,测试人员可以查看平台可能存在的安全漏洞,从而提高平台的安全级别。系统安全测试主要从以下几点完成:
(1)系统登录安全测试。抽题管理系统在登录时,无论是何种等级的用户都必须根据菜单提示进行选择提交信息。
(2)系统管理权限安全测试。通过分别使用管理员、老师、学生权限,没发现有任何越权或权限混乱现象。
(3)系统数据安全性。本系统对所有的账号和密码数据都进行了加密处理。对数据库进行了伪文件处理,具有良好的数据库备份和恢复机制。
-
- 可用性测试
性能测试可用性测试用于检测系统的可理解性、可操作性和学习性等方面内容。具体测试方面如表5-2所示。
表5-2系统可用性测试
测试项
测试人员的评价
窗口移动、改变大小、关闭等操作是否正常
是
操作模块是否友好
是
模块和提示内容等文字描述是否正确
是
模块布局是否合理、协调
是
模块的状态是否正确(对选中项能否发生对应切换)
是
键盘、鼠标操作是否支持
是
所需的数据项是否正确显示
是
操作流程是否合理
是
是否提供帮助信息
是
-
- 性能测试
性能测试主要是通过模拟平台的运行环境来测试平台的性能是否满足客户的要求。性能测试的关键技术指标是:平台速度,网络响应时间和支持的并发节点数。
(1)平台运行速度:通过在不同的计算机上进行试运行本平台,没有发现任何停顿、迟滞现象。
(2)网络响应时间:网络响应时间主要包括:网络最小响应时间、平均响应时间和最大响应时间这三个参数。经过测试,在网络运营良好状态下,局域网内响应时间三参数为:1/2/5s,外网响应时间三参数为3/7/12s,符合客户的需求,属于在用户的心理可承受范围内。
(3)支持并发节点数:经过模拟的环境测试,本网站在并发节点达到45个时,网络运营的速度会发生比较大的波动,延迟时间10秒左右,符合客户需求。
-
- 测试结果
经过对上述的测试结果分析,本平台开发系统的实现满足客户的要求和需求。所有基本功能齐全,操作简单,产品运行性能良好,是一个值得推广的大众化系统。
- 总结和展望
在本次的课程设计中,经过最终的选择,最后选择了校园二手交易平台系统。我认为这是一个很好的课题,是一个很不错的选择。在本次的大作业中,从刚开始的需求不是很明确。后在网上查阅到许多资料,最终确定了系统的需求,刚开始前台通过ajax向后台发送数据请求,后台怎么都接收不到,有时候甚至会报错。最后我才发现,是json字符的原因。必须要接受json的形式,后台才能获得数据。还是在进行布局页面设计时,我参照了好多的样式,最终确定了界面的ui。有些功能的实现,我都是按照最简单的方式来进行完成的,系统可能会存在一些问题,但已经能满足正常的使用了。经过这次学习,我学会了怎么去完整的去设计一个项目,从刚开始的项目需求分析,到后面的开始建立数据库等一系列操作。我发现了自己仍然有很多的不足,需要自己慢慢的去学习。通过这次设计,我学到了很多知识
- 引言
- 开发背景及意义
校园二手交易网站是一种专门针对学校校园内的二手交易的网站。它的设计和开发主要是为了满足学生之间的二手物品交易需求,方便大家在线买卖二手物品。近年来,随着互联网技术的发展,人们越来越喜欢在线购物,二手交易也不例外。许多学生希望能够通过网络来买卖二手物品,但是由于缺乏一个专门的平台,他们往往只能在论坛、社交媒体等地方进行交易,这不仅不安全,而且不方便。因此,校园二手交易网站的出现是非常必要的。它不仅可以为学生提供一个安全、便捷的交易平台,而且还可以为学校提供一个管理二手物品交易的有效途径。通过这个网站,学生们可以轻松地买卖二手物品,减少浪费。
让学生们更好地利用资源。其次,校园二手交易网站还可以促进学校内部的社交互动,增强学生之间的联系,提高学校的整体形象。因为它是一个针对学校校园的专门平台,可以更好地保证交易的安全性和有效性,为学生提供更好的服务。此外,校园二手交易网站还能够为学校提供一个管理二手物品交易的有效途径。通过这个网站,学校可以更好地监管二手物品交易,保证交易的公平性和公正性,为学生提供更好的保障。总之,校园二手交易网站的出现不仅有利于学生之间的交流和交易,而且还能够为学校提供一种管理和服务的有效途径,对于提升学校的整体形象、改善学生的生活质量具有重要的意义。
-
- 系统可行性
- 技术可行性
- 系统可行性
校园二手物品交易平台的设计与实现运用采用了Springboot和Vue开源框架、MySQL和Druid连接池等技术支持,能较为容易的解决程序中的功能模块所运用的技术等问题。而且在开源的支持下这些技术都已经很完善了,不会出现较大的软件危险等问题。运用这些技术能满足此次软件的开发,这种技术方案是可行的。
-
-
- 操作可行性
-
该系统的设计是基于使用者的实际工作中流程机制来进行开发的,它能有效地解决工作过程中所遇到的各种问题。系统设计的UI符合人们使用习惯,并且页面设计比较简约操作得心应手,不需要复杂的操作流程,适用于普通大众且能满足正常工作中的使用,这种操作是可行的。
-
开发工具及主要技术- 开发工具
1.3.1.1 IDEA开发工具
IDEA作为一个软件集成开发环境,它是一个基于Java的开放源代码的、可扩展的应用程序开发平台 。本系统在开发时使用的是JavaEE程序开发中被广泛使用的IDEA版本。作为软件项目开发工具,IDEA具有很多优势:第一点,IDEA自身携带的插件丰富,还可以根据自己的需求去安装自定义插件;第二点它有着丰富的快捷键,可提高开发效率。
1.3.1.2 MySQL 8.0 数据库
MySQL是时下应用最为广泛的关系型数据库管理系统,在 WEB 开发中,MySQL是使用最为频繁的软件之一。它具有良好的数据存取能力,适合小规模的项目使用,而且MySQL是开源的,不需要支付额外的费用。
-
-
- 主要技术
-
1.3.2.1 B/S模式
B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。基于浏览器的应用,把业务层交给服务器完成,客户端仅仅完成界面的渲染和数据的交换。它具有只开发服务器端,可以跨平台,移植性较强的优点。具体关系如图1-1所示。
- B/S模式示意图
1.3.2.2 MVC设计模式
MVC设计模式中的MVC是由英文字母Model, View和Controller的首字母组成,这三个字母翻译为中文分别是模型层、视图层和控制层的意思。MVC模式是一种很基础的、成熟的网站设计模式,它的设计理念是把应用程序的输入、输出和处理全部分开,将其分为三个核心部分。View层:视图层是将信息反馈给用户并且实现信息交互的界面;Model层:模型层主要实现业务逻辑,数据库的连接与控制等;Controller层:控制层主要是接受用户的请求并调用模型和视图去为用户完成响应。具体关系如图1-2所示。
- MVC业务流程示意图
- 开发环境
(1)硬件环境
CPU中央处理器:Intel Core i7-5200U CPU @ 2.71GHz
内存:4 GB
硬盘:SK HYNIX HFS128G3BTND-N210A
(2)软件环境
操作系统:Windows 10
数据库: MySQL 8.0
开发平台:IDEA 2021
技术框架:B/S ,MVC,SpringBoot
- 系统需求分析
- 问题分析
校园二手交易网站需要具有简洁易用的界面设计,能够吸引用户的注意力,提高用户的使用体验。需要具备交易物品的基本功能,包括发布物品信息、查看物品信息、购买物品等。此外,网站还可以提供其他附加功能,如物品分类、支付等。校园二手交易网站需要保证用户的信息安全,防止信息泄露和恶意篡改。因此,网站需要采取加密技术、身份验证机制等措施,来保证用户的信息安全。校园二手交易网站的设计和开发需要考虑网站的可维护性。网站需要提供良好的操作说明,方便用户查看和使用;网站也需要定期更新和维护,以保证网站的正常运行。
-
- 系统需求分析
- 管理员功能需求
- 系统需求分析
(1)登录:管理员能够根据账号访问系统。
(2)用户管理:管理员可以添加、删除、修改用户信息,查看用户列表,对用户进行管理和控制。例如,管理员可以查看每个用户的个人信息、交易记录等,并可以对用户的交易行为进行审核和管理。
(3)商品管理:管理员可以添加、删除、修改物品信息,查看物品列表,对物品进行管理和控制。例如,管理员可以查看每个物品的详细信息、交易记录等,并可以对物品的交易情况进行审核和管理。
(4)订单管理:管理员可以查看交易信息,对交易进行管理和控制。例如,管理员可以查看每笔交易的详细信息,包括交易物品、交易时间、交易金额等,并可以对交易进行审核和管理。
(5)退出模块:管理员可以在使用完系统后,进行系统退出操作,用于保证系统的安全性,避免自己不在的时候,别人登录系统。
-
-
- 用户功能需求
-
(1)登录:用户能够根据账号访问系统。
(2)主界面:系统首页对校园二手物品,根据商品的种类进行展示,能较为直接的对所需要的物品进行查看。
(3)物品发布:用户可以通过物品发布按钮,发布自己的闲置物品。可以上传二手物品名称、物品详细信息、地区、物品的类别、价格和上传和商品的信息有关展示图片展示等。
(4)消息模块:用户可以在商品信息下方,发表自己对商品的评价并可以在消息模块内对商品的信息进行相关的留言查,并能显示自己评论的时间、相关内容和对此评价的物品信息等。
(5)物品购买模块:用户可以通过立即购买按钮,对所需要的物品进行购买,如果是对一次进行购买的用户,需要输入自己的收货地址。相关信息填写完毕后,便可以通过支付按钮进行相关支付操作。
(6)收藏模块:用户可以把自己的喜欢的商品进行收,可以等到后期需要的时候不需要花费太多的时间对商品进行重新的选择。
(7)下架模块:用户可以对自己上传的商品进行下架处理,当自己上传的商品不想再进行销售时候,可以进行下架操作。
(8)售出、购买模块:用户可在售出模块内,对自己物品的销量进行查看,能够实时的掌握自己的商品最新的销售状态,以便能及时的进行补货上新操作。在购买模块中,可以对自己进行购买过的商品信息进行查看,以便于对近期购买的商品有个直观的掌握。
(9)个人资料:用户可以在个人资料模块内,对自己的名称和密码进行维护等操作啊,可以提高自己账号的安全性。
(10)退出模块:用户可以在使用完系统后,进行系统退出操作,用于保证系统的安全性,避免自己不在的时候,别人登录系统。
-
-
- 游客功能需求
-
(1)游客在没有进行注册登录时候,只能对商品的信息进行查看,无法进行购买和留言等一系列操作。
(2)游客可以通过注册页面填写所需要的注册信息进行注册。
-
- 系统流程分析
- 操作流程
- 系统流程分析
用户想进入系统,首先进入系统登录界面,通过正确的用户名、密码,选择登录类型登录,系统会检查登录信息,信息正确,然后输入相应的功能界面,提示信息错误,登录失败。系统操作流程如图2-1所示。
图2-1操作流程图
-
-
- 添加信息流程
-
添加信息,编号系统使用自动编号模式,没有用户填写,用户添加信息输入信息,系统将自动确认的信息和数据,验证的成功是有效的信息添加到数据库,信息无效,重新输入信息。添加信息流程如图2-2所示。
图2-2添加信息流程图
-
-
- 删除信息流程
-
用户选择要删除的信息并单击Delete按钮。系统提示是否删除信息。如果用户想要删除信息,系统将删除信息。系统数据库删除信息。删除信息流程图如图2-3所示。
图2-3删除信息流程图
-
- 系统E-R图
管理员信息表是用于存储管理员的基本信息,例如用ID、户名、密码等。
管理员实体属性如图2-4。
图2-4 管理员实体
(2)用户信息表是用于存储用户的基本信息,例如用户名、密码、注册时间和状态等。
用户实体属性如图2-5。
图2-5 用户实体
(3)地址表是用于描述收货人收货地址的基本信息,例如编号、手机号和默认地址等。
地址表属性如图2-6。
图2-6 交易物品实体
(4)收藏表是用于描述用户对喜欢的商品进行收藏的信息,包括编号、收藏时间和闲置主键等。收藏表表实体属性如图2-7。
图2-7 评价信息实体
(5)订单信息表是用于存储用户下单时的信息,例如用户名、物品编号、价格等。
订单信息表实体属性如图2-8。
图2-8订单信息表实体
(6)商品表是用于描述用户上传闲置商品的信息表,例如图集、详情、价格和发布时间等。商品表表实体属性如图2-9。
图2-9 商品信息实体
(7)消息表是用于描述用户对商品进行相关评价的信息表,例如留言内容、留言时间和所回复用户等。订单信息表实体属性如图2-10。
图2-10 商品信息实体
- 系统概要设计
- 系统的整体架构
该系统的整体架构如下图3-1所示。
图3-1 系统整体架构图
通过对该系统的分析之后,该系统的整体架构可以分为如下五层:Pojo层、Dao层、Service层、Controller层、View层。
Pojo层其实就是对应着数据库中的实体类,并且实体类中的属性名与数据库属性名一样,在数据库没有访问的时候,Pojo层中的实体类有Spring提供的容器进行管理。
Dao层是数据访问层,和数据库联系比较密切。MyBaits提供了接口式编程方式,只需创建接口和在对应的配置文件中编写SQL语句[9],即可实现对数据库的增删改查。
Service层是业务层,用来处理具体的业务逻辑,并且不需要考虑其具体实现,通过调用Dao层对象实现业务逻辑的编写。
Controller层是控制层,该层和View层联系特别紧密,需要对前台用户发送的请求进行处理和页面跳转,并且需要调用Service层的对象。
View层是视图层,主要用来展示前台JSP页面,可以向后台发送请求,并且可以对后台返回的数据和结果进行响应。
-
- 系统功能结构图
校园二手物品交易平台主要的参与者有游客、学生和管理员三个角色。游客具有查看网站首页和注册的功能。没有注册之前游客只能观看首页并不能进行留言和购买等多种权限操作。学生可以通过系统进行登录、物品发布、消息模块、物品购买模、收藏模块、下架模块、售出模块、购买模块、退出模块和个人信息模块内对自己的商品信息进行维护,可以发布自己的新的商品,对比较满意的商品做出适当的评价。也可以收藏别人发布的商品,便于自己九七进行购买。并且可以根据自己的需要对物品进行下架等操作。可以根据实际的情况来调整物品的上架和下架信息。也可以通过个人信息模块对自己的用户名和密码信息进行维护。管理员具有登录、用户管理、商品管理、订单管理和退出模块等功能。其可以在用户管理模块内对系统中的用户进行相应的管理。如若某些账号因为发布不法的商品可以对用户做出封号处理。商品信息模块内可以对上线的物品进行相应的处理,如果违规则可以进行下架处理。订单管理模块内可以对用户进行购买的订单进行相应的管理等。并且管理员在不使用系统时,可以选择退出系统等操作。如图3-2校园二手物品交易平台。
图3-2校园二手物品交易平台模块
-
- 数据库表
- 管理员表
- 数据库表
管理员表包含着其个人的基本资料信息,如编号、密码和管理员名字等字段,其具体展示见表3-1。
表3-1 管理员表
字段名
数据类型
描述
id
int(11)
编号
account_number
int(11)
管理员账号
admin_password
varchar(20)
管理员密码
admin_name
varchar(32)
管理员名字
-
-
- 学生表
-
学生表包含着其个人基本信息资料,如账号、登录密码和注册时间等字段,其具体展示见表3-2。
表3-2 学生表
字段名
数据类型
描述
id
int(11)
编号
account_number
varchar(20)
账号
user_password
varchar(32)
密码
nickname
varchar(20)
昵称
avatar
varchar(20)
头像
sign_in_time
date
注册时间
user_status
int(1)
状态
-
-
- 地址表
-
学生表包含着其基本资料,如收货人姓名、收货人手机号和详细地址等字段。其具体展示见表3-3。
表3-3 地址表
字段名
数据类型
描述
id
int(11)
编号
consignee_name
varchar(20)
收货下姓名
consignee_phone
varchar(32)
收货人手机号
province_name
varchar(20)
省
city_name
varchar(20)
市
region_name
varchar(20)
区
detail_address
varchar(20)
详细地址
default_flag
varchar(20)
默认地址
user_id
varchar(20)
用户主键
-
-
- 消息表
-
消息表是用于展示用户给相关物品的评价信息表,包含留言内容、留言时间和所回复的留言等字段,其具体展示见表3-4。
表3-4 消息表
字段名
数据类型
描述
id
int(11)
编号
user_id
int(11)
用户主键
idle_id
int(11)
闲置主键
create_time
date
留言时间
content
int(11)
留言内容
to_message
varchar(20)
所回复的留言
to_user
int(11)
所回复的用户
-
-
- 收藏表
-
收藏表是用于展示学生对喜欢的物品进行收藏等信息,包含收藏时间、用户主键和闲置主键等字段,其具体展示见表3-5。
表3-5 收藏表
字段名
数据类型
描述
id
int(11)
编号
create_time
date
加入收藏的时间
user_id
int(11)
用户主键
idle_id
int(11)
闲置主键
-
-
- 商品表
-
商品表是用于展示学生上传的商品等信息,包含闲置商品名称、详情和图集等字段,其具体展示见表3-6。
表3-6 商品表
字段名
数据类型
描述
id
int(11)
编号
idle_name
varchar(20)
闲置物品名称
idle_details
varchar(255)
详情
picture_list
varchar(20)
图集
idle_price
double(20,0)
价格
idle_place
varchar(50)
发货地区
idle_label
varchar(50)
分类标签
idle_status
int(1)
状态
user_id
int(11)
用户主键
release_time
date
发布时间
-
-
- 订单表
-
订单表是用于展示学生卖出商品的订单相关的物品信息,包含订单总价、支付方式和支付时间等字段,其具体展示见表3-7。
表3-7 订单表
字段名
数据类型
描述
id
int(11)
编号
order_number
varchar(50)
订单编号
user_id
varchar(50)
用户主键
idle_id
varchar(50)
闲置物品主键
order_price
double(20,0)
订单总价
payment_status
int(11)
支付状态
payment_way
varchar(50)
支付方式
create_time
Date
创建时间
order_status
int(4)
订单状态
is_deleted
int(4)
是否删除
- 系统实现
- 登录功能模块
系统的“角色”在进行登录时,分为普通用户和管理员登录页面,在进行登录时系统会根据登录不同的方式来进行判断类别。不同的“角色”输入自己的专属账号时,系统会根据使用者的登录类型,会自动筛选出相应的登录成功后的页面。其具体展现见图4-1。
图4-1 登录界面
@RequestMapping("login")
public ResultVo login(@RequestParam("accountNumber") @NotEmpty @NotNull String accountNumber,
@RequestParam("userPassword") @NotEmpty @NotNull String userPassword,
HttpServletResponse response) {
UserModel userModel = userService.userLogin(accountNumber, userPassword);
System.out.println("登录:" + userModel);
if (null == userModel) {
return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);
}
if(userModel.getUserStatus()!=null&&userModel.getUserStatus().equals((byte) 1)){
return ResultVo.fail(ErrorMsg.ACCOUNT_Ban);
}
Cookie cookie = new Cookie("shUserId", String.valueOf(userModel.getId()));
// cookie.setMaxAge(60 * 60 * 24 * 30);
cookie.setPath("/");
cookie.setHttpOnly(false);
response.addCookie(cookie);
return ResultVo.success(userModel);
}
@GetMapping("login")
public ResultVo login(@RequestParam("accountNumber") @NotNull @NotEmpty String accountNumber,
@RequestParam("adminPassword") @NotNull @NotEmpty String adminPassword,
HttpSession session){
AdminModel adminModel=adminService.login(accountNumber,adminPassword);
if (null == adminModel) {
return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);
}
session.setAttribute("admin",adminModel);
return ResultVo.success(adminModel);
}
-
- 管理员功能模块
商品管理:管理员可以对上线的物品进行相应的管理,可以对违规商品进行下架处理。并可以在下架的二手物品模块内可以对下架的物品进行删除等操作。其具体展现见图4-2,4-3所示。
图4-2 上线的二手物品界面
图4-3 下架的二手物品界面
订单管理:管理员可以对物品的交易订单进行查看,并能根据相应的需求进行删除等操作。其具体展现见图4-4。
图4-4 订单管理界面
@PostMapping("add")
public ResultVo addAdmin(HttpSession session,
@RequestBody AdminModel adminModel){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
if(adminService.addAdmin(adminModel)){
return ResultVo.success();
}
return ResultVo.fail(ErrorMsg.PARAM_ERROR);
}
@GetMapping("idleList")
public ResultVo idleList(HttpSession session,
@RequestParam("status") @NotNull @NotEmpty Integer status,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
return ResultVo.success(idleItemService.adminGetIdleList(status,p,n));
}
用户管理:用户管理模块内包含正常用户、违规用户和管理员等三个小模块。正常用户内显示没有违规的用户信息。违规用户内显示已经违规的用户账户信息。管理员模块内显示管理员相关的信息等。其具体展现见图4-5、4-6和4-7所示。
图4-5 正常用户界面
图4-6 违规用户界面
图4-7管理员界面
@PostMapping("/add")
public ResultVo addOrder(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderModel orderModel){
if(OrderTaskHandler.orderService==null){
OrderTaskHandler.orderService=orderService;
}
orderModel.setOrderNumber(IdFactoryUtil.getOrderId());
orderModel.setCreateTime(new Date());
orderModel.setUserId(Long.valueOf(shUserId));
orderModel.setOrderStatus((byte) 0);
orderModel.setPaymentStatus((byte)0);
if(orderService.addOrder(orderModel)){
return ResultVo.success(orderModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
@GetMapping("/info")
public ResultVo getOrderInfo(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestParam Long id){
OrderModel orderModel=orderService.getOrder(id);
if(orderModel.getUserId().equals(Long.valueOf(shUserId))||
orderModel.getIdleItem().getUserId().equals(Long.valueOf(shUserId))){
return ResultVo.success(orderModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
@PostMapping("/update")
public ResultVo updateOrder(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderModel orderModel){
if(orderModel.getPaymentStatus()!=null&&orderModel.getPaymentStatus().equals((byte) 1)){
orderModel.setPaymentTime(new Date());
}
if(orderService.updateOrder(orderModel)){
return ResultVo.success(orderModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
-
- 学生模块
主页面:主页面是用于展示学生需要卖出的商品信息等。包含各种种类的商品信息。其具体展现如4-8所示。
图4-8系统主界面
物品发布模块:物品发布模块内学生可以对自己的闲置物品进行出售。其具体展现见图4-9。
图4-9物品发布界面
消息模块:消息模块内用户查看自己对商品的评价信息等。其具体展现见图4-10。
图4-10 消息界面
@PostMapping("/send")
public ResultVo sendMessage(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody MessageModel messageModel){
messageModel.setUserId(Long.valueOf(shUserId));
messageModel.setCreateTime(new Date());
if(messageService.addMessage(messageModel)){
return ResultVo.success(messageModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
发布商品模块:学生可以在发布商品模块内对自己发布的商品信息进行查看。其具体展现见图4-11。
图4-11 发布商品列表界面
下架商品模块:学生可以在下架商品模块内对自己下架的商品信息进行查看。其具体展现见图4-12。
图4-12 下架商品列表界面
@PostMapping("/add")
public ResultVo addOrderAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderAddressModel orderAddressModel){
return ResultVo.success(orderAddressService.addOrderAddress(orderAddressModel));
}
@PostMapping("/update")
public ResultVo updateOrderAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody OrderAddressModel orderAddressModel){
if(orderAddressService.updateOrderAddress(orderAddressModel)){
return ResultVo.success(orderAddressModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
- 系统测试
在软件设计过程中,进行系统测试是具有很大意义的。一旦项目开始在线运行,在项目中途如果发生了差错,往往将会造成很大的损失。如果是轻微的话,就会丢失使用者。如果是严重的,就会造成巨大的损失。所以项目上线时,一定要做好系统的软件测试[10]。在对系统的测试过程中要及时发现软件的缺陷和隐藏的风险,尽量减少出现问题的可能性。
-
- 用户注册模块测试
用户注册模块,是系统设计的核心模块,因此选取了用户注册模块进行了测试。其具体展示见表5-1。
表5-1 用户注册模块测试用例
编号
等价类
输入
预期输出
1
用户名,账号,密码,重复密码合法
用户名:xx
密码: 520
重复密码: 520
显示注册成功,跳转到首页
2
用户名,账号,密码,重复密码不合法
用户名:xx
密码: 520
重复密码: 521
显示注册失败,跳转到注册页面
3
用户名,密码,重复密码合法,
用户名:xx
密码: 520
重复密码: 521
显示注册失败,跳转到注册页面
-
- 用户登录模块测试
用户登录模块在系统中具有重要的作用,必须保证账户信息的可靠性。系统的安全性才能得到相应的保证。其具体展示见表5-2。
表5-2 用户登录测试用例
编号
等价类
输入
预期输出
1
用户名正确、密码正确
用户名:xx
密码: 520
显示登录成功,跳转到首页
2
用户名错误、密码正确
用户名:xxx
密码: 520
显示登录失败,跳转到登录页
3
用户名正确、密码错误
用户名:xx
密码: 521
显示登录失败,跳转到登录页
-
- 功能测试
功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。
本系统功能测试如表5-3所示:
表5-3系统功能测试
测试内容
测试结果
适用性
好
准确性
好
可操作性
好
依从性
好
安全性
好
-
- 安全测试
安全测试用于测试系统防止各种非法入侵的能力。通过扮演非法入侵者的角色,测试人员可以查看平台可能存在的安全漏洞,从而提高平台的安全级别。系统安全测试主要从以下几点完成:
(1)系统登录安全测试。抽题管理系统在登录时,无论是何种等级的用户都必须根据菜单提示进行选择提交信息。
(2)系统管理权限安全测试。通过分别使用管理员、老师、学生权限,没发现有任何越权或权限混乱现象。
(3)系统数据安全性。本系统对所有的账号和密码数据都进行了加密处理。对数据库进行了伪文件处理,具有良好的数据库备份和恢复机制。
-
- 可用性测试
性能测试可用性测试用于检测系统的可理解性、可操作性和学习性等方面内容。具体测试方面如表5-2所示。
表5-2系统可用性测试
测试项
测试人员的评价
窗口移动、改变大小、关闭等操作是否正常
是
操作模块是否友好
是
模块和提示内容等文字描述是否正确
是
模块布局是否合理、协调
是
模块的状态是否正确(对选中项能否发生对应切换)
是
键盘、鼠标操作是否支持
是
所需的数据项是否正确显示
是
操作流程是否合理
是
是否提供帮助信息
是
-
- 性能测试
性能测试主要是通过模拟平台的运行环境来测试平台的性能是否满足客户的要求。性能测试的关键技术指标是:平台速度,网络响应时间和支持的并发节点数。
(1)平台运行速度:通过在不同的计算机上进行试运行本平台,没有发现任何停顿、迟滞现象。
(2)网络响应时间:网络响应时间主要包括:网络最小响应时间、平均响应时间和最大响应时间这三个参数。经过测试,在网络运营良好状态下,局域网内响应时间三参数为:1/2/5s,外网响应时间三参数为3/7/12s,符合客户的需求,属于在用户的心理可承受范围内。
(3)支持并发节点数:经过模拟的环境测试,本网站在并发节点达到45个时,网络运营的速度会发生比较大的波动,延迟时间10秒左右,符合客户需求。
-
- 测试结果
经过对上述的测试结果分析,本平台开发系统的实现满足客户的要求和需求。所有基本功能齐全,操作简单,产品运行性能良好,是一个值得推广的大众化系统。
- 总结和展望
在本次的课程设计中,经过最终的选择,最后选择了校园二手交易平台系统。我认为这是一个很好的课题,是一个很不错的选择。在本次的大作业中,从刚开始的需求不是很明确。后在网上查阅到许多资料,最终确定了系统的需求,刚开始前台通过ajax向后台发送数据请求,后台怎么都接收不到,有时候甚至会报错。最后我才发现,是json字符的原因。必须要接受json的形式,后台才能获得数据。还是在进行布局页面设计时,我参照了好多的样式,最终确定了界面的ui。有些功能的实现,我都是按照最简单的方式来进行完成的,系统可能会存在一些问题,但已经能满足正常的使用了。经过这次学习,我学会了怎么去完整的去设计一个项目,从刚开始的项目需求分析,到后面的开始建立数据库等一系列操作。我发现了自己仍然有很多的不足,需要自己慢慢的去学习。通过这次设计,我学到了很多知识
-
- 引言
-
转载请注明来自码农世界,本文标题:《springboot的校园二手平台交易系统(课程设计)》
百度分享代码,如果开启HTTPS请参考李洋个人博客
还没有评论,来说两句吧...