基于springboot二手交易平台

news2024/12/27 22:28:54

开发工具:IDEA

服务器:Tomcat9.0, jdk1.8

项目构建:maven

数据库:mysql5.7

系统分前后台,非前后端分离

前端技术:vue.js+elementUI等框架实现

服务端技术:springboot+mybatis-plus

项目功能描述:

系统主要分为三个角色:用户、卖家、管理员

用户功能:登录、注册、首页、个人中心、订单管理、商品求购管理、我的收藏

卖家功能:登录、注册、首页、个人中心、商品信息管理、订单管理

管理员功能:登录、首页、个人中心、用户管理、卖家管理、商品分类管理、订单管理、商品求购管理、管理员管理、留言板管理、系统管理
在这里插入图片描述
在这里插入图片描述
前台截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
卖家截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理员截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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.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.ErshoudingdanEntity;
import com.entity.view.ErshoudingdanView;

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


/**
 * 二手订单
 * 后端接口
 * @author 
 * @email 
 * @date 2021-02-22 15:46:58
 */
@RestController
@RequestMapping("/ershoudingdan")
public class ErshoudingdanController {
    @Autowired
    private ErshoudingdanService ershoudingdanService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ErshoudingdanEntity ershoudingdan, HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("maijia")) {
			ershoudingdan.setMaijiazhanghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("yonghu")) {
			ershoudingdan.setYonghuming((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ErshoudingdanEntity> ew = new EntityWrapper<ErshoudingdanEntity>();
		PageUtils page = ershoudingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, ershoudingdan), params), params));

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

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ErshoudingdanEntity ershoudingdan){
       	EntityWrapper<ErshoudingdanEntity> ew = new EntityWrapper<ErshoudingdanEntity>();
      	ew.allEq(MPUtil.allEQMapPre( ershoudingdan, "ershoudingdan")); 
        return R.ok().put("data", ershoudingdanService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ErshoudingdanEntity ershoudingdan){
        EntityWrapper< ErshoudingdanEntity> ew = new EntityWrapper< ErshoudingdanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( ershoudingdan, "ershoudingdan")); 
		ErshoudingdanView ershoudingdanView =  ershoudingdanService.selectView(ew);
		return R.ok("查询二手订单成功").put("data", ershoudingdanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ErshoudingdanEntity ershoudingdan = ershoudingdanService.selectById(id);
        return R.ok().put("data", ershoudingdan);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ErshoudingdanEntity ershoudingdan = ershoudingdanService.selectById(id);
        return R.ok().put("data", ershoudingdan);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ErshoudingdanEntity ershoudingdan, HttpServletRequest request){
    	ershoudingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(ershoudingdan);
        ershoudingdanService.insert(ershoudingdan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ErshoudingdanEntity ershoudingdan, HttpServletRequest request){
    	ershoudingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(ershoudingdan);
        ershoudingdanService.insert(ershoudingdan);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ErshoudingdanEntity ershoudingdan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(ershoudingdan);
        ershoudingdanService.updateById(ershoudingdan);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        ershoudingdanService.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<ErshoudingdanEntity> wrapper = new EntityWrapper<ErshoudingdanEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("maijia")) {
			wrapper.eq("maijiazhanghao", (String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("yonghu")) {
			wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
		}

		int count = ershoudingdanService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

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.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.ShangpinfenleiEntity;
import com.entity.view.ShangpinfenleiView;

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

/**

  • 商品分类

  • 后端接口

  • @author

  • @email

  • @date 2021-02-22 15:46:58
    */
    @RestController
    @RequestMapping(“/shangpinfenlei”)
    public class ShangpinfenleiController {
    @Autowired
    private ShangpinfenleiService shangpinfenleiService;

    /**

    • 后端列表
      */
      @RequestMapping(“/page”)
      public R page(@RequestParam Map<String, Object> params,ShangpinfenleiEntity shangpinfenlei, HttpServletRequest request){
      EntityWrapper ew = new EntityWrapper();
      PageUtils page = shangpinfenleiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpinfenlei), params), params));

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

    /**

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

    /**

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

    /**

    • 查询
      */
      @RequestMapping(“/query”)
      public R query(ShangpinfenleiEntity shangpinfenlei){
      EntityWrapper< ShangpinfenleiEntity> ew = new EntityWrapper< ShangpinfenleiEntity>();
      ew.allEq(MPUtil.allEQMapPre( shangpinfenlei, “shangpinfenlei”));
      ShangpinfenleiView shangpinfenleiView = shangpinfenleiService.selectView(ew);
      return R.ok(“查询商品分类成功”).put(“data”, shangpinfenleiView);
      }

    /**

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

    /**

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

    /**

    • 后端保存
      */
      @RequestMapping(“/save”)
      public R save(@RequestBody ShangpinfenleiEntity shangpinfenlei, HttpServletRequest request){
      shangpinfenlei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(shangpinfenlei);
      shangpinfenleiService.insert(shangpinfenlei);
      return R.ok();
      }

    /**

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

    /**

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

    /**

    • 删除
      */
      @RequestMapping(“/delete”)
      public R delete(@RequestBody Long[] ids){
      shangpinfenleiService.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”));
      }

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

}

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

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

