如何使用ssm实现病人跟踪治疗信息管理系统

@TOC

10915ssm病人跟踪治疗信息管理系统

第1章 绪论

1.1 课题背景及研究意义

1.1.1 课题背景

经过互联网近几年的蓬勃发展,整个现代社会的人工查询、手工备案方式已经慢慢地从本质上发生了变化。上世纪90年代以后,我们国家整体经济水平逐渐提高,人民的生活水平有了极大的进步。如何利用互联网创造更简单高效的生活,这是我们首要讨论的。需要病人跟踪治疗信息管理系统相关网站,一方面使得管理员可以对病人跟踪治疗信息管理系统网的信息进行及时更新和信息化的管理,可以较为容易的获取所需信息,系统的操作更加的准确,这是一种潜在趋势,随着电子商务的趋势越来越壮大。

1.1.2 研究意义

社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加。因此,对病人跟踪治疗信息管理系统的管理、要求也越来越严格。为适应时代的发展,各大医院开始广泛地使用电脑来进行管理,并推出在线病人跟踪治疗信息管理系统,为提高工作人员效率提供了一种新的方式,并且减轻了他们的工作强度,为病人提供更加方便、快捷、安全的系统,实现双赢。

于此同时,实现病人跟踪治疗信息管理系统的计算机化也是顺应时代潮流的举措,我国现如今病人人数较少增加,病人跟踪治疗信息管理系统引起了广大病人的注视,病人跟踪治疗信息管理系统的管理工作变得越来越困难,在这一客观需要的推动下,建立、完善、发展病人跟踪治疗信息管理系统,可以为病人带来极大的方便。

本系统即为方便管理员和病人而制作的网上病人跟踪治疗信息管理系统,结合了病人的需求,设计出的一个基于Java语言、MySQL数据库的网上病人跟踪治疗信息管理系统。

1.2 开发工具的选用及语言介绍

本次毕业设计是一个基于B/S模式的病人跟踪治疗信息管理系统,是一个在网络环境下运行的网站,采用Java语言,应用的技术有SSM框架,Tomcat作为服务器,MySQL作为后台数据库[4]。

1.2.1 语言介绍

Java计算机编程语言本身不同于传统的C++计算机编程语言, 本身非常简单, 能够实现快速学习[5]。作为一门面向对象的语言,其主要特点为:

  1. 面向对象

其基本单位是对象,对象又含有属性和方法。属性用来说明对象,方法用来操作对象。

  1. 跨平台性

编写的软件程序可以在任意计算机上运行使用,不会因为软、硬件条件的不同而有限制。

  1. 多线程

在一个应用程序中能够同时存在两个以上包括两个的线程,这多个线程可以并发运行,节省时间的同时提高了软件性能。

