医疗服务系统
@TOC
springboot0782医疗服务系统
系统概述
1.1 概述
随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中普通村民对乡村诊室方面的要求也在不断提高,需要乡村诊室的人数更是不断增加,使得医疗服务系统的开发成为必需而且紧迫的事情。医疗服务系统主要是借助计算机,通过对医疗服务系统所需的信息管理,增加用户选择,同时也方便对广大乡村诊室的及时查询、修改以及对用户信息的及时了解。医疗服务系统对用户带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足用户的需求。
1.2课题意义
随着全球信息化的发展,人们的生活节奏越来越快,对信息的时效性越来越重视。以传统的宣传方式为载体的传统媒介早已不能满足用户对获取信息的方式、便捷性的需求。所以医疗服务系统渐渐成为用户关注的焦点。首先,医疗服务系统,网上获取信息的实时性、便捷性要远远高于传统媒介。系统一经上线,无论用户在世界的哪个角落,只要能够连接互联网,就能在第一时间获得想要的信息。
以往的医疗服务系统相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。
计算机技术在现代管理中的应用,使计算机成为用户应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
1.3 主要内容
医疗服务系统从功能、数据流程、可行性、环境等方面进行需求分析。对医疗服务的数据库、功能进行了详细设计。分析了主要界面设计和相关组件设计,对医疗服务的具体实现进行了介绍,从而达到对医疗服务系统的管理。
详细内容介绍,将在以下六章中详细阐述:
第一章、绪论,介绍了研究课题选择的背景及意义、研究现状,简要介绍了本文的章节内容。
第二章、引入技术知识,通过引入关键技术进行开发,向系统中涉及直观表达的技术知识。
第三章、重点分析了系统的分析,从系统强大的供需市场出发,对系统开发的可行性,系统流程以及系统性能和功能进行了探讨。
第四章、介绍了系统的详细设计方案,包括系统结构设计和数据库设计。
第五章、系统设计的实现,通过对系统功能设计的详细说明,论证了系统的结构。
第六章、系统的整体测试,评判系统是否可以上线。
采用Java技术,从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种操作,在网页中加入动态内容,从而实现医疗服务系统所需要的各种基本功能。
2 系统开发环境
2.1 Spring Boot框架
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 Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。
2.2 JAVA简介
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java server pages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于乡村医生Web应用程序开发和移动应用程序开发。Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。
2.3访问数据库实现方法
(1)首先介绍一下web数据库搜索网络上的基本步骤:
第一步:检查消费者的数据,
第二步:你必须建立与数据库的连接;
第三步:搜索数据库;
第四步:数据的结构;
第五步:该用户 的结果被示出。
(2)系统,直到我MYSQL5.0 PHP集成开发环境,如使用WAMP服务器处于开机状态,并且更容易访问数据库的报告开发环境:
一个连接到MySQL数据库服务器Mysql_connect-;
语法:资源的mysql_connect(主机,用户 名,密码);
请选择数据库:mysql_select_db(数据库链接标识的名称);
关闭数据库:则mysql_close();
2.4系统对MySQL数据库的两种连接方式
活动的MySQL/ MySQL库,或使用ODBC接口,MySQL数据库是一个双向链接。永久及非永久连接。
(1)永久连接:一个更永久的连接请求的最大优点是可以非常有效的客户站在密切的联系,当连接到MySQL服务器,就更好了。在起草该页面每一个孩子在这个过程中,而不是仅仅在任何时候,只有在到MySQL服务器请求连接的生命周期,一旦连接。此子过程是建立到服务器的单独连接可以是永久性的。
(2)非永久连接:他是短路。提交顺路到Web服务器,服务器处理请求并请求的页面,你要发送的浏览器客户端,然后连接断开。对于大多数网站,它经常通过有效高效率有关,但在大多数情况下,所使用的连接,但它是一个完整的时间,以避免出现任何问题,并可以增加的容量服务器承载。
2.5 MySql数据库
Mysql的语言是非结构化的,用户 可以在数据上进行工作。因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,其速度、可靠性和适应性而备受关注并得到了普遍的应用。Mysql数据库在编程过程中的作用是很广泛的,为用户 进行数据查询带来了方便。Mysql数据库的应用特点:灵活性强,功能强大,语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据库管理主要是数据存储、修改和增加以及数据表的建立。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。
3 需求分析
3.1技术可行性:技术背景
医疗服务系统是在Windows操作系统中进行开发运用的,而且目前PC机的各项性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用Java开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站更具有稳定性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
系统管理及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障了数据信息能够得到及时的备份,整个系统可以安全有效的。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
3.2经济可行性
在医疗服务系统开发之前所做的市场调研及与其相关的其他管理系统,都是没有任何费用的。所有的调查研究都是通过开发者自己的努力,所有的工作也都是自己亲力亲为的。在碰到自己比较难以解决的问题时,大多数是通过指导老师和同学的帮助进行相关问题的解决。所以对于医疗服务系统的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于Java的开发,采用Mysql数据库。所以系统在开发人力、财力方面的要求不高,具有经济可行性。
3.3操作可行性:
可操作性主要是对在医疗服务系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、乡村医生、普通村民三个角色,都可以简单明了的进入到自己的系统界面,通过界面可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息。对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以医疗服务系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.4系统设计规则
本医疗服务系统采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
医疗服务系统的设计与实现的设计思想如下:
- 操作简单方便、系统界面安全良好:简单明了的页面布局,方便查询管理的相关信息。
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-5所示:

