【网站项目】校园二手交易平台小程序

发布于:2024-04-16 ⋅ 阅读:(23) ⋅ 点赞:(0)

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。

  1. 代码可以私聊博主获取。🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《python网站项目》600套

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目演示

 

摘要

网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模式,校园二手交易平台小程序将是又一个从传统管理到智能化信息管理的典型案例,对于传统的校园二手交易,所包括的信息内容比较多,用户想要对这些数据进行管理维护需要花费很大的时间,而且数据的存储比较麻烦,想要查找某一相关的数据信息比较繁琐,随着互联网大潮的到来,决定开发一套智能化、信息化的校园二手交易平台小程序,主要对首页,个人中心,用户管理,卖家管理,商品分类管理,闲置物品管理,商品求购管理,系统管理等功能的研发。

本文研究以java为语言的校园二手交易平台小程序设计与实现,它在使用时数据库和程序不会被造成太大的影响,用起来也很得心应手。它也算是当时比较流行的安全性相对也很高的框架之一了,java开发语言。和mysql数据库,最终完成校园二手交易平台小程序。

关键词:校园二手交易平台;mysql数据库;java

1绪论

1.1 课题研究的背景与意义

传统的校园二手交易方式都在使用手工记录的方式进行数据的登记,这种方式耗时,而且对于数据量比较大的情况想要快速查找某一数据非常慢,对于数据的统计获取比较繁琐,随着网络技术的发展,采用电脑管理相关数据信息管理与数据查询等诸多环节已成为必然趋势;数据情况的透明化,提高了信息管理的透明度,提高管理效率。

传统的校园二手交易需要对各类信息及时的进行记录、规整、更新、收藏,这是对数据信息统计管理的极大消耗,在其进行过程中,还会出现因信息的重复传递,出现本可以避免的出错问题,例如:前后数据不一致、种类纰漏以及备注不详细等一系列问题。在信息告诉更替的时代,信息的准确性,经济可行性也无疑是众人关注的焦点。那么我们系统的目的性也就很明确。

1.2 国内外研究现状和发展趋势

截至2018年12月,我国网民规模为8.29亿,全年新增网民5653万,互联网普及率达59.6%,网络的普及给人们的工作和生活都带来了很大的改变。

随着近几年来智慧网络的快速发展,不管是哪个国家或者哪个地区,网络发展的速度都是飞快的,而且对于国外而言,起步是比较早的,但是对于我国当下的网络发展也是在逐步提升,并且根据系统的发展进行不同方向的满足用户的需求,而且当下我国的网民的普及率达到70.4%,相比2020年3月提升9.7个百分点,由此可以得出借助网络发展的重要性。

校园二手交易平台小程序的出现是由于校园二手交易信息的使用频率及使用次数的增加,如果我们仍然通过传统的纸质记录选择方式来选择查看校园二手交易信息,就会浪费大量的人力和物力,浪费时间。同时,在人工统计过程中容易出现错误,解决校园二手交易信息的记录数据,让用户通过网上相应的管理系统进行改变传统的手工操作,也方便管理者可以对大量相应数据进行检验和统计,减轻管理者的工作强度,提高工作效率,提高管理效率,从而使得校园二手交易信息管理现代化更上一个台阶。

校园二手交易平台小程序主要是以打造理想校园二手交易管理为核心理念,结合国内外相关管理经验,确立科学化、智能化、标准化的服务,对于校园二手交易平台小程序前期,做好设计规划,在设计阶段,做好智能化建设,以智能化管理系统代替部分的人工工作,更方便快捷的达到校园二手交易需求。

1.3 课题研究的内容

