基于Java(Springboot+Gradle+Mybatis+templeaf 框架)+Mysql构建的(Web)校园二手平台系统

二手市场

1 系统分析

1.1 需求分析

项目背景

国内最大的二手服务商“易趣、淘宝”其注册用户有 61% 为在校大学生,其他占 25% 为社会人士注册,他们每年与学生的交易量占总交易量的 85% 以上.

“易淘”均不向交易双方任何用户提供商品质保和售后服务,所有 89% 的商品一经售出,一概不理,他们最大的弊端在于交易期的漫长等待互相信任度低,不提供对而售商品的技术鉴定和评估,让买方始终不放心,优点:规模大,先入市场,利用完善的电子商务网络交易,成本低廉,对商品的详细信息把握到位有一定的透明度。

鉴于“同一周期内,大学里学生需求有相似性与差异性,对而售商品需求日益旺盛,一些商品耐用性强,一部分大学生为减轻家庭负担,宁愿购买二手,校内交易可信性高,方便廉价无欺。“大四毕业生大多在忙于找工作,离家远东西托运不方便,不愿意浪费时间亲自处理自己带不走的东西,目前高校内部交易混乱各自位为政,甚至互相压榨坑害自己同学,另一面针对大学生提供专门的服务的市场在中国还是一片空白,潜力巨大在校学生生活单调,精神心理空虚不振等日益暴露,大四出去找工作,要面临好多困难,往往四处碰壁心灰意冷甚至自寻短见,即使找到一般的工作也会有住房对当地不熟安全等一系列社会问题发生而无助,迫切需要一个全国性的大学生组织帮他们一把!

需求说明

1) 身份认证就是新卖家与买家需通过注册验证身份,老用户需要登入账号密码验证身份才可进行其他功能操作。

2) 卖家身份认证后可以进行商品发布;商品发布就是可以对自己需要售出的商品进行标价、分类、传图、描述等。

3) 价格协商就是买卖家可以在交易前进行沟通,沟通后卖家可以对商品修改价格。

4) 投诉就是卖家或者买家对之间的交易不满意,可以对此订单进行投诉。

5) 客服需要对产生的投诉进行处理,处理后对交易进行仲裁。

6) 管理员需要发布公告提示用户系统的更变或者一些事情,对买卖家之间产生的交易进行审查,审查交易是否正常,是否构成违法行为。

业务规则

1) 买卖家的身份认证是需满 16 周岁

2) 商品的交易构成至少有一个商品存在

3) 商品的发布需要符合法律,不能发布违法商品

4) 每个交易都需要通过管理员审查

5) 买卖家需要通过身份认证登入才可进行交易

6) 交易商品数量不能大于卖家售卖的数量

7) 投诉需在交易构成存在的前提下

8) 交易后不能对价格商议

9) 客服的交易处理前提需要有交易投诉存在

1.2 用例分析与描述

1.2.1 用例分析

管理员

查看公告:管理员可以查看自己已经发布的公告信息。

发布公告:管理员可发布公告,所有用户可接收到公告。

升级用户身份:买家想要升级为卖家的时候,管理员可审核并决定是否将之升级。

交易审查:管理员可以在后台审查所有交易记录。

指定客服:管理员可以指定客服。

后台登陆:管理员可通过身份验证在后台登陆。

修改密码:管理员可以修改自己的登陆密码;

图 1 管理员用例图

客服

更改商品交易状态:客服审查商品交易侵权行为时,可以修改商品交易状态(1.成功,2.退款交易关闭)。

交易仲裁:出现交易纠纷的时候,由客服仲裁交易结果。

投诉处理:客服可以处理由卖家,买家用户提出的投诉。

修改密码:客服可以修改自己的登陆密码;

图 2 客服用例图

买家

申请升级:买家可通过提交申请升级为卖家。

购买商品:买家可在线购买想要的商品。

价格协商:买家可与想要买的商品所属的卖家联系协商商品价格。

投诉:买家可向平台提交投诉,客服可看到投诉。

查看公告:买家可以查看管理员发布的公告。

浏览商品:买家可以在平台上浏览所有已上架商品;

图 3 买家用例图

卖家

价格协商:卖家可与买家协商商品价格;也可以作为买家与其他卖家进行协商;

投诉:卖家可提交投诉;

购买商品:卖家可在线购买想要的商品;