图4-5普通村民功能结构图
4.3. 数据库设计
4.3.1 数据库实体
管理员信息图,如图4-6所示:

``图4-6 管理员信息图
健康档案实体属性图,如图4-7所示:

图4-7健康档案实体属性图
乡村诊室实体属性图如图4-8所示。

图4-8乡村诊室实体属性图
购买信息管理实体属性图如图4-9所示。

``图4-9购买信息管理实体属性图
4.3.2 数据库设计表
4.4 数据表
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表4-1 allusers表
| 列名 | 数据类型 | 长度 | 约束 |
|---|---|---|---|
| id | int | 11 | NOT NULL |
| username | varchar | 50 | default NULL |
| pwd | varchar | 50 | default NULL |
| cx | varchar | 50 | default NULL |
表4-2:goumaixinxi表
| 列名 | 数据类型 | 长度 | 约束 |
|---|---|---|---|
| id | ``int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| dingdanbianhao | varchar | 50 | default NULL |
| mingcheng | varchar | 50 | default NULL |
| leixing | varchar | 50 | default NULL |
| jiage | varchar | 50 | default NULL |
| goumaishuliang | varchar | 50 | default NULL |
| zongjiage | varchar | 50 | default NULL |
| riqi | varchar | 50 | default NULL |
| zhanghao | varchar | 50 | default NULL |
| zhensuoxinxi | varchar | 50 | default NULL |
| sfsh | varchar | 50 | default NULL |
| shhf | varchar | 50 | default NULL |
表4-3:jiankangdangan表
| 列名 | 数据类型 | 长度 | 约束 |
|---|---|---|---|
| id | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| danganbianhao | varchar | 50 | default NULL |
| danganmingcheng | varchar | 50 | default NULL |
| danganleixing | varchar | 50 | default NULL |
| yonghuming | varchar | 50 | default NULL |
| xingming | varchar | 50 | default NULL |
| xingbie | varchar | 50 | default NULL |
| muqianzhuangkuang | varchar | 50 | default NULL |
| bingshi | varchar | 50 | default NULL |
| jiuzhenyiyuan | varchar | 500 | default NULL |
| danganwenjian | varchar | 500 | default NULL |
| riqi | varchar | 500 | default NULL |
表4-4:jinjishigu表
| 列名 | 数据类型 | 长度 | 约束 |
|---|---|---|---|
| id | ``int | 11 | NOT NULL |
| addtime | varchar | 50 | ``default NULL |
| biaoti | varchar | 50 | ``default NULL |
| neirong | varchar | 50 | ``default NULL |
| fashengshijian | varchar | 50 | ``default NULL |
| yonghuming | varchar | 50 | ``default NULL |
| xingming | varchar | 50 | ``default NULL |
| sfsh | varchar | 50 | ``default NULL |
| shhf | varchar | 50 | ``default NULL |
表4-5:kaohexinxi表
| 列名 | 数据类型 | 长度 | 约束 |
|---|---|---|---|
| ID | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| mingcheng | varchar | 50 | default NULL |
| zhanghao | varchar | 50 | default NULL |
| xingming | varchar | 50 | default NULL |
| kaoheqingkuang | varchar | 50 | default NULL |
| jiangli | varchar | 50 | default NULL |
| pingyu | varchar | 500 | default NULL |
| riqi | varchar | 500 | default NULL |
表4-6:putongcunmin表
| 列名 | 数据类型 | 长度 | 约束 |
|---|---|---|---|
| id | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| yonghuming | varchar | 50 | default NULL |
| mima | varchar | 50 | default NULL |
| xingming | varchar | 50 | default NULL |
| xingbie | varchar | 50 | default NULL |
| touxiang | varchar | 50 | default NULL |
| shenfenzheng | varchar | 50 | default NULL |
| shouji | varchar | 50 | default NULL |
| youxiang | varchar | 500 | default 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-6所示。 
图5-6购买信息管理界面图
轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-7所示。

