摘 要
本项目旨在开发一个基于SpringBoot框架的中草药科普网站,通过现代化的信息技术手段提升公众对中草药的认知和理解。该平台不仅提供丰富的中草药知识资源,还结合多媒体展示和互动功能,增强用户体验。普通用户可以通过注册登录系统,浏览包括中药资讯、中药信息、中药膳食和中药饮品在内的多种内容,并能对感兴趣的信息进行点赞、收藏和评论。此外,用户还能在个人中心管理自己的记录和收藏,方便日后查阅。管理员则拥有强大的后台管理系统,能够对中药分类、药用部分、中药信息、中药膳食、中药饮品等内容进行增删改查操作,确保平台内容的准确性和时效性。通过这种综合性的科普平台,我们希望不仅能提高公众对中草药的兴趣和了解,还能促进中草药文化的传承与发展。
为了实现上述目标,系统设计了详细的功能模块,以满足不同用户群体的需求。普通用户界面注重用户体验,提供了直观的导航和丰富的互动功能,使用户可以轻松获取所需信息并与其他用户交流心得。管理员界面则强调高效的内容管理和系统维护,确保平台的稳定运行和持续更新。特别是在中药信息管理、中药膳食管理和中药饮品管理方面,管理员不仅可以添加新的内容,还可以对现有信息进行修改和删除,保证数据的实时性和准确性。同时,系统还支持通知公告管理和轮播图管理,帮助管理员及时发布重要信息和宣传内容,提升用户的参与度和平台的活跃度。通过这一系列功能模块的设计与实现,我们期望构建一个集知识普及、互动体验于一体的综合性中草药科普平台,为推动中草药文化的发展贡献力量。
关键词:中草药科普网站;JAVA语言;SpringBoot框架;MYSQL数据库
Design and implementation of Chinese herbal science popularization website
This project aims to develop a popular science website of Chinese herbal medicine based on SpringBoot framework, and improve the public's cognition and understanding of Chinese herbal medicine through modern information technology means. The platform not only provides rich knowledge resources of Chinese herbal medicine, but also combines multimedia display and interactive functions to enhance user experience. Ordinary users can log in to the system through registration, browse a variety of content including Chinese medicine information, Chinese medicine information, Chinese medicine meals and Chinese medicine drinks, and can like, favorite and comment on interested information. In addition, users will be able to manage their records and collections in a personal center for easy access later. The administrator has a strong background management system, which can add, delete, modify and check the contents of traditional Chinese medicine classification, medicinal parts, traditional Chinese medicine information, traditional Chinese medicine meals, traditional Chinese medicine drinks, etc., to ensure the accuracy and timeliness of the platform content. Through this comprehensive science popularization platform, we hope to not only increase the public's interest and understanding of Chinese herbal medicine, but also promote the inheritance and development of Chinese herbal medicine culture.
In order to achieve the above goals, the system has designed detailed functional modules to meet the needs of different user groups. The common user interface focuses on the user experience, providing intuitive navigation and rich interactive features, so that users can easily get the information they need and exchange ideas with other users. The administrator interface emphasizes efficient content management and system maintenance to ensure the stable operation and continuous update of the platform. Especially in the aspects of TCM information management, TCM diet management and TCM beverage management, administrators can not only add new content, but also modify and delete existing information to ensure the real-time and accuracy of data. At the same time, the system also supports notification and announcement management and rotation chart management to help administrators release important information and publicity content in a timely manner to enhance user participation and platform activity. Through the design and implementation of this series of functional modules, we hope to build a comprehensive Chinese herbal science popularization platform integrating knowledge popularization and interactive experience, and contribute to promoting the development of Chinese herbal medicine culture.
Key words:Chinese herbal science popularization website; JAVA language; SpringBoot framework; MYSQL database
第 1 章引 言
1.1选题背景
随着全球对传统医学和自然疗法兴趣的增加,中草药作为中国传统医学的重要组成部分,正逐渐受到国际社会的关注。特别是在《柳叶刀》杂志首次刊登关于中草药多中心临床研究的文章[1],这标志着中草药的研究成果正在逐步获得国际学术界的认可。然而,尽管中草药具有广泛的使用基础和深厚的文化底蕴,公众对其科学性和有效性的认知仍存在诸多误解。因此,开发一个基于Spring Boot框架的中草药科普网站,不仅有助于提高公众对中草药的了解,还能促进其在现代社会中的应用和发展。
近年来,中草药产业的发展也面临着新的机遇与挑战。例如,张鹏在其研究中对鄄城县中草药产业发展进行了SWOT分析[2],指出该地区中草药产业的优势、劣势、机会和威胁,并提出了相应的对策建议。这些研究成果为中草药科普网站的设计提供了宝贵的参考。此外,孔烨和钱爱兵探讨了药食同源创新产品的公众态度及发展条件[3],表明公众对中草药相关产品的需求正在上升,但市场上缺乏有效的科普渠道来满足这种需求。因此,构建一个集知识普及、互动体验于一体的中草药科普平台显得尤为重要。
另一方面,现代信息技术的发展为中草药知识的传播提供了新的途径。李金洁和雷健在《云端》杂志上发表了关于中草药IP构建与创新的研究[4],强调了通过数字技术和新媒体手段提升中草药文化的影响力。结合当前流行的Web开发技术如Spring Boot,可以创建一个功能全面、易于访问的在线科普平台,不仅能够提供丰富的中草药知识,还能通过多媒体形式增强用户的参与感和学习效果。这种创新型的科普方式不仅能吸引更多的用户,也有助于推动中草药文化的传承与发展。
1.2研究现状
目前,中草药科普领域已经取得了一些显著进展。首先,在图像识别技术方面,郭灿璨等人利用卷积神经网络(CNN)开发了一种用于中草药识别的算法[5]。该研究展示了人工智能技术在中草药领域的巨大潜力,为实现自动化的中草药分类和识别奠定了基础。这一技术的应用不仅可以提高科普网站的信息准确度,还能为用户提供更直观的学习体验。
其次,关于中草药科普的内容呈现方式,吴倩在其博士论文中提出了一种基于多感官体验的中草药文化儿童科普创意产品设计方法[6]。她认为,通过视觉、听觉等多种感官的综合运用,可以有效提升儿童对中草药文化的兴趣和理解。借鉴这一理念,中草药科普网站可以通过图文并茂、视频讲解等形式丰富内容展示,使不同年龄段的用户都能轻松获取所需的知识。
最后,从技术实现的角度来看,霍福华和韩慧详细介绍了基于SpringBoot微服务架构下前后端分离的MVVM模型[7],验证了SpringBoot框架在构建高效、可扩展的应用程序方面的优势。喻佳和吴丹新则进一步探讨了基于SpringBoot的Web快速开发框架[8],强调了该框架在简化开发流程、提高开发效率方面的显著作用。这些研究为本项目的技术选型提供了坚实的理论支持,使得我们有信心采用SpringBoot作为核心技术框架,确保科普网站的稳定性和易用性。同时,这也为未来功能扩展和技术升级预留了充足的空间。
1.3论文结构安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第1章 交代项目的背景、开发这个系统的现状以及论文的章节安排情况。
第3章 阐述了系统的设计,其中涵盖了功能设计以及数据库的设计。
第4章 阐明了中草药科普网站各个功能模块的实现,以图文的形式进行展示。
第5章 罗列了部分系统调试与测试的记录。
第 2 章系统的需求分析
需求分析是开发一个系统之前首先要做的,如果一个系统不值得开发或者违反了相关法律法规,那么开发出来的系统将一文不值,所以在开发之前,我们首先要对系统的需求进行分析,分析系统开发是否可行,如果可行的话,再具体分析企业对商品仓库管理的管理方面的需求,分析出系统的功能以及对系统的性能进行分析。
2.1系统可行性分析
2.1.1技术方面可行性分析
技术方面的可行性主要是考虑开发中草药科普网站的时候采用的开发语言、数据库等是否可行,本中草药科普网站在语言上选择JAVA,采用的是SpringBoot框架以及MYSQL数据库,这些技术目前都很成熟,而且JAVA语言不仅仅支持面向过程,而且还支持面向对象,所以在使用的时候会更加的灵活,在技术选择上完全没有问题。
2.1.2经济方面可行性分析
经济方面的可行性主要考虑的是成本以及效益,从成本方面看,开发过程中使用的JAVA、SpringBoot、MYSQL等都可以通过网上搜索下载,没有任何费用,开发的成本几乎不存在;从效益方面看,系统的完成能够给商品仓库管理方面提供支持,降低企业的成本,提高管理的效率,因此在经济上也是没有问题的。
2.1.3法律方面可行性分析
法律方面主要考虑的是系统的开发是否违法,开发的中草药科普网站严格按照《中华人民共和国计算机软件保护条例》、《中华人民共和国著作权法》等法律法规,系统的开发可以为企业带来效益,不存在违法行为,因此在法律上是可行的。
2.1.4操作方面可行性分析
操作方面主要考虑的是用户在使用以及管理人员在管理的时候,是否简单可行,没有任何计算机基础的用户能否使用,开发的中草药科普网站在设计的时候秉承简单易学的理念,在用户进入系统后都会有固定的导航按钮,只要认字就可以操作完成,而且管理员在管理方面也只需简单的增删改查即可完成,因此在操作上也是可行的。
总的来看,开发的中草药科普网站在可行性方面是没有问题的,值得开发,而且其他的完成对行业发展来说具有重大意义。
2.2系统功能需求分析
中草药科普网站从角色上划分为了普通用户和管理员两种角色。
(1)注册登录:用户可以通过注册成为系统用户,注册后可以用账号密码登录系统。
(2)首页:当用户进入中草药科普网站台的时候,首先映入眼帘的是系统首页、通知公告、中药资讯、中药信息、中药膳食、中药饮品等内容。
(3)通知公告:用户点击可查看网站公告、关于我们、联系方式和网站介绍等信息,方便用户浏览了解系统公告信息。
(4)中药资讯:用户点击可通过局部搜索进行浏览中药咨讯,同时可对咨讯进行点赞、收藏和评论。
(5)中药信息:用户点击可通过搜索关键字进行查看中药信息列表。点击进入想了解的中药信息可查看详情,可对中药信息进行点赞、收藏和评论;同时可点击“记录”按钮查看记录信息。
(6)中药膳食:用户点击可通过搜索关键字进行查看中药膳食列表,点击进入想了解的膳食信息可查看详情,可对中药膳食进行点赞、收藏和评论;同时可点击“记录”按钮查看记录信息。
(7)中药饮品:用户点击可通过搜索关键字进行查看中药饮品列表,点击进入想了解的中药饮品信息可查看详情,同时可点击“记录”按钮查看记录信息。
(8)我的账户:用户可以在个人账户中查看并管理自己的个人信息。包括个人资料、修改密码等。
(9)个人中心:个人中心包含多个功能模块,如个人首页、中药记录、膳食记录、饮品记录、收藏和评论管理。用户点击可对各个功能模块进行查看和管理。
管理员:
(1)登录:管理员账号密码由系统生成,可使用账号密码可进行登录系统后台,使用系统功能进行管理,并可对自己的个人信息和密码进行管控。
(2)系统用户:管理员可以查看系统用户(管理员、普通用户)列表中某个用户的详情,可以对用户信息进行查询、审核、添加和删除操作。
(3)中药分类管理:管理员点击可对中药分类进行增删改查。
(4)药用部分管理:管理员点击可对药用部分进行增删改查。
(5)中药信息管理:中药信息管理包含中药信息列表和中药信息添加;点击“中药信息添加”可填写相关信息,包括中药名称、中药分类、药用部分、中药药性、药品功效、药品产地、封面图片、中药视频和药品概述。同时可对中药信息进行增删改查。
(6)中药记录管理:管理员点击可查看中药记录列表。
(7)中药膳食管理:中药膳食管理包括中药膳食列表和中药膳食添加;点击“中药膳食添加”可填写相关信息,包括膳食名称、中药名称、膳食功效、封面图片、膳食视频和膳食概述,同时可对膳食信息进行增删改查。
(8)膳食记录管理:管理员点击可查看膳食记录列表。
(9)中药饮品管理:中药饮品管理包含中药饮品列表和中药饮品添加;点击“中药饮品添加”可填写相关信息,包括饮品名称、中药名称、饮品功效、封面图片、饮品视频和饮品概述,同时可对饮品信息进行增删改查。
(10)饮品记录管理:管理员点击可查看饮品记录列表。
(11)系统管理:管理员点击可查看轮播图管理;如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题和链接,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。
(12)通知公告管理:当管理点击“通知公告管理”时,可查看通知公告;如需添加新的公告信息,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。
(13)资源管理:管理员点击可查看中药咨讯和咨讯分类;如需添加新的资讯,点击“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“确认”按钮进行添加。同时可对咨讯和分类进行增删改查。
2.3系统性需求分析
中草药科普网站的性能性需求分析主要是分析本系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下2.1表格中:
表2.1 中草药科普网站非功能需求表
| 安全性 | 主要指中草药科普网站数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
| 可靠性 | 可靠性是指中草药科普网站能够按照用户的指示进行操作,经过测试,可靠性90%以上。 |
| 性能 | 性能是影响中草药科普网站占据市场的必要条件,所以性能最好要佳才好。 |
| 可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
| 易用性 | 用户只要跟着中草药科普网站的页面展示内容进行操作,就可以了。 |
| 可维护性 | 中草药科普网站开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.4系统用例分析
中草药科普网站中分为普通用户和管理员,其中用户的用例图如图2.2所示:
图2.2 用户角色用例图
管理员的用例图如图2.3所示:
图2.3 管理员角色用例图
2.5系统流程分析
2.5.1增加数据流程
系统中的所有用户(管理员和用户)都可以实现增加数据功能,图2.4显示的就是在增加数据时的流程。
图2.4增加数据流程图
2.5.2修改数据流程
人无完人,每个人都有出错的时候,在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2.5显示的就是修改数据的流程。
图2.5修改数据流程图
2.5.3删除数据流程
在系统中经常会出现一些过期的数据,比如用户注销等,那就可以直接删除这些数据,图2.6就是删除数据时的流程图。
图2.6删除数据流程图
第 3 章系统总体设计
分析完系统的可行性以及功能,接下来就是对系统具体的设计,通过可行性分析我们得出系统是值得开发的,通过功能分析我们可以得出系统具体实现了哪些功能,然后根据功能需求完成系统的功能设计,本章从功能模块以及系统的数据库两个方面进行介绍。
3.1系统功能模块设计
通过上一章节的功能需求分析,可以得出本中草药科普网站的功能结构图,图3.1就是系统的功能模块图。
图3.1 中草药科普网站功能模块图
3.2数据库设计
数据库的设计是一个系统的基础,不管什么系统,界面设计的再美观,如果没有一个强大的数据库进行支撑,那也没有办法运行,在设计数据库的时候我们首先对数据库进行分析,然后进行概念模型设计,最后建立数据库表,具体展示如下。
3.2.1数据库表设计
在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本中草药科普网站的主要的数据库表如下:
表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 | 用户编号: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 文章描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | parent | varchar | 64 | 0 | Y | N | 父级菜单 | |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 16 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 17 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 19 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 20 | option | text | 65535 | 0 | Y | N | 配置: | |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | beverage_record_id | int | 10 | 0 | N | Y | 饮品记录ID | |
| 2 | beverage_name | varchar | 64 | 0 | Y | N | 饮品名称 | |
| 3 | name_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药名称 | |
| 4 | beverage_efficacy | varchar | 64 | 0 | Y | N | 饮品功效 | |
| 5 | beverage_video | varchar | 255 | 0 | Y | N | 饮品视频 | |
| 6 | beverage_overview | longtext | 2147483647 | 0 | Y | N | 饮品概述 | |
| 7 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 10 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 11 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 12 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | chinese_medicine_diet_id | int | 10 | 0 | N | Y | 中药膳食ID | |
| 2 | dietary_name | varchar | 64 | 0 | Y | N | 膳食名称 | |
| 3 | name_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药名称 | |
| 4 | dietary_benefits | varchar | 64 | 0 | Y | N | 膳食功效 | |
| 5 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
| 6 | dietary_videos | varchar | 255 | 0 | Y | N | 膳食视频 | |
| 7 | dietary_overview | longtext | 2147483647 | 0 | Y | N | 膳食概述 | |
| 8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 10 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 11 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 12 | dietary_records_limit_times | int | 10 | 0 | N | N | 0 | 记录限制次数 |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表classification_of_traditional_chinese_medicine (中药分类)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | classification_of_traditional_chinese_medicine_id | int | 10 | 0 | N | Y | 中药分类ID | |
| 2 | classification_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药分类 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | ||
| 2 | token | varchar | 255 | 0 | Y | N | ||
| 3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | dietary_records_id | int | 10 | 0 | N | Y | 膳食记录ID | |
| 2 | dietary_name | varchar | 64 | 0 | Y | N | 膳食名称 | |
| 3 | name_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药名称 | |
| 4 | dietary_benefits | varchar | 64 | 0 | Y | N | 膳食功效 | |
| 5 | dietary_videos | varchar | 255 | 0 | Y | N | 膳食视频 | |
| 6 | dietary_overview | longtext | 2147483647 | 0 | Y | N | 膳食概述 | |
| 7 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 10 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 11 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 12 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | medicinal_section_id | int | 10 | 0 | N | Y | 药用部分ID | |
| 2 | medicinal_section | varchar | 64 | 0 | Y | N | 药用部分 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | ordinary_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 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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已取消 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | schedule_id | smallint | 5 | 0 | N | Y | 日程ID:[0,32767] | |
| 2 | content | varchar | 255 | 0 | Y | N | 日程内容 | |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | 计划时间 | |
| 4 | user_id | int | 10 | 0 | N | N | 用户id | |
| 5 | create_time | datetime | 19 | 0 | Y | N | 创建时间 | |
| 6 | update_time | datetime | 19 | 0 | Y | N | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | 评分ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | 昵称: | |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 8 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
表traditional_chinese_medicine_beverages (中药饮品)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | traditional_chinese_medicine_beverages_id | int | 10 | 0 | N | Y | 中药饮品ID | |
| 2 | beverage_name | varchar | 64 | 0 | Y | N | 饮品名称 | |
| 3 | name_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药名称 | |
| 4 | beverage_efficacy | varchar | 64 | 0 | Y | N | 饮品功效 | |
| 5 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
| 6 | beverage_video | varchar | 255 | 0 | Y | N | 饮品视频 | |
| 7 | beverage_overview | longtext | 2147483647 | 0 | Y | N | 饮品概述 | |
| 8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 10 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 11 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 12 | beverage_record_limit_times | int | 10 | 0 | N | N | 0 | 记录限制次数 |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表traditional_chinese_medicine_information (中药信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | traditional_chinese_medicine_information_id | int | 10 | 0 | N | Y | 中药信息ID | |
| 2 | name_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药名称 | |
| 3 | classification_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药分类 | |
| 4 | medicinal_section | varchar | 64 | 0 | Y | N | 药用部分 | |
| 5 | the_medicinal_properties_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药药性 | |
| 6 | drug_efficacy | varchar | 64 | 0 | Y | N | 药品功效 | |
| 7 | drug_origin | varchar | 64 | 0 | Y | N | 药品产地 | |
| 8 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
| 9 | traditional_chinese_medicine_video | varchar | 255 | 0 | Y | N | 中药视频 | |
| 10 | drug_overview | longtext | 2147483647 | 0 | Y | N | 药品概述 | |
| 11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 13 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 14 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 16 | traditional_chinese_medicine_record_limit_times | int | 10 | 0 | N | N | 0 | 记录限制次数 |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表traditional_chinese_medicine_record (中药记录)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | traditional_chinese_medicine_record_id | int | 10 | 0 | N | Y | 中药记录ID | |
| 2 | name_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药名称 | |
| 3 | classification_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药分类 | |
| 4 | medicinal_section | varchar | 64 | 0 | Y | N | 药用部分 | |
| 5 | the_medicinal_properties_of_traditional_chinese_medicine | varchar | 64 | 0 | Y | N | 中药药性 | |
| 6 | drug_efficacy | varchar | 64 | 0 | Y | N | 药品功效 | |
| 7 | drug_origin | varchar | 64 | 0 | Y | N | 药品产地 | |
| 8 | traditional_chinese_medicine_video | varchar | 255 | 0 | Y | N | 中药视频 | |
| 9 | drug_overview | longtext | 2147483647 | 0 | Y | N | 药品概述 | |
| 10 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 13 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 14 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 15 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 文件类型 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | int | 10 | 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 | | 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 | 创建时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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.2.2数据库概念结构设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称,本系统中的总E-R模型图如下图所示。
图3.2 中草药科普网站功能模块图
第 4 章关键模块的设计与实现
4.1用户--登录模块
管理员、用户在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。
图4.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.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
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());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
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.2用户--注册模块
用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。其主界面展示如下图4.2所示。
图4.2 注册界面图
注册代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
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);
}
4.3普通用户功能模块
4.3.1中药资讯
中药资讯:用户点击可通过局部搜索进行浏览中药咨讯,同时可对咨讯进行点赞、收藏和评论。界面如下图所示。
图4.3 中药资讯界面图
4.3.2中药信息
中药信息:用户点击可通过搜索关键字进行查看中药信息列表。点击进入想了解的中药信息可查看详情,可对中药信息进行点赞、收藏和评论;同时可点击“记录”按钮查看记录信息。界面图如下。
图4.4 中药信息界面图
图4.5 记录界面图
4.3.3中药膳食
中药膳食:用户点击可通过搜索关键字进行查看中药膳食列表,点击进入想了解的膳食信息可查看详情,可对中药膳食进行点赞、收藏和评论;同时可点击“记录”按钮查看记录信息。界面图如下。
、图4.6 中药膳食界面图
4.3.4中药饮品
中药饮品:用户点击可通过搜索关键字进行查看中药饮品列表,点击进入想了解的中药饮品信息可查看详情,同时可点击“记录”按钮查看记录信息。界面图如下。
图4.7 中药饮品界面图
4.3.5个人中心
个人中心:个人中心包含多个功能模块,如个人首页、中药记录、膳食记录、饮品记录、收藏和评论管理。用户点击可对各个功能模块进行查看和管理。界面图如下。
图4.8 个人中心界面图
4.4管理员功能模块
4.4.1中药信息管理
中药信息管理:中药信息管理包含中药信息列表和中药信息添加;点击“中药信息添加”可填写相关信息,包括中药名称、中药分类、药用部分、中药药性、药品功效、药品产地、封面图片、中药视频和药品概述。同时可对中药信息进行增删改查。界面图如下。
图4.9 中药信息界面图
4.4.2中药膳食管理
中药膳食管理:中药膳食管理包括中药膳食列表和中药膳食添加;点击“中药膳食添加”可填写相关信息,包括膳食名称、中药名称、膳食功效、封面图片、膳食视频和膳食概述,同时可对膳食信息进行增删改查。界面图如下。
图4.10 中药膳食界面图
4.4.3中药饮品管理
中药饮品管理:中药饮品管理包含中药饮品列表和中药饮品添加;点击“中药饮品添加”可填写相关信息,包括饮品名称、中药名称、饮品功效、封面图片、饮品视频和饮品概述,同时可对饮品信息进行增删改查。界面图如下。
图4.11 中药饮品界面图
4.4.4系统管理
系统管理:管理员点击可查看轮播图管理;如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题和链接,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。界面图如下。
图4.12 系统管理界面图
4.4.5资源管理
资源管理:管理员点击可查看中药咨讯和咨讯分类;如需添加新的资讯,点击“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“确认”按钮进行添加。同时可对咨讯和分类进行增删改查。界面图如下。
图4.13 资源管理界面图
第 5 章系统实验与结果分析
到此,系统的开发基本完成,接下来我们对系统的实验与结果进行分析,确保系统能够正常运行,进而投入使用,对系统的实验与结果分析的检测方法就是对系统的测试,测试是系统完成的最后一步,没有测试过的系统是不能进行投入使用的,否则一旦发生bug就会造成损失,下面我们从测试的方法以及测试的用例两部分进行分析,最后给出系统的测试结果。
5.1测试方法
系统的测试方面有两种,一种是黑盒测试,另一种则为白盒测试,黑盒测试通俗来说就是功能方面的测试,我们也称之为需求测试,在黑盒测试的过程中,我们是不知道其开发原理的,只是作为一名使用者对系统进行测试,我们主要是凭借之前的测试经验,取一些临界值,然后通过测试用例来对其进行测试,这种测试方法是最快的查找问题方法,其次我们可以找一些具有代表性的数据,对系统进行用例测试,在黑盒测试的过程中常用的测试工具是winrunner和AutoRunner;白盒测试我们称之为结果测试,也就是逻辑驱动测试,在白盒测试的过程中,我们主要是根据系统开发的原理进行测试的,主要是以开发者的身份去测试这个代码是不是完成了其具体的功能,实现的具体路径对不对,当然这种测试方法是费时费力的,因为每个功能,他的运行路径不止一条,通过对程序当中运行的路径进行测试,检测开发的代码是不是存在bug,有没有实现预期,在白盒测试的过程中常用的测试工具为Jcontract、C++ Test以及CodeWizard等。
5.2系统的测试用例
登录模块的功能测试:
表5.1 登录模块功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 登录模块测试 | 登录成功的情况 | 使用者可以通过浏览器进入到中草药科普网站登录界面,输入用户名:admin和密码admin,完成滑动拼图验证后,点击“登录”按钮。 | 成功登录到管理员管理的界面 | 正确 |
| 登录模块测试 | 登录失败的情况 | 使用者可以通过浏览器进入到中草药科普网站登录界面,输入用户名:admin和密码111,完成滑动拼图验证后,点击“登录”按钮。 | 系统提示“用户名和密码不匹配” | 正确 |
用户信息添加功能测试:
表5.2 用户信息添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 用户信息添加模块测试 | 用户信息添加成功的情况 | 管理员在“系统用户”菜单中点击“用户信息”会显示出所有的用户信息,点击“添加”按钮,输入账号、密码、昵称、手机号码、邮箱等,输入正确的信息后,点击“提交”按钮。 | 提示添加成功 | 正确 |
| 用户信息添加模块测试 | 用户信息添加失败的情况 | 管理员在“系统用户”菜单中点击“用户信息”会显示出所有的用户信息,点击“添加”按钮,不输入账号,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,账号不能为空” | 正确 |
查询中药信息功能模块测试:
表5.3 查询中药信息功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 查询中药信息功能测试 | 查询成功的情况 | 用户在菜单栏中点击“中药信息”,然后会出现系统中所有的中药信息 | 查询成功 | 正确 |
轮播图添加功能模块测试:
表5.4 轮播图添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 轮播图添加模块测试 | 轮播图添加成功的情况 | 点击 “系统管理”这个菜单,可以查看到系统中所有添加的轮播图信息,如果想要添加轮播图信息的话,点击“添加”进入详情页面,填写系统自动带出轮播图信息即可提交信息。 | 提示添加成功 | 正确 |
| 轮播图添加模块测试 | 轮播图添加失败的情况 | 提交轮播图信息时,不上传图片,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,图片不能为空” | 正确 |
5.3系统测试结果
在本章节对中草药科普网站进行了黑白盒测试,并对系统中的部分功能进行了用例分析,能够发现系统还是比较稳定的,系统的所有功能基本可以实现。通过测试可以看出在系统的运行过程中,其功能完整,对于输入的错误信息,能够把错误信息提示出来,方便用户操作的时候发现自己输入的信息哪里有错误,进而进行改正,而且系统界面都设有导航栏,操作非常便捷,不需要对使用者进行任何培训。
第 6 章结论
经过了几个月的努力,本中草药科普网站终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此本次开发的中草药科普网站对我意义重大。
在开发系统最初,首先对各个商品仓库管理方面的需求进行调研,了解对于企业来说,开发的系统需要实现哪些功能才能满足平台需求,对需求进行分析;其次选择自己比较熟悉的JAVA语言,MYSQL数据库,使用SpringBoot框架来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对JAVA的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会收益终生!
参考文献
- 林清清,王军飞,查冠琳,等.《柳叶刀》首登中草药多中心临床研究[N].羊城晚报,2024-11-14(A05). DOI:10.38241/n.cnki.nycwb.2024.000619.
- 张鹏.鄄城县中草药产业发展SWOT分析及对策[J].南方农业,2024,18(19):145-148.DOI:10.19415/j.cnki.1673-890x.2024.19.031.
- 孔烨,钱爱兵.药食同源创新产品的公众态度及发展条件探究——以新式中药饮品为例[J].南京中医药大学学报(社会科学版),2024,25(04):275-282.DOI:10.20060/j.cnki.ISSN1009-3222.2024.0275.
- 李金洁,雷健.中草药IP的构建与创新[J].云端,2024,(46):80-82.
- 郭灿璨,朱玉祥,张俊明,等.基于卷积神经网络的中草药识别算法研究[J].中医药信息,2024,41(11):29-34.DOI:10.19656/j.cnki.1002-2406.20241105.
- 吴倩.多感官体验的中草药文化儿童科普创意产品设计研究与实践[D].天津理工大学,2024.DOI:10.27360/d.cnki.gtlgy.2024.000582.
- 霍福华,韩慧.基于SpringBoot微服务架构下前后端分离的MVVM模型[J].电子技术与软件工程,2022,(01):73-76.DOI:10.20109/j.cnki.etse.2022.01.018.
- 喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021,(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013天津中草药杂志社简介[J].药物评价研究,2024,47(12):2953.
- 贾琴.Java编程语言的应用策略分析[J].集成电路应用,2024,41(10):84-85.DOI:10.19339/j.issn.1674-2583.2024.10.034.
- 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.DOI:10.14004/j.cnki.ckt.2024.1389.
- 张超辉.集成学习策略在中草药图像自动分类中的创新应用[J].现代计算机,2024,30(18):99-103.
- 任宇杰.基于使用与满足理论的中药膳食养生产品服务系统设计研究[D].广州美术学院,2024.DOI:10.27041/d.cnki.ggzmc.2024.000019.
- Jamie C .Learn SQL using MySQL in One Day and Learn It Well:SQL for beginners with Hands-on Project[M].Packt Publishing Limited:2024-04-26. DOI:10.0000/9781836205661.
- 蔡英甫.跨学科项目化学习的设计与实践——以“冰爽中药饮品”项目为例[J].生活教育,2024,(04):88-91.
- 邹浩,刘浩,施明毅,等.基于区块链技术的中药膳食质量追溯系统的设计[J].信息与电脑(理论版),2022,34(14):133-135.
- 曾庆钱.药用植物识别图鉴[M].化学工业出版社:202206.372.
- .
- 柯小李.浅谈药用植物的推广与应用——以厦门园博苑中草药植物科普展为例[J].农业与技术,2020,40(22):178-180.DOI:10.19754/j.nyyjs.20201130054.
- 许真真,洪志忠.构建新时代劳动教育新样式——校本中草药文化特色课程创设实践与优化评析[J].福建教育,2020,(40):27-29.
- 赵静.史秉有《山西中草药》动植物科普画研究[D].山西大学,2020.DOI:10.27284/d.cnki.gsxiu.2020.001598.
致 谢
“致谢”意味着论文的结束,也意味着自己的毕业设计顺利完成,同时也代表了自己的大学生涯即将结束,我即将要离开自己敬爱的老师和亲爱的同学们,在这里我首先要感谢的就是所有的老师,“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”,他们无论在我的学业还是在我的生活上付出了所有,对我谆谆教诲;其次我要感谢我的指导老师,他在我的整个毕业设计当中起着引导作用,每当我有困难的时候,他总会第一时间帮助我,引导我进行解决问题,而不是直接告诉我答案,“授人以鱼不如授人以渔”,指导老师的这种做法让我受益终生,同时我也从指导老师身上学习到了许多的开发技巧以及检验,这对我今后的开发起着十分重要的作用;再次,我需要感谢我的同学、室友,他们不仅仅在毕业设计上给我许多帮助意见,在大学同窗四年,他们给过我的帮助太多了,我对他们有太多的不舍,无法用言语表示,我相信在以后的人生道路上只要想到他们,我心里就会很温暖,这种友情是任何感情替代不了的;最后我还要感谢家人,感谢自己,感谢家人对我的支持,感谢自己在学业上的坚持,我相信我以后的道路会越来越好。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!
1101

被折叠的 条评论
为什么被折叠?