相关文章

Linux服务器中配置tomcat的服务,并通过端口8888访问

引言: Tomcat是常见的免费的web服务器,前端服务很多都是通过tomcat部署的&#xff01;所以多了解点肯定没坏处&#xff01; 一、配置端口 1.防火墙策略中配置8888端口&#xff0c;并允许策略&#xff1a; 二、安装tomcat包 1.新建tomcat文件夹 进入 /usr/local,并新建文件夹…

弹框确认按钮,请求两个接口跳转刷新页面,并使用async和await将异步改成同步的数据?

前景&#xff1a;公司前后端不分离项目&#xff0c;使用的框架element-ui较低版本的&#xff0c;弹框确定按钮加载动态按钮的loading。 //插件 npm i element-ui -S效果图: 代码: <template><div><el-button type"text" click"dialogVisible …

Hive——操作数据库创建修改表(DDL数据定义)

DDL操作1. 数据库操作1.1 创建&查询数据库1.2 修改&删除数据库2. 表操作2.1 创建表2.2 内部表和外部表2.2.1 管理表2.2.2外部表2.2.3管理表与外部表的互相转换2.3 修改表1. 数据库操作 1.1 创建&查询数据库 定义&#xff1a; CREATE DATABASE [IF NOT EXISTS] d…

IDEA settings设置技巧,最常用快捷键,让你的编译器用更加得心应手

导读 每次下载安装新的 IDEA 以后&#xff0c;都免不了对该软件进行一些优化配置&#xff0c;以方便我们在使用的时候更加得心应手。一份趁手的设置&#xff0c;无疑能让我们的工作效率事半功倍。 碍于每次自己重装 IDEA 都需要去网搜一大堆文章去设置 settings&#xff0c;所以…

Vue框架的学习(Vue的基础指令操作二 V-For)第二课

今天的任务理解下面的几个指令操作 重点在V-for上 V-if V-else V-show V-For 本文章的重心放在V-For 从数据到数组到对象一步一步的去查找 底层的原理 v-show和v-if的用法看起来是一致的&#xff0c;也是根据一个条件决定是否显示元素或者组件 下面是 V-if V-else V-sho…

1. 云计算简介

1.2 云计算的定义和分类 云计算的定义 美国国家标准与技术研究院&#xff08;NIST&#xff09;定义&#xff1a; 云计算是一种模型&#xff0c;它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源&#xff08;例如&#xff0c;网络、服务器、存…

【记录】终端如何 进入conda(base) 环境,如何退出 conda(base)环境,终端快速进入Jupyter notebook的方法

目录一、终端 进入 conda&#xff08;base&#xff09; 环境二、终端 退出 conda&#xff08;base&#xff09; 环境三、终端进入 Jupyter notebook 的方法一、终端 进入 conda&#xff08;base&#xff09; 环境 --->> win R : 输入cmd 回车&#xff0c;进入终端界面。…

什么是微服务?怎么测试?今天一次性讲清楚...

01、什么是微服务 Adrian Cockcroft对微服务的表述&#xff1a;loosely couped service oriented architecture with bounded context。 这里涉及两个微服务的概念&#xff1a; loosely couped&#xff1a;松耦合 松耦合可以引申出其他概念&#xff0c;如各自独立&#xff0c…

坚持软件自主可控,打造国产化公文交换系统

编者按&#xff1a;软件自主可控是什么意思&#xff1f;企业如何对自己使用的软件做到自主可控&#xff1f;本文分析了软件自主可控的概念及意义&#xff0c;并通关相关案例展示了国产化低代码平台是如何助力企业打造公文交换系统的。 软件自主可控的意义 说到软件的自主可控&…

