springboot高校二级党组织考核平台—免费源码分享292327

springboot高校二级党组织考核平台

摘 要

高校二级党组织考核平台是党在高校中开展党建工作的基本单位,是落实党建工作的战斗堡垒。科学化、规范化、制度化的高校二级党组织考核平台体系,是加强与改进高校二级党组织考核平台自身建设、高校大学生党建工作的重要途径。本文通过对当前高校二级党组织考核平台考核体系中出现的问题进行探讨,并结合新形势下党和国家对党支部建设捉出的新要求,对构建和完善高校二级党组织考核平台考核体系提出几点对策。

高校二级党组织考核平台基于IDEA开发平台,采用Java编程语言和Springboot框架、JavaScript等技术,采用MySQL数据库来建立数据之间的转换,主要实现了注册、登录、用户管理、支部管理、通知公告管理、年度考核管理、归档管理等功能,为高校二级党组织考核平台建立了一套科学有效的管理流程,减少了传统高校二级党组织考核平台出现的失误,同时也方便了管理员管理。本系统界面简洁,使用人员可以迅速掌握,有效的提高了工作效率。

关键词:高校二级党组织考核平台;Springboot技术;MySQL数据库;

Springboot college secondary party organization assessmentplatform

Abstract

The evaluation platform of secondary party organizations in Colleges and universities is the basic unit for the party to carry out party construction in Colleges and universities and the Battle Fortress for the implementation of Party construction. The scientific, standardized and institutionalized evaluation platform system of secondary party organizations in Colleges and universities is an important way to strengthen and improve the self construction of the evaluation platform of secondary party organizations in Colleges and universities and the party construction of college students. This paper discusses the problems in the current assessment system of secondary party organization assessment platform in Colleges and universities, and puts forward some countermeasures for constructing and perfecting the assessment system of secondary party organization assessment platform in Colleges and universities in combination with the new requirements of the party and the state for the construction of Party branches under the new situation.

Based on the idea development platform, the secondary party organization assessment platform of colleges and universities adopts Java programming language, springboot framework, JavaScript and other technologies, and uses MySQL database to establish the conversion between data. It mainly realizes the functions of registration, login, user management, branch management, notice and announcement management, annual assessment management, archiving management and so on, It establishes a set of scientific and effective management processes for the evaluation platform of secondary party organizations in Colleges and universities, reduces the mistakes of the traditional evaluation platform of secondary party organizations in Colleges and universities, and also facilitates the management of administrators. The system interface is simple, users can quickly grasp it, and effectively improve the work efficiency.

Key words: Evaluation platform for secondary party organizations in Colleges and Universities; Springboot technology; Mysql database;

目  录

第1章 绪论

1.1 研究背景

1.2 开发现状

1.3 论文组成结构

第2章 开发工具及相关技术介绍

2.1 Springboot框架描述

2.2 Vue.js 介绍

2.3 css3 介绍

2.4 B/S体系结构介绍

2.5 MVVM模式介绍

第3章 系统分析 6

3.1 系统设计目标 6

3.2 系统可行性分析 6

3.3 系统功能分析和描述 6

3.4 系统UML用例分析 7

3.4.1管理员用例 7

3.4.2书记用例 7

3.4.3 组织委员用例 8

3.5系统流程分析

3.5.1添加信息流程 8

3.5.2操作流程 9

3.5.3删除信息流程 10

第4章 系统设计

4.1 系统架构设计

4.2 功能模块设计

4.3 数据库设计

4.3.1 概念模型设计

4.3.2 数据库逻辑设计

4.3.3 数据库表设计 15

第5章 系统实现 18

5.1管理员登录的实现 18

5.2 用户管理的实现

5.3 书记管理模块的实现 30

第6章 系统测试

6.1 软件测试的概念

6.2 软件测试过程

6.3 系统测试阶段

6.4 测试结果

第7章 总结与展望

参考文献

致谢

  1. 绪论

1.1研究背景