对于校园二手交易平台小程序,充分运用现代化的信息技术手段,对于校园二手交易信息管理发展的趋势就是信息化,信息化时代下的信息管理,需要深化信息管理体制与手段的改革,充分运用信息化手段来全方位的进行校园二手交易管理工作,构建校园二手交易平台小程序,实现校园二手交易信息化,充分运用先进的校园二手交易平台小程序进行校园二手交易的信息管理、个人信息等信息的管理,加强校园二手交易的完善性,通过网络资源和信息共享,运用计算机手段,逐步实现校园二手交易的系统化和网络化,对于校园二手交易信息管理,只有使用这种网络趋势,才能在时代的车轮中走的更远,发展的更好。

2 关键技术介绍

2.1 SSM框架

开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。

2.2 Java技术及架构介绍

JavaLinux为基础并且使用Java语言进行开发的操作平台。Java的开放性让他允许所有人对系统进行修改和完善,这一点也让他在近些年成为便携设备上主要的操作系统。Java同时还内置了内置丰富的应用程序,比如电话、摄像头、播放器。这些都为在系统上开发程序提供了便利。该系统运用小程序完成前台的开发,包括登录注册、个性化特征的收集、基于个性化特征进行旅游信息的推荐和对推荐旅行方案的评价等。

用户使用我们这个校园二手交易平台小程序只需一个Java手机就可以使用了,而且所有操作都是我们熟悉的操作手法。所有的操作通过手机就可以完成,用户不需培训,只要稍微提示一下即可。所以开发校园二手交易平台小程序使用小程序技术不仅方便了开发者而且用户使用起来也非常方便,可以说是相对来说比较完美的开发平台了。

2.3 MYSQL数据库

MySQL数据库管理系统,是目前最流行的关系型数据库管理系统之一。它相对与SQLServer来说小了很多,电脑内存比较小的人用这个会比较方便而且MySQL安装起来非常方便,不需要有很多插件的安装,基本上只需要点击下一步执行,只有在最后的时候选一下数据集选项。MySQL查询起来也非常方便,连接数据库之后直接打开就可以看到,对于我这种懒人来说真的非常实用。MYSQL能够以极高的效率完成各种数据库查询,并能方便的使用存储过程,同时我们一般在使用MySQL是基本上都是实用简单的可视化工具查看,界面简单清晰,以图形的形式表达用户界面易查看的,又能够使数据库管理和系统管理更加简单、直观。由于MySQL对Web端的支持,用户能轻易的在浏览器里面运行界面获取数数据关系,所以这次课题选用MySQL数据库。

2.4微信小程序框架

微信小程序的开发框架是微信所独有的一套框架,分为View视图层和App Service逻辑层两部分。框架提供了一种类似于Web中html语言的wxml语言,作为视图层的标签语言,用于构造页面的布局。另外提供了一种类似Web中css语言的WXSS语言,作为视图层的标签样式语言,用于表述页面的显示。而在逻辑层的框架,则同样使用了JS语言。微信小程序为了使开发者专注在代码的逻辑层面和数据处理上,还专门提供了两种解决方案,一种是事件,一种是数据的传输。这两种方案都位于小程序框架的视图层和逻辑层之间。用户在视图层进行交互之后,传递到逻辑层对数据进行处理,并返回数据到视图层向用户反馈。对于微信小程序视图层的开发设计,小程序官方提供了一系列的组件,这些基本组件可以极大的帮助开发者完成视图层的开发。同时,对于逻辑层的开发,小程序官方提供了一系列API来方便开发者请求一些额外功能。

2.5 B/S架构

随着软件系统的不断改进和升级,B/S结构产品更为方便的特征体现得十分明显。对于一个中等偏大的公司来说,如果系统管理员每天要在很多台电脑之间来回查看,不断奔走,那么效率和工作量就会变得很低,但是如果使用了B/S结构,那么管理员只要对服务器进行管理就够了。