图5-7轮播图管理界面图
乡村医生管理 ,在乡村医生管理页面可以查看账号、密码、姓名、性别、头像、诊所信息、身份证、电话等内容,并可根据需要对乡村医生管理进行添加,修改,删除或详细内容等操作,如图5-8所示。

图5-8乡村医生管理界面图
医疗地图管理,在医疗地图管理页面可以查看名称、地区、类型、图片、详情、地址等内容,并可根据需要对医疗地图管理进行添加,修改,删除或详细内容等操作,如图5-9所示。

图5-9医疗地图管理界面图
医疗药品管理,在医疗药品管理页面可以查看编号、名称、类型、图片、介绍、价格、有效期、生产日期等内容,并可根据需要对医疗药品管理进行添加,修改,删除或详细内容等操作,如图5-10所示。

图5-10医疗药品管理界面图
5.2乡村医生功能模块
乡村医生登录进入医疗服务系统可以查看首页、个人中心、公告信息管理、乡村诊室管理、健康档案管理、紧急事故管理、学习培训管理、考核信息管理、购买信息管理、系统管理等内容,如图5-11所示。
图5-11乡村医生功能界面图
个人信息,在个人信息页面通过填写账号、密码、姓名、性别、头像、诊所信息、身份证、电话等内容并可根据需要对个人信息进行查看、修改,如图5-12所示。

图5-12个人信息界面图
公告信息管理,在公告信息管理页面可以填写公告名称、公告类型、图片、公告内容、发布日期等内容,并可根据需要对公告信息管理详细内容进行详情、修改、删除操作,如图5-13所示。

图5-13公告信息管理界面图
乡村诊室管理,在乡村诊室管理页面可以查看诊所名称、规模、类型、资格证书、简介、现有人数、咨询电话、账号、姓名、审核回复等内容,并可根据需要对乡村诊室管理进行详情、修改、删除等操作,如图5-14所示。

图5-14乡村诊室管理界面图
健康档案管理,在健康档案管理页面可以查看档案编号、档案名称、档案类型、用户名、姓名、性别、目前状况、病史、就诊医院、档案文件、日期等内容,并可根据需要对健康档案管理进行详情等操作,如图5-15所示。

图5-15健康档案管理界面图
学习培训管理,在学习培训管理页面可以查看名称、培训项目、培训对象、培训内容、培训时间、发布日期等内容,并可根据需要对学习培训管理进行详情等操作,如图5-16所示。

