@TOC
ssm111基于MVC的舞蹈网站的设计与实现+vue
第1章 绪论
1.1背景及意义
随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中用户对舞蹈网站方面的要求也在不断提高,喜欢舞蹈的人数更是不断增加,使得舞蹈网站的开发成为必需而且紧迫的事情。舞蹈网站主要是借助计算机,通过对舞蹈网站所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。舞蹈网站对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。 计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
1.2 国内外研究概况
随着国内经济形势的不断发展,中国互联网进入了一个难得的高峰发展时期,这使得中外资本家纷纷转向互联网市场。 然而,许多管理领域的不合理结构,人员不足以及管理需求的增加使得更多的人具备了互联网管理的意识。
在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。 “舞蹈网站”是基于Mysql数据库,在SSM程序设计的基础上实现的。为确保中国经济的持续发展,信息时代日益更新,蓬勃发展。同时,随着信息社会的快速发展,舞蹈网站面临着越来越多的信息,因此很难获得他们对高效信息的需求,如何使用方便快捷的方式使查询者在广阔的海洋信息中查询,存储,管理和共享信息方面有效,对我们的工作和生活具有重要的现实意义。因此,国内外学术界对此进行了深入而广泛的研究,一个新的研究领域——舞蹈网站诞生了。
1.3 研究的内容
目前许多人仍将传统的纸质工具作为信息管理的主要工具,而网络技术的应用只是起到辅助作用。在对网络工具的认知程度上,较为传统的office软件等仍是人们使用的主要工具,而相对全面且专业的舞蹈网站的信息管理软件仍没有得到大多数人的了解或认可。本选题则旨在通过标签分类管理等方式,管理员;首页、个人中心、用户管理、舞蹈知识管理、舞蹈发布管理、用户分享管理、舞蹈考级管理、舞蹈论坛、我的收藏管理、系统管理,用户;首页、个人中心、舞蹈知识管理、舞蹈发布管理、用户分享管理、舞蹈考级管理、我的收藏管理,前台首页;首页、舞蹈知识、舞蹈发布、用户分享、舞蹈考级、舞蹈论坛、舞蹈咨询、个人中心、后台管理等信息管理功能,从而达到对舞蹈网站的高效管理。
第2章 相关技术
2.1 Java简介
Java技术它是一个容易让人学会和使用的一门服务器语言。它在编程的过程当中只需要很少的知识就能建立起一个真正的交互站点。对于这个教程来说它并不需要你完全去了解这种语言,只要能快速融入web站点就可以,还可以进行一些基本知识的编程就可以。
现代社会中,使用Java语言做动态网页是最常用的,主要是Java比较简单易懂,用户掌握的web 服务器编写脚本。Java语言技术在编程技术中具有一定的安全性和跨平台性功能,并且它可以直接支持分布式的网络应用和效率。在Java语言技术当中它的功能是方便简单的。对于这个语言技术来说它就像万花筒一样在进行开发的时候可以随机进行组合最后变成不同颜色的花瓣。随着现在互联网的快速发展和电子商务的不断发展,在各行各业的设施基础上都开始应用到了计算机,对于过去传统的的管理方式和用户需求都不能满足现在正常的供求关系,所以我们必须通过添加现在的新技术来满足用户的需求。从目前来看,Java技术已经在动态网页中应用的是比较广泛的一门技术。
Java语言具有非常多种的特性:(1)跨平台的无关性;(2)面向对象; (3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的显著优势以及未来开阔的前景,可以广泛的应用在个人笔记本电脑、大数据、大型网络等等。
Java语言具有面向对象的特性,并且易于理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。利用面向对象语言的基本特征来解决软件开发中的实际问题,为有效软件开发提供了技术支持。
2.2 SSM三大框架
1.Spring的优势: 通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。
2.Spring MVC的优势: SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们的开发更简洁。
3.Mybatis的优势:
数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合,提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建提供了xml标签,支持动态的sql。
2.3 MyEclipse开发环境
MyEclipse支持广泛、兼容性高并且功能强大,是一个Eclipse 插件集合,普遍适应于JAVA和J2EE的系统开发,支持 JDBC,Hibernate,AJAX,Struts,Java Servlet,Spring,EJB3等市面上存在的几乎所有数据库链接工具和主流Eclipse产品 开发工具。
MyEclipse在业内是所熟知的开发工具,该平台在开发的过程中运用的就是该工具。MyEclipse又被称之为企业级的工作平台,它是以Eclipse IDE为基础的。MyEclipse可以帮助我们进行数据库的研发和J2EE的使用,除此之外,还可以提高系统的运营能力,这突出表现在服务器的整合过程中。MyEclipse的功能相当完备,能够为J2EE的集成提供必要的环境支持,从而完成编码、测试、调试及发布等功能。它可以支持JSP,HTML,SQL,Javascript,Struts, CSS等。
2.4 Tomcat服务器
Tomcat属于一种轻型的服务器,所以说在中小网站中并不具有普适性。但是当程序员需要开发或调试JSP 程序时,则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说,计算机系统具有一个好的Apache服务器,可以很好的对HTML 页面进行访问。Tomcat 虽然是Apache的扩展,但是它们都是可以独立运行的,二者是不互相干扰的。当配置正确的时候,Apache服务器为HTML 页面的运行提供技术支持,Tomcat 的任务则是运行Servle和JSP 页面。Tomca也具有一定的HTML页面处理功能。
2.5 MySQL数据库
Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。
Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。
第3章 系统分析
3.1 需求分析
舞蹈网站主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改舞蹈网站信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以舞蹈网站的开发不仅能满足用户的需求,还能减少原有不必要的工作量,大大提高了管理员的工作效率。
3.2 系统可行性分析
3.2.1技术可行性:技术背景
本舞蹈网站在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用Java开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
系统管理及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障系统的安全和数据信息的及时备份。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
3.2.2经济可行性
在舞蹈网站开发之前所做的市场调研及其他相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有工作都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于舞蹈网站的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于SSM框架的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。
3.2.3操作可行性:
可操作性主要是对舞蹈网站设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、用户二个权限角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作过程使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.3 项目设计目标与原则
1、关于舞蹈网站的基本要求
(1)功能要求:可以管理首页、个人中心、用户管理、舞蹈知识管理、舞蹈发布管理、用户分享管理、舞蹈考级管理、舞蹈论坛、我的收藏管理、系统管理等功能模块。
(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。
(3)安全与保密要求:用户都必须通过注册、登录才能进入系统。
(4)环境要求:支持Windows系列、Vista系统等多种操作系统使用。
2、开发目标
舞蹈网站的主要开发目标如下:
(1)实现管理系统信息关系的系统化、规范化和自动化;
(2)减少维护人员的工作量以及实现用户对信息的控制和管理;
(3)方便查询信息及管理信息等;
(4)通过网络操作,提高改善处理问题和操作人员工作的效率;
(5)考虑到用户多样性特点,要求界面和操作简便易懂。
3、设计原则
本舞蹈网站采用SSM框架,Mysql数据库开发,充分保证了系统稳定性、完整性。
舞蹈网站的设计与实现的设计思想如下:
- 操作简单方便、系统界面安全良好、简单明了的页面布局、方便查询相关信息。
2、即时可见:对舞蹈网站信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。
3.4系统流程分析
3.4.1操作流程
系统登录流程图,如图所示:
图3-1登录流程图
3.4.2添加信息流程
添加信息流程图,如图所示:
图3-2添加信息流程图
3.4.3删除信息流程
删除信息流程图,如图所示:
图3-3删除信息流程图
第4章 系统设计
4.1 系统体系结构
舞蹈网站的结构图4-1所示:
网
络
管理员
服务器和程序
用户
图4-1 系统结构
登录系统结构图,如图4-2所示:
舞蹈网站登录界面
用户登录
密码正确
管理员界面
用户界面
图4-2 登录结构图
系统结构图,如图4-3所示。
图4-3系统结构图
4.2开发流程设计
系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。
舞蹈网站的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图4-4所示。
图4-4开发系统流程图
4.3 数据库设计原则
学习编程,我们都知道数据库设计是基于需要设计的系统功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在程序中时,就没有必要为程序页面添加数据,从而提高系统的效率。数据库存储了很多信息,可以说是信息管理系统的核心和基础,数据库还为系统提供了添加、删除、修改和检查等操作模块,使系统能够快速找到自己想要的信息,而不是在程序代码中找到。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。
通过舞蹈网站的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:
用户管理属性图如图4-5所示。
图4-5 用户管理实体属性图
舞蹈发布管理实体属性图如图4-6所示。
图4-6舞蹈发布管理实体属性图
用户分享管理实体属性图如图4-7所示。
图4-7用户分享管理实体属性图
舞蹈考级管理实体属性图如图4-8所示。
图4-8舞蹈考级管理实体属性图
4.4 数据表
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表名:wudaofabu
功能:舞蹈发布表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | ` |
`主键 || |addtime|timestamp||创建时间||CURRENT_TIMESTAMP| |wudaomingcheng|varchar|200|舞蹈名称||| |wudaotupian|varchar|200|舞蹈图片||| |wuzhong|varchar|200|舞种||| |wudaoshipin|varchar|200|我的视频||| |fabushijian|varchar|200|发布时间|||
表名:wudaokaoji
功能:舞蹈考级表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | ` |
`主键 || |addtime|timestamp||创建时间||CURRENT_TIMESTAMP| |kaojibiaoti|varchar|200|考级标准||| |kaojixinxi|varchar|200|考级信息||| |baokaoshijian|varchar|200|报考时间||| |zhuyishixiang|varchar|200|注意事项||| |dailibaoming|varchar|200|代理报名||| |zhaopian|varchar|200|照片|||
表名:wudaozhishi
功能:舞蹈知识表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | ` |
`主键 || |addtime|timestamp||创建时间||CURRENT_TIMESTAMP| |biaoti|varchar|200|标题||| |tupian|varchar|200|图片||| |fabushijian|varchar|200|发布时间||| |xiangxijieshao|varchar|200|详细介绍||| |fazhanlishi|varchar|200|发展历史||| |weilaifazhan|varchar|200|未来发展|||
表名:yonghu
功能:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | ` |
`主键 || |addtime|timestamp||创建时间||CURRENT_TIMESTAMP| |zhanghao|varchar|200|账号||| |mima|varchar|200|密码||| |xingming|varchar|200|姓名||| |zhaopian|varchar|200|照片||| |xingbie|varchar|200|性别||| |shouji|varchar|200|手机||| |youxiang|varchar|200|邮箱||| |shenfenzheng|varchar|200|身份证||| |suoxuewuzhong|varchar|200|所学舞种||| |wudaodengji|varchar|200|舞蹈等级|||
表名:yonghufenxiang
功能:用户分享表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | ` |
`主键 || |addtime|timestamp||创建时间||CURRENT_TIMESTAMP| |zhanghao|varchar|200|账号||| |xingming|varchar|200|姓名||| |wudaobiaoti|varchar|200|舞蹈标题||| |wuzhongtupian|varchar|200|舞种图片||| |wudaodengji|varchar|200|舞蹈等级||| |shipin|varchar|200|视频||| |wudaojieshao|varchar|200|舞蹈介绍||| |wudaofenxi|varchar|200|舞蹈分享||| |zixun|varchar|200|咨询|||
-
系统详细设计
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-9所示。
图5-9轮播图管理界面图
5.2用户功能模块
用户登录进入舞蹈网站页面可以查看首页、个人中心、舞蹈知识管理、舞蹈发布管理、用户分享管理、舞蹈考级管理、我的收藏管理等内容,如图5-10所示。
图5-10用户功能界面图
用户分享管理,在用户分享管理页面可以查看账号、姓名、舞蹈标题、舞种图片、舞蹈等级、视频、舞蹈介绍、舞蹈分享、咨询等信息,并可根据需要对用户分享管理进行详情查看评论等操作,如图5-11所示。
图5-11用户分享管理界面图
5.3前台首页功能模块
舞蹈网站,在舞蹈网站前台首页可以查看首页、舞蹈知识、舞蹈发布、用户分享、舞蹈考级、舞蹈论坛、舞蹈咨询、个人中心、后台管理等内容,如图5-12所示。
图5-12前台首页界面图
用户注册、用户登录,通过注册填写账号、密码、姓名、手机、邮箱、身份证等信息进行注册、登录操作,如图5-13所示。
图5-13用户注册、用户登录界面图
舞蹈知识,在舞蹈知识页面可以查看标题、图片、发布时间、发展历史、未来发展、点击次数等信息进行点我收藏操作,如图5-14所示。
图5-14舞蹈知识界面图
用户分享,在用户分享页面可以查看账号、姓名、舞蹈标题、舞种图片、舞蹈等级、视频、舞蹈介绍、舞蹈分享、咨询等信息进行点我收藏操作,如图5-15所示。
图5-15用户分享界面图
舞蹈论坛,在舞蹈论坛页面可以填写帖子标题、类型、内容等信息进行发布帖子操作,如图5-16所示。
图5-16舞蹈论坛界面图
个人中心,在个人中心页面可以填写账号、密码、姓名、照片、性别、手机、邮箱、身份证等信息进行更新信息、退出登录操作,如图5-17所示。
图5-17个人中心界面图
UserServiceImpl.java
package com.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.UserDao;
import com.entity.UserEntity;
import com.service.UserService;
import com.utils.PageUtils;
import com.utils.Query;
/**
* 系统用户
*/
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements UserService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
Page<UserEntity> page = this.selectPage(
new Query<UserEntity>(params).getPage(),
new EntityWrapper<UserEntity>()
);
return new PageUtils(page);
}
@Override
public List<UserEntity> selectListView(Wrapper<UserEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
@Override
public PageUtils queryPage(Map<String, Object> params,
Wrapper<UserEntity> wrapper) {
Page<UserEntity> page =new Query<UserEntity>(params).getPage();
page.setRecords(baseMapper.selectListView(page,wrapper));
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
}
StoreupController.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.StoreupEntity;
import com.entity.view.StoreupView;
import com.service.StoreupService;
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-31 15:31:46
*/
@RestController
@RequestMapping("/storeup")
public class StoreupController {
@Autowired
private StoreupService storeupService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,StoreupEntity storeup,
HttpServletRequest request){
if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
storeup.setUserid((Long)request.getSession().getAttribute("userId"));
}
EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>();
PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,StoreupEntity storeup, HttpServletRequest request){
if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
storeup.setUserid((Long)request.getSession().getAttribute("userId"));
}
EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>();
PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( StoreupEntity storeup){
EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>();
ew.allEq(MPUtil.allEQMapPre( storeup, "storeup"));
return R.ok().put("data", storeupService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(StoreupEntity storeup){
EntityWrapper< StoreupEntity> ew = new EntityWrapper< StoreupEntity>();
ew.allEq(MPUtil.allEQMapPre( storeup, "storeup"));
StoreupView storeupView = storeupService.selectView(ew);
return R.ok("查询收藏表成功").put("data", storeupView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
StoreupEntity storeup = storeupService.selectById(id);
return R.ok().put("data", storeup);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
StoreupEntity storeup = storeupService.selectById(id);
return R.ok().put("data", storeup);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody StoreupEntity storeup, HttpServletRequest request){
storeup.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(storeup);
storeup.setUserid((Long)request.getSession().getAttribute("userId"));
storeupService.insert(storeup);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody StoreupEntity storeup, HttpServletRequest request){
storeup.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(storeup);
storeup.setUserid((Long)request.getSession().getAttribute("userId"));
storeupService.insert(storeup);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody StoreupEntity storeup, HttpServletRequest request){
//ValidatorUtils.validateEntity(storeup);
storeupService.updateById(storeup);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
storeupService.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<StoreupEntity> wrapper = new EntityWrapper<StoreupEntity>();
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 = storeupService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
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();
}
}
svgo.yml
# replace default config
# 基于svgo对svg文件进行压缩:https://panjiachen.github.io/vue-element-admin-site/zh/feature/script/svgo.html
# multipass: true
# full: true
plugins:
# - name
#
# or:
# - name: false
# - name: true
#
# or:
# - name:
# param1: 1
# param2: 2
- removeAttrs:
attrs:
- 'fill'
- 'fill-rule'
声明
本博客适用于广泛的学术和教育用途,包括但不限于个人学习、开发设计,产品设计。仅供学习参考,旨在为读者提供深入理解和学术研究的材料。