当今高校当中的学生党员发展建设是学校必须完成指标的一部分。在新的时期下,我们党在高校师生中如何形成更强大的号召力和团结力,高校的教育改革和发展是否能顺利推进,能否为建设有中国特色国家的而培养大批高素质的人才,关键取决于党的基本路线和方针政策是否在高校得到认真执行,同时也取决于高校二级党组织考核平台对学生工作的领导是否坚强有力,取决于高校党组织的自身建设是否不断加强,因此,对于高校党建工作的评估至关重要,关系到党建工作的各个方面,是党在高校中先进性的体现”。

学校党组织建设是各党支部工作的战斗基础,是贯彻党中央与组织重要思想和科学发展观的组织者、推动者。随着高校规模的不断扩大,高校学生党建管理工作任务艰巨,传统的学生党建管理已经难以适应如今社会的发展要求。传统的高校学生党建管理模式大多采用手工和纸张的方式来保存学生党员发展的档案,不仅浪费大量人力也容易出现学生党员档案丢失的情况,同时也对档案管理过程中的搜索、查询、修改以及更新操作带来很多的不便。此外,传统的党建管理模式呈现党建宣传力度不够,群众监督力量十分薄弱,学校党务工. 作难以深入人心的特点。

1.2开发现状

国内高校二级党组织考核平台的研究与调查,主要研究的内容有高校二级党组织考核平台模式和体系,高校管理模式党支部考核平台的划分,高校管理模式党支部考核平台,高校二级党组织考核平台全过程的信任研究,高校二级党组织考核平台过程中的决策等等,这些研究主要体现党支部考核平台在高校管理模式下的发展前景和运作体制,而进行高校二级党组织考核平台的研究与看法相对较缺乏。

赵艳霞;发表文章表示,国外对高校二级党组织考核平台研究的重点集中在高校二级党组织考核平台中逆向选择的问题,但是却极少有研究提到高校二级党组织考核平台考核的潜在关系,而仅仅把高校二级党组织考核平台建设质量进行研究。

黄旭通过介绍美国高校二级党组织考核平台发展历程,从标准法规体系、管理方式、年度考核制度、质量认证制度等方面研究其高校二级党组织考核平台模式特点,研究成果将对国内高校二级党组织考核平台考的进一步发展提供有益的借鉴和启示。         

潘吉从现在已有的关于高校二级党组织考核平台考核的理论来看 ,有关高校二级党组织考核平台考核在解决”管理”问题作用方面论及的较少。从高校二级党组织考核平台考核信息不对称性的角度 ,建立了高校二级党组织考核平台考核运行模型 ,最后通过例证对高校二级党组织考核平台考核的发展趋势进行了探讨和分析。

1.3论文组成结构

根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出高校二级党组织考核平台。

本文共有七章,如下所示。

第一章概述了高校二级党组织考核平台的研究目的和意义;精炼地总结了国内外在内的领域研究情况和未来的研究趋势,最后给出了论文的组成结构。

第二章简要概述了本文所用的开发技术和工具。

第三章简要对系统各业务流程进行需求分析、可行性分析。

第四章对高校二级党组织考核平台进行设计。

第五章对高校二级党组织考核平台进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。

第六章对高校二级党组织考核平台采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。

第七章总结全文并对未来的研究做出展望。

  1. 开发工具及相关技术介绍

2.1Springboot框架介绍

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

2.2 Vue.js 介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。

2.3 css3 介绍

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

2.4 B/S体系结构介绍

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如ChromeSafariMicrosoft EdgeNetscape NavigatorInternet Explorer,服务器安装SQL ServerOracleMYSQL等数据库。浏览器通过Web Server同数据库进行数据交互。 

2.5 MVVM模式介绍

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频视频3D动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

  1. 系统分析

3.1系统设计目标

高校二级党组织考核平台主要是为了用户方便对组织委员、书记、党员等信息进行操作,也是为了更好的让管理员进行更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

系统所要实现的功能分析,对于现在网络方便的管理,根据自己的需求可以进行查看等,这样既能节省用户的时间,不用在像传统的方式,需要查询、由于很多用户时间的原因,没有办法去线下了解信息,真的很难去满足用户的各种需求。所以高校二级党组织考核平台考核平台的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。

3.2系统可行性分析

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

1)硬件可行性分析

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

(2)软件可行性分析