B/S结构最大的优点它不需要安装任何的软件,它所有的客户端就只是浏览器,所以只要有一台电脑并且可以上网就可以解决所有问题,客户端可以完全地不用管理员维护。无论使用系统的使用者是什么样的规模,也不管分支有多么的庞大,都不会对维护和升级的工作量造成影响,所有的维护和升级只需要操作服务器。随着B/S结构的不断发展,使用的人也不断增加,从而带动了AJAX技术的发展,和B/S结构一样,它也能在客户端上处理程序,这便缓解了服务器的负担,提高了交互性,而且实现了局部实时刷新。

3 需求分析与可行性分析

主要介绍校园二手交易平台小程序的需求分析,通常都是功能需求和非功能需求。及其本次课题校园二手交易的可行性分析。

3.1功能需求分析

系统功能需求分析是通过软件开发者在参与市场调研,与校园二手交易管理者及用户交流后经过详细缜密的思考,再讨论研究后得出的初步系统开发所需实现功能。这是开发系统的开始,也是相当关键的一步,如果不在这个阶段制定系统所需模块,日后会带来不必要的麻烦。因此,必须严肃认真,全身心投入去做好这个步骤。

本系统采用从上往下的步骤开发,基本功能如下:

本课题要求实现一套校园二手交易平台小程序,系统主要包括管理员,卖家和用户三大模块

(a) 管理员;管理员进入系统主要功能包括首页,个人中心,用户管理,卖家管理,商品分类管理,闲置物品管理,商品求购管理,系统管理等功能并进行操作。

(b) 卖家;卖家进入系统主要功能包括首页,个人中心,闲置物品管理,用户咨询管理,订单管理等功能并进行操作。

(c) 用户;用户进入小程序主要功能包括首页,闲置商品,商品求购,购物车,我的等功能并进行操作。

3.2 性能需求分析

对系统的性能,从(功能、运行、界面、安全)等方面进行,下面我们逐一进行分析:

1. 系统的功能是否完整进行分析:系统的功能,能对应设计出原始代码和算法,以表格同文字的形式进行详细介绍个人信息保证功能完整;

2. 系统的运行是否通畅进行分析:系统的每个功能都有编写数据的关系和应对的代码,通过需求分析和可行性分析进行分析和显示系统的物理数据,保证其进行通畅;

3. 系统的界面设计进行分析:对系统中的软件进行处理与分析的方式是由不同代码来进行的;从而使界面容易操作;

4. 系统的安全性进行分析:这样才可以每个角色的不同对应的信息也就不同,在登录系统务必使用自己的账号,密码登录,账号与密码错误自然就登录失败了。登录成功可以对自己的信息进行操作,不能对别人的账号的信息进行查看等操作,这样自然保证系统的安全性。

3.3系统设计规则与运行环境

软件系统的优劣很大程度上是由系统设计的完善与否决定的。世间万物都必须遵循生老病死的法则,这是大自然的规则不能违反,软件设计也一样需要遵循系统设计规则。因此,在设计过程中必须遵循系统设计规则。

规则如下:

简单性:为了扩大系统使用者的受众面,系统设计应该本着操作越简单越好的原则,这样不仅能提高系统的使用率更能够扩大系统使用面。

针对性:一个系统针对性越强,所能提供的功能必然越完善,用户体验肯定更好,所以应该明确指定系统针对性。

实用性:实用永远是检验一个系统是否成功的唯一标准,使用的语言再高端,使用的结构再新颖但不能满足管理员,卖家和用户的要求那就是失败。

运行环境:

本系统是利用B/S结构来开发的,数据库在服务器上进行部署Mysql即可,其他包括My Eclipse等常规开发程序。

3.4系统流程分析

系统流程,用户需要登录进入系统,未注册过的用户需要在输入必填的信息之后注册成功然后登录系统,管理员在后台登录进入可以对用户进行修改管理。使用一些较为稳定的技术总结成一个系统的开发设计过程,是设计与实现各个功能模块的基本技术,这些是每个功能模块能够顺利进行的重要保证。

图3-1系统流程图

3.5 可行性分析