查看公告:卖家可以查看管理员发布的公告。

浏览商品:卖家可以在平台上浏览所有已上架商品;

图 4 卖家用例图

1.2.2 用例描述

管理员:

用例编号

A01

用例名称

查看公告

简要说明

管理员可以查看自己已经发布的公告信息

执行者

管理员

前置条件

以管理员身份登录

后置条件

查询到公告信息

基本事件流

1. 以管理员身份登录 2. 查看公告 3. 退出

扩展事件流

1.查询不到公告

用例编号

A02

用例名称

发布公告

简要说明

管理员可发布公告,所有用户可接收到公告

执行者

管理员

前置条件

以管理员身份登录

后置条件

成功发布公告,并且用户可接收到

基本事件流

1.以管理员身份登录 2.发布公告 3.退出

扩展事件流

1.发布公告失败

用例编号

A03

用例名称

升级用户身份

简要说明

买家想要升级为卖家的时候,管理员可审核并决定是否将之升级

执行者

管理员

前置条件

1. 以管理员身份登录 2. 买家提交请求

后置条件

1. 管理员升级用户身份 2. 管理员拒绝升级用户身份

基本事件流

1. 以管理员身份登录 2. 管理员升级用户身份 3. 退出

扩展事件流

1.用户不存在

用例编号

A04

用例名称

交易审查

简要说明

管理员在后台审查所有交易记录

执行者

管理员

前置条件

1.以管理员身份登录

后置条件

管理员审查到所有交易记录

基本事件流

1. 以管理员身份登录 2. 管理员审查所有交易记录

扩展事件流

1.交易记录为 null

用例编号

A05

用例名称

指定客服

简要说明

管理员指定客服

执行者

管理员

前置条件

1. 以管理员身份登录 2. 用户请求客服

后置条件

管理员为用户指定客服

基本事件流

1. 以管理员身份登录 2. 管理员为用户指定客服 3. 退出

扩展事件流

能指定客服为 null

用例编号

A06

用例名称

后台登陆

简要说明

管理员通过身份验证在后台登陆

执行者

管理员

前置条件

1. 身份存在 2. 账户密码输入正确

后置条件

成功登陆

基本事件流

1.输入账号密码 2 验证密码 3 登陆 4.退出

扩展事件流

1.账号密码输入错误

用例编号

A07

用例名称

修改密码

简要说明

管理员修改自己的登陆密码

执行者

管理员

前置条件

1.以管理员身份登录

后置条件

成功修改密码

基本事件流

1.输入账号密码 2 验证密码 3 登陆 3. 修改密码 4. 退出

扩展事件流

1.账号密码输入错误

客服:

用例编号

S01

用例名称

更改商品交易状态

简要说明

客服审查商品交易侵权行为时,可以修改商品交易状态(1.成功,2.退款交易关闭)。

执行者

客服

前置条件

1. 以客服身份登录 2. 审查商品有交易侵权行为

后置条件

修改商品交易状态

基本事件流

1 以客服身份登录查看公告 2 修改商品交易状态 3 退出

扩展事件流

1.查询不到商品

用例编号

S02

用例名称

交易仲裁

简要说明

出现交易纠纷的时候,由客服仲裁交易结果。

执行者

客服

前置条件

1. 以客服身份登录 2. 出现交易纠纷

后置条件

成功发布公告,并且用户可接收到

基本事件流

1.1.以客服身份登录 2.客服仲裁交易结果。3.退出

扩展事件流

用例编号

S03

用例名称

投诉处理

简要说明

客服可以处理由卖家,买家用户提出的投诉。

执行者

客服

前置条件

1 以客服身份登录 2 买家用户提出投诉

后置条件

客服处理买家用户提出的投诉。

基本事件流

1. 以客服身份登录 2. 买家用户提出投诉 3. 客服处理买家用户提出的投诉 4. 退出

扩展事件流

登陆失败

用例编号

S04

用例名称

修改密码

简要说明

客服修改自己的登陆密码

执行者

客服

前置条件

以客服身份登录

后置条件

成功修改密码

基本事件流

1.输入账号密码 2 验证密码 3 登陆 5. 修改密码 6. 退出

扩展事件流

账号密码输入错误

用例编号

UB01

用例名称

申请升级

简要说明

买家通过提交申请升级为卖家。

执行者

买家

