Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告

很多朋友发现后期找不到文章,收藏关注不迷路

文章目录

  • 项目介绍
  • 课题意义
  • 国内外研究现状
  • 技术介绍
  • 项目界面
  • 关键代码
  • 目录

项目介绍

随着信息技术的发展,基于web模式的购物系统逐渐普及,网上购物是一种新型的商务模式,其工作流程和经营模式受到了欢迎。电子商务可以适应现代化快节奏的生活方式。在校园,随着学生数量的增多,存在许多生活和学习物品,许多学习用品经过一学期学习之后往往被闲置,一些出于一时喜欢而购买的物品使用机会少而被闲置,还有一些物品以低廉的价格卖给资源回收站,造成巨大的资源浪费。本系统利用管理系统实现校园闲置物品的共享服务,线上进行拍卖,实现闲置物品的分享互利,带动资源的价值再创。因此,开发一个适合学生在线选购的校园闲置物品拍卖系统可以帮助高校提高物品销售效率,具有非常重要的意义。
校园闲置物品拍卖系统使用Java技术,MySQL数据库进行开发,系统后台使用Springboot框架进行开发,具有低耦合、高内聚的特点,其中校园用户通过人脸识别的方法增加系统安全性,在闲置物品推荐中,使用协同过滤算法进行商品推荐。最后对校园闲置物品拍卖系统进行测试,查看系统的功能、负载能力和系统的兼容性,结果表明本系统符合实际要求,完成了即定要求。本文从需求分析、系统设计、系统实现和系统测试方面进行阐述。系统的开发,帮助高校有效的对闲置物品进行管理,提高了闲置物品销售的效率。

课题意义

信息技术的发展给世界各国带来了巨大的变化,特别是Internet的出现,使得人们之间的交流更加顺畅,无论身在何处,只需要通过网络的连接就可以实现沟通。计算机、手机等各种设备的普及,计算机信息技术逐渐走向多元化,无论是经济、军事、服务行业都可以通过管理系统来提高管理效率。
电子商务作为新的网上交易,这些年发展迅速,成为各类人群的购物首选。电子商务就是利用互联网信息技术手段,实现高校商务活动的信息化。目前网上购物的产品种类很多,涵盖了学生们的衣食住行。
在高校校园内,随着学生人群的增多,带来了许多闲置物品。比如,有一些用户因为一时的喜欢购买了书籍,从未阅读过就进行了闲置,造成了书籍的浪费。如果将这些书籍卖给废品回收站,会造成书籍的极大浪费。如果利用校园闲置物品拍卖系统将闲置不用的书籍发布到系统平台中,其他需要的用户通过平台查看书籍信息,从而进行购买,不仅仅为发布者带来了经济收益,也体现出助人为乐的思想。
校园闲置物品拍卖系统是为了在传统大学生校园闲置物品在线交易平台的基础上,实现系统结构轻量化与使用便捷化,提高资源利用率,降低开发与维护成本,简化注册程序,在吸引更多用户的同时提高用户留存率,方便学生了解闲置物品最新的价格信息同时还可以购买各种特殊的闲置物品,优化高校互联网生态。
对于闲置物品发布者来说,可以通过平台带来收益,把闲置的闲置物品进行共享,凭借平台众多的用户群,可以快速的找到需要者。对于闲置物品需求者来说,利用平台搜索自己需要的闲置物品,进行购买,可以通过很少的价格获取到自己需要的闲置物品,也减少了时间成本,同时也可以推荐自己的好友,利用平台来进行交易。
校园闲置物品拍卖系统还提供了评价模块,系统所有的用户都可以进行闲置物品评价,讨论当前闲置物品的读书评语,为其他用户提供参考的意见和建议。

国内外研究现状

在我国,也存在许多闲置物品交易平台,比如咸鱼、转转网等,会员利用平台发布闲置物品共享信息或者闲置物品交易的信息,对于具有闲置物品需求的用户,查看到平台的资讯以后联系发布者。闲置物品共享平台旨在为会员用户提供完善的信息交流平台。闲置物品最重要的是闲置物品评论部分,通过对闲置物品的评论来加深闲置物品的体验,闲置物品评论对闲置物品的交换或者营销也具有非常重要的参考意义,所以在校园闲置物品拍卖系统中,也都提供了闲置物品评论的功能点。
通过调研发现,国内的大部分平台功能还不够完善,许多平台上的信息都是通过收集其他博客网站或者微博网站的,对数据进行改造,而且功能比较单一,没有完整的闲置物品交换流程,缺乏后期的跟踪。而且闲置物品在线交易平台的开发者能力也不尽相同,因为平台的收益有限,所以投入的时间和精力也有限,致使闲置物品在线交易平台没有形成比较有影响力的平台,相应的也阻碍了共享闲置物品的发展。
在一些发达国家,非常重视资源的回收和利用。在欧美更是对资源的回收建立了完善的服务体系,通过物流系统完善资源回收的过程,为人们提供了方便的操作途径,减少了资源的浪费。比如美国的爱书交易平台具有专门的闲置物品交换模块,面向所有的用户群体,不局限于某一个大学,通过平台的数据分类,可以查询到自己需要的数据信息。然后平台通过专业的物流配送解决用户闲置物品的需求。所以无论是学生还是工人,都可以利用平台来进行闲置物品的求购,解决闲置物品浪费的问题。
在欧洲,政府号召举办闲置物品漂流,倡导社会捐赠不需要的闲置物品,并放置到指定地点,为其他需要的人提供方便,也可以将自己不需要的物品提供给他人,如此循环往复,体现了闲置物品共享精神。柏林闲置物品交换俱乐部也曾经发起过森林物品活动,当地居民将自己的闲置闲置物品放置到专门的树干中与游客分享。
无论是哪一种闲置物品在线交易平台平台,也都开发了安卓平台应用,利用移动互联网的优势,积极的发展移动端的App,当前闲置物品在线交易平台形成了集电脑端、手机端共同发展的局面。