提供类似于借口动态模型的通用机制,设计更加集中。 此外,可以使用Springboot语言轻松实现模块化和存储信息。另外,代码重用,也可以很好地反映出来。因此,考虑到系统的实际情况,选择JavaScript框架作为系统开发技术。通过以上分析,系统的设计和实现在软件中是可行的。

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

3.3系统功能分析和描述

使用高校二级党组织考核平台考核的分为管理员和用户三个权限模块。

管理员所能使用的功能主要有:支部管理、通知公告管理、年度考核管理、归档管理等。

书记可以实现;修改个人信息、查看考评结果与排名、对年度考核项目自评得分等。

组织委员可以实现:修改个人信息、上传、删除文件对所有总支/直属支部进行评分(民主测评)、查看考评结果。

3.4系统UML用例分析

3.4.1管理员用例

管理员登录后可进行支部管理、用户管理、通知公告管理、年度考核管理、归档管理,管理员的用例如图3-1所示。

图3-1 管理员用例图

3.4.2书记用例

书记登录后可进行首页、个人信息、修改密码、通知公告管理、年度考核管理,用户用例如图3-2所示。

图3-2书记用例图

3.4.3组织委员用例

                

图3-3组织委员用例图

3.5系统流程分析

3.5.1添加信息流程

添加信息,编号系统使用自动编号模式,没有用户填写,用户添加信息输入信息,系统将自动确认的信息和数据,验证的成功是有效的信息添加到数据库,信息无效,重新输入信息。添加信息流程如图3-4所示。

图3-4添加信息流程图

3.5.2操作流程

用户想进入系统,首先进入系统登录界面,通过正确的用户名、密码,选择登录类型登录,系统会检查登录信息,信息正确,然后输入相应的功能界面,提示信息错误,登录失败。系统操作流程如图3-5所示。

图3-5操作流程图

3.5.3删除信息流程

用户选择要删除的信息并单击Delete按钮。系统提示是否删除信息。如果用户想要删除信息,系统将删除信息。系统数据库删除信息。删除信息流程图如图3-6所示。

3-6 删除信息流程图

  1. 系统设计

4.1系统架构设计

本系统主要使用了五层架构进行开发,主要分为“表现层”、“控制层”、“服务层”、“业务逻辑层”、“数据访问层”。

“表现层”主要作为与用户交互的接口,提供给用户良好的可体验性,本系统在前后端交互主要使用的是Ajax技术来实现数据传输,不仅可以达到无刷新交互,同时还拥有较稳定的运行状态。

“控制层”主要控制前端界面和后端程序数据之间的同步,然后根据前端请求完成数据更新或者是界面控制。以及负责将“服务层”提供的服务进行最后组装并调用。

“服务层”介于“控制层”和“业务逻辑层”之间,主要是将“业务逻辑层”的数据服务进行再一次组装,之后在作为接口提供给“控制层”使用。

“业务逻辑层”主要是动态的调用“数据访问层”的方法,对复杂的算法进行操作,处理前端传过来的请求并且做出相应的逻辑处理。

“数据访问层”主要负责对数据库的访问,可以访问数据库系统、文本文件、二进制文件、xml文档等等。负责业务对象的增加,修改,删除,加载。

系统架构图如下所示。

图4-1系统架构图

4.2功能模块设计

通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。

图4-2系统功能结构图

书记

1.修改个人信息,授予支部内某个人员为权限

 2.查看、删除、退回权限3上传的文件,也可以上传文件;

2.对年度考核项目自评得分

3.查看考评结果与排名

组织部

1.建立、修改、删除党组织

2.添加党员、修改党员信息。授予某个人员为权限2或权限3

3.发布通知公告

4.发布年度考核,发布后可以在对应项目上传文件,可以设置某个项目无需上传材料,只进行评分

5.查看党组织上传的文件,对项目进行评分功能。

6.自动汇总分数并排序,如有未打分人员或部门则进行提示警告

党员

1.修改个人信息

2.对所有总支/直属支部进行评分(民主测评);

系统汇总某总支/直属支部平台内所有人员的评分并计算平均分,计入为该总支/直属支部“民主测评分数”

3.查看考评结果

4.3数据库设计

4.3.1概念模型设计