前置条件

1.以买家身份登录

后置条件

提交申请升级为卖家

基本事件流

1. 以买家身份登录 2. 提交申请升级为卖家 3. 退出

扩展事件流

申请被拒

用例编号

UB02

用例名称

购买商品

简要说明

买家可在线购买想要的商品。

执行者

买家

前置条件

1.以买家身份登录

后置条件

购买到想要的商品

基本事件流

1. 以买家身份登录 2. 购买到想要的商品 3. 付款 4. 退出

扩展事件流

付款失败

用例编号

UB03

用例名称

价格协商

简要说明

买家可与想要买的商品所属的卖家联系协商商品价格。

执行者

买家

前置条件

1. 以买家身份登录 2. 商品存在

后置条件

买家成功与想要买的商品所属的卖家联系协商商品价格

基本事件流

1 以买家身份登录 2 与想要买的商品所属的卖家联系协商商品价格 3 付款 4 退出

扩展事件流

协商失败

用例编号

UB04

用例名称

投诉

简要说明

买家可向平台提交投诉,客服可看到投诉。

执行者

买家

前置条件

1 以买家身份登录 2 买家提交投诉

后置条件

买家成功向平台提交投诉,客服看到投诉

基本事件流

1 以买家身份登录 2 买家成功向平台提交投诉 3 客服看到投诉 4 退出

扩展事件流

1 登陆失败 2.无买家提交投诉

用例编号

UB05

用例名称

查看公告

简要说明

买家可以查看管理员发布的公告

执行者

买家

前置条件

1 以买家身份登录

后置条件

买家查看管理员发布的公告

基本事件流

1 以买家身份登录 2 查看管理员发布的公告 3 退出

扩展事件流

无公告发布

用例编号

UB06

用例名称

浏览商品

简要说明

买家可以在平台上浏览所有已上架商品

执行者

买家

前置条件

以买家身份登录

后置条件

买家在平台上浏览所有已上架商品;

基本事件流

1 以买家身份登录 2 浏览所有已上架商品 3 退出

扩展事件流

登陆失败

用例编号

US01

用例名称

价格协商

简要说明

卖家可与买家协商商品价格;也可以作为买家与其他卖家进行协商

执行者

卖家或买家

前置条件

以买家或卖家身份登录

后置条件

协商商品价格

基本事件流

1 以买家或卖家身份登录 2 协商商品价格 3 付款 4 退出

扩展事件流

1.登陆失败 2.协商价格失败

用例编号

US02

用例名称

投诉

简要说明

卖家可提交投诉

执行者

卖家

前置条件

以卖家身份登录

后置条件

提交投诉

基本事件流

1 卖家身份登录 2 提交投诉 3 退出

扩展事件流

登陆失败

用例编号

US03

用例名称

购买商品

简要说明

卖家可在线购买想要的商品

执行者

卖家

前置条件

以卖家身份登录

后置条件

可购买想要的商品

基本事件流

1 卖家身份登录 2 购买想要的商品 3 退出

扩展事件流

登录失败

用例编号

SU04

用例名称

查看公告

简要说明

卖家可以查看管理员发布的公告。

执行者

卖家

前置条件

以卖家身份登录

后置条件

查看管理员发布的公告

基本事件流

1 卖家身份登录 2 查看管理员发布的公告 3 退出

扩展事件流

无公告发布

用例编号

SU05

用例名称

浏览商品

简要说明

卖家可以在平台上浏览所有已上架商品。

执行者

卖家

前置条件

以卖家身份登录

后置条件

在平台上浏览所有已上架商品

基本事件流

1 卖家身份登录 2 在平台上浏览所有已上架商品 3 退出

扩展事件流

登录失败

2 系统设计

2.1 多层结构设计

项目整体采用的是 Springboot+Gradle+Mybatis+templeaf 框架构建项目,数据库采用的是 MySQL 5.7。

controller 控制层:主要负责逻辑处理和页面请求,接收数据并处理再返回视图层,运用了 Spring Boot 技术。

dao 服务层:主要是连接数据库,处理对数据库的请求,运用了 MyBatis 技术。

entity 实体层:主要是映射数据库,对数据库的表数据一一对应,通过 MyBatis 业务持久层。

Service 接口层:存放业务逻辑处理,也是一些关于数据库处理的操作

