(2024最新毕设合集)基于SSM的法律公益服务系统-31518|可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

目  录

摘要

1 绪论

1.1 研究背景

1.2研究意义

1.3论文结构与章节安排

2 法律公益服务系统分析

2.1 可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 法律可行性分析

2.2 系统功能分析

2.2.1 功能性分析

2.2.2 非功能性分析

2.3 系统用例分析

2.4 系统流程分析

2.4.1 数据流程

2.4.2 业务流程

图2-6业务流程图

2.5本章小结

3 法律公益服务系统总体设计

3.1 系统功能模块设计

3.1.1整体功能模块设计

3.1.2用户模块设计

3.1.3 新闻资讯管理模块设计

3.1.4律师信息管理模块设计

3.1.5沟通/预定管理模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

表access_token (登陆访问时长)

表article (文章:用于内容管理系统的文章)

表article_type (文章分类)

表auth (用户权限管理)

表collect (收藏)

表comment (评论)

表hits (用户点击)

表lawyer_users (律师用户)

表notice (公告)

表paid_communication (付费沟通)

表paid_lawyer (付费律师)

表paid_orders (付费订单)

表poor_users (贫困用户)

表praise (点赞)

表public_interest_lawyer (公益律师)

表public_welfare_communication (公益沟通)

表public_welfare_orders (公益订单)

表public_welfare_subsidies (公益补贴)

表regular_users (普通用户)

表slides (轮播图)

表upload (文件上传)

表user (用户账户:用于保存用户登录信息)

表user_group (用户组:用于用户前端身份和鉴权)

3.4本章小结

4 法律公益服务系统详细设计与实现

4.1用户功能模块

4.1.1 贫困用户前台首页界面

4.1.2 贫困用户注册界面

4.1.3 贫困用户登录界面

4.1.4法律资讯界面

4.1.5公告消息界面

4.1.6 公益律师详情界面

4.1.7 贫困用户提交预定公益律师界面

4.1.8贫困用户提交沟通界面

4.1.9贫困用户公益沟通界面

4.1.10普通用户个人中心界面

4.2管理员功能模块

4.2.1用户管理界面

4.2.2资源管理界面

4.2.3公益律师管理界面

4.2.4公益订单管理界面

4.3律师后台管理模块

5系统测试

5.1 系统测试用例

5.2 系统测试结果

结论

参考文献

致  谢

摘要

本研究旨在基于SSM(Spring+Spring MVC+MyBatis)框架,设计与实现一套综合性的法律公益服务系统。该系统面向管理员、付费用户、公益律师用户、贫困用户和普通用户,旨在提供全方位的法律服务。

通过该系统的设计与实现,管理员可以管理用户信息、审核付费用户、协调公益律师资源等。付费用户可以享受更加专业的法律咨询和服务,并在线支付相应费用。公益律师用户可以注册并提供免费法律援助,为有需求的用户提供帮助。贫困用户可以通过申请获得法律援助资格,并与公益律师进行在线咨询和解答。普通用户可以通过注册账号,获取基础的法律知识和参与在线讨论。

该系统将利用SSM框架的优势,实现用户管理、咨询服务、支付功能、援助申请流程等模块的高效运行和数据交互。通过系统的建立和应用,我们希望能够提高法律公益服务的覆盖范围和效率,促进法律资源的合理分配和社会的公平正义。最终,通过该系统的实施,我们期望为法律公益服务领域的改进和发展做出积极贡献。

关键词:SSM框架;法律公益服务系统;

Abstract

This study aims to design and implement a comprehensive legal public welfare service system based on the SSM (Spring+Spring MVC+MyBatis) framework. This system is designed to provide comprehensive legal services for administrators, paying users, public welfare lawyer users, impoverished users, and ordinary users.

Through the design and implementation of this system, administrators can manage user information, review paid users, and coordinate public welfare lawyer resources. Paid users can enjoy more professional legal advice and services, and pay corresponding fees online. Public welfare lawyer users can register and provide free legal aid to assist users in need. Poor users can obtain legal aid qualifications through application and engage in online consultations and answers with public welfare lawyers. Ordinary users can obtain basic legal knowledge and participate in online discussions by registering an account.