通常一个项目的启动或者投入市场运营都需要一个评估报告,要从需求上分析这个项目是否能在这种环境下实现整体目标,是否有这个市场回报率即我们通常所说的是否能够获得利润或者开发出来是否具有实用性,不能说系统开发出来后根本没有用。所以其目的就是以最小的付出来得到更大的效率。本次课题我们就从技术可行性,操作可行性上来分析。

(1)技术可行性

Java由操作系统,中间件和应用软件三大部分组成。它是与谷歌公司和开放手机联盟共同开发的移动终端平台;该开发平台包括性能评价,出错工具,模拟器和存储器等功能;具有完善的开发环境。

(2)操作可行性

本系统用户只要有一台Java手机,就可以使用了,系统是使用的操作都是用户熟悉的选择框或者按钮等等。所有的操作通过手机就可以完成,用户不需培训,只要稍微提示一下即可。因此,在操作使用上,本系统简单、方便,易于使用户接受,因而是十分可行的。

4 系统设计

4.1软件功能模块设计

小程序总体功能如下图所示:

图 4-1 小程序总体功能模块图

4.2登录注册模块

用户要通过填写自己的账号和密码进入系统,如果用户没有登录的账号需要先进行注册用户在注册页面输入账号和密码,点击注册,按要求输入注册表所要的信息,登录密码和确认密码,点击注册后,系统先判断用户输入的“密码”和“确认密码”是否一致,如果不一致,用户需重新输入;如果一致则注册成功,然后输入刚才注册的个人账号和密码点击“登录”按钮,显示“登录中请稍后”,如果登录信息正确则系统跳转进课堂列表界面;如果登录信息错误则显示 “登录失败”登录注册算法流程图如图4-2登录注册流程图所示。

图4-2登录注册流程图

Web后台端管理员登入正确可以查看用户修改用户信息,查看课堂信息等操作;如果输入错误,则无反馈重新登录。如图4-3后台管理流程图所示

图4-3后台管理流程图

4.3数据库设计

前面系统分析结束后现在进入设计阶段,在这个过程中我们要抽象地分析数据,将数据中的关系理解清楚,然后对概念结构和逻辑结构进行设计。由于MYSQL能够以极高的效率完成各种数据库查询,并能是存储过程更加方便。同时能够使数据库管理和系统管理更加清晰便捷。另外,系统以Web技术支持,使用户能够轻易地发布数据到Web页面上。所以本系统采用了MYSQL进行数据库的存储管理与维护。

4-1:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-2:二手商品评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-3:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-4:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-5:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

收藏id

tablename

varchar

200

表名

name

varchar

200

收藏名称

picture

varchar

200

收藏图片

type

varchar

200

类型(1:收藏,21:赞,22:踩)

1

inteltype

varchar

200

推荐类型

表4-6:求购信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangpinmingcheng

varchar

200

商品名称

shangpinleixing

varchar

200

商品类型

qiugouyaoqiu

longtext

4294967295

求购要求

qiugoujine

float

求购金额

qiugoushijian

datetime

求购时间

qiugoushuoming

longtext

4294967295

求购说明

shangpintupian

varchar

200

商品图片

xuehao

varchar

200

学号

shouji

varchar

200

手机

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

表4-7:售后客服

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

adminid

bigint

管理员id

ask

longtext

4294967295

提问

reply

longtext

4294967295

回复

isreply

int

是否回复

表4-8:订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

orderid

varchar

200

订单编号

tablename

varchar

200

商品表名

ershoushangpin

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

varchar

200

商品图片

buynumber

int

购买数量

price

float

价格/积分

0

discountprice

float

折扣价格

0

total

float

总价格/总积分

0

discounttotal

float

折扣总价格

0

type

int

支付类型

1

status

varchar

200

状态

address

varchar

200

地址

tel

varchar

200

电话

consignee

varchar

200

收货人

logistics

longtext

4294967295

物流

表4-9:商品分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

leixing

varchar

200

类型

