基于Java+SpringBoot+Mybatis+Vue+ElementUi的校园闲置物品交易

news2024/11/25 12:55:37

项目介绍

我们通过java语言,后端springboot框架,数据库mysql,前端vue技术,开发本系统,校园闲置物品交易网站系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、商品类型管理、商品信息管理、系统管理、订单管理,用户:首页、个人中心、商品信息管理、我的收藏管理、订单管理。前台首页:首页、商品信息、商品资讯、个人中心、后台管理、购物车等功能。经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与校园闲置物品交易网站实现的实际需求相结合,讨论了Java语言开发校园闲置物品交易网站的使用。

开发环境

开发语言:Java
数据库 :MySQL
系统架构:B/S
后端框架:SpringBoot
前端框架:Vue
开发工具:IDEA或者Eclipse,JDK1.8,Maven

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.CartEntity;
import com.entity.view.CartView;

import com.service.CartService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;

/**

  • 购物车表

  • 后端接口
    */
    @RestController
    @RequestMapping(“/cart”)
    public class CartController {
    @Autowired
    private CartService cartService;

    /**

    • 后端列表
      */
      @RequestMapping(“/page”)
      public R page(@RequestParam Map<String, Object> params,CartEntity cart,
      HttpServletRequest request){
      if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
      cart.setUserid((Long)request.getSession().getAttribute(“userId”));
      }
      EntityWrapper ew = new EntityWrapper();
      PageUtils page = cartService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cart), params), params));

      return R.ok().put(“data”, page);
      }

    /**

    • 前端列表
      */
      @RequestMapping(“/list”)
      public R list(@RequestParam Map<String, Object> params,CartEntity cart, HttpServletRequest request){
      EntityWrapper ew = new EntityWrapper();
      PageUtils page = cartService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cart), params), params));
      return R.ok().put(“data”, page);
      }

    /**

    • 列表
      */
      @RequestMapping(“/lists”)
      public R list( CartEntity cart){
      EntityWrapper ew = new EntityWrapper();
      ew.allEq(MPUtil.allEQMapPre( cart, “cart”));
      return R.ok().put(“data”, cartService.selectListView(ew));
      }

    /**

    • 查询
      */
      @RequestMapping(“/query”)
      public R query(CartEntity cart){
      EntityWrapper< CartEntity> ew = new EntityWrapper< CartEntity>();
      ew.allEq(MPUtil.allEQMapPre( cart, “cart”));
      CartView cartView = cartService.selectView(ew);
      return R.ok(“查询购物车表成功”).put(“data”, cartView);
      }

    /**

    • 后端详情
      */
      @RequestMapping(“/info/{id}”)
      public R info(@PathVariable(“id”) Long id){
      CartEntity cart = cartService.selectById(id);
      return R.ok().put(“data”, cart);
      }

    /**

    • 前端详情
      */
      @RequestMapping(“/detail/{id}”)
      public R detail(@PathVariable(“id”) Long id){
      CartEntity cart = cartService.selectById(id);
      return R.ok().put(“data”, cart);
      }

    /**

    • 后端保存
      */
      @RequestMapping(“/save”)
      public R save(@RequestBody CartEntity cart, HttpServletRequest request){
      cart.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(cart);
      cart.setUserid((Long)request.getSession().getAttribute(“userId”));
      cartService.insert(cart);
      return R.ok();
      }

    /**

    • 前端保存
      */
      @RequestMapping(“/add”)
      public R add(@RequestBody CartEntity cart, HttpServletRequest request){
      cart.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(cart);
      cartService.insert(cart);
      return R.ok();
      }

    /**

    • 修改
      */
      @RequestMapping(“/update”)
      public R update(@RequestBody CartEntity cart, HttpServletRequest request){
      //ValidatorUtils.validateEntity(cart);
      cartService.updateById(cart);//全部更新
      return R.ok();
      }

    /**

    • 删除
      */
      @RequestMapping(“/delete”)
      public R delete(@RequestBody Long[] ids){
      cartService.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 wrapper = new EntityWrapper();
      if(map.get(“remindstart”)!=null) {
      wrapper.ge(columnName, map.get(“remindstart”));
      }
      if(map.get(“remindend”)!=null) {
      wrapper.le(columnName, map.get(“remindend”));
      }
      if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
      wrapper.eq(“userid”, (Long)request.getSession().getAttribute(“userId”));
      }

      int count = cartService.selectCount(wrapper);
      return R.ok().put(“count”, count);
      }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是固话号码认证?固话号码认证有用吗?

