基于java+springboot+mybatis+vue+elementui的旧物置换网站

2023-10-29

项目介绍

随着时代的不进步,旧物也成人们的烦恼,许多平台网站都在推广自已的产品像天猫、咸鱼、京东、拼多多。所以开发出一套关于旧物置换网站非常有必要。旧物置换网站主要是借助计算机,通过对用户进行管理。为减少管理员的工作,同时也方便广大用户对个人所需旧物置换的及时查询以及管理。我们通过java语言,后端springboot框架,数据库mysql,前端vue技术开发了本次系统。

该旧物置换网站包括管理员、用户、卖家。其主要功能包括管理员:首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等,卖家后台:首页、个人中心、旧物类型管理、旧物信息管理、置换交易管理。前台首页;首页、旧物信息、网站公告、个人中心、后台管理等,用户后台:首页、个人中心、旧物信息管理、置换交易管理等功能。

开发环境

开发语言: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.ShangpinxinxiEntity;
import com.entity.view.ShangpinxinxiView;

import com.service.ShangpinxinxiService;
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("/shangpinxinxi")
public class ShangpinxinxiController {
    @Autowired
    private ShangpinxinxiService shangpinxinxiService;



    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShangpinxinxiEntity shangpinxinxi,
		HttpServletRequest request){
        EntityWrapper<ShangpinxinxiEntity> ew = new EntityWrapper<ShangpinxinxiEntity>();
		PageUtils page = shangpinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpinxinxi), params), params));

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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShangpinxinxiEntity shangpinxinxi){
        EntityWrapper< ShangpinxinxiEntity> ew = new EntityWrapper< ShangpinxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shangpinxinxi, "shangpinxinxi"));
		ShangpinxinxiView shangpinxinxiView =  shangpinxinxiService.selectView(ew);
		return R.ok("查询汉服信息成功").put("data", shangpinxinxiView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ShangpinxinxiEntity shangpinxinxi = shangpinxinxiService.selectById(id);
		shangpinxinxi.setClicknum(shangpinxinxi.getClicknum()+1);
		shangpinxinxi.setClicktime(new Date());
		shangpinxinxiService.updateById(shangpinxinxi);
        return R.ok().put("data", shangpinxinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ShangpinxinxiEntity shangpinxinxi = shangpinxinxiService.selectById(id);
		shangpinxinxi.setClicknum(shangpinxinxi.getClicknum()+1);
		shangpinxinxi.setClicktime(new Date());
		shangpinxinxiService.updateById(shangpinxinxi);
        return R.ok().put("data", shangpinxinxi);
    }




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

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

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


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


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

	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,ShangpinxinxiEntity shangpinxinxi, HttpServletRequest request,String pre){
        EntityWrapper<ShangpinxinxiEntity> ew = new EntityWrapper<ShangpinxinxiEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
		Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Object> entry = it.next();
			String key = entry.getKey();
			String newKey = entry.getKey();
			if (pre.endsWith(".")) {
				newMap.put(pre + newKey, entry.getValue());
			} else if (StringUtils.isEmpty(pre)) {
				newMap.put(newKey, entry.getValue());
			} else {
				newMap.put(pre + "." + newKey, entry.getValue());
			}
		}
		params.put("sort", "clicknum");
        params.put("order", "desc");
		PageUtils page = shangpinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpinxinxi), params), params));
        return R.ok().put("data", page);
    }


}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于java+springboot+mybatis+vue+elementui的旧物置换网站 的相关文章

