本系统开发采用技术为JSP、Bootstrap、Ajax、SSM、Java、Tomcat、Maven
此文章为本人亲自指导加编写,禁止任何人抄袭以及各类盈利性传播, 相关的代码+部署+论文+ppt+代码讲解+答辩指导文件都有可私要
项目源码,请关注❥点赞收藏并私信博主,谢谢~
基于web的家庭式管理财务信息系统的设计与实现
摘 要:每个家庭一天有很多的开支和收入。我们每天“衣、食、住、行”都需要很多的资金开支。保障一个家庭的正常运行需要大量的资金运转。从简单的财务知识来看支出和收入是家庭经济的主要要素。家庭的财务管理和企业的财务是有相似之处的。如果收支不能达到平衡,支出大于收入那么这个家庭将出现负债情况。所以说作为家庭中的每一份子,我们都需要有一定的财务知识储备。在平时就要有节约意识,控制好家庭的成本预算。像以前很多人都是通过笔和纸来记账,记录每天的收入和开支情况。但现在互联网技术快速发展,在家庭财务管理方面也受到信息化的影响。研发家庭收支财务管理平台,可以方便快捷帮助家庭管理财务收支情况。
本次拟设计的系统题目为家庭收支财务管理平台此系统技术层面核心为Java语言,选择的开发架构为Spring、Spring以及orm层的Mybatis,采用的设计模式为MVC,底层采用MySQL对项目数据进行存储。通过此系统的设计主要模块有主要包含家庭成员管理、家庭管理、收支类型定义、记录收入和支出、可视化统计数据等。主要登录的角色有管理员、家庭人员、普通人员。通过此系统的功能设计可以让用户操作使用简单方便,我们功能设计也要从用户的实际需求出发。这样才能做出用户想用的系统。
关键词:家庭财务;人员收支;财务管理;Spring;Mybatis
Konzeption und Implementierung eines webbasierten Family Management Finanzinformationssystems
Abstract: Every family has a lot of ainis and income in a day. We need a lot of capital expenditure for "food, clothing, shelter and transportation" every day. To ensure the normal operation of a family requires a lot of capital operation. From the perspective of simple financial knowledge, expenditure and income are the main elements of family economy. There are similarities between family financial management and enterprise financial management. If the income and expenditure cannot reach the balance and the expenditure is greater than the income, the family will be in debt. Therefore, as each member of the family, we need to have a certain financial knowledge reserve. At ordinary times, we should have a sense of saving and control the family's cost budget. Like before, many people keep accounts by pen and paper, recording their daily income and expenditure. However, with the rapid development of Internet technology, family financial management is also affected by informatization. The research and development of family income and expenditure financial management platform can help families manage their financial income and expenditure conveniently and quickly.
The title of the system to be designed this time is the family income and expenditure financial management platform. The technical core of the system is the Java language. The selected development architecture is Spring, Spring and Mybatis in the orm layer. The adopted design mode is MVC. The underlying layer uses MySQL to store project data. The main modules designed by this system mainly include family member management, family management, income and expenditure type definition, recording income and expenditure, visual statistics, etc. The main login roles are administrator, family member and ordinary person. Through the functional design of this system, users can operate easily and conveniently. Our functional design should also start from the actual needs of users. In this way, we can make the system that users want to use.
Keywords:Familienfinanzierung; Personaleinkommen und -ausgaben; Finanzmanagement; Frühling; Mybatis
目 录
第一章 概述
1.1研究背景
我们现在不仅生活节奏快,生活水平提高的也很快。很多家庭在保证基本生活的情况下,更加追求生活的品质和质量。但是很多家庭都缺乏财务管理知识,分不清楚资产和负债。所以在学习家庭财务知识的,同时要打造健康的财务体系。每天都要学会记账,记录分析收入和支出。通过对很多家庭的财务管理分析,现在很多家庭都在用相关的系统帮助自己合理分析财务状况。在财务管理系统上,录入家庭的基本信息,对基本的开支和收入进行分类设置。每天在系统上进行记账记录,系统就可以帮助家庭做出财务分析和统计。对比收支和支出的情况,到底有没有负债出现。这样不仅可以全方面掌握家里的支出和收支情况,还可以提前统筹家庭的开支预算。同时还可以提前做好成本预警,在即将超支之前做好相应的措施。
社会经济水平的提高给了我们足够的时间、精力和成本来开发网络和网络应用。在互联网世界里,人们通过工作赚取收入。与此同时,为了提高生活水平,人们还花钱来满足所有的物质需求。有必要解决收入和价格上涨以及家庭收入和支出核算问题。应计算每月收入和支出,以避免过度消费和生活困难。在互联网发展之前,我们使用人工记录来记录费用。然而,当我们进行支出时,我们可能有一个没有分类账的账户,或者忘记在会计中记录收入或费用,导致分类账和余额不准确。为了确保收支信息的准确性,该项目因此开发了一个家庭收支管理平台,该平台在线存储记录,可以随时随地记录,以确保信息安全。从最初的手动记录管理到今天使用网络技术管理家庭收支,我们看到了互联网的发展给我们的生活方式带来的质的变化。经济发展给了我们更多的收入和可用资产。劳动收入、额外收入、基本需求、子女费用等是一个重要的优势。考虑到收入和支持,我们需要明智地管理收入和支出,以避免未来的家庭金融危机。如何更容易、更经济、更简单地管理这些资金是一个问题,这必然涉及使用家庭收入和支出管理平台来获取这些收入和支出。因此,创建一个家庭收支管理平台是非常重要的。而传统的管理方法会给我们带来很多问题,但幸运的是,在今天的信息时代,计算机已经迅速渗透到人们的日常生活中,并成为家庭生活的一部分,使电子录音成为解决传统手动录音问题的可行方案。作为计算机应用程序的一部分,家庭收支管理系统可以帮助个人或家庭快速准确地添加、请求、更改和删除收支项目,实时查看收支数据,并获得各种综合账目报告。各种统计报表和图表可以轻松分析不同时期和项目的收支情况,可靠性高、保密性好、存储容量大、成本低、家庭收支管理规范化、程序化,避免浪费时间和精力,帮助用户,充分利用数字背后的情况。
1.2国内外现状
随着时代的进步,很多人都有了理财的头脑。好的家庭离不开健康的家庭财务管理。所以现在有很多的科技公司,已经在家庭财务管理领域研发了相关系统平台。例如管家婆财务系统,大型的财务系统都是面向企业管理的。家庭类的财务管理功能都是作为其中的附带功能。所以说现在很多的财务系统不论是功能还是流程都已经非常成熟。我们从家庭日常财务所需的功能出发,进行系统的设计研发。要在保障数据安全的前提下让功能应用简单易操作。对于家庭财务管理来说记录每天的支出和收入是基本的功能操作。所以完善基础功能的是我们首要的任务。还有在数据储存和分析上也需要有严谨的规划设计。将日常的数据记录精准做出分析,为家庭的财务计划做科学参考。
好的财务管理系统不仅使用便捷,还可以提高家庭的财务状况,提前帮助家庭做出财务预警。这种家庭财务好帮手,在国外的很多国家已经有了很多成功案例。国外家庭财务管理更加严谨科学,他们更多是家族财务管理。财务功能相对更加专业和科学一些。例如SAP财务管理系统同样也是服务于企业和家庭的财务管理。对于系统的功能更加商务智能化,所以对于我们国内的小家庭来说不是特别的合适。我们的家庭财务管理系统更偏向于小型家庭的财务管理。所以我们要从实际的需求设计研发系统功能,这样才能达到用户的财务管理效果。
1.3研究意义
保障一个家庭的正常运行需要大量的资金运转。从简单的财务知识来看支出和收入是家庭经济的主要要素。家庭的财务管理和企业的财务是有相似之处的。如果收支不能达到平衡,支出大于收入那么这个家庭将出现负债情况。所以说作为家庭中的每一份子,我们都需要有一定的财务知识储备。在平时就要有节约意识,控制好家庭的成本预算。像以前很多人都是通过笔和纸来记账,记录每天的收入和开支情况。但现在互联网技术快速发展,在家庭财务管理方面也受到信息化的影响。研发家庭收支财务管理平台,可以方便快捷帮助家庭管理财务收支情况。
家庭收支管理平台设计给我们带来了很多好处,比如:家庭收支管理平台可以帮助人们更好地了解家庭收支情况,帮助他们认识自己的理财状况,提高个人理财意识,就提高了个人理财意识。通过家庭收支管理平台,人们可以更好地掌握家庭收支情况,及时调整和优化家庭预算,从而有效减少浪费和不必要的开支,就能够促进家庭经济稳定。家庭收支管理平台的发布可以帮助人们更好地理解金融消费、理财规划等方面的知识,从而提高他们的金融素质。此类平台还可以为金融机构提供更全面的客户信息,从而更好地了解客户需求,就可以为客户提供更精准的金融服务。综上所述,家庭收支管理平台的课题意义非常重要,可以促进个人和家庭的经济稳定,并提高整个社会的金融消费者素质。通过改善家庭信息网络化和系统化管理,家庭收支管理系统正成为个人高管的首选。该系统旨在捕捉所有收入和费用:从不同角度分析收入和费用;根据分析结果调整和优化您的收入和支出。家庭收入和支出管理系统功能齐全,易于使用,能够存储基本的个人信息、参考资料和财务管理。它可以轻松快速地检索被遗忘的个人信息、目录、财务状况等。并且减少家庭收支管理的劳动力和成本,改善家庭收支管理。使家庭管理真正实现网络化、系统化、科学化。要通过家庭收支管理系统来提高个人管理技能,选择好的或相对好的家庭收支管理软件并考虑个人特点是不够的。在以人为本理念的影响下,家庭收支管理在组织中发挥着越来越突出的作用。然而,由于工作人员的复杂性和组织的独特性,很难管理家庭收入和开支。在如今这个时代,家庭收支管理将成为家庭管理的重要组成部分,而家庭收支管理系统将成为许多家庭管理的一个重要组成部分。家庭收支管理系统的功能之一是财务规划和个人记录管理。它的创建加速了个人档案的搜索和检索,使人们能够准确分析各种金融知识、经验、技术、机会和职业目标。因此,有必要规范的设计家庭收支管理,科学的将信息化,数字化联系起来。
1.4本文研究内容
在本系统研究中主要是从软件的设计思维的角度进行分析,主要从软件的背景调研开始,要对系统是否有必要存在且发展的一些趋势等,结合当前的一些运营的模式对系统进行剖析,获取系统研究的目的,然后对系统开发的一些架构和一些基础的知识结合本系统进行分析,对采用的一些开发软件以及一些开源的架构SSM进行介绍,对此次系统的设计的可行性以及系统中根据角色划分的一些用例图进行分析,在总体设计模块主要是从流程图和一些类图等角度进行设计要做到模块的细化,最为重要的部分就是对代码的编码,从模块的角度完成每个部分,最后是对系统进行测试,完成测试修复bug即可上线。。
第二章开发技术
2.1 Spring架构
Spring是一种容器架构,对于Java架构来说主要是作用于底层的集成基础架构,Spring的两大核心特性是IOC和DI,AOP就是控制反转、AOP则是切面编程。IOC通俗来说就是将对象的创建的机制进行改变,通过spring容器来对项目的beans进行全局的监管,在spring中可对对象之间的依赖关系通过配置文件来进行串联,最直观的提现在对象无需进行new创建生成,而是通过spring启动时进行自动的配置创建装填。而AOP切面编程来说,主要是基于java面向对象的一种升华,编码拦截的方式由点到面,对多个公共的方法或者是类进行切面的抽取,达到一个公共行为的管理目的。在spring的切面设计中通常采用JDK动态代理或者是CGLIB代理的模式开发。
在控制层中常用的架构为Springmvc和Struts,在最初的时候SSH架构比较风靡,因此struts的架构也非常的热门,struts主要分为两个版本,其实控制层架构的出现主要是将Servlet层进行剥离,通过架构来将请求的DispatcherServlet进行处理,且Struts是基于类层面的,因此传递的参数也是函数之间共享的,而SpringMVC主要是通过spring的延伸,基于restful对接口进行定义,各个函数之间没有硬性的关联,且通过modelandviews将后台的处理结果和结果集数据返回到前端,因此springmvc更为简单、轻便。在对本系统的架构的搭建中采用了目前最为流行的技术之一SSM,SSM主要技术分为三块,Springmvc、Spring、Mybatis。在此技术架构中Spring作为底层的基础性架构主要是对别的架构进行集成,通过利用Spring对beans的重新定义,采用Spring的优势Aop和IOC对代码进行重新的设计,利用Spring可在项目中采用注解的形式进行引用和注入,让代码更为简单;Mybatis则为dao层的数据库处理架构,Mybatis优势在于将Java的代码和SQL的语句文件进行分离,且通过xml的标签的形式对SQL可进行自动化的组件;springmvc作为控制层的架构,主要是对一些请求的url的路径以及对应的处理函数进行定义,可在控制层对一些权限的拦截以及一些上层的判断等进行处理,控制层不对具体的业务进行编码,只负责请求中转以及结果集的返回界面等,通过采用SSM的架构搭建可让项目更为稳定
2.2 CSS样式
在jsp的设计界面中主要是通过css来对系统的样式进行调试,通常是通过Bootstrap架构来进行样式的引用,在css中通过是通过对一些边框以及一些位置设置和一些样色背景等进行定义,在css中可通过id或者是class来进行样式的固定,如果为class则采用$(‘.name’)来进行固定标识,若为class则通过$(‘#name’)来定义标识定义,在css中通过font的形式对字体的样式等进行设置,通过background的系列对一些背景图以及背景色等进行设置,可通过margin和padding等对内边距和外边距等进行设置,css中对div的边框的的固定位置等进行设置,有漂浮框或者固定的格式等对样式进行设置,在css中有各种各样的形式,都通过一些架构等进行引入的嵌入,通过对css的使用,让用户的交互的体验更好,且在jsp中通过也是通过js对样式进行动态化的处理显示。。
2.3 IDEA编辑器
在现在的java的编码中有很多的编辑器的软件,从最开始的MyEclipse,到中期的Eclipse,以及现在的IDEA等都在逐步的进行优化,在此系统开发中主要是对一些jar包的管理和引用以及对一些第三方的插件的集成,对一些部署时的默认设置,以及热部署的编译等,从后来出现的maven,导致的编辑器的格局在发生着变化,maven中主要是对jar包的管理,而IDEA对maven的集成非常的简单,可通过对maven项目进行一键式的设置,且maven跟idea集合后可通过maven的一些指令进行包的打包或者是一些环境的设置,而MyEclipse等则基本做不到这类型的快速搭建,且在对于空间的占用上来说,idea可通过open的方式对代码直接进行打开运行,无需特定指向的workspace,空间相当于节省了一半,且idea可对历史打开项目信息以及编译文件信息进行历史存储,里面设置了很多的快捷键,可通过快捷键快速有效的进行编码。可集成第三方的一些插件比如软件的编码行的计算,以及编码的自动校正等。
在现在的java的编码中有很多的编辑器的软件,从最开始的MyEclipse,到中期的Eclipse,以及现在的IDEA等都在逐步的进行优化,在此系统开发中主要是对一些jar包的管理和引用以及对一些第三方的插件的集成,对一些部署时的默认设置,以及热部署的编译等,从后来出现的maven,导致的编辑器的格局在发生着变化,maven中主要是对jar包的管理,而IDEA对maven的集成非常的简单,可通过对maven项目进行一键式的设置,且maven跟idea集合后可通过maven的一些指令进行包的打包或者是一些环境的设置,而MyEclipse等则基本做不到这类型的快速搭建,且在对于空间的占用上来说,idea可通过open的方式对代码直接进行打开运行,无需特定指向的workspace,空间相当于节省了一半,且idea可对历史打开项目信息以及编译文件信息进行历史存储,里面设置了很多的快捷键,可通过快捷键快速有效的进行编码。可集成第三方的一些插件比如软件的编码行的计算,以及编码的自动校正等。
2.4 Java开发语言
Java可以说是当前编码中最为流行的计算机语言,这类语言可在跨平台的编写和部署中随意的切换适用,因此流通性较强,简单来说Java的优势特点为语言简单、基于面向对象设计、可支撑分布式以及socket的编程。在java编码中由于开发开源的性质,因此Java会有很多的第三方的类库,在类库中可包含很多的一些算法以及一些架构的导入依赖,可通过maven的形式进行jar的引入,帮助开发者减少很多的固定编码的时间。Java所对应拥有的架构也非常的多例如SpringMVC、Hibernate、Mybatis、Spring、HadooP等。在java的编辑器中也有很多IDE,例如eclipse或者是IntelliJ IDEA等,现在的编码工具都非常的智能化,都可通过JVM或者是内存调优的形式来达到高性能编译效果。
Java语言目前在web系统、游戏和接口集成方面非常流行。许多现代开发和编码技术主要使用Java。Java语言的优势主要是开源,这导致了语言和体系结构类的快速增长。Java体系结构从JSP和Servlet扩展到SSH,以及中间SSM和SpringBoot。除了目前的多类型SpringCloud微服务外,Java的第一个优势是支持多个服务和线程。Java中内置的自动垃圾收集机制将增加编码空间。Integer、Boolean、String等八种基本类型使对象分类更加清晰,可以在它们之间转换。在Java中,它由变量、函数和类组成,并通过继承、实现和封装实现多式联运效果。Java语言主要是目前最流行的网页设计语言。事实上,Java与C++非常相似,但Java比C++更容易编码对象。Java取消了指针,不支持goto这个词。Java有自己的特性,封装,连续性和多态性。接口可以通过这三种功能类型实现,也可以继承父类和子类。Java语言具有很高的可移植性,并且可以在运行时在不同的环境中编译。它可以移植到硬件环境中,Java还支持多线程编码和性能执行。编译和运行Java程序必须从环境中解释源文件,从Java虚拟机运行类文件并成功执行。在系统设计中,第一步是选择开发语言。从开源软件和易于学习的角度来看,Java是首选语言。目前,网站开发的主要语言是Java、PHP和C#。从技术上讲,Java相对简单,面向对象,以基本原理封装。许多C体系结构不是开源的,初学者很难构建。虽然PHP语言也基于MVC,但它也将一些后台处理的业务代码集成到界面中,从而不容易执行二级维护。相对稳定的Java体系结构可以更具选择性,并支持多线程套接字服务。开发Java语言可以使系统更稳定。
第三章 需求分析
3.1 可行性分析
市场可行性:从简单的财务知识来看支出和收入是家庭经济的主要要素。家庭的财务管理和企业的财务是有相似之处的。如果收支不能达到平衡,支出大于收入那么这个家庭将出现负债情况。所以说作为家庭中的每一份子,我们都需要有一定的财务知识储备。在平时就要有节约意识,控制好家庭的成本预算。像以前很多人都是通过笔和纸来记账,记录每天的收入和开支情况
技术可行:此次的网站的设计主要是对自己的软件知识的一次实践测验,从开发者的角度来说首先选择的开发语言要自己想对比较熟悉,因此结合课程而言首选Java,Java首先是面向对象的开发模式,且对于平台的要求也不高,可跨平台进行部署开发,在架构中选择Spring、Mybatis,Mybatis作为半自动化orm架构,主要是可将复杂的sql进行自由设计,且对于result结果集可进行封装,对于JDBC等自动的封装进来,结合c3p0数据链接池可让系统开发更为简单。
操作可行性:在本网站的开发中首先要保证开发后的线上系统可满足实际的使用要求,首先系统要通过操作者登录的模式才可进行,且系统是基于B/S模式的因此输入浏览器url地址即可进行访问,在登录时要对用户的安全性以及用户所对应的角色进行分析,确保登录后不同的人员所对应的界面菜单也不同。
3.2 功能分析
在系统的管理员端可进行财务收支注册家庭人员信息管理,可对人员的登录操作日志以及一些财务操作情况信息查询,可对注册的所有家庭数据进行展示,可发布对应的财务系统的内部公告信息。
图3.1系统管理员用例图
在家庭管理员端可对此家庭内部的一些设计的收支类型以及所属的家庭成员信息进行管理,可对人员进行新增,人员要绑定对应的所属家庭,可对自己的内部的家庭收支数据进行查询维护,以及对人员家庭的收支情况进行统计分析
在家庭成员端可对个人的一些财务消费和收入等信息记录,可对人员的一些备注备忘录情况进行记录,以及查询自己的个人收支数据情况
图3.3成员端系统用例图
3.3非功能需求分析
如果系统结束功能是完整的,但性能几乎没有考虑,那么它只能被认为是设计的一半。在性能方面,可分为系统安全性、系统并行性、系统数据完整性、系统用户吞吐量、系统响应效率等几个方面。每个系统都必须考虑性能因素、服务器处理效率和网络速度等问题,以及某些操作的复杂性,这些操作必须结合起来考虑,以确保系统的连续运行。通过大量的访问和数据保持完整的功能和效率。软件需求分析的一个重要部分是从多维角度分析系统性能。在性能分析中,必须充分考虑几个不受控制的因素,如服务器故障数据备份问题和系统安全性在外部攻击时的问题。在系统中,交互式响应主要反映在数据处理效率上,如果初始数据量小,可以快速处理。随着数据在以后阶段积累,这降低了在某些查询模糊的表和一些相关的多表查询中查询数据的效率。因此,可以添加一些Redis缓存或索引机制来处理。在数据安全方面,每个授权操作都必须检查用户是否登录以及用户角色是否匹配。密码和其他数据必须加密,以确保数据安全。
第四章 总体模块设计
4.1 功能设计
通过此系统的设计主要模块有主要包含家庭成员管理、家庭管理、收支类型定义、记录收入和支出、可视化统计数据等。如图4.1所示:
图4.1系统模块总图
收支家庭注册信息图如图4.2所示。
图4.2 收支家庭注册信息图
家庭中的记录个人收支模块如图4.3 所示。
图4.3 家庭中的记录个人收支模块
家庭个人单位记录支出模块图如图4.4 所示。
图4.4 家庭个人单位记录支出图
系统中的个人所属家庭关联模块图如图4.5 所示。
图4.5 家庭关联所属人员模块图
人员记录自己的专属备忘图如图4.6 所示。
图4.6 人员记录自己的专属备忘图
该家庭财务账单管理模块如图4.7 所示。
图4.7 家庭财务账单管理模块图
该收支可视化模块图如图4.8 所示。
图4.8 收支可视化模块图
该家庭账号管理管理模块如图4.9 所示。
图4.9 家庭账号管理管理模块图
4.2 数据库设计
设置注册家庭实体如图4.10所示。
图4.10 家庭单个分支实体图
单个家庭内部的关联家人如图4.11所示。
图4.11 家庭关联家人实体图
家人的收入进账如图4.12所示。
图4.12 家人收入进账实体图
家人的购买花销支出图如图4.13所示。
图4.13 家人购买支出花销实体图
财务消息实体图如图4.14所示。
图4.14 财务消息实体图
个人自己的备忘录如图4.15所示。
图4.15 个人自己的备忘录实体图
在数据库的设计中主要是通过对模块的分析映射到底层的储存表设计,在表的设计中通常是先对E-R图进行设计,通过图中的1对m以及n对m则可以对表的主外键以及多对多的关联表进行设计,在表中需要对存储模块中的每个字段进行设计,保证字段的名称、字段的类型以及所属的长度等限制,每个字段名不可重复,且对不同的存储值的类型要进行定义,在存储表中每个表都需要定义主键id,通常可采用int自增或者uuid的形式进行存储定义。
图4.2系统E-R总图
表4.1 家庭专属财务分类表
内置字段 | 界面描述 | 内置限制 | 主键标定 |
rendinsid | 专属主键 | int(12) | int叠加 |
rendinsne | 专属类型值 | varchar(32) | |
rendinsstate | 专属开启 | int(12) | 标识0,1 |
rendinsdesc | 专属介绍 | varchar(30) | |
Rendinsfmid | 专属家庭 | int(12) | 外键 |
表4.2为家庭家属个人信息。
表4.2 家庭家属个人信息表
内置字段 | 界面描述 | 内置限制 | 主键标定 |
zhenbaoid | 家属个人id | int(12) | int叠加 |
zhenbaoname | 家属账号 | varchar(32) | |
zhenbaopwd | 家属个人密码 | varchar(80) | |
famtyid | 家属个人家庭 | int(12) | 外键 |
zhenbaobs | 家属个人状态 | int(2) | 标识0,1 |
zhenbaoemail | 家属个人邮箱 | varchar(32) |
表4.3为家人单个人员数据记录。
表4.3家人单个人员数据记录表
内置字段 | 界面描述 | 内置限制 | 主键标定 |
jaiyouid | 单人挣钱id | int(12) | int叠加 |
rendinsid | 所属家庭 | int(3) | 外键 |
mreyerid | 单人id | int(12) | 外键 |
jaiyou | 单人挣钱额度 | double | 必须数字 |
jaiyouriqi | 单人挣钱日期 | Riqi | Yyyy-mm-dd |
shomain | 单人挣钱说明 | varchar(60) |
表4.4为家庭个人花销支出情况。
表4.4家人个人花销支出表
内置字段 | 界面描述 | 内置限制 | 主键标定 |
Ainisid | 定额走向id | int(12) | int叠加 |
rendinsid | 所属家庭 | int(3) | 外键 |
memerid | 家属个人id | int(12) | 外键 |
Ainis | 定额走向额度 | double | 必须数字 |
Expeessriqi | 定额走向日期 | Riqi | Yyyy-mm-dd |
Ainismn | 定额走向说明 | varchar(60) |
表4.5为系统财务内部公开消息信息。
表4.5系统财务内部公开信息表
内置字段 | 界面描述 | 内置限制 | 主键标定 |
neixaoid | 内部公开主键 | int(12) | int叠加 |
neixaotilte | 内部公开目录 | varchar(70) | |
neixaoRiqi | 内部公开日期 | Riqi | Yyyy-mm-dd |
Neixaomeg | 内部公开内容 | varchar(65) |
表4.6为个人提醒备忘信息。
表4.6个人提醒备忘信息表
内置字段 | 界面描述 | 内置限制 | 主键标定 |
tibeiid | 提醒备录编号 | int(12) | int叠加 |
tibeicontent | 提醒备录内容 | varchar(60) | |
tibeiRiqi | 提醒备录日期 | Riqi | Yyyy-mm-dd |
mreyerid | 提醒备录人员 | int(12) | 外键 |
第五章 系统实现
5.1 用户登录实现
在本系统中人员输入自己的登录的账号信息和对应的密码,通过submit按钮进行封装的formdata数据的提交,在action中匹配到对应的/user/login的数据信息,通过userlogin的封装将参数进行接受,然后通过securityutils对shiro中的对象进行获取,在shiroutis中通过对userservice中的findbyname的调用,查询是否有对应的人员信息匹配,若查询到user结果则存储到session中,在根据对应的人员的roles进行人员的不同界面的跳转。在如图5.1所示。
图5.1 用户登录界面
5.2 家庭管理实现
在后台端可通过showdatalist对所有的家庭注册数据进行展示,可通过querybydatapage进行数据的分页检索数据操作,通过service层调用mapper层对所有的数据信息进行limit分层,然后通过底层的SQL语句信息进行执行调用,通过foreach将从后台返回得数据进行展示,如图5.2所示。
图5.2 会员新增界面
5.3系统消息发布实现
在后台端可通过shownewspage对所有的发布的消息数据进行展示,可通过querybydatapage进行数据的分页检索数据操作,通过service层调用mapper层对所有的数据信息进行limit分层,然后通过底层的SQL语句信息进行执行调用,通过foreach将从后台返回得数据进行展示,添加数据时,需要通过输入和输入界面中的按钮进行切换,这些按钮包含一个数据输入字段和相应的选择器,可以用CSS样式设计。相应的输入字段可以绑定到相应的事件处理,并且输入字段的类型可以受到Bootstrap中某些类型的限制。输入数据后,您可以使用按钮启动传输事件,然后以POST格式发送接收到的数据值,使用后端控制控制器处理请求,通过调用较低的DAO级别将数据保存在添加事务中,并运行SQL将数据插入值中。,如图5.3所示。
图5.3 用户会员列表界面
5.4新增人员支出实现
在新增人员的支出数据新增时,首先通过button的点击获取到对应的跳转的路径/add/page,通过dispatcherServlet的路由指向进入到新增jsp界面,在界面中包含对应的输入框的信息,后台控制层主要是对数据进行dao层的传输,通过mapper层对adddatavo函数信息进行调用,然后执行add的新增SQL保存成果。
5.5新增人员收入实现
对人员的收入进行记录时,可通过add收入进行新增操作,可通过对输入金额信息以及选择类型信息和备注信息进行insert保存,添加数据时,需要通过输入和输入界面中的按钮进行切换,这些按钮包含一个数据输入字段和相应的选择器,可以用CSS样式设计。相应的输入字段可以绑定到相应的事件处理,并且输入字段的类型可以受到Bootstrap中某些类型的限制。输入数据后,您可以使用按钮启动传输事件,然后以POST格式发送接收到的数据值,使用后端控制控制器处理请求,通过调用较低的DAO级别将数据保存在添加事务中,并运行SQL将数据插入值中。
5.5家人新增管理实现
输入家庭成员的姓名、电话、,密码等数据后,后台add.do路径接收请求,然后通过service进行调用的底层数据中转,在dao层,首先获取到nowtime作为时间记录,然后直接调用basemapper的insert进行数据插入,添加数据时,需要通过输入和输入界面中的按钮进行切换,这些按钮包含一个数据输入字段和相应的选择器,可以用CSS样式设计。相应的输入字段可以绑定到相应的事件处理,并且输入字段的类型可以受到Bootstrap中某些类型的限制。输入数据后,您可以使用按钮启动传输事件,然后以POST格式发送接收到的数据值,使用后端控制控制器处理请求,通过调用较低的DAO级别将数据保存在添加事务中,并运行SQL将数据插入值中。
5.6家庭收入记录实现
在后台端可通过showshourudatalist对所有的本家庭内的收入数据进行展示,可通过querybydatapage进行数据的分页检索数据操作,通过service层调用mapper层对所有的数据信息进行limit分层,然后通过底层的SQL语句信息进行执行调用,通过foreach将从后台返回得数据进行展示,如图5.6所示。
5.7家庭支出实现
在后台端可通过showzhchudatalist对所有的本家庭内的支出数据进行展示,可通过querybydatapage进行数据的分页检索数据操作,通过service层调用mapper层对所有的数据信息进行limit分层,然后通过底层的SQL语句信息进行执行调用,通过foreach将从后台返回得数据进行展示,如图5.7所示。
5.8家庭收支统计实现
在家庭的管理员端可对所有的家庭的收支数据进行饼图的可视化的展示,可通过group by对家庭收支类型数据进行分析统计
第六章 系统测试
6.1 系统测试方法
在系统的测试环节主要是是依靠对操作的全面性以及数据的完整性等进行测验,测试的数据首先要选择一些不规则的格式信息,要对界面在操作时的提醒验证以及后台对数据的格式存储验证和数据逻辑计算验证,在测试中要从使用者角度出发,既要符合实际的一些操作数据流程同时要对流程进行简化,在数据存储时要保证数据的安全性,在测试时尽量进行批量的数据导入,保证批量数据操作时的SQL查询效率,尽量保证用户体验良好,对于界面的输入框以及界面嵌入的一些js的函数等进行验证,保证数据自始至终的一致性。