固话号码认证提供企业号码认证服务&#xff0c;来电场景中展现企业LOGO&#xff0c;展现品牌&#xff0c;可以查看更多企业相关信息&#xff0c;可有效提高接通率&#xff0c;保证品牌企业的身份及商业价值。 那如何实施号码认证服务呢&#xff1f;接下来小编就给大家整理了号…

ICML-2022 | 强化学习论文清单(附链接)

第39届国际机器学习会议&#xff08;International Conference on Machine Learning, ICML 2022&#xff09;于北京时间7月17日至7月23日&#xff0c;在美国马里兰州巴尔的摩市以线上线下结合的方式举办。 本文列举了会议主题与强化学习&#xff08;Reinforcement Learning, R…

20行Python代码,轻轻松松获取各路书本,你还在花钱买着看嘛~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 作为现代青年&#xff0c;我相信应该没几个没看过xiao shuo的吧&#xff0c;嘿嘿~ 一般来说咱们书荒的时候怎么办&#xff1f; 自然是去寻一个网站先找到xiao shuo名字&#xff0c;然后再找度娘…

高压功率放大器原理和应用场合介绍

高压功率放大器是用来对&#xff08;脉冲发生器、函数发生器以及波形发生器等&#xff09;信号进行电压、电流或者功率放大&#xff0c;能够给测试负载提供信号驱动的测量仪器。独立的波形功率放大器分为电压放大器、电流放大器以及电压/电流放大器。另外&#xff0c;还有一类被…

Spring的常用拓展点

文章目录自定义拦截器获取 Spring 容器对象修改 BeanDefinition添加BeanDefinition测试初始化 Bean 前后初始化方法使用PostConstruct 注解实现 InitializingBean 接口BeanFactoryPostProcessor 接口关闭容器前自定义作用域自定义拦截器 spring mvc 拦截器的顶层接口是&#x…

web端常见导航设计

一、导航的定义 导航作为网站或者平台的骨架&#xff0c;是产品设计中不容忽视的一环导航是内容或者功能的定位、导向与通道。 二、导航分类 遵循导航层级结构&#xff0c;包括全局导航和局部导航 全局导航往往指页眉和页脚&#xff0c;存在于网站的大部分页面&#xff0c;便于…

游戏引擎概述-Part1

一、简述自己的学习心路历程 自从业UNITY以来已经有4个月多了&#xff0c;回想起来自己从工作以来就很少写博客了&#xff0c;也算督促一下自己&#xff0c;回想自己从最早的Unity开始&#xff0c;入手C#和编辑器、Unity开发界面&#xff0c;再到自己学一些Unity的小项目…

有效学习,通过PMP考试

但是我们时间有限&#xff0c;如何有效利用这些资料&#xff0c;花最少时间通过考试&#xff0c;是个关键问题。 课程主要的资料包括&#xff1a; PMBOK。官方指定用书&#xff0c;考试知识点来自PMBOK。 汪博士解读PMP考试。考试参考书&#xff0c;比PMBOK解析得更清楚&…

Qt-FFmpeg开发-视频播放(3)

Qt-FFmpeg开发-视频播放【软解码 OpenGL显示RGB图像】 文章目录Qt-FFmpeg开发-视频播放【软解码 OpenGL显示RGB图像】1、概述2、实现效果3、FFmpeg软解码流程4、主要代码4.1 解码代码4.2 OpenGL显示RGB图像代码5、完整源代码更多精彩内容&#x1f449;个人内容分类汇总 &…

Bio-Helix 艾美捷IRIS11预染蛋白Markers基参及相关研究

