如何使用ssm实现基于java斗车交易系统设计与实现+vue

news2024/9/20 9:08:42

@TOC

ssm082基于java斗车交易系统设计与实现+vue

系统概述

1.1 概述

 随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中人们对斗车交易方面的要求也在不断提高,需要咨询的人数更是不断增加,使得斗车交易系统的开发成为必需而且紧迫的事情。斗车交易系统主要是借助计算机,通过对斗车交易系统所需的信息管理,增加用户选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。斗车交易系统对用户带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足用户的需求。

1.2课题意义

随着全球信息化的发展,人们的生活节奏越来越快,对信息的时效性越来越重视。以传统的宣传方式为载体的传统媒介早已不能满足用户对获取信息的方式、便捷性的需求。所以斗车交易系统渐渐成为用户关注的焦点。首先,斗车交易系统,网上获取信息的实时性、便捷性要远远高于传统媒介。系统一经上线,无论用户在世界的哪个角落,只要能够连接互联网,就能在第一时间获得想要的信息。

以往的汽车信息相关信息管理,都是工作人员统计。这样即浪费时间,时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。

计算机技术在现代管理中的应用,使计算机成为用户应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。

1.3 主要内容

斗车交易系统从功能、数据流程、可行性、运行环境等方面进行需求分析。对斗车交易系统的数据库、功能进行了详细设计。分析了主要界面设计和相关组件设计,对斗车交易系统的具体实现进行了介绍,从而达到对斗车交易系统的管理。

详细内容介绍,将在以下六章中详细阐述:

第一章、绪论,介绍了研究课题选择的背景及意义、研究现状,简要介绍了本文的章节内容。

第二章、引入技术知识,通过引入关键技术进行开发,向系统中涉及直观表达的技术知识。

第三章、重点分析了系统的分析,从系统强大的供需市场出发,对系统开发的可行性,系统流程以及系统性能和功能进行了探讨。

第四章、介绍了系统的详细设计方案,包括系统结构设计和数据库设计。

第五章、系统设计的实现,通过对系统功能设计的详细说明,论证了系统的结构。

第六章、系统的整体测试,评判系统是否可以上线运行。

采用java技术,从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种操作,在网页中加入动态内容,从而实现斗车交易系统所需要的各种基本功能。

2 系统开发环境

2.1 java简介

Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之一,从发布初期到现今,可以说有将近20多年的历史,已发展成为人类计算机编程语言发展史上的一个深远影响。

