基于SSM的校园二手交易平台

浏览 14 次

Campus Second-hand Trading System Based on SSM

该项目是一个基于SSM框架开发的校园二手交易平台,旨在为在校学生提供一个便捷、安全的二手物品交易环境。系统实现了用户注册登录、商品发布、搜索浏览、在线沟通及交易管理等功能,支持信息管理与交易流程优化。作为毕业设计或项目实现案例,该系统展示了SSM在Web系统开发中的应用,适合用于学习管理系统开发与信息管理技术。

SSMMySQL权限控制多角色系统支付功能PC端

项目简介

该项目是一个基于SSM框架开发的校园二手交易平台,旨在为在校学生提供一个便捷、安全的二手物品交易环境。系统实现了用户注册登录、商品发布、搜索浏览、在线沟通及交易管理等功能,支持信息管理与交易流程优化。作为毕业设计或项目实现案例,该系统展示了SSM在Web系统开发中的应用,适合用于学习管理系统开发与信息管理技术。

项目基础信息

适合专业计算机科学与技术 / 软件工程 / 信息管理
技术栈SSM + JSP + MySQL + Bootstrap
系统架构MVC三层架构
项目类型Web应用 / 电商平台
运行环境JDK1.8、Tomcat8.5+、MySQL5.7+
开发工具Eclipse/IDEA、Maven、Git

项目包含内容

  • 前后端完整源码
  • 数据库完整脚本
  • 参考论文(如有)
  • 部署软件及部署说明
  • 项目介绍文档(如有)

项目详细介绍

一、系统架构:

使用技术:

  • Spring

  • SpringMVC

  • Mybatis

二、系统需求分析:

  在如今的大学校园中,伴随着学生的购买能力的提高和每年的升学和毕业,存在许多各种类型的二手商品。目前,二手商品交易成为了当代大学生课余生活的一大热门。以我校为例,每年都要举办的“跳蚤”市场,可见大学生对二手商品交易的需求,然而这种方式有很多局限性和偶然性,远远无法满足广大学子交易的需求。-

  建立一个校园二手交易平台可以大大方便在校的学生,方便了同学也营造了节约光荣,浪费可耻的校园文化氛围。最主要的是,它也可以通过网络将自己不用的东西放在网上,也可在网上找到自己需要的东西,物美价廉,达到双赢。-


三、功能模块设计:

登录模块

  用户点击主页面上的登录按钮,前台js控制会弹出登录悬浮窗口,填写登录的手机号和密码,点击登录,会请求到UserController,调用其中的loginValidate()方法,将密码用MD5加密与数据库中的加密信息匹配,匹配成功后,将用户信息添加到session会话中,并根据请求头部信息中的Referer跳转回点击登录的页面。-

注册模块

  在首页或登录框中点击注册按钮,就可以弹出注册框,注册的登录号为手机号码,系统会对数据进行校验,核对正确后可注册并登录。

  


个人中心模块
个人信息设置模块

  用户登录成功后,可以进入到个人中心,刚注册的用户,可以在个人设置页面进行完善自己的信息,也可以在此页面修改信息,但是开通时间与手机号码,不可更改。

我的闲置物品模块

  每个用户,都有自己发布过的闲置物品,在个人中心模块,可以查看曾经发布过的闲置物品,并且可以对相应的物品进行删除和修改操作。由于物品与图片是一对多的关系,所以引入了GoodsExtand类。

public class GoodsExtend {

    private Goods goods;

    private List<Image> images = new ArrayList<Image>();

	/**省略getter/setter方法*/

}

该模块是获取出该用户发布的所有商品信息。从session中获取用户信息,并根据用户的id,查询该用户发布的商品,再根据商品id,获取商品对应的图片信息,最后将商品与图片的关联对象,以及相应的商品信息、图片信息返回到前台显示。

@RequestMapping(value = /allGoods)