技术介绍

1、管理员账号:abo 密码:abo
2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。
3.配置好Tomcat并点击启动按钮即可运行
4.数据库连接src\main\resources\application.yml中修改
5.maven包版本apache-maven-3.3.9.
开发语言:Java
框架:SSM
前端框架:vue.js
JDK版本:JDK1.8+
服务器:tomcat8+
数据库工具:Navicat
开发软件:idea 支持eclipse

Springboot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
Springboot的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml

项目界面

Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第1张图片
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第2张图片
校园闲置物品拍卖系统功能包括前台和后台。校园闲置物品拍卖系统包括了前后台两大功能板块,功能涉及注册与登录模块、管理员功能模块、个人用户模块、闲置物品浏览模块、闲置物品检索模块、闲置物品信息模块、订单管理模块、竞拍管理模块。
校园闲置物品拍卖系统后台管理系统是一个结合现代计算机编程技术而开发的一个管理系统,是为了使网上后台管理者能够在管理后台闲置物品商品的过程中运用系统软件来对商品,订单,管理人员等方面进行一个有效,系统,方便,快捷的管理过程。

Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第3张图片

Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第4张图片
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第5张图片
校园闲置物品拍卖系统主要有如下几类用户:第一类是游客(未注册用户),第二类是正式用户(已注册用户),第三类是后台管理员。
校园闲置物品拍卖系统为管理员和会员使用,当前台用户没有登录时,属于游客,所以从用户角度划分,本系统包括了三类用户,即管理员、会员、游客。其中游客用例图如3.1所示。

Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第6张图片
游客具有访问系统首页的权限,还可以查看热卖的闲置物品商品,通过关键字检索商品,查看闲置物品的分类,游客也可以进行注册,当注册信息得到验证后,即成为会员用户。
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第7张图片
购买商品时需要进行登录,登录后,会员查看商品后可以参与竞拍,竞拍时,输入价格必须高于当前该物品的最高竞拍价格,然后填写或者选择个人的收货地址信息,提交竞拍信息。在个人中心中可以查看个人订单的历史记录,包括是否支付、是否竞拍成功、是否收货、是否完成等信息。
商品购买后,管理员可以对竞拍订单进行管理,其中管理员的用例图如3.3所示。

Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第8张图片
管理员对校园闲置物品拍卖系统进行整体的数据管理,并维护日常的会员和订单信息,所以需要专门对管理员的功能进行设计,用来区分前台用户的操作。管理员从后台登录页面进行登录,管理所有的系统用户信息,包括删除用户、修改用户。对闲置物品商品进行管理,包括闲置物品的类别信息,闲置物品的描述信息,闲置物品的图片等等,提交信息到数据库,并对信息进行修改或者删除。在订单管理中查看订单的状态,对已付款的订单进行发货操作,统计已经完成的订单。此外管理员还具有系统公告、留言管理、数据库信息管理的权限。
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第9张图片
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第10张图片
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第11张图片
Springboot+vue校园闲置二手物品拍卖系统 毕业设计 开题报告_第12张图片

关键代码


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();
    }
}

目录

目 录
目 录 III
1 绪论 1
1.1 研究背景 1
1.2 目的和意义 1
1.3 论文结构安排 2
2 相关技术 3
2.1 Springboot框架介绍 3
2.2 B/S结构介绍 3
2.3 Mysql数据库介绍 4
3 系统分析 6
3.1 系统可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 运行可行性分析 6
3.2 系统性能分析 7
3.2.1 易用性指标 7
3.2.2 可扩展性指标 7
3.2.3 健壮性指标 7
3.2.4 安全性指标 8
3.3 系统流程分析 8
3.3.1 操作流程分析 8
3.3.2 登录流程分析 9
3.3.3 信息添加流程分析 10
3.3.4 信息删除流程分析 11
4 系统设计 12
4.1 系统概要设计 12
4.2 系统功能结构设计 12
4.3 数据库设计 13
4.3.1 数据库E-R图设计 13
4.3.2 数据库表结构设计 14
5 系统实现 17
5.1用户部分功能17
5.2 管理员部分功能展示

6 系统测试
6.1 系统测试的特点 
6.2 系统功能测试
6.2.1 登录功能测试
6.2.2 添加类别功能测试
6.3 测试结果分析
结 论
致 谢
参考文献

你可能感兴趣的:(spring,boot,vue.js,后端)