The system will leverage the advantages of the SSM framework to achieve efficient operation and data exchange of modules such as user management, consulting services, payment functions, and assistance application processes. Through the establishment and application of the system, we hope to improve the coverage and efficiency of legal public welfare services, promote the rational allocation of legal resources, and promote social fairness and justice. Ultimately, through the implementation of this system, we hope to make positive contributions to the improvement and development of legal public welfare services.

Keywords: SSM framework; Legal public welfare service system;

1 绪论

1.1 研究背景

在现代社会中,法律公益服务的重要性日益凸显。随着法治观念的普及和人们对法律问题的关注度增加,越来越多的人需要获取专业的法律咨询和援助。然而,传统的法律服务方式存在诸多问题,如资源分配不均、效率低下等,使得一些有需求的人群无法获得及时的法律支持。

特别是贫困用户由于经济条件限制,更加面临法律援助的困境。为了解决这些问题,建立一个基于SSM框架的综合性法律公益服务系统具有重要的背景意义。通过该系统,贫困用户可以在线申请法律援助,并与公益律师进行在线咨询和交流;付费用户可以享受高质量的法律咨询服务并在线支付相应费用;管理员可以协调公益律师资源,管理用户信息等。这样的系统将促进法律资源的合理配置和利用,提高公众对法律问题的关注度和参与度,推动社会的法治进程。

然而,在目前的研究中,基于SSM框架的法律公益服务系统尚未得到充分的关注和研究。因此,本研究旨在填补这一空白,通过设计与实现一个全面、高效的法律公益服务系统,为贫困用户和其他需要法律援助的人群提供便捷、可靠的服务渠道。同时,该系统的建立将推动法律服务行业的创新和发展,提升公众对法律问题的认知水平,推进社会公平正义的实现。

综上所述,基于SSM框架的法律公益服务系统的设计与实现具有重要的背景意义。通过构建这样的系统,我们有望解决传统法律服务方式存在的问题,提供更加便捷、高效的法律支持,改善贫困用户和其他有需求人群的生活状况,推动社会的法治进程和公平正义的实现。

1.2研究意义

本研究的意义在于基于SSM框架设计与实现一套法律公益服务系统,以提升法律服务的效率和普及度,促进社会公平正义的实现。

首先,该系统的建立将为贫困用户和其他有需求的人群提供更加便捷、高效的法律援助和咨询服务。传统的法律服务方式存在资源不足、等待时间长等问题,使得一些弱势群体无法享受到应有的法律保障。通过该系统,这些人群可以在线申请法律援助,并与公益律师进行在线交流和解答,从而改善他们的法律状况和生活品质。

其次,该系统的应用将促进法律资源的合理配置和利用。通过管理员的协调管理,可以确保公益律师资源得到充分利用,提供更广泛的法律援助服务。同时,付费用户的参与也能够推动法律服务行业的发展,促进专业律师队伍的壮大和提升,提高整体法律服务质量。

此外,该系统的建立还将推动公众对法律问题的关注度和参与度的提升。通过系统中的法律知识分享和在线讨论功能,普通用户可以获取基础的法律知识,参与社区讨论,提高法律素养。这将有助于公众更好地了解自己的权益和义务,增强法律意识,推动社会的公平正义和法治进程。

综上所述,基于SSM框架的法律公益服务系统的设计与实现具有重要的意义。通过该系统的应用,我们有望提升法律服务的效率和普及度,为贫困用户和其他有需求的人群提供更便捷、高效的法律援助和咨询服务。同时,该系统也将促进法律资源的合理配置和利用,提高公众对法律问题的关注度和参与度,推动社会的公平正义和法治进程的实现。

1.3论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章为引言,此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。

第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。

第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。

第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。

第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

2 法律公益服务系统分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

2.1 可行性分析

系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。

2.1.1 技术可行性分析