表4-10:购物车表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tablename

varchar

200

商品表名

ershoushangpin

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

varchar

200

图片

buynumber

int

购买数量

price

float

单价

discountprice

float

会员价

表4-11:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

varchar

200

图片

content

longtext

4294967295

内容

表4-12:地址

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

address

varchar

200

地址

name

varchar

200

收货人

phone

varchar

200

电话

isdefault

varchar

200

是否默认地址[是/否]

表4-13:卖家警告

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jinggaobiaoti

varchar

200

警告标题

jinggaoneirong

longtext

4294967295

警告内容

jinggaoshijian

datetime

警告时间

maijiazhanghao

varchar

200

卖家账号

maijiaxingming

varchar

200

卖家姓名

表4-14:卖家沟通

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

goutongbiaoti

varchar

200

沟通标题

goutongneirong

longtext

4294967295

沟通内容

goutongshijian

datetime

沟通时间

zhanghao

varchar

200

账号

maijiazhanghao

varchar

200

卖家账号

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

表4-15:用户警告

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jinggaobiaoti

varchar

200

警告标题

jinggaoneirong

longtext

4294967295

警告内容

jinggaoshijian

datetime

警告时间

xuehao

varchar

200

学号

xingming

varchar

200

姓名

表4-16:卖家

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

maijiazhanghao

varchar

200

卖家账号

mima

varchar

200

密码

maijiaxingming

varchar

200

卖家姓名

xingbie

varchar

200

性别

lianxidianhua

varchar

200

联系电话

tupian

varchar

200

图片

money

float

余额

0

表4-17:用户沟通

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

goutongbiaoti

varchar

200

沟通标题

goutongneirong

longtext

4294967295

沟通内容

goutongshijian

datetime

沟通时间

maijiazhanghao

varchar

200

卖家账号

xuehao

varchar

200

学号

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

表4-18:交流论坛

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

isdone

varchar

200

状态

表4-19:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

mima

varchar

200

密码

xingming

varchar

200

姓名

xingbie

varchar

200

性别

shouji

varchar

200

手机

dizhi

varchar

200

地址

tupian

varchar

200

图片

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

money

float

余额

0

表4-20:二手商品

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangpinmingcheng

varchar

200

商品名称

shangpinleixing

varchar

200

商品类型

xinjiuchengdu

varchar

200

新旧程度

shangpinjieshao

longtext

4294967295

商品介绍

shangpintupian

varchar

200

商品图片

maijiazhanghao

varchar

200

卖家账号

lianxidianhua

varchar

200

联系电话

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

thumbsupnum

int

0

crazilynum

int

0

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

price

float

价格

onelimittimes

int

单限

-1

alllimittimes

int

库存

-1

表4-21:信誉评价

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

pingjiashangpin

varchar

200

评价商品

pingjiadengji

varchar

200

评价等级

pingjianeirong

longtext

4294967295

评价内容

pingjiashijian

datetime

评价时间

maijiazhanghao

varchar

200

卖家账号

xuehao

varchar

200

学号

xingming

varchar

200

姓名

表4-22:求购信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

5系统实现

校园二手交易平台小程序由前台和后台交互构成。前台是用户对于本系统的使用,用户可以通过手机端登录注册,管理个人信息,选择理想的闲置商品,查看商品求购,用户咨询,我的收藏管理,用户充值,购物车,我的订单等详细信息。

后台主要是管理员模块和卖家模块,可对该小程序的用户进行系统管理,登录进后可对用户进行管理等操作。

5.1微信小程序端模块实现

本章主要介绍校园二手交易平台小程序的系统实现,根据系统的需求分析,系统设计,系统前台功能区和系统后台功能区的实现。通过以下系统运行界面和核心代码展示。

用户登录,本系统和大部分系统一样都需要登录才能进入系统进行后续操作,用户输入登录名和密码,具体的实现效果如图5-1所示:

图5-1 登录界面图