public ModelAndView goods(HttpServletRequest request) {

    User cur_user = (User)request.getSession().getAttribute(cur_user);

    Integer userId = cur_user.getId();

    List<Goods> goodsList = goodsService.getGoodsByUserId(userId);

    List<GoodsExtend> goodsAndImage = new ArrayList<GoodsExtend>();

    for (int i = 0; i < goodsList.size() ; i++) {

        //将用户信息和image信息封装到GoodsExtend类中,传给前台

        GoodsExtend goodsExtend = new GoodsExtend();

        Goods goods = goodsList.get(i);

        List<Image> images = imageService.getImagesByGoodsPrimaryKey(goods.getId());

        goodsExtend.setGoods(goods);

        goodsExtend.setImages(images);

        goodsAndImage.add(i, goodsExtend);

    }

    ModelAndView mv = new ModelAndView();

    mv.addObject(goodsAndImage,goodsAndImage);

    mv.setViewName(/user/goods);

    return mv;

}
发布闲置物品模块

  发布商品信息需要填写相应的商品文字信息,以及上传商品的图片信息。上传图片信息,需要前台传入一个文件类型的对象,根据该对象,取出上传图片的物理路径,将该图片保存到磁盘中,并将新图片的名称返回到前端显示。若图片不合法,将返回不合法信息,提示前台图片不合法。

@ResponseBody

@RequestMapping(value = /uploadFile)

public  Map<String,Object> uploadFile(HttpSession session,MultipartFile myfile) throws IllegalStateException, IOException{

    String oldFileName = myfile.getOriginalFilename(); //获取上传文件的原名

    //存储图片的物理路径

    String file_path = session.getServletContext().getRealPath(upload);

    if(myfile!=null && oldFileName!=null && oldFileName.length()>0){

        String newFileName = UUID.randomUUID() + oldFileName.substring(oldFileName.lastIndexOf(.));

        File newFile = new File(file_path+/+newFileName);

        myfile.transferTo(newFile); //将内存中的数据写入磁盘

        Map<String,Object> map=new HashMap<String,Object>();//将新图片名称返回到前端

        map.put(success, 成功啦);

        map.put(imgUrl,newFileName);

        return  map;

    }else{

        Map<String,Object> map=new HashMap<String,Object>();

        map.put(error,图片不合法);

        return map;

    }

}

将商品信息以及图片信息传到后台,后台获取到session中的用户信息,并对商品设置用户的外键关联,在goods表中,插入商品信息。插入商品信息后,获取物品的id,并对图片设置商品的外键关联,在image表中插入相应的图片信息。之后更改用户的信息,将该用户发布的商品数量加1,并更新分类表中该分类所有商品数量。最后修改session中用户的值。

@RequestMapping(value = /publishGoodsSubmit)

public String publishGoodsSubmit(HttpServletRequest request,HttpServletResponse response,Image ima,Goods goods,MultipartFile image)

        throws Exception {

    //查询出当前用户cur_user对象,便于使用id

    User cur_user = (User)request.getSession().getAttribute(cur_user);

    goods.setUserId(cur_user.getId());

    int i = goodsService.addGood(goods,10);//在goods表中插入物品

    //返回插入的该物品的id

    int goodsId = goods.getId();

    ima.setGoodsId(goodsId);

    imageService.insert(ima);//在image表中插入商品图片

    //发布商品后,catlog的number+1,user表的goods_num+1,更新session的值

    Integer calelog_id = goods.getCatelogId();

    catelogService.updateCatelogNum(calelog_id);

    userService.updateGoodsNum(cur_user.getId());

    cur_user.setGoodsNum(cur_user.getGoodsNum()+1);

    request.getSession().setAttribute(cur_user,cur_user);//修改session值

    return redirect:/user/allGoods;

}

上传注意事项:像上图一样打开照片后,右下角有3个按钮,分别是上传、删除、放大图片,要点击上传按钮,才能确保照片上传成功,不是打开照片显示了照片就可以了。

商品首页面模块

  商品展示页面的首页,即系统的主页面,主页面包括了物品的分类,导航栏,发布商品,登录注册,消息通知,商品搜索栏,以及页面每一分类中显示最新更新的6件商品信息。