【分享 10 个日常使用的脚本】

&#x1f935;‍♂️ 个人主页老虎也淘气 个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…

第十节:继承【java】

目录 &#x1f4d8;1.1为什么需要继承 &#x1f4d2;1.2 继承概念 &#x1f4d7;1.3 继承的语法 &#x1f4d5;1.4 父类成员访问 &#x1f3b1;1.4.1 子类中访问父类的成员变量 &#x1f38e;1.4.2 子类中访问父类的成员方法 &#x1f4d9;1.5 super关键字 &#x1f4d…

基于Matlab利用移动目标指示雷达抑制地面杂波(附源码)

目录 一、构建雷达系统 二、定义目标 三、杂波 四、仿真接收到的脉冲和匹配滤波器 五、使用三脉冲消除器执行 六、使用交错PRF模拟接收到的脉冲 七、对交错的 PRF 执行 八、总结 九、程序 本示例显示了移动目标指示 &#xff08;MTI&#xff09; 雷达的设计&#xff0…

《Java》private、protected、public区别及解析

我们今天来给大家解析一下Java中四种修饰类型的区别。 那么有的老铁就疑惑了&#xff0c;文章名称不是说三种吗&#xff1f;其实还有一种隐藏的修饰类型&#xff08;默认类型&#xff09;英文翻译过来的话是define&#xff0c;这就是我们什么都不修饰&#xff0c;例如&#xff…

【C/C++动态内存 or 柔性数组】——对动态内存分配以及柔性数组的概念进行详细解读(张三 or 李四)

目录前言&#xff08;栈区、堆区、静态区&#xff09;动态内存函数malloc与freecalloc与freerealloc与free常见的动态内存错误经典笔试题&#xff08;再见张三&#xff09;柔性数组前言&#xff08;栈区、堆区、静态区&#xff09; 请耐心看完&#xff0c;看完后就会对内存中的…

天玑9200领跑背后,高端芯片掀起蝴蝶效应

过去一年&#xff0c;天玑9000让联发科在高端旗舰机市场掀起了一场“旋风”。全球知名市场调研机构Counterpoint Research发布的报告显示&#xff0c;联发科在全球和中国智能手机芯片市场份额中连续八个季度保持第一的领先地位&#xff0c;且在高端手机市场的份额有显著增长。另…

PowerShell 美化(谁不想要一个好看的终端呢)

PowerShell 美化安装powershellScoop 安装Oh My Posh安装字体设置应用主题花里胡哨的折腾&#xff08;bushi 多种主题任君挑选 安装powershell 地址&#xff1a;https://github.com/PowerShell/PowerShell/releases 本文主要使用 Oh My Posh 进行美化 地址&#xff1a;https…

C语言之指针(中)

目录 前言 一、字符指针 1.用法&#xff08;两种&#xff09; 2.例子 二、指针数组 三、数组指针 1.数组指针的定义 1.概念 2.例子 2.数组名 3.使用 1.使用的情景 2.例子 四、数组参数、指针参数 1.数组传参 2.指针传参 五、函数指针 1.函数的地址 2.函数指针 3.例子 4.两个特…

【C++】泛型编程之模板初阶

文章目录1. 泛型编程2. 模板2.1 模板的概念3. 函数模板3.1 函数模板概念3.2 函数模板语法3.3 函数模板的原理3.4 函数模板的实例化3.5 模板参数的匹配原则3.6 普通函数与函数模板的区别4. 类模板4.1 类模板语法4.2 类模板的实例化4.3 类模板与函数模板区别4.4 类模板分文件编写…

Word控件Spire.Doc 【文本】教程(17) ;在Word中设置文本方向

Spire.NET的Spire.是MicrosoftDoc人员对Word文档进行操作打印的.NET类库。帮助单独安装Microsoft Word在开发环境下&#xff0c;轻松便捷地创建、编辑、转换和转换Word文档。拥有近10个专业开发经验Spire系列办公文档开发打印工具&#xff0c;专注于创建、编辑、转换和Word/Exc…

C++设计模式---组合模式

文章目录使用场景组合模式的定义安全组合模式使用场景 组合模式和类与类之间的组合是不同的概念。 组合模式主要用来处理树形结构的数据&#xff0c;如果要表达的数据不是树形结构&#xff0c;就不太适合组合模式。 比如我们有一个目录结构&#xff1a; 这个目录我们把它绘…