IRIS11预染色蛋白梯是11种分子量为3至60kDa的预染色蛋白的组合。11种重组蛋白与蓝色发色团共价偶联&#xff0c;而2条70kDa和260kDa的红色带、一条15kDa的绿色带和一条新设计的60kDa的孔雀绿色带作为参考带。IRIS11预拉伸蛋白质阶梯在SDS聚丙烯酰胺凝胶电泳过程中跟踪蛋白质的大…

[附源码]java毕业设计新冠疫苗线上预约系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【测试沉思录】17. 性能测试中的系统资源分析之四:网络

作者&#xff1a;马海琴 编辑&#xff1a;毕小烦 计算机网络&#xff0c;就是通过光缆、电缆、电话线或无线通讯将两台以上的计算机互连起来的集合&#xff0c;包括广域网、城域网、局域网和无线网。 计算机网络是传输信息的媒介。我们常说的千兆网&#xff0c;是指网络带宽为…

openssl中SM2、SM3、SM4使用实例

目录 openssl的版本如下&#xff1a; SM3使用实例 1. SM3的扎凑实例 SM2使用实例 1. 生成SM2密钥对 2.查看SM2密钥对 3.生成自签名证书 4.查看证书详情 5.私钥签名消息 6.证书验证消息签名 SM4 使用实例 openssl的版本如下&#xff1a; SM3使用实例 SM3是中华人民共…

前端框架 Nextjs 实现React SEO优化

目录 一、Nextjs框架创建React项目 二、路由的使用 1、静态路由 2、动态路由 3、Link路由跳转 4、Api路由 5、Api动态路由 三、Nextjs中加载js脚本 四、Nextjs中加载图片 五、Nextjs的公共布局 六、Pages的其他特性 一、Nextjs框架创建React项目 快速入门 | Next.…

YOLOv5~目标检测模型精确度

还是yolo5的基础啊~~ 一些关于目标检测模型的评估指标&#xff1a;IOU、TP&FP&FN&TN、mAP等&#xff0c;并列举了目标检测中的mAP计算。 指标评估(重要的一些定义) IOU 也称重叠度表示计算预测回归框和真实回归框的交并比,计算公式如下: TP&FP&FN&…

2022CTF培训(二)Hook进阶反调试

附件下载链接 Hook进阶 更精准的 Inline Hook 要求 实现防止任务管理器对某进程自身的结束要求不影响任务管理器结束其它进程的功能 Dll 注入程序编写 提权 主要过程如下&#xff1a; 首先,程序需要调用OpenProcessToken函数打开指定的进程令牌&#xff0c;并获取TOKEN…

【架构设计】作为架构师你应该掌握的画图技术

1.前言 大家知道&#xff0c;架构的过程其实就是建模的过程&#xff0c;那自然离不开架构图。那么&#xff0c;我们先来看几个问题。 &#xff08;1&#xff09;什么是架构图&#xff1f; 架构图 架构 图&#xff0c;用图的形式把系统架构展示出来&#xff0c;配上简单的文…

Rust学习笔记——安装、创建、编译、输入输出

目录 一.安装 二.创建 三.编译 四.输入输出 &#xff08;一&#xff09;.输出hello world &#xff08;二&#xff09;.输入 一.安装 Rust Programming Language (rust-lang.org)&#xff0c;这是Rust官网。 直接下载自己对应系统版本即可&#xff0c;小编是linux版。 下…

ARP协议map4(3层网络层的协议)

数据来源 一、广播与广播域概述 1、广播域广播域 广播&#xff1a;将广播地址做为目标地址的数据帧 广播域&#xff1a;网络中能接收到同一个广播所有节点的集合&#xff08;广播域越小越好&#xff0c;这样通信效率更高&#xff09; 下图每个圈都是一个广播域&#xff0c;说…

通关算法题之 ⌈数组⌋ 上

滑动窗口 3. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 输入: s "abcabcbb" 输出: 3 这就是变简单了&#xff0c;连 need 和 valid 都不需要&#xff0c;而且更新窗口内数据也只需要简单的更新计数器 …