查找商品模块(支持分类查找、模糊查找)

  系统的主页面,将物品分为了最新发布,闲置数码,校园代步,电器日用,图书教材,美妆衣物,运动棋牌,票券小物等7类。点击分类名,请求后台,后台将数据库中商品为该分类外键的查询出来,将商品信息返回到页面上,页面将跳转显示相应的分类下的商品信息。-

  在首页的顶部,添加了一个搜索框,在搜索框中输入关键字,就会请求后台,后台会根据关键字,查询商品表中的name和description,查询出带有该关键字的商品以及对象的图片信息,返回到前台显示出相应的商品信息,例如查询:书,可以查询到书籍的商品,且避免了商品名称中不带“书”字查询不到的错误。

  点击分类后,可实现在该分类下,查询相应的商品信息,在该分类下,同样可以进行模糊查询,只不过是在分类下进行模糊,匹配的是catelog_id,然后在该分类下匹配商品的name和describle,例如在校园代步分类下输入:爱玛,查询的就是校园代步下关于“爱玛”的商品信息。

 

@RequestMapping(value = /catelog/{id})

public ModelAndView catelogGoods(HttpServletRequest request,@PathVariable(id) Integer id,

                                 @RequestParam(value = str,required = false) String str) throws Exception {

    List<Goods> goodsList = goodsService.getGoodsByCatelog(id,str,str);

    Catelog catelog = catelogService.selectByPrimaryKey(id);

    List<GoodsExtend> goodsExtendList = new ArrayList<GoodsExtend>();

    for(int i = 0;i<goodsList.size();i++) {

        GoodsExtend goodsExtend = new GoodsExtend();

        Goods goods = goodsList.get(i);

        List<Image> imageList = imageService.getImagesByGoodsPrimaryKey(goods.getId());

        goodsExtend.setGoods(goods);

        goodsExtend.setImages(imageList);

        goodsExtendList.add(i,goodsExtend);

    }

    ModelAndView modelAndView = new ModelAndView();

    modelAndView.addObject(goodsExtendList, goodsExtendList);

    modelAndView.addObject(catelog, catelog);

    modelAndView.addObject(search,str);

    modelAndView.setViewName(/goods/catelogGoods);

    return modelAndView;

}
点击查看商品详细信息模块

  在商品展示页,点击商品图片,可以查看商品的详细信息。默认在未登陆状态下,是不可查看商家的信息的,只有在登录之后,才可以查看到相应的商家联系方式。在用户点击商品后,首先请求后台,进行是否登录的一个过滤,然后后台查询出该商品的详细信息,商品的多张图片信息,卖家的信息等,返回到前台显示。

 

系统管理员模块用户管理模块

  该后台管理模块实现企业级管理台的解决方案。管理台显示了用户管理、商品管理、订单管理和钱包管理的功能。用户管理页,以表格的形式简洁的展示用户数据,并且支持选择查询、模糊查询、跳转页面等,每个用户信息后面都有两个操作按钮,包括查看和修改功能。-

商品管理模块

  商品管理模块同样采用表格的形式,支持多模糊查询、分页等操作,但是商品的信息不允许管理员进行修改,商品可以进行删除操作。管理员点击查看按钮可以进入详细信息页面,展示该商品的详细信息。

订单管理模块

  订单管理模块也是采用表格的形式,支持多条件查询、分页、查看详细信息等操作,订单的信息可以修改和删除。点击查看可以进入详细信息页面,展示该订单的全部数据。点击修改可以修改订单的详细信息。

钱包管理模块

  操作栏显示的是用户充值后,管理员需要进行审核,只有审核通过,用户才算充值成功,钱包里的余额会显示。方便管理员操作,支持多模糊查询、分页、审核等操作。

联系咨询区

可沟通项目方向、预算、交付周期与答辩时间安排,支持按学校要求定制交付内容。

为你推荐

根据你的浏览兴趣与热门趋势,精选可能适合你的毕业设计项目。

基于JAVA+SpringBoot+Vue+uniapp的微信小程序点餐平台

SpringBootVue微信小程序UniAppMySQL前后端分离支付功能小程序端

