家庭财务管理系统的设计与实现(Java毕业设计-Springboot)

你好我是辰兮,很高兴你能来阅读,本篇文章来和你谈谈家庭财务管理系统的设计与实现。项目基于Springboot开发,利用了Layui的前端框架和Echarts图表。很好的实现了家庭收入和开支的记录,及家庭一段时间内财务的展示。本编是设计思路阐述。



一、摘要

随着国民经济的提高,理财成为了我们必不可少的一部分,而家庭财务系统的出现恰恰就是为了解决国民理财困难,不知财政去向,不知家庭整体的经济支出等问题。理财系统不仅可以帮助每一个家庭成员记录自己的财政状况,更进一步反应了家庭的整体营收情况。了解自己当前的收入,对未来进行合理的投资十分重要。
在这里插入图片描述

  • 项目基于Springboot开发,数据库MySQL

二、系统总体需求

分享心得

(1) 从系统角色分析

在这里插入图片描述

1、 在家庭财务管理系统设计了三个角色,其中包括系统管理员,家主,普通用户
2、系统管理员拥有最高的权限可以看到系统所有家庭所有的收入情况,财务支出情况,并且设有报表进行对比统计,同时我们还应该设置查询功能,供系统的用户查询某一个阶段的详细收支状况,用图表进行统计对比,系统管理员还可以查看到本系统所有的用户的个人信息,同时可以进行家庭角色管理等,即可以适应更复杂的家庭成员组成。
3、每一个家主和普通用户都对应唯一的家庭的id,家主也可以对家庭成员进行管理等操作。
4、普通用户只能看到和记录自己的信息,财务的增删查改。用户即家庭的成员。

ps:参考思维导图,三个角色功能相似,只是家主要能管理自己家庭成员收支情况,系统管理员能看到所有家庭的收支情况,并进行管理,同时可以实现角色管理。


(2)模块需求分析

在这里插入图片描述

简单的说就是
1、收入模块和支出模块,收入支出模块要对财务进行增删改查,用表格记录。
2、主页模块和报表模块就是用Echarts图表展示,更加动态漂亮。
3、系统信息管理,系统管理员可以角色管理和信息管理,家主可以家庭信息管理。


(3)数据库的设计

在这里插入图片描述

在本家庭财务系统中一共设计了八张数据表。


根据财务模块设计了如上三张表
(1)type财务类型表,分为收入和支出。
(2)bill账单表 主要有账单标题,主键id,钱财,用户类型,备注,支付方式,记录时间等六个字段。
(3)Payway 支付方式类型表,为了符合现在消费场景,其中支付方式设计有支付宝,微信,银联,现金,其他等五种类别。


根据用户模块设计了五张表
(1)role 角色表 主要分为系统管理员,家主,用户等三个身份。
(2)Privilege表 主要分为 支出管理,支出详情,收入管理,收入与详情,统计报表,家庭成员管理,系统管理,用户官,角色管理,家庭成员信息等。
(3)roleprivilieges 主要是设计角色对应的权限。
(4)User 用户表 主要填写用户的账号密码,用户对应的角色,真实姓名等。
(5)House表,每个家庭有自己的家庭编号,这个系统适用于所有家庭。


三、模块详情分析

(1)主页模块

为了让用户更加直观的看到情况收支情况百分比,我们这里引入了Echarts图表,做了两个相关功能,第一个是引入的是饼状图,我们从数据库中取出数据,根据对应函数计算出收支的百分比,导入饼状图中显示。第二个同样的我们取出收支状况,用折线柱状图显示对应的财务状况。这样更直观和清晰的呈现给我们用户。
在这里插入图片描述

首先系统会显示出你的姓名,身份(系统管理员等),登陆时间,然后会依次显示出本月收入,本月消费,本月净收入,支出方式等。这里后台的实现逻辑是,当我们登陆的时候首先会进行判断是否存在这个用户,如果存在我们会将用户的信息分别存入session和cookie。
在这里插入图片描述
同时我们在cookie中设置了过期时间。这样的好处也是保障用户的安全。

在这里插入图片描述


(2)财务支出模块

在这里插入图片描述
我们可以根据自己的需求,按时间,按姓名,按标题,支付方式,备注,等多个模块进行查询。这里我们运用到了Mybatis的动态SQL来实现。我们的设计思路是将要查询的东西封装成对象来进行查询。

    <select id="findByWhereNoPage" resultType="com.example.cwgl.entity.Bill" parameterType="com.example.cwgl.entity.Bill">
     select *, type.name type from bill left join type on bill.typeid = type.id left join payway on paywayid = payway.id left join user on bill.userid = user.id
        <where>
            <if test="id!=null">and bill.id = #{id}</if>
            <if test="houseid!=null"> and userid in (select id from user where houseid = #{houseid})</if>
            <if test="type!=null"> and typeid = #{type}</if>
            <if test="userid!=null"> and userid = #{userid}</if>
            <if test="title!=null"> and title = #{title}</if>
            <if test="realname!=null"> and realname = #{realname}</if>
            <if test="paywayid!=null"> and paywayid = #{paywayid}</if>
            <if test="startTime!=null"> and time >= #{startTime}</if>
            <if test="endTime!=null"> and time &lt;= #{endTime}</if>
        </where>
    </select>

(3)财务收入模块

这里设计思路和支出的设计思路一样,作为系统管理员,可以看到所有家庭的所有收入情况,而作为普通用户即可看到自己的收入情况。

同样的在这个版块包括五个功能点。

1.查看收入详情。2.添加收入来源。3.删除收入。4.修改收入。5.根据条件查询
在这里插入图片描述


(4)统计报表模块

在这里插入图片描述

ECharts图表是一个商业级数据图表,它的使用我们只需要简单的学习前端相关的知识即可。


(5)系统管理模块

①、角色管理
在这里插入图片描述
关于角色管理,我们数据库设计了两张相关的表,第一个是role表,第二个是roleprivilieges表,第一个表中我们设计了三个角色,系统管理员,家主,和用户。

这一个版块只有系统管理员可以看到,系统管理员一般交付的时候我们只会设计一个,后期我们可以对我们的家庭成员角色进行修改,增加,删除等操作,来满足我们系统用户的需求。


②、用户管理

1.查询用户信息 2.更新用户信息 3.增加用户信息(并设置身份) 4.删除用户信息 5.按角色查询或者用户名查询(系统管理员)。

在这里插入图片描述

角色 功能
系统管理员 查看到所有家庭所有人的信息 ,以及增加删除修改所有人信息
家主 查看到自己家庭成员的信息 ,以及增加删除修改家庭成员信息
用户 只能查看自己的信息,以及增加删除修改自己的信息

四、 项目小结

本篇文章给大家介绍了家庭财务管理系统,从角色分析,功能需求分析,到数据库的设计,以及具体的每一个板块应该对应的功能都详细阐述,希望对大家有帮助。

引入了Echarts图表是很精心的帮助我们用户更加直观的感受和体会对比我们的消费情况。


The best investment is to invest in yourself

在这里插入图片描述

2020.05.28 记录辰兮的第69篇博客

猜你喜欢

转载自blog.csdn.net/weixin_45393094/article/details/106387225
今日推荐