用户注册,在使用本软件前需要新进行登录操作,如果用户还没有账号可先注册然后再登录。具体的实现效果如图5-2所示:

图5-2 用户注册界面图

用户登陆小程序端,可以对首页,闲置商品,商品求购,购物车,我的等功能进行详细操作,如图5-3所示。

图5-3小程序端首页界面图

闲置物品,在闲置物品页面可以查看商品名称,商品分类,成色,品牌,规格,卖家账号,联系电话,点击次数,库存等信息,并进行联系卖家,加入购物车和立即订购操作;如图5-4所示。

图5-4闲置物品界面图

商品求购,在商品求购页面可以查看商品名称,商品分类,成色要求,接受价位,需求数量,发布日期,用户账号,用户姓名,手机号码等信息,并进行修改和删除操作;如图5-5所示。

图5-5商品求购界面图

用户,在我的页面可以对商品求购,用户咨询,我的收藏管理,用户充值,购物车,我的订单等详细信息进行操作,如图5-6所示。

图5-6用户功能界面图

5.2后台模块

系统后台登录,管理员和卖家通过输入账号、密码,选择角色并点击登录进行系统登录操作,如图5-7所示。

图5-7后台登录界面图

5.2.1管理员功能模块

管理员登录系统后,可以对首页,个人中心,用户管理,卖家管理,商品分类管理,闲置物品管理,商品求购管理,系统管理等功能进行相应操作,如图5-8所示。

图5-8管理员功能界面图

用户管理,在用户管理页面可以对索引,用户账号,用户姓名,头像,性别,手机号码等内容进行详情、修改或删除等操作,如图5-9所示。

图5-9用户管理界面图

卖家管理,在卖家管理页面可以对索引,卖家账号,卖家姓名,头像,性别,联系电话等内容进行详情,修改或删除等操作,如图5-10所示。

图5-10卖家管理界面图

商品分类管理,在商品分类管理页面可以对索引,商品分类等内容进行详情,修改或删除等操作,如图5-11所示。

图5-11商品分类管理界面图

闲置物品管理,在闲置物品管理页面可以对索引,商品名称,图片,商品分类,成色,品牌,规格,商品视频,卖家账号,联系电话,价格,单限,库存等内容进行详情或删除等操作,如图5-12所示。

图5-12闲置物品管理界面图

商品求购管理,在商品求购管理页面可以对索引,商品名称,图片,商品分类,成色要求,接受价位,需求数量,发布日期,用户账号,用户姓名,手机号码,等内容进行详情或删除等操作,如图5-13所示。

图5-13商品求购管理界面图

系统管理,在公告信息页面可以对索引、标题、图片等内容进行详情,修改或删除等操作,还可以对轮播图管理进行详细操作;如图5-14所示。

图5-14系统管理界面图

5.2.2卖家功能模块

卖家登录系统后,可以对首页,个人中心,闲置物品管理,用户咨询管理,订单管理等功能进行相应操作,如图5-15所示。

图5-15卖家功能界面图

个人中心,在个人中心页面可以通过填写,卖家账号,卖家姓名,头像,性别,联系电话等信息进行修改操作;如图5-16所示。

图5-16个人中心界面图

闲置物品管理,在闲置物品管理页面可以对索引,商品名称,图片,商品分类,成色,品牌,规格,商品视频,卖家账号,联系电话,价格,单限,库存等内容进行详情,修改,查看评论或删除等操作,如图5-17所示。

图5-17闲置物品管理界面图

6 系统测试

6.1 测试目标

进行软件的测试是为了知道在开发过程中的错误,并不是去看程序中有什么问题。进行软件测试的重要意义是提醒人们发现错误,并且对其中的错误进行修改,并不是为了显示程序有多正确。在测试过程中发现了错误,可以对其软件的问题进行分析研究,找到解决问题的办法。此文主要是为了增强管理员的针对性工作,增强其检测效率,找到减少错误的方法,这才是完成产品检测的真实目的。

