515ppt网站建设,赤峰公司做网站,咨询公司招聘,电子商务网站发展建设TOC
springboot0748旅游管理系统
第1章 绪论
1.1课题背景
计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统#xff0c;从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”TOC
springboot0748旅游管理系统
第1章 绪论
1.1课题背景
计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”用户可以选择所需的信息进入系统查看首页、旅游方案、旅游资讯、个人中心、后台管理等。
系统所要实现的功能分析对于现在网络方便的管理据数据调查显示相比过去增长较快用户通过网上登录的方式已经形成了一种依赖不管需要什么信息内容直接上网查找参考比较大对旅游管理系统的类型和特点的内容信息有了详细的了解让用户更有针对性的选择。这也给用户带来非常大的方便用户可以不用像传统的方式进行查看信息这样不仅耽误自己的时间而且比对过程比较单一所以旅游管理系统的开发不仅仅是能满足用户的需求还能提高管理员的工作效率减少原有不必要的工作量。
1.2研究意义
越来越多的互联网爱好者开始在互联网上满足他们的基本需求同时逐渐进入各个用户的起居。互联网具有许多优点例如便利性速度高效率和低成本。因此类似于旅游管理系统满足用户工作繁忙的需求不仅是方便用户随时查看信息的途径而且还能提高管理效率。
本文首先以旅游管理系统过程的基本问题作为研究对象。在开发系统之前我们对现有状况进行了详细的调查和分析。最后我们利用计算机技术开发了一套完整合适的旅游管理系统 。该系统的实现主要优势是该系统主要采用计算机技术开发它方便快捷系统可以通过管理员界面查看系统所涉及的旅游管理系统所有信息管理。
旅游管理系统软件是一款方便、快捷、实用的信息服务查询软件。随着智能网络在全球市场的不断普及以及各种智能平台的使用作为中国主流智能的技术开发系统自然需要这样的软件来满足更多用户的需求和体验。系统的开发与用户的日常需求相关如通过管理系统获取到旅游方案管理、旅游购买管理、旅游资讯等详细情况了解最新资讯信息等。
虽然目前已有很多基于Java平台的旅游管理系统相关的平台系统但尚未出现更详细的功能显示和信息查询。经过分析用户的第一眼往往是看到一个软件的外观一个漂亮的界面将吸引用户下一次点击和理解。为了让用户通过无意识的点击尝试进入每个界面和每个按钮用户可以进一步了解软件的质量因此良好的软件界面将是吸引用户注意力的第一步。因此对于每个软件界面设计工作来说一个应用程序是占据非常重要的一部分在高端大气中吸引用户界面满足用户体验将进一步完成整个应用程序的各项功能良好的用户体验度将继续使用并经常打开并使用此软件。
1.3研究内容
本旅游管理系统使用的是比较成熟的Java技术和比较完善的MySQL数据库将网络旅游管理系统可以更安全、技术性更强的满足网站所有信息的管理。
旅游管理系统主要实现了管理员模块、用户模块二大部分。通过本旅游管理系统可以提高管理人员的工作效率减少出错率对于数据存储及查找有了更方便的操作。
详细内容介绍将在以下五章中详细阐述
第一章、绪论介绍了研究课题选择的背景及意义、研究现状简要介绍了本文的章节内容。
第二章、引入技术知识通过引入关键技术进行开发向系统中涉及直观表达的技术知识。
第三章、重点分析了系统的分析从系统强大的供需市场出发对系统开发的可行性系统流程以及系统性能和功能进行了探讨。
第四章、介绍了系统的详细设计方案包括系统结构设计和数据库设计。
第五章、系统设计的实现通过对系统功能设计的详细说明论证了系统的结构。
第六章、系统的整体测试评判系统是否可以上线运行。 第4章 系统分析
第2章 技术介绍
2.1相关技术
旅游管理系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言易于学习实用且面向用户。全球超过35的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统因为它的体积小但速度快成本低或者开源受到中小型网站的青睐。因此Java MySQL作为一个成熟的开发环境可以满足旅游管理系统设计和开发所需的稳定性安全性和可扩展性要求。
2.2 JAVA技术
JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的兼容性比较强适应市面上大多数操作系统不会出现乱码的现像其扩展性和维护性都更好具有分析问题和解决问题的能力是面向过程的程序设计方便我们编写的代码更强壮。
JAVA相对其它语言来说比较简单编译起来更方便一些安全可靠性高。不完全统计现在全世界大约有2000多万人在使用它JAVA既可以镶嵌使用又可以独力的使用。JAVA大致可以分成两个部分一种部分是JAVA负责的编译另一种是JAVA负责的运行。JAVA和C语言很相像但JAVA在编程时是一种以对象为导向的方式来进行编译的使得编出来的软件可以单机使用也可以在互联网上使用检查出错更为方便。JAVA分布式、体系结构中立的特点也使得其存储更快编议更简单。面向对象包括四个特点一是封装就是说在定义类的时候可以实现一定的功能和属性。二是抽象属于类的一种可以把一个具有共同属性的类封装在一个抽象里便于简单编议。三是继承顾名思义就是带有前者的特性。还有一个就是多态的特点可以多种一起运用表现了它可扩展性好。
2.3 MySQL数据库
数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中这非常灵活并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言MySQL用于SQL语言因此它具有高度兼容性。数据库的操作是必不可少的包括对数据库表的增加、删除、修改、查询等功能。现如今数据库可以分为关系型数据库和非关系型数据库Mysql属于关系性数据库Mysql数据库是一款小型的关系型数据库它以其自身特点体积小、速度快、成本低等Mysql数据库是目前最受欢迎的开源数据库。
在WEB应用技术中 Mysql数据库支持不同的操作系统平台虽然在不同平台下的安装和配置都不相同但是差别也不是很大Mysql在Windows平台下两种安装方式二进制版和免安装版。安装完Mysql数据库之后需要启动服务进程相应的用户就可以连接数据库用户可通过命令行或者图形界面工具登录数据库。
2.4 Tomcat介绍
Tomcat 虽然是Apache的扩展但是它们都是可以独立运行的二者是不互相干扰的。当配置正确的时候Apache服务器为HTML页面的运行提供技术支持Tomcat 的任务则是运行Servle和Java 页面。Tomca也具有一定的HTML页面处理功能。Tomcat属于一种轻型的服务器所以说在中小企业中并不具有普适性。但是当程序员需要开发或调试Java 程序时则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说计算机系统具有一个好的Apache服务器可以很好的对HTML 页面进行访问。Tomcat是非常受欢迎的服务器因为它具有较好的扩展性而且在运行的时候不需要太多的系统资源拥有程序员所需要的收发邮件功能还能够支持负载平衡该程序能够不断的更新程序员能够根据自己的需要增加新的功能。
2.5 SpringBoot框架
Spring Boot是Pivotal团队的一个新框架旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法无需开发人员定义样板配置。通过这种方式Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。 Spring Boot特点 1、创建一个单独的Spring应用程序 2、嵌入式Tomcat无需部署WAR文件 3、简化Maven配置 4、自动配置Spring 5、提供生产就绪功能如指标健康检查和外部配置 6、绝对没有代码生成和XML的配置要求 安装步骤 最基本的是Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见该框架还提供了一个命令行界面可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本包括集成的CLI命令行界面。 更简单的方法是使用Groovy enVironment ManagerGVM它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装首先使用brew tap pivotal / tap切换到pivotal存储库然后执行brew install springboot命令。
第3章 系统分析
3.1系统分析概述
任何一个项目在开发研究前都需要对研发系统本身的需求做一个认真的分析市场的调研是不可忽视的从实际场景中确定使用人员的功能需求从而明确目标对整个系统的开发有一个更加准确的定位在这个章节需要对系统的性能分析业务流程分析和数据等进行分析旅游管理系统的整体界面简单功能完善。
系统的可行性是分析和讨论发达的需求能达到什么样的要求。开发的系统平台是否符合之前的要求。只有在预先评估系统的开发中才能在系统开发和实施之前完成需求。如果您不具备开发一个功能不合格的系统的可行性那就是开发失败。开发系统是否有用可以完成之前讨论过的需求以下分析了旅游管理系统的实际需求。
系统设计需要从用户和管理员的实际需求开始以了解他们需要实施哪些功能以及他们可以包括哪些管理工作。
考虑到旅游管理系统设计的特点应满足几个要求
1它可以通过网络开展旅游管理系统信息管理工作促进对旅游管理系统的统一管理。
2学习方法变得更加多样化管理更加标准化;
3它提供了一个免费的渠道以确保数据的实时有效沟通。
3.2可行性分析
可行性分析目的是根据所开发系统的用户需求明确研究方向和目标通过可行性分析确定系统的框架和功能模块。
可行性分析是对任何管理系统的需求、技术和经济的分析。其中最重要的技术方面的可行性技术可行性是分析软件开发技术的应用开发系统是可行的。其次分析软件系统的需求分析软件需求能否满足预先设计的功能需求。最后讨论了系统的操作可行性和经济可行性。
3.2.1经济可行性
在开发任何软件系统之前它将考虑其后来的经济可行性即开发和设计软件所需的成本及其在以后运行中可带来的经济效益是否可以匹配以及软件是否能带来经济效益给用户。在本交互式用户管理软件的设计中本文的主要目的是为用户提供一个新的旅游管理系统这在经济上是完全可行的。
3.2.2技术可行性
系统比较重要的一个分析就是技术可行分析没有好的技术再好的设计也是达不到系统的要求并且对于技术的设计使用的技术如何更好的利用技术将所要实现的功能模块进行详细的分析需要对技术进行详细的了解及自己的所学知识的一个综合使用。技术可行性主要取决于系统设计和开发中使用的各种硬件设施和软件设置是否可以更好的结合发挥他们的优势避开他们的弊端进行完美结合确保技术的安全使用及正常的操作。
旅游管理系统主要是基于Java技术开发到目前为止Java技术的发展已经非常成熟。同时它也受到许多开发人员的青睐。而且在技术层面Windows平台决定可以完成开发旅游管理系统的任务。因此系统开发在技术上是可行的。
3.3系统功能设计
软件的用户界面是最直接接触的对象包括是否允许用户使用简单方便请求的响应时间主图像的整体质量整体布局的质量。
旅游管理系统的设计基于现有的网络平台可以实现用户管理及数据信息管理方便管理员对后台进行管理有详细的了解及统计分析随时查看信息状态。
系统功能设计是在系统开发和设计思想的总体任务的基础上完成的。该系统的主要任务是实现旅游管理系统管理使用户可以通过指令完成整个旅游管理系统的操作。
从上面的描述中可以基本可以实现软件的功能
1、开发实现旅游管理系统的整个系统程序
2、管理员首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理等。
3、用户首页、个人中心、旅游方案管理、旅游购买管理、我的收藏管理。
4、前台首页首页、旅游方案、旅游资讯、个人中心、后台管理等相应操作
5、基础数据管理实现系统基本信息的添加、修改及删除等操作并且根据需求进行交流查看及回复相应操作。
第4章 系统设计
4.1系统结构设计
旅游管理系统的设计主要是为了满足用户的实际需求。 因此它需要通过Internet实现因此它必须具备硬件和软件基础。该平台最终可以通过科学技术和各种方式达到支持智能化的信息管理的目的。因此它必须具备网络旅游管理系统管理所需的环境和各种资料并保证实现开放性模块性和实用性三个原则。
旅游管理系统主要包括管理员、用户二个权限角色对于用户角色不同所使用的功能模块相应不同。
本旅游管理系统结构如下图4-1所示。 图4-1 旅游管理系统结构功能图
4.2数据库设计
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
4.2.1实体ER图
数据库是整个软件编程中最重要的一个步骤对于数据库问题主要是判定数据库的数量和结构公式的创建。旅游管理系统使用的是Mysql进行对数据库进行管理进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库下图主要是对数据库实体的E-R图
用户信息实体属性图如图4-2所示。 图4-2用户信息实体属性图
旅游方案管理实体属性图如图4-3所示。 图4-3旅游方案管理实体属性图
旅游购买管理实体属性图如图4-4所示。 图4-4旅游购买管理实体属性图
4.2.2数据表
每个数据库的应用它们都是和区分开的当运行到一定的程序当中它就会与自己相关的协议与用户进行通讯。那么这个系统就会对使这些数据进行连接。当我们选择哪个桥段的时候接下来就会简单的叙述这个数据库是如何来创建的。当点击完成按钮的时候就会自动在对话框内弹出数据源的名称在进行点击下一步即可直接在输入相对应的身份验证和登录密码。
根据系统功能设计的要求和功能模块的划分旅游管理系统的设计与实现一共涉及到四个数据表。下面就介绍一下各别主要数据库表的设计结构及其功能建立数据库表
表4-1lvyoufangan表
|列名|数据类型|长度|约束| | :- | :-: | :-: | :-: | |id|int|11|PRIMARY KEY| |username|varchar|50|DEFAULT NULL| |fanganbianhao|varchar|50|DEFAULT NULL| |fanganmingcheng|varchar|50|DEFAULT NULL| |zhaopian|varchar|50|DEFAULT NULL| |chufachengshi|varchar|50|DEFAULT NULL| |lvyouluxian|varchar|50|DEFAULT NULL| |yudingxuzhi|varchar|50|DEFAULT NULL| |xingchengtianshu|varchar|50|DEFAULT NULL| |xiangqingjianjie|varchar|50|DEFAULT NULL| |jiage|varchar|50|DEFAULT NULL| |sfsh|varchar|50|DEFAULT NULL| |shhf|varchar|50|DEFAULT NULL| 表4-2lvyougoumai表
列名数据类型长度约束idint11PRIMARY KEYaddtimevarchar50DEFAULT NULLfanganbianhaovarchar50DEFAULT NULLfanganmingchengvarchar50DEFAULT NULLjiagevarchar50DEFAULT NULLrenshuvarchar50DEFAULT NULLzongjiavarchar50DEFAULT NULLzhanghaovarchar50DEFAULT NULLxingmingvarchar255DEFAULT NULLispayvarchar255DEFAULT NULL
表4-3yonghu表
列名数据类型长度约束IDint11PRIMARY KEYaddtimevarchar50DEFAULT NULLzhanghaovarchar50DEFAULT NULLxingmingvarchar50DEFAULT NULLmimavarchar50DEFAULT NULLxingbievarchar50DEFAULT NULLtouxiangvarchar50DEFAULT NULLgexingqianmingvarchar255DEFAULT NULL 第5章 系统实现
管理员、用户登录功能是系统中一个非常重要的功能模块。这个函数模块需要做的第一件事是设计系统的安全性。不能说任何打开登录界面的人都可以进入系统。我们想控制管理。用户的账号和密码只有拥有权限的用户才能通过这个登录界面进入系统管理界面这是非常重要的。用户想要登录和使用系统首先进入登录账户和登录密码然后我们使用程序来检索检索数据库中的账户信息一致输入账号密码如果输入账号信息让用户登录时如果它不存在给一个提示,非法登陆所以这个功能模块是非常重要的。
5.1管理员功能模块
管理员通过点击后台管理进入页面可以输入用户名、密码、角色进行登录相对应操作如图5-1所示。 图5-1管理员登录界面
管理员通过点击后台管理进入页面可以填写首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理等功能模块进行相对应操作如图5-2所示。 图5-2管理员功能界面
旅游方案管理通过旅游方案管理可以填写方案编号、方案名称、照片、出发城市、旅游路线、预定须知、行程天数、价格、审核回复、审核状态、审核等并进行详情、删除、修改、查看评论操作如图5-3所示。
图5-3旅游方案管理界面
旅游购买管理管理员通过列表可以获取方案编号、方案名称、价格、人数、总价、账号、姓名、是否支付等信息并进行删除、修改操作如图5-4所示。 图5-4旅游购买管理界面
用户管理管理员通过列表可以获取账号、姓名、密码、性别、头像、个性签名等信息并进行详情、删除、修改操作如图5-5所示。 图5-5用户管理界面
5.2前台首页功能模块
旅游管理系统 在前台首页可以查看首页、旅游方案、旅游资讯、个人中心、后台管理等内容如图5-6所示。 图5-6前台首页功能界面图
登录、用户注册在用户注册页面可以填写账号、姓名、密码等信息进行注册如图5-7所示。 图5-7登录、用户注册界面图
旅游方案在旅游方案页面通过填写方案编号、出发城市、旅游路线、预定须知、行程天数、价格、点击次数等信息进行购买或点我收藏如图5-8所示。 图5-8旅游方案界面图
5.3用户功能模块
个人信息在个人信息页面可以查看账号、姓名、密码、性别、头像、个性签名等信息并可根据需要对个人信息进行删除或修改等操作如图5-9所示。 图5-9个人信息界面
旅游方案用户通过旅游方案可以查看方案编号、方案名称、照片、出发城市、旅游路线、预定须知、行程天数、价格、审核回复、审核状态等信息进行详情等操作如图5-10所示。 图5-10旅游方案界面图
旅游购买用户通过旅游购买可以查看方案编号、方案名称、价格、人数、总价、账号、姓名、是否支付等信息进行操作如图5-11所示。 图5-11我旅游购买界面图
我的收藏用户通过我的收藏可以查看收藏名称、收藏图片等信息进行操作如图5-12所示。 图5-12我的收藏界面图
第6章 系统测试
MPUtil.java
package com.utils;import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;import org.apache.commons.lang3.StringUtils;import cn.hutool.core.bean.BeanUtil;import com.baomidou.mybatisplus.mapper.Wrapper;/*** Mybatis-Plus工具类*/
public class MPUtil {public static final char UNDERLINE _;//mybatis plus allEQ 表达式转换public static Map allEQMapPre(Object bean,String pre) {MapString, Object map BeanUtil.beanToMap(bean);return camelToUnderlineMap(map,pre);}//mybatis plus allEQ 表达式转换public static Map allEQMap(Object bean) {MapString, Object map BeanUtil.beanToMap(bean);return camelToUnderlineMap(map,);}public static Wrapper allLikePre(Wrapper wrapper,Object bean,String pre) {MapString, Object map BeanUtil.beanToMap(bean);Map result camelToUnderlineMap(map,pre);return genLike(wrapper,result);}public static Wrapper allLike(Wrapper wrapper,Object bean) {Map result BeanUtil.beanToMap(bean, true, true); return genLike(wrapper,result);}public static Wrapper genLike( Wrapper wrapper,Map param) {IteratorMap.EntryString, Object it param.entrySet().iterator();int i0;while (it.hasNext()) {if(i0) wrapper.and();Map.EntryString, Object entry it.next();String key entry.getKey();String value (String) entry.getValue();wrapper.like(key, value);i;}return wrapper;}public static Wrapper likeOrEq(Wrapper wrapper,Object bean) {Map result BeanUtil.beanToMap(bean, true, true); return genLikeOrEq(wrapper,result);}public static Wrapper genLikeOrEq( Wrapper wrapper,Map param) {IteratorMap.EntryString, Object it param.entrySet().iterator();int i0;while (it.hasNext()) {if(i0) wrapper.and();Map.EntryString, Object entry it.next();String key entry.getKey();if(entry.getValue().toString().contains(%)) {wrapper.like(key, entry.getValue().toString().replace(%, ));} else {wrapper.eq(key, entry.getValue());}i;}return wrapper;}public static Wrapper allEq(Wrapper wrapper,Object bean) {Map result BeanUtil.beanToMap(bean, true, true); return genEq(wrapper,result);}public static Wrapper genEq( Wrapper wrapper,Map param) {IteratorMap.EntryString, Object it param.entrySet().iterator();int i0;while (it.hasNext()) {if(i0) wrapper.and();Map.EntryString, Object entry it.next();String key entry.getKey();wrapper.eq(key, entry.getValue());i;}return wrapper;}public static Wrapper between(Wrapper wrapper,MapString, Object params) {for(String key : params.keySet()) {String columnName ;if(key.endsWith(_start)) {columnName key.substring(0, key.indexOf(_start));if(StringUtils.isNotBlank(params.get(key).toString())) {wrapper.ge(columnName, params.get(key));}}if(key.endsWith(_end)) {columnName key.substring(0, key.indexOf(_end));if(StringUtils.isNotBlank(params.get(key).toString())) {wrapper.le(columnName, params.get(key));}}}return wrapper;}public static Wrapper sort(Wrapper wrapper,MapString, Object params) {String order ;if(params.get(order) ! null StringUtils.isNotBlank(params.get(order).toString())) {order params.get(order).toString();}if(params.get(sort) ! null StringUtils.isNotBlank(params.get(sort).toString())) {if(order.equalsIgnoreCase(desc)) {wrapper.orderDesc(Arrays.asList(params.get(sort)));} else {wrapper.orderAsc(Arrays.asList(params.get(sort)));}}return wrapper;}/*** 驼峰格式字符串转换为下划线格式字符串* * param param* return*/public static String camelToUnderline(String param) {if (param null || .equals(param.trim())) {return ;}int len param.length();StringBuilder sb new StringBuilder(len);for (int i 0; i len; i) {char c param.charAt(i);if (Character.isUpperCase(c)) {sb.append(UNDERLINE);sb.append(Character.toLowerCase(c));} else {sb.append(c);}}return sb.toString();}public static void main(String[] ages) {System.out.println(camelToUnderline(ABCddfANM));}public static Map camelToUnderlineMap(Map param, String pre) {MapString, Object newMap new HashMapString, Object();IteratorMap.EntryString, Object it param.entrySet().iterator();while (it.hasNext()) {Map.EntryString, Object entry it.next();String key entry.getKey();String newKey camelToUnderline(key);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());}}return newMap;}
}
NewsController.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.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.NewsEntity;
import com.entity.view.NewsView;import com.service.NewsService;
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-24 18:10:35*/
RestController
RequestMapping(/news)
public class NewsController {Autowiredprivate NewsService newsService;/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,NewsEntity news, HttpServletRequest request){EntityWrapperNewsEntity ew new EntityWrapperNewsEntity();PageUtils page newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put(data, page);}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params,NewsEntity news, HttpServletRequest request){EntityWrapperNewsEntity ew new EntityWrapperNewsEntity();PageUtils page newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/lists)public R list( NewsEntity news){EntityWrapperNewsEntity ew new EntityWrapperNewsEntity();ew.allEq(MPUtil.allEQMapPre( news, news)); return R.ok().put(data, newsService.selectListView(ew));}/*** 查询*/RequestMapping(/query)public R query(NewsEntity news){EntityWrapper NewsEntity ew new EntityWrapper NewsEntity();ew.allEq(MPUtil.allEQMapPre( news, news)); NewsView newsView newsService.selectView(ew);return R.ok(查询旅游资讯成功).put(data, newsView);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id){NewsEntity news newsService.selectById(id);return R.ok().put(data, news);}/*** 前端详情*/IgnoreAuthRequestMapping(/detail/{id})public R detail(PathVariable(id) Long id){NewsEntity news newsService.selectById(id);return R.ok().put(data, news);}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/RequestMapping(/update)public R update(RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){newsService.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 MapString, 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));}}WrapperNewsEntity wrapper new EntityWrapperNewsEntity();if(map.get(remindstart)!null) {wrapper.ge(columnName, map.get(remindstart));}if(map.get(remindend)!null) {wrapper.le(columnName, map.get(remindend));}int count newsService.selectCount(wrapper);return R.ok().put(count, count);}}
LvyougoumaiServiceImpl.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.LvyougoumaiDao;
import com.entity.LvyougoumaiEntity;
import com.service.LvyougoumaiService;
import com.entity.vo.LvyougoumaiVO;
import com.entity.view.LvyougoumaiView;Service(lvyougoumaiService)
public class LvyougoumaiServiceImpl extends ServiceImplLvyougoumaiDao, LvyougoumaiEntity implements LvyougoumaiService {Overridepublic PageUtils queryPage(MapString, Object params) {PageLvyougoumaiEntity page this.selectPage(new QueryLvyougoumaiEntity(params).getPage(),new EntityWrapperLvyougoumaiEntity());return new PageUtils(page);}Overridepublic PageUtils queryPage(MapString, Object params, WrapperLvyougoumaiEntity wrapper) {PageLvyougoumaiView page new QueryLvyougoumaiView(params).getPage();page.setRecords(baseMapper.selectListView(page,wrapper));PageUtils pageUtil new PageUtils(page);return pageUtil;}Overridepublic ListLvyougoumaiVO selectListVO(WrapperLvyougoumaiEntity wrapper) {return baseMapper.selectListVO(wrapper);}Overridepublic LvyougoumaiVO selectVO(WrapperLvyougoumaiEntity wrapper) {return baseMapper.selectVO(wrapper);}Overridepublic ListLvyougoumaiView selectListView(WrapperLvyougoumaiEntity wrapper) {return baseMapper.selectListView(wrapper);}Overridepublic LvyougoumaiView selectView(WrapperLvyougoumaiEntity wrapper) {return baseMapper.selectView(wrapper);}}
main.js
import Vue from vue
import App from /App.vue
// element ui 完全引入
import ElementUI from element-ui
import /assets/css/element-variables.scss
import /assets/css/style.scss
// 加载路由
// import router from /router/router-static.js;
import router from /router/router-static.js;
// 面包屑导航注册为全局组件
import BreadCrumbs from /components/common/BreadCrumbs
// 引入echart
import echarts from echarts
// 引入echart主题
// import /assets/js/echarts-theme-macarons.js
import echarts/theme/macarons.js
// ajax
import http from /utils/http.js
// 基础配置
import base from /utils/base
// 工具类
import { isAuth } from /utils/utils
// storage 封装
import storage from /utils/storage;
// 上传组件
import FileUpload from /components/common/FileUpload;
// 富文本编辑组件
import Editor from /components/common/Editor;
// api 接口
import api from /utils/api
// 数据校验工具类
import * as validate from /utils/validate.js
// 后台地图
import VueAMap from vue-amap
import /icons
//excel导出
import JsonExcel from vue-json-excel
//打印
import printJS from print-js
//MD5
import md5 from js-md5;// 后台地图
Vue.use(VueAMap)
VueAMap.initAMapApiLoader({key: ca04cee7ac952691aa67a131e6f0cee0,plugin: [AMap.Autocomplete, AMap.PlaceSearch, AMap.Scale, AMap.OverView, AMap.ToolBar, AMap.MapType, AMap.PolyEditor, AMap.CircleEditor, AMap.Geocoder],// 默认高德 sdk 版本为 1.4.4v: 1.4.4
})
Vue.prototype.$validate validate
Vue.prototype.$http http // ajax请求方法
Vue.prototype.$echarts echarts
Vue.prototype.$base base.get()
Vue.prototype.$project base.getProjectName()
Vue.prototype.$storage storage
Vue.prototype.$api api
// 判断权限方法
Vue.prototype.isAuth isAuth
// Vue.prototype.$base base
Vue.use(ElementUI, { size: medium, zIndex: 3000 });
Vue.config.productionTip false
// 组件全局组件
Vue.component(bread-crumbs, BreadCrumbs)
Vue.component(file-upload, FileUpload)
Vue.component(editor, Editor)
//excel导出
Vue.component(downloadExcel, JsonExcel)
//MD5
Vue.prototype.$md5 md5;
new Vue({render: h h(App),router
}).$mount(#app)