概念结构设计是在需求分析的基础之上,将需求分析抽象成概念,这样易于开发人员将复杂进行简单化操作,使得开发人员能够专注于处理模式和组织结构等,其中常用的概念模型是E-R模型。

系统E-R图如下所示。

图4-3系统E-R图

4.3.2数据库逻辑设计

针对系统的实体和属性,结合数据设计思想,对系统的逻辑设计的内容进行如下描述。

党员(性别、籍贯、年龄、支部名称、学历)。

支部管理(支部名称、支部编号、支部成员、支部简介)。

年度考核(项目名称、组织评议、民主评议、自评议、组织评分、民主评分、考评结果、自评分)。

归档(项目名称、民主评分、自评、组织评分、考评结果)

评论(评论编号、评论者、评论时间、评分、评论内容)。

书记(性别、籍贯、学历、年龄、支部)。

4.3.3数据库表设计

在完成数据库查询定义的总体设计之后,现在可以将上述数据库查询定义结构转换为适用于某种类型的数据库管理的特定数据库系统,即数据库查询的逻辑结构。

高校二级党组织考核平台考核平台数据库查询中各表的设计方案结果如下表所示。每个表格都在数据库查询中指示一个表。

upload表:

字段名称

类型

长度

不是null

主键

字段说明

upload_id

int

11

上传ID

name

varchar

64

文件名

path

varchar

255

访问路径

file

varchar

255

文件路径

display

varchar

255

显示顺序

father_id

int

11

父级ID

dir

varchar

255

文件夹

type

varchar

32

文件类型

segment_management表:

字段名称

类型

长度

不是null

主键

字段说明

segment_management_id

int

11

分部管理ID

branch_name

varchar

64

支部名称

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

secretary表:

字段名称

类型

长度

不是null

主键

字段说明

secretary_id

int

11

书记ID

gender

varchar

64

性别

native_place

varchar

64

籍贯

education

varchar

64

学历

age

varchar

64

年龄

branch

varchar

64

支部

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

party_member表:

字段名称

类型

长度

不是null

主键

字段说明

party_member_id

int

11

党员ID

gender

varchar

64

性别

native_place

varchar

64

籍贯

age

varchar

64

年龄

branch_name

varchar

64

支部名称

education

varchar

64

学历

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

branch_management表:

字段名称

类型

长度

不是null

主键

字段说明

branch_management_id

int

11

支部管理ID

branch_name

varchar

64

支部名称

branch_no

varchar

64

支部编号

branch_members

text

0

支部成员

branch_introduction

text

0

支部简介

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

annual_assessment表:

字段名称

类型

长度

不是null

主键

字段说明

annual_assessment_id

int

11

年度考核ID

entry_name

varchar

64

项目名称

organizational_review

varchar

255

组织评议

democratic_appraisal

varchar

255

民主评议

self_evaluation

varchar

255

自评议

tissue_score

varchar

64

组织评分

democratic_scoring

varchar

64

民主评分

evaluation_results

varchar

64

考评结果

self_scoring

varchar

64

自评分

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

file表:

字段名称

类型

长度

不是null

主键

字段说明

file_id

int

11

归档ID

entry_name

varchar

64

项目名称

democratic_scoring

varchar

255

民主评分

self_evaluation

varchar

255

自评

tissue_score

varchar

255

组织评分

evaluation_results

varchar

64

考评结果

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

  1. 系统实现

5.1管理员登录的实现

管理员登录页面,该页面有一个权限区分,主要用于区分系统管理员和普通客户的登录。当登录的账号是系统管理员时,管理员可以进行商品的后台管理,而普通客户只能进行客户端的操作,普通客户只有在注册登录以后方可在网上购买商品。如果客户还没有登录的账号和密码,必须先在系统上注册一个。在登录后,可以进入购买的操作。

已登录的用户可以查看、修改个人信息以及密码修改等操作。用户信息的查看功能在yonghuzhuce_updt.html页面中实现。用户信息,和密码修改功能在系统窗口中实现的。

登录界面如下图所示。

图5-1登录界面

登录系统主要代码如下。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

5.2用户管理的实现