util 工具类层:主要是一些公共调用的方法,比如图形验证码

lib 包含的是一些外置导入的 jar 包

mappers 里面是 MyBatis 的映射文件,主要是存放数据库操作语句

static 里面包含项目界面回应用到的静态资源

templates 存放的是所有的动态页面

图 2.1 校园二手平台系统组件图

2.2 问题域设计

2.2.1 域模型设计

对于校园二手平台来说,最常见的角色莫过于是买家和卖家,所以它们也都是从需求描述中识别出来的实体。对于购买商品就会有商品和订单两个实体,还有卖家买家都可以投诉,所以就会有投诉单这个实体。后台系统由管理员和客服两个实体构成。

图 2.2 校园二手平台域模型

2.2.2  Service 接口设计

图 2.2 校园二手平台系统接口类图

2.3 持久化设计

2.3.1 数据库设计

数据库类型为关系数据库

管理员表格

客服表格

买家表格

卖家表格

商品表格

订单表格

投诉表格

公告表格

2.3.2 数据访问设计

数据库配置:

spring.datasource.druid.url=jdbc:mysql://localhost:3306/forsale?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.username=root
spring.datasource.druid.password=162041

MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。所以我们没有使用 repository 类,使用的是 XML 映射文件。

2.4 界面设计

2.4.1 页面链接关系

表 2.1 URL 对应功能说明(pets)

HTTP verb

URL

action

used for

POST

/pets/new

add

return an HTML form for creating a new pet

POST

/pets/new

create

create a new pet

POST

/pets/1/edit

edit

return an HTML form for editing a pet

POST

/pets/1/edit

update

update a specific pet

模型如下图所示

图 2.2 校园二手平台系统页面跳转模型

2.4.2 页面设计

首页

游客首页

个人信息信息界面

发布商品界面

遍历商品

商品详情

管理员登录

客服登录

管理员界面

客服界面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37249.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ue5蓝图项目转换为c++项目 遇到的问题

蓝图项目转c项目 工具/新建C类,随便新建一个c类,即可从蓝图项目转换为c项目 如果转换正常,UE5会要求重新编译程序,并在编译完后自动打开VS 转换前要备份 转换失败的原因 电脑上必须安装了.Net6.0,其他版本高了低了…

挖矿------获取以太坊测试币

文章目录 挖矿------获取以太坊测试币通过水龙头获取以太坊测试币了解Sepolia是什么?水龙头(Faucet)是什么?Gitcoin Passport是什么? 操作1.MetaMask钱包2.将MetaMask切换到Sepolia测试网络3.用MetaMask连接Gitcoin Pa…

玩转物联网-4G模块如何快速将数据上传到巴法云(TCP篇)

目录 1 前言 2 环境搭建 2.1 硬件准备 2.2 软件准备 2.3 硬件连接 2.4 检查驱动 3 巴法云平台设备创建 3.1 创建账号 3.2 进入巴法云 3.3 获取联网参数 4 连接巴法云 4.1 打开配置工具读取基本信息 4.2 设置连接参数进行数据交互 4.2.1 建立TCP连接 4.2.2 订阅主题 4.2.3 发布信…

Vue3 在组件中判断事件是否注册

