基于springboot+vue的二手书管理系统的设计与实现

一、项目介绍

  
本设计完成了基于Vue2+elementUI的二手书管理系统的设计与实现。现代移动化网络发展下,不同于以往的短信、邮件、收音机传递信息,网页是向用户传输信息的主要媒介之一。书籍也是向人们传递信息和知识的媒介,如今书籍印刷和出版的快速发展,以及社会文化水平的进步,越来越多的读书客使得书籍市场愈发壮大,由此为了获得需要制作书籍的纸张砍伐了更多的森林,增大了保护环境的压力。伴随着网络用户的逐渐增长,在网上通过网页或者小程序交易二手图书的人越来越多。
在本毕业设计中,前端开发方面使用了Vue.js和Element UI构建了一个带有搜索、筛选、发布、购买、订单管理等功能的Web应用程序。并且使用Vuex作为状态管理器,方便管理应用程序的多个组件之间的共享状态。同时,为了增加应用程序的可重用性和灵活性,将应用程序划分为多个组件,每个组件都可以独立开发、调试和测试。在Vue-router和axios的帮助下,实现一个完全响应式的单页面应用程序。组要功能包括:(1)用户登录与注册;(2)二手书籍搜索:(3)购物车功能;(4)书籍买卖。在后端开发方面使用Node.js和Express框架,对应用程序进行服务器端开发,同时使用MongoDB作为数据存储,对用户、书籍、订单信息进行管理和存储。
最终实现一个基于vue2.0+node.js且功能完善、流畅易用的二手书交易平台,为用户提供了一个能登录注册,能买能卖,能搜索二手书的平台,拥有良好的用户体验,帮助他们更加便捷地进行二手书籍的交流和交易。通过该系统,用户可以轻松地添加、编辑和删除书籍信息,该系统还提供了购物车功能,以帮助用户更好地管理订单。

关键词:Vue2.0,二手书,电商,nodeJs+express

二、开发环境

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

三、功能介绍

本章主要阐述本设计的各个功能模块的需求。
3.2.1 用户登录功能
用户输入用户名和密码后,点击登录按钮,系统需要验证用户的账号和密码是否正确。如果账号和密码正确,系统需要跳转到用户的个人信息页面。如果账号和密码不正确,系统需要提示用户账号或密码错误,并清空用户输入的密码框。
用户需要有记住密码的选项,系统需要保存用户的登录状态,下次打开页面时不需要再次登录。用户可以选择使用第三方账号(如微信、QQ)登录,系统需要提供相应的第三方登录接口。
3.2.2 用户注册功能
用户在注册页面输入用户名、密码、确认密码、邮箱等信息,点击注册按钮后,系统需要对输入的信息进行验证。如果信息填写不完整或格式不正确,系统需要给出相应的提示,提示用户修改错误的信息。如果输入的两次密码不一致,系统需要提示用户两次输入的密码不一致。注册成功后,系统需要自动跳转到登录页面,并提示用户注册成功,请登录。
3.2.3 书籍搜索功能
用户在搜索框中输入关键字,点击搜索按钮后,系统需要根据关键字搜索相关的书籍。系统需要支持模糊搜索,即输入的关键字可以是书名、作者名、出版社、ISBN等信息的一部分,系统需要返回匹配的结果。系统需要支持分页显示搜索结果,每页可以显示固定数量的书籍信息,并提供翻页功能。用户可以选择按照价格、评分等信息进行排序,系统需要根据用户选择的排序方式对搜索结果进行排序。系统需要提供筛选功能,用户可以根据自己的需求,筛选出符合条件的书籍,例如按照价格范围、出版时间等进行筛选。
3.2.4 书籍上架功能以及购买功能
书籍上架功能:
需要售卖二手书的用户需要登录系统后,才能进入书籍上架页面。卖书者在书籍上架页面填写书籍信息,包括书名、作者、出版社、价格、信息,并上传书籍封面图片。可以填写多个标签,用于分类和搜索书籍。卖书者需要进行价格和库存的合理性检查,确保上架的书籍信息正确无误。点击提交按钮后,系统需要将书籍信息存储到数据库中,上架成功后,提示上架成功。
购买功能:
用户在搜索页面或者书籍详情页面点击购买按钮后,系统需要验证用户是否已登录。如果用户未登录,则需要提示用户先登录。用户确认购买后,系统需要扣除相应的购买金额,并将购买记录存储到数据库中,同时更新书籍库存信息。购买成功后,系统需要提示用户购买成功,并显示相应的购买记录。
为了实现以上需求,在前端使用Element-UI的Input、Button、Checkbox等组件来实现登录页面的构建,同时使用Axios库发送HTTP请求与后端进行数据交互。在后端,则需要编写相应的登录接口,进行账号密码的验证,并返回结果给前端。如果使用第三方账号登录,还需要与第三方接口进行对接,获取用户信息。同时,在登录状态保存方面,可以使用浏览器提供的localStorage或cookie来实现。

四、核心代码

部分代码:

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

五、效果图

请添加图片描述

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

六、文章目录

目 录
第1章 绪论 1
1.1 项目背景 1
1.2 国内外研究现状 1
1.3 项目开发意义 2
1.4 报告主要内容 2
第2章 关键技术介绍 3
2.1 前端开发技术 3
2.1.1 vue.js 3
2.1.2 element-UI 3
2.1.3 AJAX与AXIOS 3
2.2 后端开发技术 4
2.2.1 node.Js 4
2.2.2 MySQL数据库 4
2.3 本章小结 4
第3章 系统分析 5
3.1 二手书在线市场业务分析 5
3.1.1 UI分析 5
3.1.2 路由 6
3.1.3 权限 7
3.2 功能需求 8
3.2.1 用户登录功能 8
3.2.2 用户注册功能 8
3.2.3 书籍搜索功能 8
3.2.4 书籍上架功能以及购买功能 8
3.3 本章小结 9
第4章 系统设计和实现 10
4.1 系统技术架构 10
4.2 模块化编程 11
4.2.1 登录与注册模块 11
4.2.2 主页模块 13
4.2.3 购物车页面设计 14
4.2.4数据库 16
4.3 css与预处理器 17
4.4 数据托管与Vuex 17
第5章 系统测试 19
5.1 测试环境 19
5.1.1 硬件环境 19
5.1.2 软件环境 19
5.2 测试方案 19
5.2.1用户注册和登录的功能 19
5.2.2导航栏功能 20
5.2.3书籍列表功能 20
5.2.4添加书籍和编辑书籍的功能 21
5.2.5安性的测试 22
5.2.6稳定性和容错性的测试 22
第6章 总结与展望 23
6.1 开发工作总结 23
6.2 后续工作展望 23
参考文献 24
致 谢 26

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值