随机推荐

  • 华为云云耀云服务器L实例评测

    文章目录 一 前言 二 云耀云服务器L实例要点介绍 2 1 什么是云耀云服务器L实例 2 1 1 浅析云耀云服务器L实例 2 2 云耀云服务器L实例的产品定位 2 3 云耀云服务器L实例优势 2 4 云耀云服务器L实例支持的镜像与应用场景
  • TCP 报文各字段解析

    目录 1 16位源端口号 2 16位目的端口号 3 16位序号和16位确认序号 4 4位首部长度 5 16位窗口大小 6 16位紧急指针 7 6个标记位 TCP是传输控制协议 TCP对数据传输的控制就要比UDP详细很多了 比如TCP的确认机
  • Stable Diffusion ControlNet 完全指南

    ControlNet 是 Stable Diffusion中的一种扩展模型 通过这种扩展模型 我们能够将参考图像的构图 compositions 或者人体姿势迁移到目标图像 资深 Stable Diffusion 用户都知道 很难精准控制S
  • 阿里大牛亲码 Spring Boot 进阶(全彩版小册)

    什么是 Spring Boot Spring Boot 是 Spring 开源组织下的子项目 是 Spring 组件一站式解决方案 主要是简化了使用 Spring 的难度 简省了繁重的配置 提供了各种启动器 开发者能快速上手 Spring
  • 【ES6】for in 与 for of 的区别

    ES6 for in 与 for of 的区别 一般情况下 for in 用来遍历对象 也可以用来遍历数组 因为 对象和数组都属于 Object对象 for of 用来遍历数组 不能遍历对象 方便理解的小案例 for in 可以遍历循环对象
  • 【React】React组件通信(详解)

    目录 前言 父子组件通信 父子组件案例 props 父传子 props 子传父 非父子组件通信 非父子组件案例 Context跨组件通信 消息订阅 发布机制 redux通信 react redux通信 总结 前言 目前我们所学习到的Vue
  • 亚马逊、ebay、虾皮电商卖家如何做测评,提高店铺排名?

    测评是什么呢 不管是在亚马逊 速卖通 阿里国际 虾皮 Lazada 沃尔玛 美客多 ebay等跨境电商平台 测评都是成本最低且最有效的一种推广方式 通俗来说 测评就是我们常说的好评 差别 买家购买商品后为商品进行服务与综合点评 包括 产品质
  • 计算机桌面怎么全屏显示,电脑显示器如何设置成满屏

    在有些时候我们的网友不清楚电脑显示器如何设置成满屏 那么下面就由学习啦小编来给你们说说电脑显示器设置成满屏的方法吧 希望可以帮到你们哦 电脑显示器设置成满屏的方法 右击桌面 选择弹出对话框中的 屏幕分辨率 如下图 弹出如下对话框 选择对话框
  • Windows平台在线安装Qt 6.0.0图文教程

    0 前言 2020年12月8日Qt官方宣布正式发布Qt 6 0 0 是全新Qt 6系列的首个版本 是Qt的一个重要里程碑 Qt 6 0是Qt 5系列的延续 Qt 6 0将作为Qt的主要版本 为我们提供更高的自由度来实现新特性 功能 以更好地
  • PTP精确时间协议

    Precision Time Protocol PTP IEEE 1588 PTP 是一种高精度时间同步协议 在网络通过同步信号周期性对所有节点时钟校正 PTP一般在硬件级实现的 精度更高 常见的是直接在 MAC 层嵌入时间戳 1588v1
  • python读取文件之with open()

    读写文件是最常见的IO操作 Python内置了读写文件的函数 用法和C是兼容的 open VS with open 目前最常使用的是with open 函数 首先介绍它和open 的区别 open 完成后必须调用close 方法关闭文件 因
  • EasyExcel 百万级别数据高效率导入/导出

    嗨 您好 我是 vnjohn 在互联网企业担任 Java 开发 CSDN 优质创作者 推荐专栏 Spring MySQL Nacos Java 后续其他专栏会持续优化更新迭代 文章所在专栏 业务设计 我当前正在学习微服务领域 云原生领域 消
  • 【vision transformer】DETR原理及代码详解(二)

  • Setting OMP_NUM_THREADS

    Setting OMP NUM THREADS environment variable for each process to be 1 in default to avoid your system being overloaded p
  • K8S集群 NOT READY的解决办法 1.13 错误信息:cni config uninitialized

    今天给同事 一个k8s 集群 出现not ready了 花了 40min 才搞定 这里记录一下 避免下载 再遇到了 不清楚 错误现象 untime network not ready NetworkReady false reason Ne
  • python-什么是数据分析?

    python 什么是数据分析 根据分析目的 用适当的分析方法及工具 对数据进行分析 提取有价值的信息 形成有效结论的过程 数据分析可分为三类 描述性数据分析 从一组数据中可以摘要并且描述这份数据的集中和离散情形 探索性数据分析 从数据中找出
  • 使用Jmeter+ant进行接口自动化测试(数据驱动)

    最近在做接口测试 因为公司有使用jmeter做接口测试的相关培训资料 所以还是先选择使用jmeter来批量管理接口 进行自动化测试 话不多说 进入正题 1 使用csv文件保存接口测试用例 方便后期对接口进行维护 先新建txt文件 然后文件扩
  • [极客大挑战 2019]Secret File 1(php伪协议)

    纯小白的web之旅 o 第一篇题解 有些地方可能还不清楚 或者存在错误 大佬们如果看到可以指点一下 点开靶机 是这个界面 第一步看一下源代码 可以看到一个提示 Archive room php 点进去就跳到另一个页面了 我们点一下secre
  • 开发过程中用到的相关知识汇总

    开发相关 语言相关 算法 数据库优化 linux系统 系能调优 工具 维护相关 监控工具 问题定位
  • 基于java+springboot+mybatis+vue+elementui的旧物置换网站

    项目介绍 随着时代的不进步 旧物也成人们的烦恼 许多平台网站都在推广自已的产品像天猫 咸鱼 京东 拼多多 所以开发出一套关于旧物置换网站非常有必要 旧物置换网站主要是借助计算机 通过对用户进行管理 为减少管理员的工作 同时也方便广大用户对个