管理员对系统用户的管理,在yhzhgl.html实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取用户名,然后输入新密码,提交到mod.html中,使用sql命令更新密码。

用户管理界面如下图所示。

图5-2用户管理界面

用户管理的逻辑代码如下。

public class FindConfig {

    public static String PAGE = "page";

    public static String SIZE = "size";

    public static String LIKE = "like";

    public static String ORDER_BY = "orderby";

    public static String FIELD = "field";

    public static String GROUP_BY = "groupby";

    public static String MIN_ = "_min";

    public static String MAX_ = "_max";

}

支部管理,在支部管理页面中输入支部名称、支部编号、支部成员、支部简介,等进行添加或者删除操作,如图5-3所示。

图5-3支部管理界面

支部查询界面如下所示。

图5-4支部查询界面

支部管理关键代码如下所示。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

}

书记管理,在书记管理页面中输入性别、支部、昵称、用户名、籍贯、学历、年龄等进行添加或者删除操作,如图5-5所示。

书记管理界面如下图所示。

图5-5书记管理界面

书记信息界面如下图所示。

图5-6书记信息界面

书记管理主要代码如下。

@PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

    public Map<String,String> readConfig(HttpServletRequest request){

        Map<String,String> map = new HashMap<>();

        map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));

        map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));

        map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));

        map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));

        map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));

        map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));

        map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));

        map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));

        return map;

}

    public Map<String,String> readQuery(HttpServletRequest request){

        String queryString = request.getQueryString();

        if (queryString != null && !"".equals(queryString)) {

            String[] querys = queryString.split("&");

            Map<String, String> map = new HashMap<>();

            for (String query : querys) {

                String[] q = query.split("=");

                map.put(q[0], q[1]);

            }

            map.remove(FindConfig.PAGE);

            map.remove(FindConfig.SIZE);

            map.remove(FindConfig.LIKE);

            map.remove(FindConfig.ORDER_BY);

            map.remove(FindConfig.FIELD);

            map.remove(FindConfig.GROUP_BY);

            map.remove(FindConfig.MAX_);

            map.remove(FindConfig.MIN_);

            return map;

        }else {

            return new HashMap<>();

        }

}

    @Transactional

    public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){

        StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");

            }else {

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");

            }

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));

        log.info("[{}] - 更新操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

}

    public String toWhereSql(Map<String,String> query, Boolean like) {

        if (query.size() > 0) {

            try {

                StringBuilder sql = new StringBuilder(" WHERE ");

                for (Map.Entry<String, String> entry : query.entrySet()) {

                    if (entry.getKey().contains(FindConfig.MIN_)) {

                        String min = humpToLine(entry.getKey()).replace("_min", "");

                        sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (entry.getKey().contains(FindConfig.MAX_)) {

                        String max = humpToLine(entry.getKey()).replace("_max", "");

                        sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (like == true) {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and ");

                    } else {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and ");

                    }

                }

                sql.delete(sql.length() - 4, sql.length());

                sql.append(" ");

                return sql.toString();

            } catch (UnsupportedEncodingException e) {

                log.info("拼接sql 失败:{}", e.getMessage());

            }

        }

        return "";

    }

通知公告管理,在公告管理页面中输入公告标题、公告内容、公告编号等进行添加或者删除操作,如图5-7所示。

图5-7通知公告界面

公告管理主要代码如下。

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

年度考核管理,在年度考核管理页面中输入项目名称、组织评分、民主评分、自评、考评结果等进行添加或者删除操作,如图5-8所示。

图5-8年度考核管理界面

图5-9年度考核信息界面

年度考核管理主要代码如下。

@RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

}

归档管理,在归档考核管理页面中输入项目名称、组织评分、民主评分、自评、考评结果等进行添加或者删除操作,如图5-10所示。

图5-10归档管理界面

5.3书记管理模块的实现

个人信息界面,在个人信息页面中输入头像、用户名、用户组、昵称、手机号码、邮箱,如图5-11所示。

图5-11个人信息界面

图5-12个人信息修改界面

个人信息主要代码如下。

server:

  port: 5000

  servlet:

    context-path: /api

spring:

  datasource:

    url: jdbc:mysql://127.0.0.1:3306/CS725260_20211101091736?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8

    username: root

    password: root

    driver-class-name: com.mysql.cj.jdbc.Driver

  jackson:

    property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES

    default-property-inclusion: ALWAYS

    time-zone: GMT+8

    date-format: yyyy-MM-dd HH:mm:ss

  servlet:

    multipart:

      max-file-size: 100MB

      max-request-size: 100MB

通知公告,在公告管理页面中输入公告标题、公告内容、公告编号等进行添加或者删除操作,如图5-13所示。

图5-13通知公告界面

图5-14通知公告查询界面

年度考核,在年度考核管理页面中输入项目名称、组织评分、民主评分、自评、考评结果等进行添加或者删除操作,如图5-15所示。

图5-15年度考核界面

  1. 系统测试
    1. 软件测试的概念

软件测试是指使用人工或全自动方法来操作或测试某些系统软件的整个过程。其目的取决于是否考虑要求的要求或澄清预期结果与特定结果之间的差异。它是帮助识别和开发设计手机软件计算机技术的正确性,彻底性和质量的全过程。

软件测试和测试不关注整个过程的主题活动,而只是分析整个过程中的物质以及开发和设计的手机软件。测试工程师应“实施”手机软件,在整个过程中对材料(开发文本和源代码)进行演练和操作,以发现问题并报告质量。测试工程师还必须假设手机软件存在问题,因此他们所做的实际操作都是为了更好地发现大量问题,而不仅仅是证明一切都适当。

    1. 软件测试过程

软件功能性测试是指执行指定的工作流程,通过对一个系统的所有特性和功能都进行测试确保符合需求和规范。

系统功能性测试表如下表所示。

表6-1系统功能性测试表

编号

测试功能

测试内容

测试结果

1

用户登录

1.验证用户名与密码的正确性。

2.验证密码是否可见。

通过

2

首页展示

1.首页数据是否成功加载。

2.验证搜索功能的准确性。

3.验证是否可以异步加载。

4.验证导航栏按钮。

通过

3

个人信息修改

1.验证登录名是否可以正常更改。

2.验证联系方式是否可以更改。

3.验证收货地址可以正常修改。

4.验证密码是否可以修改。

通过

4

支部管理

1.支部是否可以生成。

2.支部信息是否准确。

通过

5

公告管理

1.验证公告数据准确性与完整性。

2.验证公告提交是否能成功展示。

通过

7

年度考核管理

1.验证年度考核新增是否可以成功。

2.验证年度考核删除是否可以成功。

通过

8

归档管理

1.归档信息是否与上传一致。

2.是否能完成价格修改。

3.验证库存信息修改。

通过

    1. 系统测试阶段

第一个测试阶段:系统软件的操作界面由几个子控制模块组成,每个子控制模块都有其相对的作用。因此,系统软件的检测必须首先进行控制模块的检测。每个控制模块必须执行明确定义的子功能。测试控制模块的目的是确保每个控制模块都可以作为一个模块运行。

第二个测试阶段:集成检测是根据设计方案的软件体系结构,按照某种对策对经过控制模块检测的各个控制模块进行组装,并在整个组成过程中进行必要的检测。

第三个测试阶段:用户将执行高校二级党组织考核平台的工程验收。系统测试后,所有控制模块均已根据设计计划组装成详细的高校二级党组织考核平台考核平台。错误的插槽已被移除,操作接口必须进一步认证成效。

    1. 测试结果

系统软件可以在运行过程中执行其相关功能,可以完成查询,添加,删除,修改等功能,并且运行显示信息都正常,后端管理数据库查询也可以正常工作,数据信息确保一致性和可靠性。

  1. 总结与展望

通过对高校二级党组织考核平台的研究及设计与开发,基于JavaEE框架的高校二级党组织考核平台基本开发完毕,并实现了小型的高校二级党组织考核平台考核平台的基本功能。主要包括用户管理、支部管理、通知公告管理、年度考核管理、归档管理模块。

本课题按软件工程的要求设计与实现了整个系统,即可行性计划、需求分析报告、总体计划设计、总体设计和自动化测试过程。经开发与测试,其功能基础符合要求。该系统软件的关键是探索系统软件的开发环境,编程语言等核心技术,系统软件数据库查询的基本结构以及系统流程图程序模块的详细分析。该系统的创新点就是支持高校二级党组织考核平台考核平台的查询和喜好高校二级党组织考核平台的自动推荐。

参考文献

[1]刘晶月,束方银.基于标准化理论的高校二级党组织考核平台标准化建设路径研究[J].扬州大学学报(高教研究版),2021,25(06):85-89.

 [2]李凡,杨志超.基于“双带头人”培育工程视角的高校教师党支部建设路径略论[J].经济师,2021(11):193-194.

[3]邹金铃.高校二级党组织考核平台评议考核体系的建构及完善[J].决策探索(下),2021(10):38-39.

[4]胡吉芬,刘明.高校二级党组织考核平台组织育人机制的构建[J].学校党建与思想教育,2021(20):47-49.

 [5]许德雅.新时代高校二级党组织考核平台理论学习实效提升的路径选择[J].领导科学论坛,2021(08):151-156.

 [6]商植桐,肖萌.高校二级党组织考核平台发挥政治把关作用要找准着力点[J].江西科技师范大学学报,2021(03):42-47.

[7]史凌.高校二级党组织考核平台规范化建设实践研究[J].品位·经典,2021(09):72-74.

[8]潘吉.高校二级党组织考核平台标准化规范化建设问题及对策研究[J].产业与科技论坛,2021,20(09):287-288.

[9]耿继原,郑枫滨.新时代高校二级党组织考核平台特色品牌化建设路径研究[J].决策探索(中),2021(03):42-43.

[10]黄旭.论新时代高校二级党组织考核平台书记核心能力培育[J].重庆理工大学学报(社会科学),2020,34(10):139-145.

[11]赵艳霞.高校二级党组织考核平台建设质量提升研究[J].公关世界,2020(18):128-129.

[12]Yue Liu. The Importance of Enhancing the Organizational Power of University Party Branches in the New Era[C]//Proceedings of 2019 3rd EBMEI International Conference on Education,Information and Management(EBMEI-EIM 2019)(Lecture Notes in Management Science,VOL.107).Proceedings of 2019 3rd EBMEI International Conference on Education,2019:290-293.DOI:10.26914/c.cnkihy.2019.094667.

[13]Yu-xin XIA,Xiao-yue Wu. Exploration of the new management mode of "Student's organization and Party branch" party building by college and university students[C]//Proceedings of 3rd International Conference on Modern Management,Education Technology,and Social Science(MMETSS 2019)(Advances in Social Science,Education and Humanities Research,VOL.215).Proceedings of 3rd International Conference on Modern Management,2019:17-20.

[14]甘长来,刘莹. 高校学生党支部考核评价研究[C]//Proceedings of 2019 5th SSR International Conference on Cultural Studies,Educational Research and Social Sciences(CES 2019)(Advances in Social and Behavioral Sciences,VOL.23).Proceedings of 2019 5th SSR International Conference on Cultural Studies,2019:168-173.

[15]戴宣言,王勤. 高校教师党支部严肃党内政治生活的途径研究[C]//“决策论坛——创新思维与领导决策学术研讨会”论文集(上).,2019:24.

[16]严立,程利敏,李林,赵吉鹏. 新时期高校学生党支部先进性建设评价指标体系研究[C]//Proceedings of 2019 International Conference on Psychology,Management and Social Science(PMSS 2019) Volume 17.Proceedings of 2019International Conference on Psychology,2019:227-232.

致谢

时光飞逝,转眼间我在学校的这些年生活即将结束,回顾这几年的学习生活,收获良多,既有幸福也有难过,学校生活的结束对于我来说也是一个新的开始。论文即将完成,在此,我心中有许多想要感谢的人。首先感谢我的导师,不仅在学习研究方面加以指导,也在生活和为人处世上给予帮助。还要感谢授课老师,你们严谨的学术精神和积极向上的工作态度都在激励我的成长和进步。感谢多年来一直生活在一起的室友,谢谢你们多年来的陪伴和照顾。最后,要感谢各位论文评审老师,感谢您们在百忙之中抽空评阅本论文并给出宝贵的意见和建议。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值