java毕业设计基于springboot校园闲置物品拍卖系统

一、项目介绍

  校园闲置物品拍卖系统使用Java技术,MySQL数据库进行开发,系统后台使用Springboot框架进行开发,具有低耦合、高内聚的特点,其中校园用户通过人脸识别的方法增加系统安全性,在闲置物品推荐中,使用协同过滤算法进行商品推荐。最后对校园闲置物品拍卖系统进行测试,查看系统的功能、负载能力和系统的兼容性,结果表明本系统符合实际要求,完成了即定要求。本文从需求分析、系统设计、系统实现和系统测试方面进行阐述。系统的开发,帮助高校有效的对闲置物品进行管理,提高了闲置物品销售的效率。

二、开发环境

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍

校园闲置物品拍卖系统主要有如下几类用户:第一类是游客(未注册用户),第二类是正式用户(已注册用户),第三类是后台管理员。
校园闲置物品拍卖系统为管理员和会员使用,当前台用户没有登录时,属于游客,所以从用户角度划分,本系统包括了三类用户,即管理员、会员、游客。其中游客用例图如3.1所示。
在这里插入图片描述

图3.1 游客用例图
游客具有访问系统首页的权限,还可以查看热卖的闲置物品商品,通过关键字检索商品,查看闲置物品的分类,游客也可以进行注册,当注册信息得到验证后,即成为会员用户。
会员用户用例图如图3.2所示。
在这里插入图片描述

图3.2 会员用例图
购买商品时需要进行登录,登录后,会员查看商品后可以参与竞拍,竞拍时,输入价格必须高于当前该物品的最高竞拍价格,然后填写或者选择个人的收货地址信息,提交竞拍信息。在个人中心中可以查看个人订单的历史记录,包括是否支付、是否竞拍成功、是否收货、是否完成等信息。
商品购买后,管理员可以对竞拍订单进行管理,其中管理员的用例图如3.3所示。
在这里插入图片描述

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

四、核心代码

部分代码:

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

五、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六、文章目录

目 录

摘 要 I
Abstract II
1 绪论 1
1.1 课题意义 1
1.2 国内外研究现状 2
1.3 研究内容 3
2 相关技术 4
2.1Html技术 4
2.2Java编程技术 4
2.3数据库技术 5
2.4人脸识别技术 5
2.5协同过滤推荐算法 6
3 系统分析 7
3.1可行性分析 7
3.1.1 经济可行性 7
3.1.2 技术可行性 7
3.1.3 法律可行性 7
3.1.4 社会可行性 7
3.1.5 可行性结论 8
3.2需求分析 8
3.2.1 系统功能需求分析 8
3.2.2 系统非功能需求分析 10
4 系统设计 12
4.1功能设计 12
4.2 数据库设计 14
4.2.1 数据库ER图设计 14
4.2.2 数据库表设计 17
5 系统的设计与实现 22
5.1 前台系统的设计 22
5.1.1 首页设计 22
5.1.2 用户注册页面 22
5.1.3 用户登陆界面 23
5.1.4 商品展示界面 24
5.1.5 商品竞拍功能 25
5.2 系统后台 25
5.2.1 后台首页 25
5.2.2 注册用户管理界面 26
5.2.3 商品类别管理界面 27
5.2.4 商品管理界面 28
5.2.5 订单管理界面 28
6 系统测试 30
6.1 测试说明 30
6.2 功能测试 30
6.3 测试小结 32
总结与展望 33
参考文献 34
致谢 36

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值