🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的网站项目。
- 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
Java党建信息管理平台
- 绪论
- 研究背景意义
随着信息技术的蓬勃发展,现代社会进入了以计算机为中心的信息时代,以计算机技术为核心的新技术革命正在以一种前所未有的持久方式改变着世界的面貌,全面推动了社会的发展,改变了社会经济结构。人们对工作的观念也发生了变化,生活节奏越来越快,生活方式出现了多样化。社会环境发生的这种深刻的变化导致工作改革跟不上,大量的流动人员使队伍管理产生许多新的情况新的问题无法及时解决,使得传统手工信息管理模式面临着严峻的挑战,所以开发新的管理系统减轻信息管理人员工作压力是社会发展的必然形势。
与此同时,的人数越来越多,党员也越来越多,传统的党建党建党员信息管理系统出现了很多新问题,急需开发新的党建信息员管理系统。党建党员信息管理是对党内各项业务和事务的一项工作,是贯彻党的基本路线的重要保证所以计算机为中心的信息时代的到来,党的建设工作也要与时俱进,实现现代化,而采用计算机信息科学技术实现党务工作信息化,正是实现党的建设现代化的有益尝试和积极探索。通过分析党建党建党员信息管理业务,结合党建党员信息管理自身特点,有效的把党务内部活动有机组织起来,搭建一个行之有效的党建党员信息管理系统应用于基层党组织。党建党员信息管理系统设计与实现是结合基层党组织和党员队伍管理的实际情况,详细而深入党务系统的需求进行分析,借鉴各地推进党务信息化的做法和经验,对系统的建设进行初步的设计和探讨。系统涵盖了基层党组织和党员等日常管理的主要工作,为基层党组织和党员提供直观形象便捷的信息服务,满足管理部门目常需要,对党务以及与党务相关的各项服务和信息进行管理。
1.2国内外有关本选题的研究现状
信息管理系统(Information ManagementSystem)是由人、计算机以及其他外韦设备组成的能够进行信息收集、传递、存储、加工、维护和使用的系统。它是上世纪60年代开始在美国兴起的新科学,是利用了计算机和网络通讯技术,通过加强对信息的管理,以及拥有的资源做调查,并建立准确的数据。然后经过加工处理提供给管理者,使其能够做出正确的决策,达到提高管理水平和工作效率的效果。
党建党员信息管理是各个部门,公司,学校等党建工作中重要的日常性工作,把党务工作纳入信息化管理的轨道,是网络时代推动党建工作的新要求,也是执政党建设面临的新课题。为了加强党建党员信息管理,及时准确了解党建党员情况,提升党员管理信息化的水平,笔者结合自身工作实际,经过详细需求分析和论证,提出开发人才交流中心党员管理系统、以电子信息化手段替代传统处理手段,建立一种集党员信息查询、发展审批、统计、分类、汇总干一体,贯穿党员培养发展全过程,结合党员考核、党费收缴、组织关系转入转出等相关功能使党建党建党员信息管理更为规范化、制度化。
1.3研究的内容
党建党员信息管理系统是党委组织工作不可缺少的一部分,一个功能齐全、简单易用的党建党员信息管理系统能有效地减轻党员管理工作人员的工作负担,提高工作效率。随着经济的发展,人员交流来往的频繁,党员管理更加需要一套信息系统以提高信息管理的快捷及准确性。本设计主要是基于B/S模式下党建党员信息管理系统的设计来进行分析,建立一套适应党建党员信息管理工作需要的及充分利用计算机技术、网络技术、数据库技术的党建党员信息管理信息系统。为此,建立一个党建党员管理的信息库,把所有党建新闻、党员的信息,包括流动党员的信息全部保存在信息库存中,以便于管理、查询、统计等。主要是为了对所有党建党员信息实行计算机化自动化管理,以提高工作效率,方便管理。
二、相关技术介绍
2.1 spring
Spring 框架是Java技术平台上的一种常见开源应用框架,提具有控制反转IOC的容器。尽管长时间以来Spring框架自身对编程没有限制,但是其在Java应用中的频繁使用让它很受青睐,所有后来让它作为EJB(EnterpriseJavaBeans)模型信息补充,java Spring框架为开发提供了一系列技术解决方案,比如:利用控制反转IOC的特性,通过实现依赖注入来实现管理整个对象生命周期容器化,利用java面向切面编程技术进行声明式事务管理,整合各种持久化技术管理数据的访问,提供了很多优秀的Web框架方便开发、JAVA Spring框架具有控制反转IOC特性,IOC主要在方便项目维护和测试时期,它提供了一种通过Java反射机制对Java对象进行统一配置与各种管理的方法。
2.2 Spring MVC
Spring MVC框架是一个经典的MVC流程框架,通过实现ModelView以及Controller处理器来很好地将数据和业务以及展现层进行完全分离。从这样的一个角度来说的话,Spring MVC、Struts以及Struts2非常的类似。SpringMVC总体设计是围绕DispatcherServlet前端控制器来展开的,DispatcherServlet负责将前端请求发送到特定的handler映射。通过配置的handler mappings---view resolution---locale以及theme resolution来处理收到的请求并且转到对应的视图处理器。Spring MVC请求业务处理的整体流程如下展示:
2.3 mybatis
MyBatis框架是底层JDBC访问数据库的封装,它使得底层访问数据库的操作是透明的。MyBatis的操作是基于一个SQL SessionFactory实例。MyBatis框架通过各种配置文件与特定对象实体类的映射Mapper文件相关联,并且Mapper文件配置了每个对象到数据库的SQL映射。当与数据库交互时,通过SQLSessionFactory实例获取SQLSession对象并执行SQL命令。访问数据库。
2.4 jQuery
JQuery框架是一个快速、经典和简单的JavaScript前端框架计划。它是继Prototype之后的又一个优秀的JavaScript代码基础框架。jQuery设计的目的是写的少,做的多,也就是说写的代码少。它做的事情越多,就封装了常见的JavaScript功能和代码,并提供了一个简单的JavaScript设计相关的模式,用于优化HTML文档操作、事件处理、CSS样式化、动画设计和Ajax请求交互。
2.5 Mysql
MySQL数据库是与PHP、Java、c++ / c#等主流编程语言技术紧密结合的安全、跨平台、高效的轻量级数据库系统。MySQL数据库系统是由瑞典公司MySQL AB开发、发布和支持的。它于1995年由MySQL的最初开发者David Axmark和Michael Monty Wdenius创建。
目前,MySQL数据库在互联网网站上被广泛使用。由于MySQL数据库体积小、速度快、整体拥有成本很低,尤其是在开源的特点上,很多互联网公司都采用了MySQL数据库来降低开发系统的成本。
MySQL数据库是世界上最快的SQL数据库之一。因为它有许多其他数据库没有的特性,MySQL数据库也是免费和开源的。用户可以通过网络直接从网站上下载MySQL数据库并使用,无需支付任何费用。
2.6 SpringBoot
SpringBoot是一个新的开源轻量级框架,由Pivotal团队于2013年开始开发,第一个版本于2014年4月发布。它是基于Spring4.0设计的,不仅继承了Spring框架的优秀特性,而且通过简化配置简化了Spring应用程序的整个设置和开发过程。此外,SpringBoot集成了大量框架来解决版本冲突和依赖包引用不稳定的问题。
SpringBoot功能包括:
(1)你可以创建独立的Spring应用程序,并基于它们的Maven或Gradle插件创建可执行的jar和Wars;
(2)嵌入Tomcat或Jetty等Servlet容器;
(3)提供“starter”项目对象模型(POMS)的自动配置,简化Maven的配置;
(4)只要可能,自动配置Spring容器;
(5)提供现成的功能,如度量、健康检查和外部化配置;
(6)绝对不需要代码生成,不需要XML配置。[1] [2]
在SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。OutOfBox是一种开箱即用的方法,通过向Maven项目的POM文件添加依赖包,然后使用相应的注释,而不是冗长的XML配置文件,可以在开发期间管理对象的生命周期。该特性将开发人员从复杂的配置和依赖管理中解放出来,并允许他们更多地关注业务逻辑。约定优于配置是一种软件设计范式,其中目标结构由SpringBoot本身配置,开发人员将信息添加到结构中。这降低了一些灵活性并增加了BUG定位的复杂性,但它减少了开发人员需要做出的决策数量,减少了大量XML配置,并实现了代码编译、测试和打包的自动化。
从前端到后台描述了SpringBoot应用系统开发模板的基本架构设计:前端经常使用模板引擎,主要是Freemarker和Thymeleaf,它们是用Java语言编写的,用来呈现模板并输出相应的文本,这样接口设计就与应用程序的逻辑分离了。同时,前端开发也使用了Bootstrap、AngularJS、jQuery等。浏览器的数据传输格式包括JSON、non-XML和RESTfulAPI。对于数据访问层,主要有Hibernate、MyBatis、JPA等持久性层框架;数据库常用MySQL;推荐开发工具IntelliJidea。
三、需求分析和可行性
3.1 系统功能概述
3.1主要模块设计如下:
开发系统: Windows7。
JDK版本: Java JDK1.8
开发工具: IDEA
数据库版本: mysql5
数据库可视化工具: navicat for mysql
服务器:apache tomcat 7
其他工具:谷歌浏览器控制台调整网页布局
Postman接口工具进行接口测试
3.3 技术设计
此系统需要java面向对象编程基础,数据库知识和功能分析。根据目前阶段所掌握的相关专业知识,以及这学期和之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一个这样的基于springboot+vue前后端分离的轻量级框架网页版的党建信息管理管理平台。
3.4 社会可行性
在互联网技术高速发展的今天,通过互联网的传播会让企业更容易的创造更多的经济效益,利用互联网的传播党建信息管理、通过网页版党建信息管理平台的实现 ,让更多人了解到党建新闻、组织风采等相关信息、得到了更大的宣传,在这样一个大环境下把资源统筹规化起来,就会获得高效的党建党员信息和推广。
3.5 安全性可行性
人们在使用网络的时候越来越重视信息的安全性,这也促进了加密技术的发展,同时应用加密技术能够有效提升网络信息的安全性。本党建信息管理平台系统采用了几种加密保护、对本地用户密码采用MD5加密方式、页面发送请求获取数据采用关键部分采用post请求对数据传输的保护机制、避免请求数据暴露在浏览器上面、以及不同用户具有不同权限操作通过这些安全性操作,保证系统的稳定性以及可靠性。
3.6 经济可行性
服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入 Internet ,无论您身在何处只要您可以访问 Internet 都可以使用本系统。本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要、所以在经济上具有完全的可行性。
3.7 法律可行性
本系统是自行开发的党建信息管理平台系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码, 开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。
四、系统设计
4.1 系统模式架构
本系统经典的采用B/S架构(浏览器、服务器),是采用浏览器和服务器架构模式设计的架构,随着Internet技术的兴起,对C/S架构模式的一种改变升级或改进。目前,在该架构的应用下,用户通过WWW.xxx.com浏览器实现数据访问和操作。一小部分事务逻辑在前端页面实现,主要业务事务逻辑在服务器端实现,形成三层结构MVC。B/S架构是Web兴起后主流的网络架构设计模式。Web浏览器是目前最重要的客户端应用软件之一。该模式形成了一个统一的客户端,将系统功能的所有核心部分集中在服务器上实现。简化系统开发和维护。只要客户端安装了浏览器就可以操作,服务器端安装了Oracle、MySQL、Sybase等数据库。浏览器通过Web Server和数据库获取数据。简化客户端计算机的负载,降低系统维护和升级的成本和工作量,降低用户的成本。
4.2系统层次架构
系统根据以上的逻辑结构,分为3层结构。
系统按照处理层次从上至下依次划分为
(1)展现层:
它处理与用户的交互界面、数据传输,信息收集等。
(2)应用层:
它是系统功能逻辑处理层,主要处理展现层发出的请求,并将处理结果返回展现层。
(3)核心层:
它是系统运行核心及应用层的基础,提供应用层权限控制、数据读取等。
4.3系统功能详情设计
系统主要设计采用Java语言开发、采用springboot和vue前后端分离的模式、java为后台框架、数据库框架采用mybatis、前端采用vue、elemeent ui、jquery、layui框架等
主要模块设计如下:
1.用户模块管理:用户登录、用户注册、用户的查询、删除操作、用户分为不同权限、可以通过角色来灵活控制。
2.首页介绍:登录后进入首页查看系统设计的基本宣传信息。
3.党建数据分析展示:查看党建数据的树状图信息
4.党建用户管理:用户添加、修改、删除、和权限修改。
5.党建职位管理:党建职位的添加、修改、删除和查看以及权限分配。
6.党建菜单管理:党建菜单的添加、修改、删除和查看以及权限分配。
7.系统SQL监控:查看系统的运行情况以及SQL数据的情况、运行状态、时间
8.系统组织架构:添加党建组织架构、修改、查看以及删除和分配权限等。
9.通知公告管理:添加党建通知公告信息、修改、查看以及删除等。
10.党建要闻管理:添加党建要闻信息、修改、查看以及删除等。
11.组织风采管理:添加组织风采信息、修改、查看以及删除等。
12.党建资料管理:添加上传党建资料信息、修改、查看以及删除等。
13.组织发展学习:添加组织发展信息、修改、查看以及删除等
14.组织发展考试:添加组织发展考试信息、修改、查看以及删除等
15.修改密码和退出等:
4.4主流程描述
- 5项目架构方案图
五、系统实现
5.1系统主要功能主要设计
5.1.1 用户登录
5.1.2 党建信息管理首页
- 数据库主表设计
6.1数据库表设计
数据库采用mysql5版本、满足数据库设计三范式。
编码采用utf8 -- UTF-8 Unicode
排序规则采用utf8_general_ci
6.2数据库三范式要求:
一、第一范式
1NF是对属性的原子性,要求属性具有原子性,不可再分解;
二、第二范式
2NF是对记录的唯一性,要求记录有唯一标识,即实体的唯一性,即不存在部分依赖;
三、第三范式
3NF是对字段的冗余性,要求任何字段不能由其他字段派生出来,它要求字段没有冗余,即不存在传递依赖;
6.3数据库表ER图
6.4用户表设计
文档版本:V1.0.0
文档描述:数据库表设计描述
表dj_news(党建新闻表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
int |
10 |
0 |
N |
Y |
||
2 |
title |
varchar |
255 |
0 |
Y |
N |
标题 |
|
3 |
ty |
varchar |
255 |
0 |
Y |
N |
类型 |
|
4 |
create_time |
datetime |
19 |
0 |
Y |
N |
发布时间 |
|
5 |
unit |
varchar |
255 |
0 |
Y |
N |
发布单位 |
|
6 |
num |
varchar |
255 |
0 |
Y |
N |
发布编号 |
|
7 |
content |
mediumtext |
16777215 |
0 |
Y |
N |
主要内容 |
|
8 |
create_by |
varchar |
255 |
0 |
Y |
N |
发布人 |
|
9 |
bz |
varchar |
255 |
0 |
Y |
N |
备注信息 |
|
10 |
kind |
varchar |
255 |
0 |
Y |
N |
种类(党建要闻 组织风采 ) |
|
11 |
img |
varchar |
255 |
0 |
Y |
N |
图片地址 |
表exam(党建组织发展考试表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
int |
10 |
0 |
N |
Y |
Id |
|
2 |
title |
varchar |
255 |
0 |
Y |
N |
标题 |
|
3 |
answ |
varchar |
255 |
0 |
Y |
N |
答案 |
|
4 |
user_name |
varchar |
255 |
0 |
Y |
N |
用户姓名 |
|
5 |
exam_time |
datetime |
19 |
0 |
Y |
N |
考试时间 |
|
6 |
user_score |
varchar |
255 |
0 |
Y |
N |
用户分数 |
|
7 |
is_qualified |
varchar |
255 |
0 |
Y |
N |
是否合格 |
|
8 |
ty |
varchar |
255 |
0 |
Y |
N |
类型 |
|
9 |
p_name |
varchar |
255 |
0 |
Y |
N |
父级菜单 |
|
10 |
mobile |
varchar |
255 |
0 |
Y |
N |
手机号 |
表file(党建文件资料表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
int |
10 |
0 |
N |
Y |
Id |
|
2 |
path |
varchar |
255 |
0 |
Y |
N |
路径 |
|
3 |
file_name |
varchar |
255 |
0 |
Y |
N |
附件名称 |
|
4 |
file_type |
varchar |
255 |
0 |
Y |
N |
类型 |
|
5 |
classify |
varchar |
255 |
0 |
Y |
N |
分类 |
|
6 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
7 |
create_by |
varchar |
255 |
0 |
Y |
N |
创建人 |
表inform(党建通知公告表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
int |
10 |
0 |
N |
Y |
Id |
|
2 |
title |
varchar |
255 |
0 |
Y |
N |
标题 |
|
3 |
content |
text |
65535 |
0 |
Y |
N |
内容 |
|
4 |
create_time |
timestamp |
19 |
0 |
Y |
N |
CURRENT_TIMESTAMP |
创建时间 |
5 |
create_by |
varchar |
255 |
0 |
Y |
N |
创建人 |
|
6 |
bz |
varchar |
255 |
0 |
Y |
N |
备注信息 |
表sys_captcha (系统验证码)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
uuid |
char |
36 |
0 |
N |
Y |
uuid |
|
2 |
code |
varchar |
6 |
0 |
N |
N |
验证码 |
|
3 |
expire_time |
datetime |
19 |
0 |
Y |
N |
过期时间 |
表sys_config (系统配置信息表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
param_key |
varchar |
50 |
0 |
Y |
N |
key |
|
3 |
param_value |
varchar |
2000 |
0 |
Y |
N |
value |
|
4 |
status |
tinyint |
4 |
0 |
Y |
N |
1 |
状态 0:隐藏 1:显示 |
5 |
remark |
varchar |
500 |
0 |
Y |
N |
备注 |
表sys_dept (部门管理)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
dept_id |
bigint |
20 |
0 |
N |
Y |
||
2 |
parent_id |
bigint |
20 |
0 |
Y |
N |
上级部门ID,一级部门为0 |
|
3 |
name |
varchar |
50 |
0 |
Y |
N |
部门名称 |
|
4 |
order_num |
int |
10 |
0 |
Y |
N |
排序 |
|
5 |
del_flag |
tinyint |
4 |
0 |
Y |
N |
0 |
是否删除 -1:已删除 0:正常 |
6 |
remark |
varchar |
255 |
0 |
Y |
N |
表sys_log (系统日志)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
username |
varchar |
50 |
0 |
Y |
N |
用户名 |
|
3 |
operation |
varchar |
50 |
0 |
Y |
N |
用户操作 |
|
4 |
method |
varchar |
200 |
0 |
Y |
N |
请求方法 |
|
5 |
params |
varchar |
5000 |
0 |
Y |
N |
请求参数 |
|
6 |
time |
bigint |
20 |
0 |
N |
N |
执行时长(毫秒) |
|
7 |
ip |
varchar |
64 |
0 |
Y |
N |
IP地址 |
|
8 |
create_date |
datetime |
19 |
0 |
Y |
N |
创建时间 |
表sys_menu (菜单管理)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
menu_id |
bigint |
20 |
0 |
N |
Y |
||
2 |
parent_id |
bigint |
20 |
0 |
Y |
N |
父菜单ID,一级菜单为0 |
|
3 |
name |
varchar |
50 |
0 |
Y |
N |
菜单名称 |
|
4 |
url |
varchar |
200 |
0 |
Y |
N |
菜单URL |
|
5 |
perms |
varchar |
500 |
0 |
Y |
N |
授权(多个用逗号分隔,如:user:list,user:create) |
|
6 |
type |
int |
10 |
0 |
Y |
N |
类型 0:目录 1:菜单 2:按钮 |
|
7 |
icon |
varchar |
50 |
0 |
Y |
N |
菜单图标 |
|
8 |
order_num |
int |
10 |
0 |
Y |
N |
排序 |
表sys_oss (文件上传)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
url |
varchar |
200 |
0 |
Y |
N |
URL地址 |
|
3 |
create_date |
datetime |
19 |
0 |
Y |
N |
创建时间 |
表sys_role (角色)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
role_id |
bigint |
20 |
0 |
N |
Y |
||
2 |
role_name |
varchar |
100 |
0 |
Y |
N |
角色名称 |
|
3 |
remark |
varchar |
100 |
0 |
Y |
N |
备注 |
|
4 |
create_user_id |
bigint |
20 |
0 |
Y |
N |
创建者ID |
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
6 |
dept_id |
int |
10 |
0 |
Y |
N |
表sys_role_dept (角色与部门对应关系)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
role_id |
bigint |
20 |
0 |
Y |
N |
角色ID |
|
3 |
dept_id |
bigint |
20 |
0 |
Y |
N |
部门ID |
表sys_role_menu (角色与菜单对应关系)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
role_id |
bigint |
20 |
0 |
Y |
N |
角色ID |
|
3 |
menu_id |
bigint |
20 |
0 |
Y |
N |
菜单ID |
表sys_user (系统用户)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
user_id |
bigint |
20 |
0 |
N |
Y |
||
2 |
username |
varchar |
50 |
0 |
N |
N |
用户名 |
|
3 |
password |
varchar |
100 |
0 |
Y |
N |
密码 |
|
4 |
salt |
varchar |
20 |
0 |
Y |
N |
盐 |
|
5 |
varchar |
100 |
0 |
Y |
N |
邮箱 |
||
6 |
mobile |
varchar |
100 |
0 |
Y |
N |
手机号 |
|
7 |
status |
tinyint |
4 |
0 |
Y |
N |
状态 0:禁用 1:正常 |
|
8 |
create_user_id |
bigint |
20 |
0 |
Y |
N |
创建者ID |
|
9 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
10 |
dept_id |
int |
10 |
0 |
Y |
N |
||
11 |
stage |
varchar |
255 |
0 |
Y |
N |
||
12 |
parent_name |
varchar |
255 |
0 |
Y |
N |
部门名称 |
表sys_user_role (用户与角色对应关系)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
user_id |
bigint |
20 |
0 |
Y |
N |
用户ID |
|
3 |
role_id |
bigint |
20 |
0 |
Y |
N |
角色ID |
表sys_user_token (系统用户Token)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
user_id |
bigint |
20 |
0 |
N |
Y |
||
2 |
token |
varchar |
100 |
0 |
N |
N |
token |
|
3 |
expire_time |
datetime |
19 |
0 |
Y |
N |
过期时间 |
|
4 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
七、开发心得体会
经过近期对 java 面向对象程序设计、前端知识以及JAVA 框架的掌握和学习,以及这段时间本教育教学系统的开发,让我更加了解到 java 学习的重要性。在开发这个系统是哪个,我完成了多个实验以及党建信息管理平台的功能测试,阶段的系统开发学习当中,我从认识到熟悉java,而后到能够自主运用相关技术,我发现了它确实有很多方便之处,比如java集抽象性和封装性以及继承性和多态性于一体,实现了对代码重用和代码扩充功能,提高了整体软件开发的速度和效率。比如管理员添加用户的时候报java.lang.NullPointException、解决的方法:查看控制台打印信息、发现添加的时候未填写相关信息、报java.lang.NullPointException、通过断电调试发现用户信息为空的数据项、在前端保存的时候必须填写用户完整相关信息或者数据库设置字段可以为空都可以解决、 我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术。
八、测试实例
测试一:
方案
登陆时,用户名或密码有一项为空或填写错误,系统是否出现预先设定的操作提示
预期效果 输入错误无法登陆
具体操作 用户名、密码、任意一项为空或者填写有误
结果 出现登录失败
结论 要求必须填写正确的用户名和密码,才能进入管理页面,测试成功
当用户名或密码输入错误或为空时提交界面
如图 所示。
具体操作 通过后台管理修改党建信息管理,看其是否修改成功
结果 党建信息管理更新为修改后的信息
结论 修改党建信息管理功能正常,测试成功
调试时在党建信息管理修改界面能修改党建信息管理信息,
在党建信息管理查询界面能及时更新显示修改后的信息。
测试三:
方案
管理员删除一注册用户后,并让其登陆,看是否登陆成功
预期效果 该用户不能再进行登陆
具体操作 管理员删除一会员表中的用户后,该用户在前台登陆
结果 该用户无法登陆
结论 用户数据删除功正常,测试成功
九、参考献文
[1] 王博轩.党建党员信息管理网站系统设计与规划[J].2015-06-21
[2] kymymooc.信息化时代的好处?[Z]. 2013.10.21.
[3]李东.基于 javaweb的信息化系统研究与设计[硕士学位论文 ][D].北京邮电大学,2013.5.
[4]徐远棋,曾海.新闻管理系统的设计[J].微型电脑应用,2013(10):42-44.
[5] 王海.基于SSM框架的用户信息设计与实现 [J].信息通信,2013(10):98-99.
[6] 王靖华.个人博客平台设计 [J]. 桂林航天工业学院学 报,2014(02):104-108.
[7] 于绍同.二三线城市党建信息管理系统的设计 [J]. 魅力中国, 2014(17):183-185.
[8]李明明. 管理系统的设计与实现[D].西安电子科技大学,2016.
[9]袁玖根,沈晓军,邢若南.基于Java平台的个人管理系统的设计与实现[J].考试周刊,2016(19):144-145.
[10]蒋俊.基于UML的面向对象建模技术的研究[J].信息与电脑(理论版),2010,(4).
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】基于Springboot的网上购物商城销售系统
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