基于SSM框架的法律公益服务系统设计与实现具有良好的技术可行性。首先,SSM框架是一个成熟且广泛应用的技术方案,已经在多个领域得到验证和应用。其在电信、银行、电商等行业中的成功案例表明了其可靠性和稳定性。其次,SSM框架提供了完善的功能支持和易于使用的开发环境,能够快速搭建起整个项目的开发基础。通过Spring框架的依赖注入、面向切面编程等特性,可以提高代码的可重用性和可维护性。MyBatis框架作为一种优秀的持久层框架,能够简化数据库访问操作,提供灵活而高效的数据交互能力。最后,基于Web的系统设计符合当前社会信息化的趋势,能够满足用户对便捷、迅速获取信息的需求。因此,基于SSM框架的法律公益服务系统设计与实现在技术上是可行的,并具有较高的可靠性和可扩展性。

2.1.2 经济可行性分析

从经济可行性上看项目在开发阶段需要一台开发PC,在生产阶段需要web服务器和数据库服务器。一台个人PC从经济上来看也不是太多问题,在后期的系统部署生产上来说,服务器的投入也不会过高,在经济层面上是一个比较可行的。

2.1.3 法律可行性分析

系统从法律层面上来没有对第三方有其他放有法律层面的问题,系统数据库采用的Mysql 开源社区数据库、框架采用的是开源的SSM。系统资讯和相关内容也是呵呵法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。

2.2 系统功能分析

2.2.1 功能性分析

法律公益服务系统我划分为了普通用户模块、贫困用户模块、律师用户(公益、付费律师)模块和管理员模块这四大部分。

普通用户模块:

(1)注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现交流以及预订操作,就必须有这个系统的账号,如果没有账号的话,可以注册成员用户进行相关的操作,同时用户还可以通过“我的”这以按钮对个人信息以及操作的信息进行管控。

(2)查看法律公益服务系统的首页信息:法律公益服务系统的首页信息包含了首页、公告信息、法律资讯、公益律师、我的账户、个人中心等。

(3)公告消息:用户可以查看系统所有的公告信息,并进行点赞、收藏、评论等操作。

(4)法律资讯:用户可以查看系统所有的法律资讯内容,并进行点赞、收藏、评论等操作。

(5)付费律师: 普通用户对应付费律师,用户可以查看所有得付费律师信息,在查询到自己想要了解的律师信息的时候,可以进入查看详细的介绍,点击“预定”这一按钮以后会跳转到预定信息填写的界面,根据提示填写好预定信息,点击“提交”以后预定信息就完成了,同时还可以根据需要进行“沟通”,点击“沟通”这一按钮以后会跳转到沟通信息填写的界面,根据提示填写好沟通信息,点击“提交”以后沟通信息就完成了,在付费律师这个界面,同时支持用户对付费律师信息进行收藏、点赞以及评论的功能。

(6)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。

(7)付费沟通:在“付费沟通”这个模块可以查看自己咨询律师的付费沟通信息。

(8)付费订单:在“付费订单”这个模块用户可以查看自己咨询律师的付费订单详情并进行在线支付。

(9)收藏:用户查看自己在系统收藏各类法律信息内容,并可根据需要进行删除等操作。

贫困用户模块:

(1)注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现交流以及预订操作,就必须有这个系统的账号,如果没有账号的话,可以注册贫困用户进行相关的操作,同时用户还可以通过“我的”这以按钮对个人信息以及操作的信息进行管控。

(2)公告消息::用户可以查看系统所有的公告信息,并进行点赞、收藏、评论等操作。

(3)法律资讯:用户可以查看系统所有的法律资讯内容,并进行点赞、收藏、评论等操作。

(4)公益律师: 贫困用户对应公益律师,贫困用户可选择公益律师进行沟通和预定,用户可以查看所有得付费律师信息,在查询到自己想要了解的律师信息的时候,可以进入查看详细的介绍,点击“预定”这一按钮以后会跳转到预定信息填写的界面,根据提示填写好预定信息,点击“提交”以后预定信息就完成了,同时还可以根据需要进行“沟通”,点击“沟通”这一按钮以后会跳转到沟通信息填写的界面,根据提示填写好沟通信息,点击“提交”以后沟通信息就完成了,在付费律师这个界面,同时支持用户对付费律师信息进行收藏、点赞以及评论的功能。

(5)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。

(6)公益沟通:在“公益沟通”这个模块可以查看自己咨询公益律师的沟通信息。

(7)公益订单:在“公益订单”这个模块可以查看自己咨询公益律师的订单信息。