6.2 测试步骤

在进行程序的测试时,需要我,我们分段进行,一步一步实施。从程序来看,程序是不断发展完善的。通常在一个较大的程序中,我们会将其分为几个小部分,由几个模块组成。所以在进行相对较大的程序测试过程中,基本上包含以下几个步骤:

(1)找到程序中详细的错误部位;

(2)发现程序运行中出现的设计错误;

(3)对错误发现方案进行规范化。

经过上述测试,这个校园二手交易平台小程序在各项操作中可按照预期的设计运行,能够实现校园二手交易的开发目标与要求。重要的是,这个系统就是根据用户的需求切身开发,根据对用户需求分析,用最合适的结构保证系统的稳定确保用户在使用该系统的不会崩溃能够稳定的加载出界面,而且为了能让更多年龄层的人都能够使用这个系统让用户很轻易的找到他们所需要的操作。运能够真正的做到以用户为中心进行设计。对于我们这个小程序来说,对系统的质量管控还是比较严格的,如果一个界面出现问题,紧接着页面就会根据错误给出提示追踪到每一行甚至那个单词,从而保证运行的质量。我们这个系统的测试主要就是保证他在运行时的稳定质量。所以经过上述测试结果可以看出,本系统操作流畅。

7总结及展望

7.1 总结

这次的课题设计是我们毕业的最后一个关卡,通过指导老师的帮助然后上网还有书籍查阅相关资料终于将这个系统完成。当然也缺不了同学的帮助。刚和老师商量课题的时候还非常高兴是一个之前自己接触过的题材,要求的内容也比较显而易见。但是在和指导老师确定任务书时还是比较吃惊,因为要用到微信小程序端比较麻烦,需要将一些前台的功能在手机端实现对我来说还是比较吃力的。但通过慢慢的知道开始写任务书,对我要做的项目功能有了更加深刻的理解。前台是用户对于本系统的使用,可以通过手机端登录注册,管理个人信息,首页,闲置商品,商品求购,购物车,我的等。

后台主要是管理员和卖家,可对该小程序的用户进行系统管理,管理员登录进后可对所有用户进行管理,主要包括首页,个人中心,用户管理,卖家管理,商品分类管理,闲置物品管理,商品求购管理,系统管理等操作。

这次的课题设计真的算是一个大融合,它基本上运用到了我们所学习的关键技术,我们可能之前学过的知识早已忘记但是这次的毕设课题是一次非常好的机会让我们重温之前的专业知识,相当于自己又重新学习了一遍,感觉自己的自我学习能力得到了很大的提升。同时又锻炼了自己的实际动手能力。通过对本系统的开发和探索,我对软件的开发过程有了更加深刻的了解,特别是通过对Java平台的大学校园二手交易平台小程序的开发,使我对面向对象技术有了较为深入了解和认知。

这次的课题设计让我对独自做一个系统开发有了一个非常深刻的认知,真的是很难,从我自己的角度来讲,首先系统平台的搭建就花费了很长时间,在安装这些运行软件的过程中,总会有各种各样的插件问题出现,这个很考验人的耐心,因为在之后的运用过程中我就受此困扰很久。然后之后的开题报告,中期检查中也是有各种描述不明确出现。核心代码部分经常会出现jar包的错误跳转的失败,都需要花很多时间去调试。在这个过程中,出来只是的升高最多的还有自己耐心越来越好了。所以此刻认识还不算太晚,今后一定要努力提高自己的知识水平,同时还是要不断学习,尽可能多的阅览一些专业书籍,从而丰富自己的知识层面。答辩时间迫在眉睫,时间真的有限,这个报告所解决问题的方法还没有很好,希望接下来还有机会将这个报告加工完善。

7.2 展望