效果 用途 我想用是否注册事件,来控制组件中图标的显示与隐藏 实现 通过组件中判断是否注册了相应的函数,来判断 const checkEvent () > {const instance getCurrentInstance();console.log(instance?.vnode?.props:>, instance?.vnode?…

ssh连接解析时间过长如何解决

[rootkvm ~]# vim /etc/ssh/sshd_config #修改配置 [rootkvm ~]# systemctl restart sshd #重启服务

【Linux】——进程状态僵尸进程孤儿进程

目录 前言 基本进程状态 运行状态 阻塞状态 挂起状态 Linux下的进程状态 僵尸进程 孤儿进程 结语 前言 进程的状态反映了它在执行过程中的不同阶段,例如创建、就绪、运行、阻塞和终止等。这些状态之间的转换由操作系统的调度算法和进程的行为共同决定。通…

信创系统极速文件查找:locate 命令详解

原文链接:信创系统极速文件查找:locate 命令详解 Hello,大家好啊!今天给大家带来一篇信创终端操作系统上 locate 命令详解的文章。在 Linux 及信创终端操作系统(如 统信 UOS、麒麟 KOS)中,查找…

鸿蒙数据持久化之首选项

场景介绍 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。当用户希望有一个全局唯一存储的地方,可以采用用户首选项来进行存储。Preferences会将该数据缓存在内存中,当用户读取…

PyTorch分布式训练中各节点如何通信

深度学习 文章目录 深度学习前言pytorch如何初始化分布式训练怎么知道要使用哪几台机器进行训练的如何根据标识进行初始化(init_method)如何获取进程的唯一标识rank如何实现数据如何分发 前言 同学们在处理分布式训练时经常会遇到以下几个疑问&#xff…

[数据结构]排序之 归并排序(有详细的递归图解)

一、非递归 基本思想: 归并排序( MERGE-SORT )是建立在归并操作上的一种有效的排序算法 , 该算法是采用分治法( Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列&#x…

在本地跑通spark环境

官网下载spark 下载spark 解压就好 本地配置环境变量 配置环境变量(系统环境变量) 新增 SPARK_HOME 变量名:SPARK_HOME 变量值:F:\class\spark\Spark_env\spark-3.4.4-bin-hadoop3 配置 PATH,新增如下&#xff1a…

UE5材质法线强度控制节点FlattenNormal

连法 FlattenNormal内部是这样的 FlattenNormal的作用是用来调整法线强度 连上FlattenNormal后 拉高数值

Appium使用文档

Appium旨在支持许多不同平台(移动端、网页端、桌面端等)的UI自动化。不仅如此,它还旨在支持用不同语言(JS、Java、Python等)编写的自动化代码。 1. 环境搭建 资源下载: 链接: https://pan.baidu.com/s/1K5Q…

Python绘图技巧,主流绘图库

一、主流绘图库概览 1. 核心工具对比 库名称特点适用场景Matplotlib基础绘图库,高度可定制科学绘图、论文图表Seaborn基于Matplotlib,统计图表优化数据分布、关系可视化Plotly交互式可视化,支持网页输出仪表盘、动态数据展示Pandas内置简易…

使用LLM自动化生成微电网Simulink模型

🚀 使用LLM自动化生成微电网Simulink模型!⚡ 在构建微电网仿真模型时,我们通常需要手动拖拽模块、设置参数,耗费大量时间。现在,通过结合LLM(如 GPT-4)与 MATLAB 脚本,我们可以自动…

Git常用操作之GitLab

Git常用操作之GitLab 小薛博客官网:小薛博客Git常用操作之GitLab官方地址 1、GitLab安装 https://gitlab.cn/install/ 1、Docker安装GitLab https://docs.gitlab.cn/jh/install/docker.html 1、设置卷位置 在设置其他所有内容之前,请配置一个新的…

【AI】AI编程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine

文章目录 一、基本特性对比二、收费标准三、私有部署能力1、Tabnine2、Roo Code 三、代码补全与自然语言生成代码四、安装独立的IDE安装插件安装 五、基本使用(一)Cursor(二)GitHub Copilot1、获取代码建议2.聊天1)上下…

[贪心算法]买卖股票的最佳时机 买卖股票的最佳时机Ⅱ K次取反后最大化的数组和 按身高排序 优势洗牌(田忌赛马)

1.买卖股票的最佳时机 暴力解法就是两层循环&#xff0c;找出两个差值最大的即可。 优化&#xff1a;在找最小的时候不用每次都循环一遍&#xff0c;只要在i向后走的时候&#xff0c;每次记录一下最小的值即可 class Solution { public:int maxProfit(vector<int>& p…

康谋方案 | AVM合成数据仿真验证方案

随着自动驾驶技术的快速发展&#xff0c;仿真软件在开发过程中扮演着越来越重要的角色。仿真传感器与环境不仅能够加速算法验证&#xff0c;还能在安全可控的条件下进行复杂场景的重复测试。 本文将分享如何利用自动驾驶仿真软件配置仿真传感器与搭建仿真环境&#xff0c;并对…

Django Rest Framework 创建纯净版Django项目部署DRF

描述创建纯净版的Django项目和 Django Rest Framework 环境的部署 一、创建Django项目 1. 环境说明 操作系统 Windows11python版本 3.9.13Django版本 V4.2.202. 操作步骤(在Pycharm中操作) 创建Python项目drfStudy、虚拟环境 ​虚拟环境中安装 jdangopip install django==4.…