(8)收藏:用户查看自己在系统收藏各类法律信息内容,并可根据需要进行删除等操作。

付费律师用户模块:

管理员审核后将律师添加对应的付费律师信息中

(1)公益律师管理:付费律师对公益律师管理列表详情查看,并根据需求进行重置+查询等操作。

(2)公益沟通管理: 付费律师对公益沟通管理列表详情查看,并根据需求进行重置+查询等操作。

(3)公益订单管理: 付费律师对公益订单管理列表详情查看,并根据需求进行重置+查询等操作。

(4)公益补贴管理:付费律师对公益补贴管理列表详情查看,并根据需求进行重置+查询等操作。

公益律师用户模块:

管理员审核后将律师添加对应的公益律师信息中

(1)公益律师管理: 公益律师对公益律师管理列表详情查看,并根据需求进行重置+查询等操作。

(2)公益沟通管理: 公益律师对公益沟通管理列表详情查看,并根据需求进行重置+查询等操作。

(3)公益订单管理:公益律师对公益订单管理列表详情查看,并根据需求进行重置+查询等操作。

(4)公益补贴管理:付费律师对公益补贴管理列表详情查看,并根据需求进行重置+查询等操作。

管理员管理模块:

(1)系统用户: 管理系统中的用户账号,包括创建、编辑、删除用户,以及设置用户权限等。

(2)公益律师管理:管理员对公益律师管理列表进行详情查看、支持通过输入律师用户、律师名称、律师职称、从业工龄、律师图片、个人简介等进行新增添加,并对沟通、预定、发放补贴(对公益律师发放补贴)等进行管控,根据需要进行查询、重置、删除等。

(3)公益沟通管理:管理员对公益沟通列表进行详情查看等管控。

(4)公益订单管理:管理员对公益订单列表进行详情查看等管控。

(5)公益补贴管理: 管理员对公益补贴列表进行详情查看等管控。

(6)付费律师管理:管理员对付费律师列表进行详情查看、支持通过输入律师用户、律师名称、付费金额、订单酬金、律师职称、从业工龄、律师图片、个人简介等进行新增添加,同时付费律师可查看自己付费的选关于信息。

(7)付费沟通管理:管理员对付费沟通列表进行详情查看,同时付费律师也可进行回复等管控。

(8)付费订单管理:管理员对付费订单列表进行详情查看等管控。

(9)系统管理: 管理员点击“系统管理”菜单可以对首页展示的轮播图进行增删改查。

(10)公告消息管理: 管理员点击“公告消息管理”菜单可以查看到系统中的所有公告消息信息,对已经存在的通知公告,管理员可以修改,也可以添加新的公告消息或者删除公告消息。

(11)资源管理: 管理员可以对资源管理的两个子菜单法律资讯以及资讯分类所属的分类进行管控。

2.2.2 非功能性分析

首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对法律公益服务系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析,

2.3 系统用例分析

法律公益服务系统的完整UML用例图分别是图2-1、图2-2、图2-3、图2-4。

图2-1就是普通用户角色的用例展示。

图2-1 法律公益服务系统普通用户角色用例图

图2-2就是贫困用户角色的用例展示。

 图2-1 法律公益服务系统贫困用户角色用例图

图2-3就是公益/付费律师用户角色的用例展示。

图2-3法律公益服务系统公益/付费律师用户角色用例图

图2-4就是管理员用户角色的用例展示。

图2-4法律公益服务系统管理员用户角色用例图

2.4 系统流程分析

2.4.1 数据流程

开发法律公益服务系统最主要的一个目的就是实现志愿用户对活动的报名,图2-5就是系统的数据流图。

图2-5沟通/预定操作展开图

2.4.2 业务流程

分析完法律公益服务系统的数据流,那么接下来我们来看系统的业务流程,图2-6就是业务流程图:

图2-6业务流程图

2.5本章小结

本章主要通过对法律公益服务系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个法律公益服务系统要实现的功能。同时也为法律公益服务系统的代码实现和测试提供了标准。

3 法律公益服务系统总体设计

本章主要讨论的内容包括法律公益服务系统的功能模块设计、数据库系统设计。

3.1 系统功能模块设计

