找回密码
 会员注册
查看: 24|回复: 0

”省钱小能手”记账小程序的设计与实现—计算机毕业设计附源码08541

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
69864
发表于 2024-9-10 15:16:25 | 显示全部楼层 |阅读模式
摘要本论文旨在基于云开发技术开发一款名为“省钱小能手”的记账小程序,旨在帮助用户更便捷地进行个人理财管理。通过分析当前市场上记账工具的特点和存在的问题,提出利用云开发技术的记账小程序的开发方案。    本系统将采用SpringBoot框架,结合相关技术如SpringData、JPA、Thymeleaf、Bootstrap等,实现用户登录认证、权限管理、财务数据的增删改查操作等功能。该系统的设计和实现将遵循软件工程的原则和最佳实践,通过良好的代码结构和模块化设计,提高系统的可维护性和可扩展性。并且,为了保障数据的安全性,将采取相应的安全措施,如数据加密、访问控制等。本文首先介绍了背景和意义,然后探讨了云开发技术在记账小程序中的应用方法,接着阐述了程序的设计与实现过程,最后通过实际案例展示了“省钱小能手”记账小程序的功能和优势。通过本文的研究,将为用户提供一个方便、高效、可靠的记账工具,有助于提升个人理财能力和管理。关键词:SpringBoot框架;“省钱小能手”记账小程序;MySQLDesignandImplementationofa"MoneySavingExpert"AccountingMiniProgramAbstractThispaperaimstodevelopabookkeepingminiprogramcalled"MoneySavingLittleExpert"basedonclouddevelopmenttechnology,aimingtohelpusersmoreconvenientlycarryoutpersonalfinancialmanagement.Byanalyzingthecharacteristicsandexistingproblemsofaccountingtoolsinthecurrentmarket,adevelopmentplanforaccountingminiprogramsusingclouddevelopmenttechnologyisproposed.ThissystemwilladopttheSpringBootframework,combinedwithrelevanttechnologiessuchasSpringData,JPA,Thymeneaf,Bootstrap,etc.,toachievefunctionssuchasuserloginauthentication,permissionmanagement,andoperationsforadding,deleting,modifying,andqueryingfinancialdata.Thedesignandimplementationofthissystemwillfollowtheprinciplesandbestpracticesofsoftwareengineering,andimprovethemaintainabilityandscalabilityofthesystemthroughgoodcodestructureandmodulardesign.Andinordertoensurethesecurityofdata,correspondingsecuritymeasureswillbetaken,suchasdataencryption,accesscontrol,etc.Thisarticlefirstintroducesthebackgroundandsignificance,thenexplorestheapplicationmethodsofclouddevelopmenttechnologyinaccountingminiprograms,thenelaboratesonthedesignandimplementationprocessoftheprogram,andfinallydemonstratesthefunctionsandadvantagesofthe"moneysavinglittleexpert"accountingminiprogramthroughpracticalcases.Throughtheresearchinthisarticle,wewillprovideuserswithaconvenient,efficient,andreliableaccountingtool,whichwillhelpimprovetheirpersonalfinancialcapabilitiesandmanagement.Keywords:SpringBootframework;"Moneysavinglittleexpert"accountingminiprogram;MySQL目录摘要Abstract1绪论1.1研究背景与意义1.2国内外研究现状1.3论文结构与章节安排1.4 开发环境、工具及技术1.5 开发工具简介1.6 开发技术简介2“省钱小能手”记账小程序需求分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3操作可行性分析2.2系统性能需求分析2.3系统功能需求分析2.4非功能性需求分析2.5 系统角色用例分析2.6 业务流程分析3“省钱小能手”记账小程序概要设计3.1系统功能结构设计3.2系统数据库设计3.2.1数据库概念结构设计3.2.2数据库逻辑结构设计4 “省钱小能手”记账小程序详细设计与实现4.1普通用户功能模块4.1.1登录界面4.1.2用户注册界面4.1.3用户登录界面4.1.4 理财资讯界面4.1.5 记账信息管理界面4.1.6 记账月份管理界面4.2管理员功能模块4.2.1登录界面4.2.2系统用户界面4.2.3 记账类型管理界面4.2.4记账信息管理界面4.2.5系统管理界面4.2.6通知公告管理界面5系统的测试5.1测试的目的5.2系统测试用例5.3系统测试结果6结论参考文献致谢1绪论研究背景与意义随着互联网的快速发展,移动互联网用户数量不断增加,人们对于实用、便捷的移动应用程序的需求也日益增长。记账是每个家庭都需要进行的一项重要工作,然而传统的记账方式往往繁琐、冗长,难以满足现代人群快节奏、高效率的生活需求。因此,利用云开发技术开发一款高效、便捷的记账小程序,成为了当前的研究热点。云开发是一种基于云平台的开发方式,它将应用程序的前后端开发、数据管理、存储与服务等技术进行整合,使开发人员能够更快速、便捷地开发出功能完善的应用程序。云开发具有高效、灵活、安全等特点,能够为记账小程序的开发提供技术支持。记账小程序是一种轻量级的应用程序,能够帮助用户记录收支情况,并提供数据分析、报表生成等功能。通过记账小程序,用户可以随时随地查看自己的财务状况,了解自己的消费情况,合理规划自己的经济生活。传统的记账方式繁琐、不灵活,很难满足人们快节奏的生活需求。而记账小程序能够提供便捷、高效的记账方式,满足人们对于记账的需求。通过记账小程序,用户可以清晰地了解自己的财务状况,并根据实际情况进行合理的理财规划,避免过度消费和浪费。同时通过开发记账小程序,能够更好地推动云开发技术的应用和推广,提高开发人员对于云开发的认知和使用水平。云开发技术的应用可以为记账小程序提供更多的功能扩展和发展空间,使得记账变得更加智能化。通过对用户的数据进行分析和挖掘,记账小程序能够更好地帮助用户理解自己的财务状况,并提供合理的理财建议。1.2国内外研究现状近年来,随着移动互联网的快速发展,手机应用程序已经成为人们日常生活中不可或缺的一部分。其中,记账类手机应用程序越来越受到人们的关注和喜爱。记账类应用程序不仅能够帮助人们记录和管理自己的收支情况,还可以提供数据统计和分析功能帮助用户更好地理解自己的消费习惯。然而,目前市面上的一些记账类应用程序存在一些问题,比如界面不友好、功能简单、数据存储不可靠等等,这些问题都给用户带来了很大的不便。与此同时,云计算技术的快速发展为应用程序提供了更强大的功能和更可靠的数据存储。云开发是基于云计算技术的一种新的软件开发模式,它充分利用云计算资源,为开发者提供了更快速、更灵活、更安全的应用程序开发环境。国内外已经有一些研究探索了基于云开发的记账类应用程序。例如,美国的“Wealthsimple”、英国的“MoneyDashboard”等。这些应用程序都采用了云开发技术,拥有用户友好的界面设计和功能强大的数据分析和统计功能。通过在云端进行数据存储和计算,这些应用程序可以帮助用户更好地管理个人资产和理财情况,实现财务自由。然而,目前仍然缺少一个基于云开发的省钱记账小程序,该小程序应具备以下特点:轻量化、快速响应、用户友好、数据安全可靠、功能全面等。因此,在国内开展一项基于云开发的省钱记账小程序的研究是非常有必要的。本研究的省钱记账小程序不仅可以帮助用户更好地记录和管理个人财务状况,还可以通过数据统计和分析功能帮助用户更好地理解自己的消费习惯,实现财务自由。同时,该小程序采用了云开发技术,具备数据安全可靠的优势,可以有效防止用户数据的丢失和泄露。此外,该小程序还具备多平台的支持,方便用户在不同设备上使用。因此,本研究的省钱记账小程序对于促进用户财务管理意识的提升和提高个人财务管理能力具有重要的意义。1.3论文结构与章节安排论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:第一章:引言。第一章主要介绍了课题研究的背景和意义,系统开发的国内外研究现状和本文的研究内容与主要工作,以及相关开发技术与工具介绍。第二章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。第三章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。第四章:系统实现。主要介绍了系统框架搭建、系统界面的实现。第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试第六章:总结。1.4 开发环境、工具及技术操作系统:Windows开发工具:IDE(集成开发环境)Eclipse、Navicat后端开发技术:SpringBoot框架:用于快速构建后端应用程序,提供了自动配置和约定优于配置的特性。Java编程语言:作为后端主要编程语言,用于实现业务逻辑和数据处理。MySQL数据库:用于存储和管理平台的数据。前端开发技术:微信小程序:用微信开发者工具来实现前端页面设计。云开发:使用云开发可以构建完整的小程序/小游戏、H5、Web、移动App等应用。1.5 开发工具简介Eclipse:Eclipse是一款跨平台的开源集成开发环境,作为一个框架平台,它具有悠久的历史和丰富的免费插件资源,使得开发者可以根据自己的需求进行灵活的定制。对于学习Java语言的学生来说,Eclipse是一款常用的开发工具,因为其易用性和广泛应用而积累了丰富的使用经验。Navicat:Navicat是一款著名的跨平台数据库管理软件,支持连接和管理多种数据库,如MySQL、SQLServer、Oracle等。它提供了友好的用户界面和强大的功能,包括数据库设计、数据导入导出、SQL编辑和执行、数据备份和同步等常见的数据库管理操作。此外,Navicat还提供了一些高级功能,如数据可视化、报表生成和数据模型化等。通过Navicat,用户可以方便地在不同数据库之间进行数据传输和交换,实现业务之间的数据共享和互通。同时,Navicat支持多用户协同工作,通过权限设置和备份策略提高数据的安全性和可靠性。因此,Navicat在软件开发、数据分析和业务运营等领域得到了广泛应用。1.6 开发技术简介SpringBoot框架:Spring框架是一个由SpringBoot公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseSpringBootBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。Java编程语言:Java是一种通用的高级编程语言,具有跨平台性和面向对象的特点。在“省钱小能手”记账小程序的开发中,Java作为后端主要编程语言,用于实现业务逻辑和数据处理。B/S体系结构:B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。云开发:云开发(CloudBase)是云端一体化的后端云服务,采用serverless架构,免去了移动应用构建中繁琐的服务器搭建和运维。同时云开发提供的静态托管、命令行工具(CLI)、FlutterSDK等能力降低了应用开发的门槛。使用云开发可以构建完整的小程序/小游戏、H5、Web、移动App等应用。JavaScript:JavaScript用于实现网页的交互和动态效果。这些前端技术在“省钱小能手”记账小程序的开发中扮演着重要的角色。MySQL数据库:MySQL是一种常用的关系型数据库管理系统,被广泛用于存储和管理数据。在“省钱小能手”记账小程序的开发中,MySQL用于存储用户信息、账单数据以及其他相关数据。2“省钱小能手”记账小程序需求分析系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。2.1可行性分析系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。2.1.1技术可行性分析“省钱小能手”记账小程序设计与实现是一个基于移动端的记账信息小程序,以云开发技术为基础,开发一款名为“省钱记账”的小程序,旨在帮助用户轻松记录支出与收入,从而更好地掌握个人财务情况。使用云开发可以充分利用云端的存储、计算和数据库等资源,实现用户数据的安全存储和实时同步,同时小程序具有跨平台性和便捷的使用体验,能够更好地满足用户需求。因此技术方面是可行的。2.1.2经济可行性分析针对“省钱小能手”记账小程序在市场上的经济前景,我们进行了初步的市场调研和分析,发现记账类应用在现代社会已经成为必备工具之一,尤其是在年轻人和家庭本月收支紧平的情况下更加受欢迎。因此,“省钱小能手”记账小程序有很大机会吸引大量用户。借助云开发技术,我们可以降低开发成本,并且可根据用户量动态调整成本,进一步提高投资回报率。2.1.3操作可行性分析当下网络新时代,微信小程序已经得到了普及,多数人对微信小程序都比较的熟悉,知道如何使用它,当然也存在对微信小程序比较陌生的这一群体,也需要对其进行考虑。在进行“省钱小能手”记账小程序页面的设计的时候,考虑到使用人群,可能也存在对微信小程序比较陌生的人,所以,在页面的设计方面,设计的很是简单、简洁,布局明了,色调明朗,让无论是对微信小程序陌生还是熟悉的使用者,都可以使用自如,这也说明了该程序的操作方面非常可行。2.2系统性能需求分析“省钱小能手”记账小程序的性能性需求分析主要是分析本系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下2.1表格中:表2.1“省钱小能手”记账小程序非功能需求表安全性主要指“省钱小能手”记账小程序数据库的安装,数据库的使用和密码的设定必须合乎规范。可靠性可靠性是指“省钱小能手”记账小程序能够按照用户的指示进行操作,经过测试,可靠性90%以上。性能性能是影响“省钱小能手”记账小程序占据市场的必要条件,所以性能最好要佳才好。可扩展性比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。易用性用户只要跟着“省钱小能手”记账小程序的页面展示内容进行操作,就可以了。可维护性“省钱小能手”记账小程序开发的可维护性是非常重要的,经过测试,可维护性没有问题2.3系统功能需求分析本“省钱小能手”记账小程序的设计主要是针对普通用户和管理员。其中普通用户的功能有注册登录、首页、记账信息、理财资讯、我的基本信息、收藏、记账月份、记账记录等功能。管理员功能有登录、系统用户、记账类型管理、记账信息管理、记账月份管理、记账记录管理、系统管理、通知公告管理、资源管理等功能。“省钱小能手”记账小程序为个人提供一个高效、安全的账目管理平台。普通用户:注册登录:用户注册并登录系统,可对个人信息进行增删改查,比如个人资料、头像和密码修改。    (2)通知公告:当用户“通知公告”这一菜单时,可查看管理员发布的系统公告内容,可在公告下面进行评论。    (3)理财资讯:当普通用户点击“理财资讯”这一菜单时,可查看关于金融的相关资讯或者是新闻。    (4)记账信息:当用户点击“记账信息”这一菜单时,可查看系统内所有的记账详细信息,包括:物品名称、物品图片、记账类型、发布日期、物品详情,可进行点赞、评论、收藏操作。    (5)我的:普通用户在前台点击“我的”可以对用户的基本信息、收藏、记账月份、记账记录等信息进行管理。管理员:(1)登录:管理员的账号是在数据列表中直接设置生成的,不需要进行注册,可以直接输入账号密码登录。同时可对管理员资料进行增删改查。    (2)系统用户:当管理员点击“系统用户”这一菜单时,可查看普通用户和管理员这两个子菜单,如需添加新的用户,点击右侧”添加“按钮,上传头像、填写账号、密码、昵称、邮箱,选择状态,输入用户姓名、用户性别、联系电话,点击”提交“按钮进行添加。同时可对系统用户进行增删改查操作。(3)记账类型管理:当管理员点击”记账类型管理“这一菜单时,可查看记账类型列表和记账类型添加这两个子菜单,可用户记账类型进行增删改查。    (4)记账信息管理:当管理员点击”记账信息管理“这一菜单时,可查看记账信息列表和记账信息添加这两个子菜单,如需添加新的记账信息,点击”记账信息添加“这一子菜单,输入记账信息,点击”提交“按钮进行添加。(5)记账月份管理:当管理员点击”记账月份管理“这一菜单时,可查看记账月份信息列表,如需添加新的记账月份,点击”记账月份添加“这一子菜单,输入记账月份信息,点击”提交“按钮进行添加。    (6)记账记录管理:当管理员点击”记账记录管理“这一菜单时,可查看记账记录列表这个子菜单,可对用户的记账信息情况进行查看。    (7)系统管理:当管理员点击”系统管理“这一菜单时,可进行系统首页轮播图的设置和修改。    (8)通知公告管理:当管理员点击”通知公告管理“这一菜单时,可进行系统首页通知公告的修改、添加和删除。    (9)资源管理:当管理员点击”资源管理“这一菜单时,可查看理财资讯和资讯分类这两个子菜单,管理员可发布前台首页资讯信息。2.4非功能性需求分析系统的非功能需求方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:(1)安全性:系统的安全问题是开发者首先要考虑的,如果系统存在安全隐患,可能使得用户个人信息被泄露,给用户带来困扰,造成损失。(2)储存性:因为用户使用的关于“省钱小能手”记账小程序,用户多,而且登录后要查询各种个人理财管理信息,那就需要一个强大的数据库来进行数据的存储,对数据库的要求是非常严格的,本系统选用的是MYSQL数据库,MYSQL的运行速度很快,执行命令的速度也非常快,而且体积小。 (3)易学性:系统的开发面向对象学历不尽相同,所有在开发的时候要考虑系统操作应该简单,不需要进行任何学习、培训,只能上网的用户就可以操作。(5)稳定性:系统在运行方面要很稳定,系统的界面、字体要清楚,没有失真现象,给用户以良好的体验。(6)可拓展性:本“省钱小能手”记账小程序的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。2.5 系统角色用例分析本“省钱小能手”记账小程序分为两种用户,前台用户和后台管理员,前台用户浏览系统资讯公告信息,查看和添加记账信息,对记账记录进行管理。管理员对系统用户、记账类型管理、记账信息管理、记账月份管理、记账记录管理、系统管理、通知公告管理、资源管理几大模块进行管理。“省钱小能手”记账小程序的前台普通用户用例图如图2-1所示。图2-1“省钱小能手”记账小程序普通用户用例图“省钱小能手”记账小程序后台管理员用例图如图2-2所示。图2-2“省钱小能手”记账小程序后台管理员用例图2.6 业务流程分析对系统的数据流进行分析,系统的使用者分为二类,前端用户和后台管理员。管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。开发“省钱小能手”记账小程序最主要的一个目的就是实现用户在记账月份模块添加记账记录,因此系统的业务流程如下图所示。图2-3系统业务流程图3“省钱小能手”记账小程序概要设计3.1系统功能结构设计系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计“省钱小能手”记账小程序的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是该“省钱小能手”记账小程序的结构设计图,直观明了的可以看出本项目程序的功能。“省钱小能手”记账小程序功能结构图如图3-1所示。图3-1 “省钱小能手”记账小程序功能结构图3.2系统数据库设计数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。3.2.1数据库概念结构设计在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个“省钱小能手”记账小程序中主要的数据库表总E-R实体关系图。图3-2 系统总E-R关系图3.2.2数据库逻辑结构设计在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本“省钱小能手”记账小程序的主要的数据库表如下:表access_token(登陆访问时长)编号名称数据类型长度小数位允许空值主键默认值说明1token_idint100NY临时访问牌ID2tokenvarchar640YN临时访问牌3infotext655350YN4maxageint100NN2最大寿命:默认2小时5create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:6update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:7user_idint100NN0用户编号:表accounting_information(记账信息)编号名称数据类型长度小数位允许空值主键默认值说明1accounting_information_idint100NY记账信息ID2item_namevarchar640YN物品名称3item_imagesvarchar2550YN物品图片4accounting_typevarchar640YN记账类型5release_datedate100YN发布日期6item_detailstext655350YN物品详情7hitsint100NN0点击数8praise_lenint100NN0点赞数9create_timedatetime190NNCURRENT_TIMESTAMP创建时间10update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表accounting_records(记账记录)编号名称数据类型长度小数位允许空值主键默认值说明1accounting_records_idint100NY记账记录ID2user_accountint100YN0用户账号3user_namevarchar640YN用户姓名4user_phone_numbervarchar640YN用户电话5bookkeeping_monthvarchar640YN记账月份6bookkeeping_timedate100YN记账时间7month_numbervarchar640YN月份编号8accounting_typevarchar640YN记账类型9bookkeeping_amountint100YN0记账金额10other_remarkstext655350YN其他备注11create_timedatetime190NNCURRENT_TIMESTAMP创建时间12update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表accounting_type(记账类型)编号名称数据类型长度小数位允许空值主键默认值说明1accounting_type_idint100NY记账类型ID2accounting_typevarchar640YN记账类型3create_timedatetime190NNCURRENT_TIMESTAMP创建时间4update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表article(文章:用于内容管理系统的文章)编号名称数据类型长度小数位允许空值主键默认值说明1article_idmediumint80NY文章id:[0,8388607]2titlevarchar1250NY:[0,125]用于文章和html的title标签中3typevarchar640NN0文章分类:[0,1000]用来搜索指定类型的文章4hitsint100NN0点击数:[0,1000000000]访问这篇文章的人次5praise_lenint100NN0点赞数6create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:7update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:8sourcevarchar2550YN来源:[0,255]文章的出处9urlvarchar2550YN来源地址:[0,255]用于跳转到发布该文章的网站10tagvarchar2550YN标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开11contentlongtext21474836470YN正文:文章的主体内容12imgvarchar2550YN封面图13descriptiontext655350YN文章描述表article_type(文章分类)编号名称数据类型长度小数位允许空值主键默认值说明1type_idsmallint50NY分类ID:[0,10000]2displaysmallint50NN100显示顺序:[0,1000]决定分类显示的先后顺序3namevarchar160NN分类名称:[2,16]4father_idsmallint50NN0上级分类ID:[0,32767]5descriptionvarchar2550YN描述:[0,255]描述该分类的作用6icontext655350YN分类图标:7urlvarchar2550YN外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置8create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表auth(用户权限管理)编号名称数据类型长度小数位允许空值主键默认值说明1auth_idint100NY授权ID:2user_groupvarchar640YN用户组:3mod_namevarchar640YN模块名:4table_namevarchar640YN表名:5page_titlevarchar2550YN页面:6pathvarchar2550YN路由路径:7positionvarchar320YN位置:8modevarchar320NN_blank跳转方式:9addtinyint30NN1是否可增加:10deltinyint30NN1是否可删除:11settinyint30NN1是否可修改:12gettinyint30NN1是否可查看:13field_addtext655350YN添加字段:14field_settext655350YN修改字段:15field_gettext655350YN查询字段:16table_nav_namevarchar5000YN跨表导航名称:17table_navvarchar5000YN跨表导航:18optiontext655350YN配置:19create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:20update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表bookkeeping_month(记账月份)编号名称数据类型长度小数位允许空值主键默认值说明1bookkeeping_month_idint100NY记账月份ID2user_accountint100YN0用户账号3user_namevarchar640YN用户姓名4user_phone_numbervarchar640YN用户电话5bookkeeping_monthvarchar640YN记账月份6month_numbervarchar640YN月份编号7consumption_amountint100YN0消费金额8create_timedatetime190NNCURRENT_TIMESTAMP创建时间9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表collect(收藏)编号名称数据类型长度小数位允许空值主键默认值说明1collect_idint100NY收藏ID:2user_idint100NN0收藏人ID:3source_tablevarchar2550YN来源表:4source_fieldvarchar2550YN来源字段:5source_idint100NN0来源ID:6titlevarchar2550YN:7imgvarchar2550YN封面:8create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表comment(评论)编号名称数据类型长度小数位允许空值主键默认值说明1comment_idint100NY评论ID:2user_idint100NN0评论人ID:3reply_to_idint100NN0回复评论ID:空为04contentlongtext21474836470YN内容:5nicknamevarchar2550YN昵称:6avatarvarchar2550YN头像地址:[0,255]7create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:8update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:9source_tablevarchar2550YN来源表:10source_fieldvarchar2550YN来源字段:11source_idint100NN0来源ID:表hits(用户点击)编号名称数据类型长度小数位允许空值主键默认值说明1hits_idint100NY点赞ID:2user_idint100NN0点赞人:3create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:4update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:5source_tablevarchar2550YN来源表:6source_fieldvarchar2550YN来源字段:7source_idint100NN0来源ID:表notice(公告)编号名称数据类型长度小数位允许空值主键默认值说明1notice_idmediumint80NY公告id:2titlevarchar1250NN:3contentlongtext21474836470YN正文:4create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:5update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表praise(点赞)编号名称数据类型长度小数位允许空值主键默认值说明1praise_idint100NY点赞ID:2user_idint100NN0点赞人:3create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:4update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:5source_tablevarchar2550YN来源表:6source_fieldvarchar2550YN来源字段:7source_idint100NN0来源ID:8statusbit10NN1点赞状态:1为点赞,0已取消表registered_users(注册用户)编号名称数据类型长度小数位允许空值主键默认值说明1registered_users_idint100NY注册用户ID2user_namevarchar640YN用户姓名3user_gendervarchar640YN用户性别4user_ageint100YN0用户年龄5user_phone_numbervarchar160YN用户电话6examine_statevarchar160NN已通过审核状态7user_idint100NN0用户ID8create_timedatetime190NNCURRENT_TIMESTAMP创建时间9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表slides(轮播图)编号名称数据类型长度小数位允许空值主键默认值说明1slides_idint100NY轮播图ID:2titlevarchar640YN:3contentvarchar2550YN内容:4urlvarchar2550YN链接:5imgvarchar2550YN轮播图:6hitsint100NN0点击量:7create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:8update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表upload(文件上传)编号名称数据类型长度小数位允许空值主键默认值说明1upload_idint100NY上传ID2namevarchar640YN文件名3pathvarchar2550YN访问路径4filevarchar2550YN文件路径5displayvarchar2550YN显示顺序6father_idint100YN0父级ID7dirvarchar2550YN文件夹8typevarchar320YN文件类型表user(用户账户:用于保存用户登录信息)编号名称数据类型长度小数位允许空值主键默认值说明1user_idmediumint80NY用户ID:[0,8388607]用户获取其他与用户相关的数据2statesmallint50NN1账户状态:[0,10](1可用|2异常|3已冻结|4已注销)3user_groupvarchar320YN所在用户组:[0,32767]决定用户身份和权限4login_timetimestamp190NNCURRENT_TIMESTAMP上次登录时间:5phonevarchar110YN手机号码:[0,11]用户的手机号码,用于找回密码时或登录时6phone_statesmallint50NN0手机认证:[0,1](0未认证|1审核中|2已认证)7usernamevarchar160NN用户名:[0,16]用户登录时所用的账户名称8nicknamevarchar160YN昵称:[0,16]9passwordvarchar640NN密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成10emailvarchar640YN邮箱:[0,64]用户的邮箱,用于找回密码时或登录时11email_statesmallint50NN0邮箱认证:[0,1](0未认证|1审核中|2已认证)12avatarvarchar2550YN头像地址:[0,255]13open_idvarchar2550YN针对获取用户信息4create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:15vip_levelvarchar2550YN会员等级16vip_discountdouble112YN0.00会员折扣表user_group(用户组:用于用户前端身份和鉴权)编号名称数据类型长度小数位允许空值主键默认值说明1group_idmediumint80NY用户组ID:[0,8388607]2displaysmallint50NN100显示顺序:[0,1000]3namevarchar160NN名称:[0,16]4descriptionvarchar2550YN描述:[0,255]描述该用户组的特点或权限范围5source_tablevarchar2550YN来源表:6source_fieldvarchar2550YN来源字段:7source_idint100NN0来源ID:8registersmallint50YN0注册位置:9create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:10update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:4 “省钱小能手”记账小程序详细设计与实现4.1普通用户功能模块4.1.1登录界面当进入“省钱小能手”记账小程序的时候,首先映入眼帘的是系统的导航栏,导航栏上面是轮播图以及记账信息入口按钮,其次是理财资讯和通知公告信息,用户端首页界面如下图所示。图4-1 首页界面图4.1.2用户注册界面不是“省钱小能手”记账小程序中正式用户的是可以在线进行注册的,当用户点击“注册”按钮,填写上自己的账号+密码+确认密码+昵称等,再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可消费用户注册成功。用户注册界面如下图所示。图4.2 用户注册界面图注册关键代码如下所示。/**     *注册     *@paramuser     *@return     */    @PostMapping("register")    publicMapsignUp(@RequestBodyUseruser){        //查询用户        Mapquery=newHashMap();        Mapmap=JSON.parseObject(JSON.toJSONString(user));        query.put("username",user.getUsername());        Listlist=service.selectBaseList(service.select(query,newHashMap()));        if(list.size()>0){            returnerror(30000,"用户已存在");        }        map.put("password",service.encryption(String.valueOf(map.get("password"))));        service.insert(map);        returnsuccess(1);} 4.1.3用户登录界面在登录界面中输入用户名+密码,然后选择相应的角色,点击“登录”按钮,系统会在用户数据库表中匹配相应用户的帐户,如果用户名+密码正确,则会登录到系统中每个用户的主管理界面,否则会提示相应的信息,如果是忘记了密码,请返回登录界面。用户登录界面图如下所示。图4.3 用户登录界面图登录的逻辑代码如下所示。/**     *登录     *@paramdata     *@paramhttpServletRequest     *@return     */    @PostMapping("login")    publicMaplogin(@RequestBodyMapdata,HttpServletRequesthttpServletRequest){        log.info("[执行登录接口]");        Stringusername=data.get("username");        Stringemail=data.get("email");        Stringphone=data.get("phone");        Stringpassword=data.get("password");        ListresultList=null;        Mapmap=newHashMap();        if(username!=null&"".equals(username)==false){            map.put("username",username);            resultList=service.select(map,newHashMap()).getResultList();        }        elseif(email!=null&"".equals(email)==false){            map.put("email",email);            resultList=service.select(map,newHashMap()).getResultList();        }        elseif(phone!=null&"".equals(phone)==false){            map.put("phone",phone);            resultList=service.select(map,newHashMap()).getResultList();        }else{            returnerror(30000,"账号或密码不能为空");        }        if(resultList==null||password==null){            returnerror(30000,"账号或密码不能为空");        }        //判断是否有这个用户        if(resultList.size()groupMap=newHashMap();        groupMap.put("name",byUsername.getUserGroup());        ListgroupList=userGroupService.select(groupMap,newHashMap()).getResultList();        if(groupList.size()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-7 06:32 , Processed in 0.788469 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表