该系统是一个基于Java+SpringBoot后端、Vue+Uniapp前端的微信小程序点餐平台。平台实现了在线菜单浏览、购物车管理、订单提交与支付、后台数据统计等核心功能,为餐饮商家提供高效便捷的数字化点餐解决方案。项目采用前后端分离架构,适合作为毕业设计或实际项目开发,展示了现代Web与移动应用系统的完整实现流程。

基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序

SpringBootVueUniAppAI智能推荐算法小程序端

该项目是一个集成了协同过滤推荐算法、网络爬虫与AI技术的智能减肥小程序。系统采用JAVA+SpringBoot构建后端服务,Vue+uniapp实现跨平台前端,旨在为用户提供个性化的饮食与运动方案。核心功能包括基于用户行为的智能推荐、健康数据管理及社区互动,适合作为毕业设计或实际项目开发,展示了现代Web与移动应用在信息管理与系统开发中的综合实践。

基于JAVA+SpringBoot+Vue的自动阅卷分析系统

SpringBootVueMySQLAI智能数据可视化前后端分离PC端

该系统是一个基于JAVA+SpringBoot后端与Vue前端的自动阅卷分析系统,旨在实现高效、准确的试卷批改与学习数据分析。核心功能包括智能识别与评分、错题统计分析、成绩报告生成以及教学效果评估。该系统开发专注于提升阅卷效率与信息管理深度,适用于在线教育、考试机构及毕业设计项目实现,为教学管理与学习分析提供一体化解决方案。

基于JAVA+SpringBoot+Vue+uniApp小程序的心理健康测试平台

SpringBootVue微信小程序UniAppMySQL前后端分离小程序端

该心理健康测试平台是一个集前端小程序与后端管理系统于一体的综合系统开发项目。平台采用JAVA与SpringBoot构建稳健后端,结合Vue与uniApp实现跨端小程序开发,为用户提供便捷的心理测评与报告服务。系统核心功能包括题库管理、在线测试、数据分析及报告生成,旨在通过信息化手段提升心理健康服务的可及性与专业性,适用于毕业设计或实际项目实现。

基于JAVA+SpringBoot+Vue+uniapp的前后端分离的微信小程序的艺术品陶瓷商城

SpringBootVue微信小程序UniAppMySQL前后端分离小程序端

该项目是一个基于JAVA+SpringBoot+Vue+uniapp技术栈的前后端分离微信小程序艺术品陶瓷商城系统。系统开发实现了艺术品陶瓷的在线展示、商品管理、用户订单处理及支付集成等核心功能,为陶瓷艺术品的数字化交易提供了完整的信息管理解决方案,适合作为毕业设计或商业项目实现。

基于JAVA+SpringBoot+Vue的二手车交易系统

SpringBootVueMySQL前后端分离PC端

该系统是一个基于Java+SpringBoot+Vue的二手车交易管理系统,旨在为用户提供便捷的在线车辆买卖平台。核心功能包括车辆信息发布、智能搜索、在线咨询、交易管理及用户评价等模块。通过前后端分离的系统开发模式,实现了高效的信息管理和流畅的用户体验,适合作为毕业设计或实际项目实现,帮助提升二手车交易效率与透明度。

基于JAVA+SpringBoot+Vue的故障报修平台

SpringBootVueMySQL前后端分离PC端

该项目是一个基于Java、SpringBoot和Vue的故障报修平台,旨在实现高效的设备故障管理与维修流程。系统提供用户在线报修、工单分配、进度跟踪及数据统计等核心功能,适用于企业或校园的日常运维。通过前后端分离架构,确保了系统的可扩展性和维护性,适合作为毕业设计或实际项目实现,展示了现代Web信息管理系统的开发实践。

基于JAVA+SpringBoot+Vue的前后端分离的学校请假管理系统

SpringBootVueMySQL权限控制多角色系统前后端分离PC端

这是一个基于JAVA+SpringBoot+Vue的前后端分离学校请假管理系统,旨在实现学生请假流程的数字化与高效管理。系统开发涵盖了学生在线提交申请、辅导员与院系审批、请假记录统计等核心功能,优化了传统纸质流程。该项目可作为信息管理系统的毕业设计或实际应用案例,展示了前后端分离架构在项目实现中的优势。