3.1.1整体功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本法律公益服务系统中的用例。那么接下来就要开始对本法律公益服务系统的架构、主要功能和数据库开始进行设计。法律公益服务系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。

图3-1 法律公益服务系统功能模块图

3.1.2用户模块设计

本系统的用户包括管理员和用户两种用户模块的功能基本是相同的,用户比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,用户模块结构图为例进行分析,如下图:

图3-2用户模块结构图

3.1.3 新闻资讯管理模块设计

法律公益服务系统的新闻资讯是一个学习法律知识的公开平台,管理员在平台上发布新闻内容,增加用户之间的学习知识的互动性。为了更好地管理和规范新闻评论,需要设计一个新闻评论管理模块。该模块将包括以下结构图:具体的结构图如下:

图3-3新闻资讯管理模块结构图

3.1.4律师信息管理模块设计

法律公益服务系统是中需要存储不少律师信息,其模块功能结构,具体的结构图如下:

图3-4律师信息模块结构图

3.1.5沟通/预定管理模块设计

法律公益服务系统最重要的一个功能就是沟通/预定,其模块功能结构,具体的结构图如下:

图3-5沟通/预定信息模块结构图

3.2 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.2.1 数据库概念结构设计

下面是整个法律公益服务系统中主要的数据库表总E-R实体关系图。

图3-6 法律公益服务系统总E-R关系图

3.3.2 数据库逻辑结构设计