1.2.2 JAVA简介

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,Java(java server pages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。

1.2.3 本文的内容

本文主要介绍了病人跟踪治疗信息管理系统的课题背景,说明了该系统开发的意义,整个系统开发过程中使用的主要技术,分析了该系统开发的可行性,归纳并分析了病人对于该系统开发的主要需求。

1.2.4 MYSQL数据库

网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。

本次开发的病人跟踪治疗信息管理系统使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了10几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的。

1.2.5 B/S结构

B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要病人在用户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的用户端处理就解决部分问题,开发出来的程序跟病人交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。

图1-1 B/S模式三层结构图

1.2.6 SSM框架

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

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

3.Mybatis的优势:

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

第2章 需求分析与可行性分析

2.1 功能需求分析

病人跟踪治疗信息管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足病人,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑病人的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

系统所要实现的功能分析,对于现在网络方便的管理,系统要实现病人可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改病人跟踪治疗信息管理系统信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足病人的各种需求。所以病人跟踪治疗信息管理系统的开发不仅仅是能满足病人的需求,还能提高管理员的工作效率,减少原有不必要的工作量。

2.2 可行性分析

2.2.1技术可行性:技术背景

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

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

硬件可行性分析

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

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

2.2.2经济可行性

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

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

2.2.3操作可行性:

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

2.3 系统性能分析

(1)系统响应效率:页面响应时问应该在3秒以内,最长不能超过4秒,并支持至少10000人同时在线所有系统。

(2)界面简洁清晰:系统界面要求简单明了,容易操作,符合病人操作习惯。

(3)储存性高:因为病人跟踪治疗信息管理系统中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。

(4)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。

(5)稳定性需求:开发的病人跟踪治疗信息管理系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。

第3章 系统总体设计

3.1 系统的结构划分

本网站可以分为:病人使用的功能、管理员进行管理的功能。

病人使用功能:首页、个人中心、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、病人治疗状况管理等。

管理员管理功能:首页、个人中心、病人管理、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、分类管理、病人治疗状况管理、留言板管理、系统管理等。

3.1.1 系统结构图

病人跟踪治疗信息管理系统的结构图3-1所示:

管理员

服务器和程序

病人

图3-1 系统结构

登录系统结构图,如图3-2所示:

病人跟踪治疗信息管理系统登录界面

用户登录

密码正确

管理员界面

病人界面

图3-2 登录结构图

这些功能可以充分满足病人跟踪治疗信息管理系统的需求。此系统功能较为全面如下图系统功能结构如图3-3所示。

图3-3系统功能结构图

3.2 系统的流程分析

3.2.1操作流程

系统登录流程图,如图所示:

图3-4登录流程图

3.2.2添加信息流程

添加信息流程图,如图所示:

图3-5添加信息流程图

3.2.3删除信息流程

删除信息流程图,如图所示:

图3-6删除信息流程图

3.3. 数据库设计

3.3.1 数据库实体

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

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

医生信息实体属性图,如图4-2所示:

图4-2医生信息实体属性图

预约信息实体属性图如图4-3所示。

图4-3预约信息实体属性图

病人信息实体属性图如图4-4所示。

图4-4病人信息实体属性图

上传行动轨迹信息实体属性图如图4-5所示。

图4-5上传行动轨迹信息实体属性图

3.3.2数据表

每个数据库的应用它们都是和区分开的,当运行到一定的程序当中,它就会与自己相关的协议与用户进行通讯。那么这个系统就会对使这些数据进行连接。当我们选择哪个桥段的时候,接下来就会简单的叙述这个数据库是如何来创建的。当点击完成按钮的时候就会自动在对话框内弹出数据源的名称,在进行点击下一步即可,直接在输入相对应的身份验证和登录密码。根据系统功能设计的要求和功能模块的划分,病人跟踪治疗信息管理系统的设计与实现以下数据表。下面就介绍一下各别主要数据库表的设计结构及其功能建立数据库表:

表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:binglicaiji表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
zhanghao varchar 50 default NULL
xingming varchar 50 default NULL
zhuyuanhao varchar 50 default NULL
ruyuanshijian varchar 50 default NULL
bingchengzhongsuochuxianzhuangkuang varchar 50 default NULL
jiazujujifabing varchar 50 default NULL
shifouhesuanjiance varchar 50 default NULL
jiechuhubeishengneiren varchar 50 default NULL
jiwangbingshi varchar 50 default NULL
bingrenzhaopian varchar 50 default NULL

表4-3:bingren表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
zhanghao varchar 50 default NULL
xingming varchar 50 default NULL
mima varchar 50 default NULL
xingbie varchar 50 default NULL
shengaoCM varchar 50 default NULL
chusheng varchar 50 default NULL
nianling varchar 50 default NULL
tizhongKG varchar 50 default NULL
jiguan varchar 50 default NULL
juzhudi varchar 50 default NULL
zhiye varchar 50 default NULL
shouji varchar 50 default NULL
bingrenzhaopian varchar 50 default NULL

表4-4:bingrenzhiliaozhuangkuang表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
zhanghao varchar 50 default NULL
xingming varchar 50 default NULL
dangqianzhuangkuang varchar 50 default NULL
zhiliaozhuangtai varchar 50 default NULL
zhuzhiyisheng varchar 50 default NULL
zhenduanjieguo varchar 50 default NULL
xinlizhuangkuang varchar 50 default NULL
hulizhuangkuang varchar 50 default NULL
bingrenmanyidu varchar 50 default NULL

表4-5:shangchuanhesuanjiancebaogao表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
zhanghao varchar 50 default NULL
xingming varchar 50 default NULL
shouji varchar 50 default NULL
hesuanjiancebaogao varchar 50 default NULL

######### ######### #########

第4章 系统实现过程(详细设计)

4.1 运行环境

4.1.1 硬件环境

开发本系统时,本人所使用的电脑带有酷睿i5的cpu,gtx 950m的显卡,4G的运行内存。

4.1.2 软件环境

开发本系统时本人使用的是windows win 10的操作系统,使用了MySQL数据库管理工具,版本为5.0,JDK版本为1.8,开发工具为ECLIPSE ,版本为8.5,web容器使用的为ECLIPSE 自带的tomcat。

4.2 系统实现

4.2.1病人功能模块

病人登录进入病人跟踪治疗信息管理系统可以查看首页、个人中心、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、病人治疗状况管理等内容。

病例采集管理,在病例采集管理页面可以查看账号、姓名、住院号、入院时间、病程中所出现状况、家族聚集发病、是否核酸检测、接触湖北省内人、既往病史、病人照片等详细内容,进行详情、修改,如图4-1所示。

图4-1病例采集管理界面图

医生管理,在医生管理页面可以查看医生姓名、职位、所在医院、所在部门、预约星期段、预约时间段、预约金额、医生照片、联系电话等信息,进行详情、删除如图4-2所示。

图4-2医生管理界面图 ######### 上传行动轨迹管理,在上传行动轨迹管理页面可以查看账号、姓名、手机、上传出行报告等详细内容,进行详情、修改如图4-3所示。

图4-3上传行动轨迹管理界面图

上传核酸检测报告管理,在上传核酸检测报告管理页面可以查看账号、姓名、手机、核算检测报告等详细内容,进行详情、修改如图4-4所示。

图4-4上传核酸检测报告管理界面图

预约管理,在预约管理页面可以查看账号、姓名、医生姓名、预约金额、预约时间、联系电话、是否支付、审核回复、审核状态、审核等详细内容,进行详情、修改如图4-5所示。

图4-5预约管理界面图

4.2.2管理员功能模块

管理员登录,通过填写用户名、密码、角色进行登录,如图4-6所示。

图4-6管理员登录界面图

管理员登录进入病人跟踪治疗信息管理系统可以查看首页、个人中心、病人管理、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、分类管理、病人治疗状况管理、留言板管理、系统管理等信息。

病人管理,在病人管理页面中可以通过查看账号、姓名、性别、身高CM、出生、年龄、体重KG、籍贯、居住地、职业、手机、病人照片等内容进行详情、修改、删除,如图4-7所示。还可以根据需要对病例采集管理进行详情,修改或删除等详细操作,如图4-8所示。

图4-7病人管理界面图

图4-8病例采集管理界面图

预约管理,在预约管理页面中可以查看账号、姓名、医生姓名、预约金额、预约时间、联系电话、是否支付、审核回复、审核状态、审核等信息,并可根据需要对已有预约管理进行修改或删除操作,如图4-9所示。

图4-9预约管理界面图

医生管理,在医生管理页面中可以查看医生姓名、职位、所在医院、所在部门、预约星期段、预约时间段、预约金额、医生照片、联系电话等信息,并可根据需要对已有医生管理进行修改或删除等详细操作,如图4-10所示。

图4-10医生管理界面图

上传核酸检测报告管理,在上传核酸检测报告管理页面中可以查看账号、姓名、手机、核算检测报告等内容,并且根据需要对已有上传核酸检测报告管理进行详情,修改或删除等详细操作,如图4-11所示。

图4-11上传核酸检测报告管理界面图

上传行动轨迹管理,在上传行动轨迹管理页面中可以查看账号、姓名、手机、上传出行报告等内容,并且根据需要对已有上传行动轨迹管理进行详情,修改或删除等详细操作,如图4-12所示。

图4-12上传行动轨迹管理界面图

留言板管理,在留言板管理页面中可以查看用户名、留言内容、回复内容等内容,并且根据需要对已有留言板管理进行详情,修改或删除等详细操作,如图4-13所示。

图4-13留言板管理界面图

4.2.3前台首页功能模块

病人跟踪治疗信息管理系统,在系统首页可以查看首页、医生、医疗资讯、留言反馈、个人中心、后台管理、在线咨询等内容,如图4-14所示。

图4-14前台首页功能界面图

病人登录、病人注册,在注册页面可以填写账号、姓名、密码、身高CM、出生、年龄、体重KG、籍贯、居住地、职业、手机等详细内容,进行注册、登录如图4-15所示。

#########

图4-15病人登录、病人注册界面图 ######### 个人中心,在个人中心页面通过查看账号、姓名、性别、身高CM、出生、年龄、体重KG、籍贯、居住地、职业、手机、病人照片等信息进行更新信息、退出登录,如图4-16所示。在医生页面通过查看医生姓名、职位、所在医院、所在部门、预约星期段、预约时间段、预约金额、医生照片、联系电话等信息进行预约操作,如图4-17所示。

图4-16个人中心界面图 #########

图4-17医生界面图

FileController.java
package com.controller;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;

/**
 * 上传文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file, String type,HttpServletRequest request) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);
		file.transferTo(dest);
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下载文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public void download(@RequestParam String fileName, HttpServletRequest request, HttpServletResponse response) {
		try {
			File file = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);
			if (file.exists()) {
				response.reset();
				response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName+"\"");
				response.setHeader("Cache-Control", "no-cache");
				response.setHeader("Access-Control-Allow-Credentials", "true");
				response.setContentType("application/octet-stream; charset=UTF-8");
				IOUtils.write(FileUtils.readFileToByteArray(file), response.getOutputStream());
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}

BinglicaijiServiceImpl.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.BinglicaijiDao;
import com.entity.BinglicaijiEntity;
import com.service.BinglicaijiService;
import com.entity.vo.BinglicaijiVO;
import com.entity.view.BinglicaijiView;

@Service("binglicaijiService")
public class BinglicaijiServiceImpl extends ServiceImpl<BinglicaijiDao, BinglicaijiEntity> implements BinglicaijiService {
	

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

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

}

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;
	}
}

HomeChart.vue
<template>
  <div id="home-chart" style="width:100%;height:400px;"></div>
</template>
<script>
export default {
  mounted() {
    this.homeChart();
  },
  methods: {
    homeChart() {
      // 基于准备好的dom,初始化echarts实例
      var myChart = this.$echarts.init(document.getElementById("home-chart"));
      // 指定图表的配置项和数据
      var option = {
        tooltip: {
          trigger: "axis"
        },
        legend: {
          data: ["访问量", "用户量", "收入"]
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true
        },
        xAxis: {
          type: "category",
          boundaryGap: false,
          data: [
            "1月",
            "2月",
            "3月",
            "4月",
            "5月",
            "6月",
            "7月",
            "8月",
            "9月",
            "10月",
            "11月",
            "12月"
          ]
        },
        yAxis: {
          type: "value"
        },
        series: [
          {
            name: "访问量",
            type: "line",
            stack: "总量",
            data: [
              120,
              132,
              101,
              134,
              90,
              230,
              210,
              120,
              132,
              101,
              134,
              90,
              230
            ]
          },
          {
            name: "用户量",
            type: "line",
            stack: "总量",
            data: [
              220,
              182,
              191,
              234,
              290,
              330,
              310,
              182,
              191,
              234,
              290,
              330,
              310
            ]
          },
          {
            name: "收入",
            type: "line",
            stack: "总量",
            data: [
              150,
              232,
              201,
              154,
              190,
              330,
              410,
              232,
              201,
              154,
              190,
              330,
              410
            ]
          }
        ]
      };
      // // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
      //根据窗口的大小变动图表
      window.onresize = function() {
        myChart.resize();
      };
    }
  }
};
</script>
<style lang="scss" scoped>
#home-chart {
  background: #ffffff;
  padding: 20px 0;
}
</style>

声明

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

猜你喜欢

转载自blog.csdn.net/shangyizaoxing/article/details/142882187