Java语言具有非常多种的特性:(1)跨平台的无关性;(2)面向对象; (3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的显著优势以及未来开阔的前景,可以广泛的应用在个人笔记本电脑、大数据、大型游戏等等。

首先,Java语言具有面向对象的特性,并且易于理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。利用面向对象语言的基本特征来解决软件开发中的实际问题,为有效软件开发提供了技术支持。

其次,Java 语言具有很好的跨平台无关性。所编写出来的应用程序是Java语言编写的,那么就无需再使用编译器来修改程序代码,可以直接在任何计算机系统中运行,Windows系统可以运行,在Linux系统中也可以,也就是经过一次编译,可以到处运行,所以Java语言具有卓越的可移植性,可以很好的跨平台实现。

2.2 Mysql数据库

Mysql是一个多患者、多线程的服务器,采用SQL的数据库,数据库管理系统是基于SQL的患者以及服务器模式的关系,它的优点有强大的功能、操作简单、管理方便、可靠安全、运行较快、多线程、跨平台性、完全网络化、稳定性等,非常适合Web站点或者其他应用软件,在数据库后端的开发。此外,利用许多语言,患者可以编写和访问Mysql数据库的程序。Mysql数据库也是开放源代码的,开发者越来越喜欢使用Mysql关系数据库,应用范围也被推而广之。这是由于速度快和易用性, Web站点或应用软件的数据库后端的开发也都在使用它。

mysql 数据库它有很多的优点,例如它在操作上能够让人通俗易懂、功能强大、信息储存量高等优点。所以被人们广泛应用,对于mysql数据库来说它一般主要是对数据进行编码和查询,而且在很多的设计当中都应用到了该数据库,在此过程当中我们可以对常规的数据进行查询和组合,所以我们在进行使用mysql数据库的时候只要对编写一小段的数据就能实现相应的功能。数据库,就是数据存储的储藏室,只不过数据是存储在计算机上的,而不是现实中的储藏室,数据的存放是按固定格式,而不是无序的,则定义就是 :长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要包括数据表的建立,数据存储、修改和增加数据,为了使数据库系统能够正常运行,相关人员进行的管理工作。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。

2.3 B/S结构

BROWSER/SERVER程序架构方式是使用电脑中安装的各种浏览器来进行访问和使用的,相比C/S的程序结构不需要进行程序的安装就可以直接使用。BROWSER/SERVER架构的运行方式是在远程的服务器上进行安装一个,然后在任何接入互联网的电脑上访问和使用。BROWSER/SERVER架构的开发方式给患者带来了极大的便利,在任何时间和地点都可以使用开发的程序系统。

在B/S的结构中,患者可以在任何可以上网的地方访问和使用系统网站的功能,没有地域和时间等方面的限制,B/S结构是把程序完整放置到计算机网络的服务器上,通过计算机互联网给患者提供远程的网络服务。在三层体系结构的B/S系统中,通过浏览器,患者可以对很多服务器发出请求, B/S系统会很大程度的降低工作量,患者只需要安装运行较少的患者端即可,大量的工作将由服务器承担,另外,服务器也完成包括访问数据库,执行应用程序的工作等等。

B/S结构主要有三层,分别为数据层、控制逻辑层和视图层。患者通过视图层,让控制层调用数据层的数据,从而达到整个访问过程。三层相互独立,维护方便,使用安全,三层有互相调用,提高效率。

2.4 SSM三大框架

1.Spring的优势: 通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。

2.Spring MVC的优势: SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们的开发更简洁。

3.Mybatis的优势:

数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合,提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建提供了xml标签,支持动态的sql

3 需求分析

3.1技术可行性:技术背景     

斗车交易系统是在Windows操作系统中进行开发运用的,而且目前PC机的各项性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。

系统的开发环境和配置都是可以自行安装的,系统使用Java开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。

(1)硬件可行性分析

系统管理及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。

(2)软件可行性分析

开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障了数据信息能够得到及时的备份,整个系统可以安全有效的运行。

因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。

3.2经济可行性

在斗车交易系统开发之前所做的市场调研及与其相关的其他管理系统,都是没有任何费用的。所有的调查研究都是通过开发者自己的努力,所有的工作也都是自己亲力亲为的。在碰到自己比较难以解决的问题时,大多数是通过指导老师和同学的帮助进行相关问题的解决。所以对于斗车交易系统的开发在经济上是完全可行的,没有任何费用支出的。

使用比较成熟的技术,系统是基于Java的开发,采用Mysql数据库。所以系统在开发人力、财力方面的要求不高,具有经济可行性。

3.3操作可行性: 

可操作性主要是对在斗车交易系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、用户二个角色,都可以简单明了的进入到自己的系统界面,通过界面可以简单明了地操作功能模块,方便用户信息的操作需求和管理员数据信息。对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以斗车交易系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。

3.4系统设计规则

本斗车交易系统采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。

斗车交易系统的设计与实现的设计思想如下:

  1. 操作简单方便、系统界面安全良好:简单明了的页面布局,方便查询管理的相关信息。

2、即时可见:对斗车交易系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。

3、功能的完善性:管理员;个人中心、用户管理、汽车分类管理、汽车品牌管理、汽车颜色管理、汽车信息管理、系统管理、订单管理,

用户前台;首页、汽车信息、公告信息、个人中心、后台管理、购物车、在线咨询等模块的修改和维护操作。

3.5系统流程和逻辑

系统业务流程图,如图所示:

图3-1登录流程图

图3-2添加信息流程图

图3-3注册信息流程图

4系统概要设计

4.1 概述

斗车交易系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在不受时间、地点的限制来使用这个系统。斗车交易系统工作原理图,如图4-1所示:

图4-1 系统工作原理图

4.2 系统结构

本系统架构网站系统,本系统的具体功能如下:

斗车交易系统登陆界面

用户登录

密码正确

管理员界面

用户界面

图4-2系统功能结构图

管理员:个人中心、用户管理、汽车分类管理、汽车品牌管理、汽车颜色管理、汽车信息管理、系统管理、订单管理,功能结构图,如图4-3所示:

图4-3 管理员功能结构图

用户前台;首页、汽车信息、公告信息、个人中心、后台管理、购物车、在线咨询,结构图,如图4-4所示:

图4-4 用户前台结构图

4.3. 数据库设计

4.3.1 数据库实体

管理员信息结构图,如图4-6所示:

图4-6 管理员信息实体结构图

用户信息:用户名、姓名、头像、性别、联系电话,实体属性图,如图4-7所示:

图4-7用户信息实体属性图

汽车信息:汽车名称、分类、品牌、颜色、图片、座位、换挡方式、汽车排量、上市年份、上牌时间、行驶里程,实体属性图如图4-8所示。

图4-8汽车信息实体属性图

4.3.2 数据库设计表

4.4 数据表

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

allusers表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2username150255
3pwd150255
4cx150255
5addtimeDateTime819

qichexinxi表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2addtime150255
3qichemingcheng150255
4fenleiDateTime8255
5pinpai150255
6yanseDateTime8255
7tupian150255
8zuoweiDateTime8255
8huandangfangshi150255
9qichepailiangDateTime8255
10shangshinianfen150255
11shangpaishijianDateTime8255
12xingshilicheng150255
13qichexiangqingDateTime8255

yonghu表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2addtime150255
3yonghuming150255
4mimaDateTime8255
5xingming150255
6touxiangDateTime8255
7xingbie150255
8lianxidianhuaDateTime8255

qichepinpai表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2addtime150255
4pinpaiDateTime8255

第5章 系统详细设计

5.1管理员功能模块

管理员登录,管理员通过输入用户名、密码等信息进行系统登录,如图5-1所示。

图5-1管理员登录界面图

首页,管理员登录进入斗车交易系统可以查看个人中心、用户管理、汽车分类管理、汽车品牌管理、汽车颜色管理、汽车信息管理、系统管理、订单管理等内容,如图5-2所示。

图5-2管理员首页功能界面图

用户管理,管理员在用户管理页面可以查看用户名、姓名、头像、性别、联系电话等内容,并可根据需要对用户信息进行详情,修改或删除等操作,如图5-3所示。

图5-3用户管理界面图

汽车分类管理,管理员在汽车分类管理页面可以进行新增、详情、修改或删除等操作,如图5-4所示。

图5-4汽车分类管理界面图

汽车颜色管理,管理员在汽车颜色页面可以进行新增、详情,修改,删除操作,如图5-5所示。

图5-5汽车颜色管理界面图

汽车信息管理,管理员在汽车信息页面可以进行查看汽车名称、分类、品牌、颜色、图片、座位、换挡方式、汽车排量、上市年份、上牌时间、行驶里程,可进行新增、详情、修改或删除等操作,如图5-6所示。

图5-6汽车信息管理界面图

系统管理,管理员通过系统管理页面查看在线咨询、轮播图管理、公告信息等进行咨询回复、上传前台首页图片、公告发布进行添加、删除、修改以及查看并对整个系统进行维护等操作,如图5-7所示。

图5-7系统管理界面图

订单管理: 管理员通过订单列表可以查看已退款订单、已完成订单、已发货订单、未支付订单、已取消订单、已支付订单等信息进行详情、或修改删除查操作。,如图5-8所示。

图5-8订单管理界面图

5.2用户前台前功能模块

首页,用户登录进入斗车交易系统首页可以查看首页、汽车信息、公告信息、个人中心、后台管理、购物车、在线咨询等内容,如图5-9所示。

图5-9前台首页功能界面图

用户注册,在用户注册页面通过填写用户名、密码、姓名、性别、联系电话等信息进行注册,如图5-10所示。

图5-10用户注册界面图

用户登录,在用户登录页面可以填写用户名、密码等内容,进行登录,如图5-11所示。

图5-11用户登录界面图

汽车信息,用户在汽车信息页面可以查看汽车名称、分类、品牌、颜色、图片、座位、换挡方式、汽车排量、上市年份、上牌时间、行驶里程等信息,也可根据需要输入汽车信息名称进行搜索,操作,进行收藏、添加购物车、立即购买操作,如图5-12所示。

图5-12汽车信息界面图

个人中心,用户在个人信息页面可以查看用户名、密码、姓名、头像、性别、联系电话等内容,可进行提交操作 ,如图5-13所示。

图5-13个人信息界面图

我的地址,用户在我的地址页面填写联系人、手机号码、默认地址、选择地址进行提交操作,如图5-14所示。

图5-14我的地址界面图

QicheyanseController.java
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.QicheyanseEntity;
import com.entity.view.QicheyanseView;

import com.service.QicheyanseService;
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-03-26 08:38:24
 */
@RestController
@RequestMapping("/qicheyanse")
public class QicheyanseController {
    @Autowired
    private QicheyanseService qicheyanseService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,QicheyanseEntity qicheyanse, 
		HttpServletRequest request){

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(QicheyanseEntity qicheyanse){
        EntityWrapper< QicheyanseEntity> ew = new EntityWrapper< QicheyanseEntity>();
 		ew.allEq(MPUtil.allEQMapPre( qicheyanse, "qicheyanse")); 
		QicheyanseView qicheyanseView =  qicheyanseService.selectView(ew);
		return R.ok("查询汽车颜色成功").put("data", qicheyanseView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        QicheyanseEntity qicheyanse = qicheyanseService.selectById(id);
        return R.ok().put("data", qicheyanse);
    }

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



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody QicheyanseEntity qicheyanse, HttpServletRequest request){
    	qicheyanse.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(qicheyanse);

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

        qicheyanseService.insert(qicheyanse);
        return R.ok();
    }

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

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


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


}

DiscussqichexinxiServiceImpl.java
package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.DiscussqichexinxiDao;
import com.entity.DiscussqichexinxiEntity;
import com.service.DiscussqichexinxiService;
import com.entity.vo.DiscussqichexinxiVO;
import com.entity.view.DiscussqichexinxiView;

@Service("discussqichexinxiService")
public class DiscussqichexinxiServiceImpl extends ServiceImpl<DiscussqichexinxiDao, DiscussqichexinxiEntity> implements DiscussqichexinxiService {
	

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<DiscussqichexinxiEntity> page = this.selectPage(
                new Query<DiscussqichexinxiEntity>(params).getPage(),
                new EntityWrapper<DiscussqichexinxiEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<DiscussqichexinxiEntity> wrapper) {
		  Page<DiscussqichexinxiView> page =new Query<DiscussqichexinxiView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<DiscussqichexinxiVO> selectListVO(Wrapper<DiscussqichexinxiEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public DiscussqichexinxiVO selectVO(Wrapper<DiscussqichexinxiEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<DiscussqichexinxiView> selectListView(Wrapper<DiscussqichexinxiEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public DiscussqichexinxiView selectView(Wrapper<DiscussqichexinxiEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}

}

ConfigController.java

package com.controller;


import java.util.Arrays;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.service.ConfigService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("config")
@RestController
public class ConfigController{
	
	@Autowired
	private ConfigService configService;

	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ConfigEntity config){
        EntityWrapper<ConfigEntity> ew = new EntityWrapper<ConfigEntity>();
    	PageUtils page = configService.queryPage(params);
        return R.ok().put("data", page);
    }
    
	/**
     * 列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ConfigEntity config){
        EntityWrapper<ConfigEntity> ew = new EntityWrapper<ConfigEntity>();
    	PageUtils page = configService.queryPage(params);
        return R.ok().put("data", page);
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        ConfigEntity config = configService.selectById(id);
        return R.ok().put("data", config);
    }
    
    /**
     * 详情
     */
    @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") String id){
        ConfigEntity config = configService.selectById(id);
        return R.ok().put("data", config);
    }
    
    /**
     * 根据name获取信息
     */
    @RequestMapping("/info")
    public R infoByName(@RequestParam String name){
        ConfigEntity config = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
        return R.ok().put("data", config);
    }
    
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody ConfigEntity config){
//    	ValidatorUtils.validateEntity(config);
    	configService.insert(config);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ConfigEntity config){
//        ValidatorUtils.validateEntity(config);
        configService.updateById(config);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
    	configService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

声明

本博客适用于广泛的学术和教育用途,包括但不限于个人学习、开发设计,产品设计。仅供学习参考,旨在为读者提供深入理解和学术研究的材料。

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

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

相关文章

OpenCV 图像处理基础算法介绍c++

VS2022配置OpenCV环境 关于OpenCV在VS2022上配置的教程可以参考&#xff1a;VS2022 配置OpenCV开发环境详细教程 图像处理 图像处理是一个广泛的领域&#xff0c;它涉及到对图像数据进行分析、修改和改进的各种技术。以下是一些基本的图像处理操作&#xff0c;这些操作通常可…

模型 蒂蒙斯创业过程

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。机会、团队、资源&#xff1a;创业成功的三角。 1 蒂蒙斯创业过程的应用 1.1 京东&#xff1a;蒂蒙斯模型下创业成功的典范 京东是中国知名的电子商务平台&#xff0c;其早期发展阶段充分体现了蒂蒙…

接口基础知识12:cookie、session和token

​课程大纲 ‌Cookie、Session和Token是Web应用中常用的身份验证和会话管理机制&#xff0c;各有特点&#xff0c;适用于不同的应用场景。 一、Cookie 1.1 什么是Cookie Cookie是存储在客户端浏览器中的小段数据&#xff0c;通常用于存储用户偏好设置或用于跟踪用户活动。 C…

51单片机——数码管控制

1、数码管介绍 LED数码管&#xff1a;数码管是一种简单、廉价的显示器&#xff0c;是由多个发光二极管封装在一起组成“8”字型的器件。 2、数码管驱动方式 单片机直接扫描&#xff1a;硬件设备简单&#xff0c;但会耗费大量的单片机CPU时间 专用驱动芯片&#xff1a;内部自…

8月24日笔记

ew的使用 EW&#xff08;EarthWorm&#xff09;是一套基于C语言开发的轻量级且功能强大的网络穿透工具&#xff0c;它支持Socks5代理、端口转发及端口映射等功能&#xff0c;能够在复杂的网络环境中实现高效稳定的网络穿透。这款全平台适用的工具&#xff08;包括Windows、Lin…

proc文件的写操作机制

“一切皆是文件”。 Linux的基本哲学之一。它是指linux系统中的所有一切都可以通过文件的方式访问、管理&#xff0c;即便不是文件&#xff0c;也以文件的形式来管理。例如硬件设备、进程、套接字等都抽象成文件&#xff0c;使用统一的用户接口&#xff0c;虽然文件类型各不相同…

ComfyUI IPAdapter plus的模型应该怎么装-免费版-2024.8.25

&#x1f386;背景 ipadapter相关的节点大家应该都不陌生&#xff0c;具体是做什么的就不详细介绍了&#xff0c;但是还是有很多新入门的朋友不太了解这个节点相关的这一堆模型到底应该怎么安装。这里就借着官方节点的介绍来大概讲下这个话题。 涉及到的节点源地址&#xff1…

大数据技术之Zookeeper安装 (2)

目录 下载地址 本地模式安装 1&#xff09;安装前准备 2&#xff09;配置修改 3&#xff09;操作 Zookeeper 配置参数解读 Zookeeper 集群操作 集群规划 解压安装 配置服务器编号 配置 zoo.cfg 文件 集群操作 Zookeeper 集群启动停止脚本 创建脚本 增加脚本执行权限 …

宠物毛发会携带病菌源吗?宠物店空气净化器使体验分享

近期&#xff0c;我接诊了一位肺结节患者&#xff0c;他的第一反应便是联想到家中的猫咪。这种担忧并非毫无根据&#xff0c;过敏体质的人群&#xff0c;无论是对毛发还是排泄物敏感&#xff0c;养宠物都会增加患结节的风险。即便不存在过敏问题&#xff0c;宠物毛发作为病菌的…

Transforms的学习以及地址问题

一、地址问题 在学习Dataset类的实战与Tensboard的学习中&#xff0c;有出现一些地址的问题&#xff1a; 1、相对地址 相对地址的使用&#xff1a; 使用于在从端口中&#xff0c;打开TensorBoard的页面。使用的就是相对地址&#xff1b;例如&#xff1a; tensorboard --log…

MySQL创建与删除表

一、创建表 1.1 使用DDL语句创建表 CREATE TABLE 表名(列名 类型,列名 类型......); character set&#xff1a;如不指定则为所在数据库字符集collate&#xff1a;如不指定则为所在数据库校对规则 查看表 show tables; 1.2 使用Navicat创建表 二、删除表 2.1 使用DDL语句删除…

chapter08-面向对象编程(继承)day08

目录 287-继承原理图 288-继承快速入门 289-继承使用细节1 290-继承使用细节2 291-继承使用细节3 292-继承使用细节4 293-继承使用细节5 294-继承本质详解&#xff08;重要&#xff09; 287-继承原理图 288-继承快速入门 289-继承使用细节1 子类继承了所有的属性和方法…

特拉维斯凯尔西花了5位数给女友泰勒斯威夫特买了一份令人惊讶的贺礼

说实话&#xff0c;我们已经记不清特拉维斯凯尔西今年为泰勒斯威夫特花了多少钱了。据报道&#xff0c;他花了近 10 万美元购买意大利服装和甜食&#xff0c;现在&#xff0c;据报道&#xff0c;他为斯威夫特购买鲜花花费了五位数。 消息人士告诉媒体&#xff0c;凯尔西从 Mil…

超分之最近邻插值、线性插值、双线性插值、双三次插值原理

文章目录 插值与图像插值不同的插值方法最近邻域插值&#xff08;Nearest Neighbor Interpolation&#xff09; 线性插值 (Linear Interpolation)双线性插值 (Bilinear Interpolation) 双三次插值 (Bicubic Interpolation) 插值与图像插值 插值&#xff1a;利用已知数据去预测…

Redis面试都卷到C语言去了。。。

Redis 面试都卷到 C 去了。有个小伙伴在前两天找松哥模面的时候如是说到。 是啊&#xff0c;没办法&#xff0c;自从 Java 八股文这个概念被提出来并且逐步在 Java 程序员中强化之后&#xff0c;现在各种各样的八股文手册&#xff0c;有免费的有付费的&#xff0c;琳琅满目。 …

实验11 编写子程序《汇编语言》- 王爽

1. 需求 编写一个子程序&#xff0c;将包含任意字符&#xff0c;以 0 结尾的字符串中的小写字母转变成大写字母&#xff0c;描述如下。 名称&#xff1a;letterc 功能&#xff1a;将以 0 结尾的字符串中的小写字母转变成大写字母 参数&#xff1a;ds:di 指向字符串首地址 …

快速排序模版

1.霍尔法 #include <iostream> using namespace std; int partition(int *arr,int left,int right){int pivotIndexleft;while(left<right){while(left<right && arr[right]>arr[pivotIndex]){right--;}while(left<right && arr[left]<a…

新160个crackme - 040-DaNiEl-RJ.1

运行分析 需要破解Name和Serial PE分析 Delphi程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida搜索字符串&#xff0c;找到关键字符串进入 对关键函数进行动调分析&#xff0c;注释和变量重命名如上还需要破解sub_4036E8 通过对比sub_4036E8函数的返回值和Nam…

python面向对象—封装、继承、多态

封装 当定义为私有成员变量时&#xff0c;引用或者打印都不可行。 私有成员对于类对象没有办法直接使用&#xff0c;但是我们类中其他成员却是可以访问这些私有成员的。 封装总结&#xff1a; 私有成员的定义我们已经了但是有什么实际的意义吗&#xff1f; 继承 继承表示&…

系规学习第19天

1.知识管理流程的目标是将运维生产过程中产生的各类信息所包含的知识最大限度地提取、保留&#xff0c;通过评审后加以应用&#xff0c;包括&#xff1a;实现知识共享&#xff0c;实现知识转化&#xff0c;避免知识流失&#xff0c;提高运维响应速度和质量&#xff0c;挖掘、分…