通过上一小节中法律公益服务系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

 表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表lawyer_users (律师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

lawyer_users_id

int

10

0

N

Y

律师用户ID

2

lawyers_name

varchar

64

0

Y

N

律师姓名

3

lawyers_gender

varchar

64

0

Y

N

律师性别

4

lawyers_age

varchar

64

0

Y

N

律师年龄

5

lawyer_type

varchar

64

0

Y

N

律师类型

6

lawyers_certificate

varchar

255

0

Y

N

律师证书

7

examine_state

varchar

16

0

N

N

未审核

审核状态

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表paid_communication (付费沟通)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

paid_communication_id

int

10

0

N

Y

付费沟通ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

title_of_lawyers

varchar

64

0

Y

N

律师职称

5

poor_users

int

10

0

Y

N

0

普通用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

user_information

text

65535

0

Y

N

用户信息

8

lawyers_reply

text

65535

0

Y

N

律师回复

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表paid_lawyer (付费律师)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

paid_lawyer_id

int

10

0

N

Y

付费律师ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

payment_amount

int

10

0

Y

N

0

付费金额

5

order_remuneration

int

10

0

Y

N

0

订单酬金

6

title_of_lawyers

varchar

64

0

Y

N

律师职称

7

working_experience

varchar

64

0

Y

N

从业工龄

8

lawyer_image

varchar

255

0

Y

N

律师图片

9

personal_profile

longtext

2147483647

0

Y

N

个人简介

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表paid_orders (付费订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

paid_orders_id

int

10

0

N

Y

付费订单ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

payment_amount

int

10

0

Y

N

0

付费金额

5

order_remuneration

int

10

0

Y

N

0

订单酬金

6

title_of_lawyers

varchar

64

0

Y

N

律师职称

7

regular_users

int

10

0

Y

N

0

普通用户

8

user_name

varchar

64

0

Y

N

用户姓名

9

booking_time

datetime

19

0

Y

N

预定时间

10

booking_remarks

text

65535

0

Y

N

预定备注

11

pay_state

varchar

16

0

N

N

未支付

支付状态

12

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表poor_users (贫困用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

poor_users_id

int

10

0

N

Y

贫困用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_age

varchar

64

0

Y

N

用户年龄

5

proof_of_poverty

varchar

255

0

Y

N

贫困证明

6

examine_state

varchar

16

0

N

N

未审核

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表public_interest_lawyer (公益律师)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

public_interest_lawyer_id

int

10

0

N

Y

公益律师ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

title_of_lawyers

varchar

64

0

Y

N

律师职称

5

working_experience

varchar

64

0

Y

N

从业工龄

6

lawyer_image

varchar

255

0

Y

N

律师图片

7

personal_profile

longtext

2147483647

0

Y

N

个人简介

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表public_welfare_communication (公益沟通)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

public_welfare_communication_id

int

10

0

N

Y

公益沟通ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

title_of_lawyers

varchar

64

0

Y

N

律师职称

5

poor_users

int

10

0

Y

N

0

贫困用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

user_information

text

65535

0

Y

N

用户信息

8

lawyers_reply

text

65535

0

Y

N

律师回复

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表public_welfare_orders (公益订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

public_welfare_orders_id

int

10

0

N

Y

公益订单ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

title_of_lawyers

varchar

64

0

Y

N

律师职称

5

poor_users

int

10

0

Y

N

0

贫困用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

booking_time

datetime

19

0

Y

N

预定时间

8

booking_remarks

text

65535

0

Y

N

预定备注

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表public_welfare_subsidies (公益补贴)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

public_welfare_subsidies_id

int

10

0

N

Y

公益补贴ID

2

lawyer_users

int

10

0

Y

N

0

律师用户

3

lawyers_name

varchar

64

0

Y

N

律师名称

4

title_of_lawyers

varchar

64

0

Y

N

律师职称

5

subsidy_month

varchar

64

0

Y

N

补贴月份

6

subsidy_amount

int

10

0

Y

N

0

补贴金额

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_age

varchar

64

0

Y

N

用户年龄

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

3.4本章小结

整个法律公益服务系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 法律公益服务系统详细设计与实现

法律公益服务系统的详细设计与实现主要是根据前面的法律公益服务系统的需求分析和法律公益服务系统的总体设计来设计页面并实现业务逻辑。主要从法律公益服务系统界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 贫困用户前台首页界面

当进入法律公益服务系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,然后是公告消息、法律资讯、公益律师模块,其主界面展示如下图4-1所示。

图4-1 贫困用户前台首页界面图

4.1.2 贫困用户注册界面

法律公益服务系统的游客和景区管理者时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2贫困用户注册界面图

用户注册的关键代码如下。

/**

     * 注册

     * @return

     */

    @PostMapping("register")

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

        // 查询用户

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

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

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

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        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){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

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

}

4.1.3 贫困用户登录界面

法律公益服务系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当会员输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到法律公益服务系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图

用户登录的关键代码如下。

/**

     * 登录

     * @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, "账号或密码不正确");

        }

}

4.1.4法律资讯界面

当点击导航栏上的“法律资讯”的时候,就会进入对应的界面查看新闻资讯列表,点击你想了解的功能可以查看详情进行点赞、收藏,新闻资讯界面如下图4-4所示。

图4-4新闻资讯界面图

4.1.5公告消息界面

当访客点击法律公益服务系统中导航栏上的“公告消息”后将会进入到该“公告消息”列表的界面,然后选择想要看的公告消息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作,公告消息界面如下图4-5所示。

图4-5公告消息界面图

4.1.6 公益律师详情界面

当用户点击“公益律师”后就可以看到所有的公益律师信息,可以输入律师名称或者律师职称进行搜索查询,选择你想要了解的律师信息后将会进入该律师的详情界面,可以了解到该律师名称、职称、从业工龄等,同时可以对点击下方的“点赞”、“预定”、“沟通”进行相关操作,也可以在下方查看该律师的个人简介信息,公益律师展示页面如图4-6所示。

图4-6 公益律师详情界面图

公益律师详情的关键代码如下。

    @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);

}

4.1.7 贫困用户提交预定公益律师界面

当用户点击律师信息界面中的“预定”链接后就进入预定的界面展示,用户填写预定信息,点击“提交”按钮进行提交预定。预定界面如下图4-7所示。

图4-7预定界面图

预定关键代码如下。

@RequestMapping(value )

    @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();

    }

4.1.8贫困用户提交沟通界面

当用户点击律师信息界面中的“沟通”链接后就进入沟通的界面展示,用户填写沟通信息,点击“提交”按钮进行提交沟通。沟通界面如下图4-8所示。

图4-8 沟通界面图

4.1.9贫困用户公益沟通界面

填写完沟通信息后可以在后台查看公益沟通信息详情,并根据需要进行查询、重置等操作。界面如下图4-9所示。

图4-9 公益沟通界面图

4.1.10普通用户个人中心界面

普通用户对首页信息的首页、公告信息、法律资讯、公益律师、我的账户、个人中心等进行管控。

图4-10 普通用户个人中心界面图

4.2管理员功能模块

4.2.1用户管理界面

法律公益服务系统中的管理人员在“用户管理”这一菜单是中可以对律师用户、贫困用户、普通用户以及管理员进行管控。界面如下图4-10所示。

图4-11用户管理界面图

4.2.2资源管理界面

管理员可以对资源管理的两个子菜单法律资讯以及资讯分类所属的分类进行管控,界面如下图4-11所示。

图4-12资源管理界面图

资源管理的关键代码如下。

@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();

    }

4.2.3公益律师管理界面

管理员对公益律师管理列表进行详情查看、支持通过输入律师用户、律师名称、律师职称、从业工龄、律师图片、个人简介等进行新增添加,并对沟通、预定、发放补贴(对公益律师发放补贴)等进行管控,根据需要进行查询、重置、删除等,界面如下图4-12所示。

图4-13公益律师管理界面图

 公益律师管理的关键代码如下。

public Map<String, Object> error(Integer code, String message) {

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

        map.put("error", new HashMap<String, Object>(4) {{

            put("code", code);

            put("message", message);

        }});

        return map;

}

4.2.4公益订单管理界面

管理员可以对系统前台用户提交得公益订单信息进行维护管理,界面如下图4-14所示。

图4-14公益订单管理界面图

公益订单管理的关键代码如下。

public Map<String, Object> success(Object o) {

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

        if (o == null) {

            map.put("result", null);

            return map;

        }

        if (o instanceof List) {

            if (((List) o).size() == 1) {

               o =  ((List) o).get(0);

                map.put("result", o);

            }else {

                String jsonString = JSONObject.toJSONString(o);

                JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));

                map.put("result", objects);

            }

        } else if (o instanceof Integer || o instanceof String) {

            map.put("result", o);

        } else {

            String jsonString = JSONObject.toJSONString(o);

            JSONObject jsonObject = JSONObject.parseObject(jsonString);

            JSONObject j = service.covertObject(jsonObject);

            map.put("result", j);

        }

        return map;

}

4.3律师后台管理模块

  律师后台包含付费律师跟公益律师,付费律师的后台包含后台首页、公益律师管理、

公益沟通管理、公益订单管理、公益补贴管理等,付费对这些功能进行维护管理。界面如下图所示。

                             图4-15付费律师管理界面图

  公益律师管理界面如下图所示:

图4-16公益律师管理界面图

5系统测试

5.1 系统测试用例

系统测试包括:用户登录功能测试、新闻资讯展示功能测试、沟通信息添加、预定报名、密码修改、留言功能测试,如表5-1、5-2、5-3、5-4、5-5、5-6所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

新闻资讯查看功能测试:

表5-2 新闻资讯查看功能测试表

用例名称

新闻资讯查看

目的

测试新闻资讯查看功能

前提

用户登录

测试流程

点击新闻资讯列表

预期结果

可以查看到所有新闻资讯信息

实际结果

实际结果与预期结果一致

管理员添加公益律师界面测试:

表5-3 管理员添加公益律师界面测试表

用例名称

添加公益律师测试用例

目的

测试公益律师添加功能

前提

管理员用户正常登录情况下

测试流程

1)管理员点击公益律师管理,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的公益律师信息 

实际结果

实际结果与预期结果一致

在线预定功能测试:

表5-4在线预定功能测试表

用例名称

在线预定测试

目的

测试在线预定功能

前提

测试流程

1)填写预定内容。

2)点击提交按钮。

预期结果

页面显示预定成功

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

公告消息功能测试:

表5-6公告消息功能测试表

用例名称

公告消息测试用例

目的

测试用户查看公告消息功能

前提

用户正常登录情况下

测试流程

1)进入系统页面,点击公告消息。

2)进入查看。

预期结果

查看成功

实际结果

实际结果与预期结果一致

5.2 系统测试结果

通过编写法律公益服务系统的测试用例,已经检测完毕用户登录模块、新闻资讯展示模块、公益律师添加模块、在线预定模块、密码修改模块、公告消息模块功能测试,通过这6大模块为法律公益服务系统的后期推广运营提供了强力的技术支撑。

结论

本文描述了法律公益服务系统设计与实现的原理和开发过程,该系统是通过SSM框架来搭建后台,中间件使用的是Tomcat服务器,数据库管理平台采用开源的Mysql,前台使用的是JQuery框架,同时使用Validate校验框架,这样就可以减少前端代码的输入量,而且基于JQuery框架的Validat框架使用简单,是流行的前端使用框架,前端使用的主要是Jsp页面展示技术。 

在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从开发这个法律公益服务系统的过程中我也收获了许许多多宝贵的方法以及设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、SSM、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]Prabawani B ,Hadi P S ,Fisher R M , et al. Socioeconomic perspective of agroforestry development in Central Java [J]. Environmental and Sustainability Indicators, 2024, 22 100354-.

[2]田志娟,吴振. 特殊群体基本公共法律服务供给模式创新探析——以珠海市农民工法律援助权益保障为切入 [J]. 法制博览, 2024, (01): 1-6.

[3]谢腾欧. 推动律师公益法律服务的举措与路径——以DZ市为例 [J]. 法制博览, 2023, (36): 133-135.

[4]Yuxie J ,Kai W ,Yingzhen Z , et al. Superoleophobic TiO2@SSM membranes with antifouling and photocatalytic ability for efficient microbubbles flotation emulsion separation and organic pollutants degradation [J]. Journal of Membrane Science, 2024, 690

[5]彭虹斌,周展锋. 美国课后服务机构的法律地位、治理逻辑与公益取向 [J]. 世界教育信息, 2023, 36 (10): 46-53.

[6]董凡超. 中国法律援助基金会第五届理事会首次签约仪式签约单位笔谈[N]. 法治日报, 2023-09-14 (007).

[7]法律服务+拍卖 开创“法律服务行业公益活动”新模式 [J]. 中国拍卖, 2023, (09): 9.

[8]陈颖婷. 上海律师4年参与公益法律服务4.48万件[N]. 上海法治报, 2023-08-25 (A03).

[9]邬春阳,寇松,程杨. 首都机场公安局:用“灯塔”照亮公益法律服务便民之路[N]. 人民公安报, 2023-08-17 (004).

[10]李全一. 公证公益服务——以四川公证公益服务实践为例 [J]. 中国公证, 2023, (08): 35-41.

[11]宋安勇. 用公益法律服务彰显执业为民初心——记全国优秀律师刘云雷 [J]. 中国律师, 2023, (07): 49-51.

[12]李巧玲. 环保组织缘何不愿走上法庭——法律机会结构理论视域下提升环保组织公益诉讼意愿研究 [J]. 江汉大学学报(社会科学版), 2023, 40 (04): 16-26+125.

[13]梁莉. 探索轻微犯罪“相对不起诉+社会公益服务”工作模式[N]. 检察日报, 2023-06-27 (007).

[14]张浩晨,朱参世. 基于SSM的C语言在线考试系统的设计 [J]. 电脑知识与技术, 2023, 19 (18): 60-63.

[15]杜伟,王恩慧. 为未成年人撑起法治“小红伞”——四川伟旭公益法律服务中心未成年人保护工作实录 [J]. 中国律师, 2023, (06): 40-41.

[16]王雨齐. 公益众筹平台的法律规制研究[D]. 河北师范大学, 2023.

[17]Sunday O B ,Nduka O S . MySQL Database Server: Deploying Software Application to Enhance Visibility and Accountability [J]. Current Journal of Applied Science and Technology, 2023, 42 (4): 16-23.

[18]徐志静,陈依依. 甬城最靓的老年律师团——宁波市“银辉”法律服务志愿团公益活动侧记 [J]. 中国律师, 2022, (08): 22-24.

[19]雷雪飞. 一支“暖心贴心”的律师服务团——“浙江律师妈妈保护未成年人权益法律服务团”公益活动侧记 [J]. 中国律师, 2022, (03): 11-13.

[20]四川省司法厅关于印发《四川省公证公益法律服务管理办法(试行)》的通知 [J]. 四川省人民政府公报, 2022, (03): 94-95.

致  谢

逝者如斯夫,不舍昼夜。转眼间,大学生活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?

感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。

少年,追风赶月莫停留,平荒尽处是春山。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值