目前为止,系统只能在我们自己电脑手机上运行,只能像单机操作环境一样自己写的自己可看,如果想让其他人也能使用就需要加入局域网等更加高级的操作。但也有可能本系统还达不到商业的水平,因为我们这个课题设计时间有限,而且我自身的专业知识也不够多,也只能勉勉强强把系统搭建出来,不过我还是在这个过程中一直在努力获取心得知识与自己的课题匹配。我相信只要给我时间我还可以把这次的项目完善的更好,效率可以更高的。这次毕业设计的时间虽然不算太长,但是我对很多东西有了更深刻的认识。自己总结了几点让大家共同勉励:认真查阅资料和阅读相关文献非常重要;虚心向老师和同学请教;自己实际操作非常重要,以前我总是觉得只要理论上理解了应该问题不大,然后有很多基本命令代码没有自己去亲自感受一下,所以在这次的调试环节经常出问题,所以大家要记住"代码是调出来的"的道理。对于以后要成为程序员的朋友,真的要比平常人有更多的耐心和毅力,这是一个反复调试反复查看的过程。而且现在网络很发达,随便上网查查就能够得到许多解决方法。

真的大学几年转瞬即逝,本科生涯就要画上句号了。这次毕业设计过程中,我更深刻地认识到了实践动手能力在大学课程中的重要性。虽然校园的学习生涯即将结束,但是我们人生道路的学习才刚刚开始,我们还有接下来这么多年的时间来弥补之前没有好好学习的遗憾。对于我来说之后的工作岗位离学习这些知识还没有特别远,以后还能够多多学习。毕竟越优秀越好。

参考文献

[1]杨选辉.信息系统分析与设计[J].北京:清华大学出版社.2017

[2]钱雪忠.数据库原理及应用[M].北京:北京邮电大学出版社.2017.08

[3]吴建.张旭东.java网络开发入门与实践[J].人民邮电出版社.2016

[4]贺松平.基于MVC的B/S的架构的研究及应用[D].武汉:华中科技大学.2016

[5]毕国锋.java技术的Web应用程序三层设计模型研究[J].黑龙江科技信息.2017.03

[6]青龙老贼,赵黎,方雨,刘琪.微信终极秘籍:精通小程序商业运营[M].北京:电子工业出版社,2019.

[7]戴晟晖.微信公众平台搭建、开发与实践指南[M].北京:中国铁道出版社,2016.

[8]微网.微商城细节知多少?微信小程序在未来几年的发展方向[EB/OL].2019.

[9]李刚.疯狂Ajax讲义:jQuery/ExtJS/Proto.义:jQuery/ExtJS/Prototype/DWR企业应用前端开发实战[M].3版.北京:电子工业出版社,2018.

[10]PaulDeck,林仪明,崔毅.SpringMVC学习指南[M].北京:民邮电出版社,2017

[11]王珊.数据库系统原理教程[M].北京:清华大学出版社,2018,56.

[12]求是科技.java数据库开发技术与工程实践[M].北京:人民邮电出版社,2016,131.

[13]王群,李馥娟.java数据库系统开发完全手册[M].北京:人民邮电出版社,2016.3.39-44

[14]李严,于亚芳,王国辉.java数据库开发实例解析[M].北京:电子工业出版社,2019.12.78-93

[15]王国辉、牛强、李南南java工程应用与项目实践[M].北京:电子工业出版社,2015.4.162-171.

核心代码展示

/**
 * 公告通知
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-09 11:33:59
 */
@RestController
@RequestMapping("/news")
public class NewsController {
    @Autowired
    private NewsService newsService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NewsEntity news){
       	EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
      	ew.allEq(MPUtil.allEQMapPre( news, "news")); 
        return R.ok().put("data", newsService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NewsEntity news){
        EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
 		ew.allEq(MPUtil.allEQMapPre( news, "news")); 
		NewsView newsView =  newsService.selectView(ew);
		return R.ok("查询公告通知成功").put("data", newsView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request){
        //ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = newsService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}