图5-16学习培训管理界面图
考核信息管理,在考核信息管理页面可以查看名称、账号、姓名、考核情况、奖励、评语、日期等内容,并可根据需要对考核信息管理进行详情、修改、删除等操作,如图5-17所示。

图5-17考核信息管理界面图
购买信息管理,在购买信息管理页面可以查看订单编号、名称、类型、价格、购买数量、总价格、日期、账号、是否支付、审核回复等内容,并可根据需要对购买信息管理进行查看详情等操作,如图5-18所示。

图5-18购买信息管理界面图
5.3普通村民功能模块
普通村民登录进入医疗服务系统可以查看首页、个人中心、健康档案管理、紧急事故管理、留言板管理等内容,如图5-19所示。
图5-19普通村民功能界面图
健康档案管理,在健康档案管理页面通过填写档案编号、档案名称、档案类型、用户名、姓名、性别、目前状况、病史、就诊医院、档案文件、日期等内容并可根据需要对健康档案管理进行详情、修改、删除,如图5-20所示。

图5-20健康档案管理界面图
紧急事故管理,在紧急事故管理页面可以填写标题、内容、发生时间、用户名、姓名、审核回复等内容,并可根据需要对紧急事故管理详细信息进行详情、修改、删除操作,如图5-21所示。

图5-21紧急事故管理界面图
留言板管理,在留言板管理页面可以填写用户名、留言内容、回复内容等内容,并可根据需要对留言板管理详细信息进行详情、修改、删除操作,如图5-22所示。

图5-22留言板管理界面图
5.4 前台首页功能模块
医疗服务系统首页、公告信息、医疗地图、医疗药品、留言反馈、个人中心、后台管理、医生咨询功能。网站首页效果图如图5-23所示:

图5-23首页界面
``登录、普通村民注册,在普通村民注册页面通过填写用户名、密码、姓名、身份证、手机、邮箱等信息进行登录、普通村民注册,如图5-24所示。
#########
图5-24登录、普通村民注册界面图
公告信息,在公告信息页面通过填写公告类型、公告内容、发布日期等内容进行提交,如图5-25所示。

图5-25公告信息界面图 ######### ######### ######### 医疗药品,在医疗药品页面通过填写编号、类型、价格、介绍、有效期、生产日期等信息进行购买申请,如图5-26所示。

图5-26医疗药品界面图
乡村医生登录,在乡村医生登录页面可以填写账号、密码等信息并可以进行登录,如图5-27所示:

图5-27乡村医生登录界面图
XuexipeixunServiceImpl.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.XuexipeixunDao;
import com.entity.XuexipeixunEntity;
import com.service.XuexipeixunService;
import com.entity.vo.XuexipeixunVO;
import com.entity.view.XuexipeixunView;
@Service("xuexipeixunService")
public class XuexipeixunServiceImpl extends ServiceImpl<XuexipeixunDao, XuexipeixunEntity> implements XuexipeixunService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
Page<XuexipeixunEntity> page = this.selectPage(
new Query<XuexipeixunEntity>(params).getPage(),
new EntityWrapper<XuexipeixunEntity>()
);
return new PageUtils(page);
}
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<XuexipeixunEntity> wrapper) {
Page<XuexipeixunView> page =new Query<XuexipeixunView>(params).getPage();
page.setRecords(baseMapper.selectListView(page,wrapper));
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
@Override
public List<XuexipeixunVO> selectListVO(Wrapper<XuexipeixunEntity> wrapper) {
return baseMapper.selectListVO(wrapper);
}
@Override
public XuexipeixunVO selectVO(Wrapper<XuexipeixunEntity> wrapper) {
return baseMapper.selectVO(wrapper);
}
@Override
public List<XuexipeixunView> selectListView(Wrapper<XuexipeixunEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
@Override
public XuexipeixunView selectView(Wrapper<XuexipeixunEntity> wrapper) {
return baseMapper.selectView(wrapper);
}
}

CommonServiceImpl.java
package com.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dao.CommonDao;
import com.service.CommonService;
/** * 系统用户
* @author yangliyuan
* @date 2019年10月10日 上午9:17:59
*/
@Service("commonService")
public class CommonServiceImpl implements CommonService {
@Autowired
private CommonDao commonDao;
@Override
public List<String> getOption(Map<String, Object> params) {
return commonDao.getOption(params);
}
@Override
public Map<String, Object> getFollowByOption(Map<String, Object> params) {
return commonDao.getFollowByOption(params);
}
@Override
public void sh(Map<String, Object> params) {
commonDao.sh(params);
}
@Override
public int remindCount(Map<String, Object> params) {
return commonDao.remindCount(params);
}
@Override
public Map<String, Object> selectCal(Map<String, Object> params) {
return commonDao.selectCal(params);
}
@Override
public List<Map<String, Object>> selectGroup(Map<String, Object> params) {
return commonDao.selectGroup(params);
}
@Override
public List<Map<String, Object>> selectValue(Map<String, Object> params) {
return commonDao.selectValue(params);
}
}

GoumaixinxiServiceImpl.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.GoumaixinxiDao;
import com.entity.GoumaixinxiEntity;
import com.service.GoumaixinxiService;
import com.entity.vo.GoumaixinxiVO;
import com.entity.view.GoumaixinxiView;
@Service("goumaixinxiService")
public class GoumaixinxiServiceImpl extends ServiceImpl<GoumaixinxiDao, GoumaixinxiEntity> implements GoumaixinxiService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
Page<GoumaixinxiEntity> page = this.selectPage(
new Query<GoumaixinxiEntity>(params).getPage(),
new EntityWrapper<GoumaixinxiEntity>()
);
return new PageUtils(page);
}
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<GoumaixinxiEntity> wrapper) {
Page<GoumaixinxiView> page =new Query<GoumaixinxiView>(params).getPage();
page.setRecords(baseMapper.selectListView(page,wrapper));
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
@Override
public List<GoumaixinxiVO> selectListVO(Wrapper<GoumaixinxiEntity> wrapper) {
return baseMapper.selectListVO(wrapper);
}
@Override
public GoumaixinxiVO selectVO(Wrapper<GoumaixinxiEntity> wrapper) {
return baseMapper.selectVO(wrapper);
}
@Override
public List<GoumaixinxiView> selectListView(Wrapper<GoumaixinxiEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
@Override
public GoumaixinxiView selectView(Wrapper<GoumaixinxiEntity> wrapper) {
return baseMapper.selectView(wrapper);
}
}

IndexHeader.vue
<template>
<!-- <el-header>
<el-menu background-color="#00c292" text-color="#FFFFFF" active-text-color="#FFFFFF" mode="horizontal">
<div class="fl title">{{this.$project.projectName}}</div>
<div class="fr logout" style="display:flex;">
<el-menu-item index="3">
<div>{{this.$storage.get('role')}} {{this.$storage.get('adminName')}}</div>
</el-menu-item>
<el-menu-item @click="onLogout" index="2">
<div>退出登录</div>
</el-menu-item>
</div>
</el-menu>
</el-header> -->
<div class="navbar" :style="{backgroundColor:heads.headBgColor,height:heads.headHeight,boxShadow:heads.headBoxShadow,lineHeight:heads.headHeight}">
<div class="title-menu" :style="{justifyContent:heads.headTitleStyle=='1'?'flex-start':'center'}">
<el-image v-if="heads.headTitleImg" class="title-img" :style="{width:heads.headTitleImgWidth,height:heads.headTitleImgHeight,boxShadow:heads.headTitleImgBoxShadow,borderRadius:heads.headTitleImgBorderRadius}" :src="heads.headTitleImgUrl" fit="cover"></el-image>
<div class="title-name" :style="{color:heads.headFontColor,fontSize:heads.headFontSize}">{{this.$project.projectName}}</div>
</div>
<div class="right-menu">
<div class="user-info" :style="{color:heads.headUserInfoFontColor,fontSize:heads.headUserInfoFontSize}">{{this.$storage.get('role')}} {{this.$storage.get('adminName')}}</div>
<div class="logout" :style="{color:heads.headLogoutFontColor,fontSize:heads.headLogoutFontSize}" @click="onIndexTap">退出到前台</div>
<div class="logout" :style="{color:heads.headLogoutFontColor,fontSize:heads.headLogoutFontSize}" @click="onLogout">退出登录</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
dialogVisible: false,
ruleForm: {},
user: {},
heads: {"headLogoutFontHoverColor":"#fff","headFontSize":"20px","headUserInfoFontColor":"rgba(255, 255, 255, 1)","headBoxShadow":"0px 0px 0px #32D088","headTitleImgHeight":"44px","headLogoutFontHoverBgColor":"rgba(36, 194, 205, 1)","headFontColor":"rgba(255, 255, 255, 1)","headTitleImg":false,"headHeight":"70px","headTitleImgBorderRadius":"22px","headTitleImgUrl":"http://codegen.caihongy.cn/20201021/cc7d45d9c8164b58b18351764eba9be1.jpg","headBgColor":"#4A4A4A","headTitleImgBoxShadow":"0 1px 6px #444","headLogoutFontColor":"rgba(255, 255, 255, 1)","headUserInfoFontSize":"16px","headTitleImgWidth":"44px","headTitleStyle":"1","headLogoutFontSize":"16px"},
};
},
created() {
this.setHeaderStyle()
},
mounted() {
let sessionTable = this.$storage.get("sessionTable")
this.$http({
url: sessionTable + '/session',
method: "get"
}).then(({
data
}) => {
if (data && data.code === 0) {
this.user = data.data;
} else {
let message = this.$message
message.error(data.msg);
}
});
},
methods: {
onLogout() {
let storage = this.$storage
let router = this.$router
storage.remove("Token");
router.replace({
name: "login"
});
},
onIndexTap(){
window.location.href = `${this.$base.indexUrl}`
},
setHeaderStyle() {
this.$nextTick(()=>{
document.querySelectorAll('.navbar .right-menu .logout').forEach(el=>{
el.addEventListener("mouseenter", e => {
e.stopPropagation()
el.style.backgroundColor = this.heads.headLogoutFontHoverBgColor
el.style.color = this.heads.headLogoutFontHoverColor
})
el.addEventListener("mouseleave", e => {
e.stopPropagation()
el.style.backgroundColor = "transparent"
el.style.color = this.heads.headLogoutFontColor
})
})
})
},
}
};
</script>
<style lang="scss" scoped>
.navbar {
height: 60px;
line-height: 60px;
width: 100%;
padding: 0 34px;
box-sizing: border-box;
background-color: #ff00ff;
position: relative;
z-index: 111;
.right-menu {
position: absolute;
right: 34px;
top: 0;
height: 100%;
display: flex;
justify-content: flex-end;
align-items: center;
z-index: 111;
.user-info {
font-size: 16px;
color: red;
padding: 0 12px;
}
.logout {
font-size: 16px;
color: red;
padding: 0 12px;
cursor: pointer;
}
}
.title-menu {
display: flex;
justify-content: flex-start;
align-items: center;
width: 100%;
height: 100%;
.title-img {
width: 44px;
height: 44px;
border-radius: 22px;
box-shadow: 0 1px 6px #444;
margin-right: 16px;
}
.title-name {
font-size: 24px;
color: #fff;
font-weight: 700;
}
}
}
// .el-header .fr {
// float: right;
// }
// .el-header .fl {
// float: left;
// }
// .el-header {
// width: 100%;
// color: #333;
// text-align: center;
// line-height: 60px;
// padding: 0;
// z-index: 99;
// }
// .logo {
// width: 60px;
// height: 60px;
// margin-left: 70px;
// }
// .avator {
// width: 40px;
// height: 40px;
// background: #ffffff;
// border-radius: 50%;
// }
// .title {
// color: #ffffff;
// font-size: 20px;
// font-weight: bold;
// margin-left: 20px;
// }
</style>

