摘要
随着医药行业的日益发展,药房管理变得越来越重要。本研究基于SpringBoot技术开发了一款友爱药房管理系统,旨在提升购买药品的便捷性和用户体验。通过分析市场需求和竞品分析,确定了平台的功能模块和特色服务,并采用了B/S模式进行系统架构设计。
本系统通过利用SpringBoot框架,实现了用户注册登录、药品商城浏览选择、购物车管理、订单生成等核心功能模块,为药房提供了一个高效、便捷的交易和信息管理平台。系统阐述了整体架构设计,包括前端UI设计、后端数据库设计以及业务逻辑的实现方法。在系统实现过程中,采用IDEA开发工具,Java语言作为开发主体,灵活运用Spring Boot框架的特性,通过对系统性能和用户体验进行评估,验证了该平台的可用性和稳定性。通过本系统的实现,药房工作人员可以更好地管理药品信息、提高工作效率,从而更好地满足客户需求,推动药房管理的现代化和智能化发展。未来的研究方向可以进一步完善系统功能,提升系统的稳定性和安全性,为药房信息管理提供更多有益参考。
关键词:Java;Spring Boot;友爱药房管理系统;MySQL数据库
Abstract
With the increasing development of the pharmaceutical industry, pharmacy management has become increasingly important. This study developed a Youai Pharmacy Management System based on SpringBoot technology, aiming to improve the convenience and user experience of purchasing drugs. By analyzing market demand and competitor analysis, the functional modules and distinctive services of the platform were determined, and the B/S model was adopted for system architecture design.
This system utilizes the SpringBoot framework to implement core functional modules such as user registration and login, drug mall browsing and selection, shopping cart management, and order generation, providing an efficient and convenient trading and information management platform for pharmacies. The system elaborates on the overall architecture design, including front-end UI design, back-end database design, and implementation methods of business logic. During the system implementation process, IDEA development tools are used, As the main developer, Java language flexibly utilizes the characteristics of the Spring Boot framework, and verifies the usability and stability of the platform by evaluating system performance and user experience. Through the implementation of this system, pharmacy staff can better manage drug information, improve work efficiency, and better meet customer needs, promoting the modernization and intelligent development of pharmacy management. Future research directions can further improve system functionality, enhance system stability and safety, and provide more useful references for pharmacy information management.
Keywords:Java;Spring Boot;Youai Pharmacy Management System; MySQL database
1 绪论
1.1 选题背景
随着社会发展和人们健康意识的提高,药品的需求量不断增加。药房作为重要的医疗机构之一,承担着提供药物服务的重要责任。然而,传统的药房管理方式存在许多问题,如药品存储和管理效率低下、药品安全性难以保障、客户服务水平有限等。
首先,传统的药房管理方式依赖人工操作,导致药品存储和管理效率低下。在传统的药房中,药品的分类、标记和管理完全依靠人工操作,容易出现错误和混乱。这不仅浪费了员工的时间和精力,还增加了药品取用的时间和等待的时间,降低了药品取药的效率。
其次,药品的安全性难以保障。传统的药房管理方式容易出现药品过期、药品品质不合格以及药品相互混杂的情况。这些问题不仅会对患者的健康造成威胁,还可能导致医疗事故和争议的发生。因此,如何确保药品的安全性和质量成为药房管理中亟待解决的问题。
此外,传统的药房管理方式客户服务水平有限。在传统的药房中,客户需要亲自前往药房取药,并需要在窗口排队等候,这不仅浪费了客户的时间和精力,还给患者和医护人员增加了额外的负担。而且,传统的药房往往缺乏合理的预订和配送机制,难以满足客户的需求。
综上所述,传统的药房管理方式面临着诸多问题和挑战,需要通过引入新的管理方式和技术手段来改进。友爱药房管理系统的出现,为药房管理带来了新的机遇与挑战,有助于提高药品存储和管理效率、确保药品的安全性和质量,提升客户服务水平。因此,对友爱药房管理系统进行深入研究具有重要的理论和实际意义。
1.2目的和意义
随着医疗技术的不断进步和人口的不断增长,药房作为医疗服务的重要组成部分,承担着提供药物和药学知识的重要职责。药房的管理对于医疗服务的质量和效率具有重要的影响,因此开发一个高效的友爱药房管理系统变得尤为重要。
友爱药房管理系统的目的是通过使用现代信息技术和管理方法,提高药房的工作效率和服务质量。通过该系统,药房可以更好地管理药品的购进、库存、销售和配送等方面的工作,提高药品的安全性和管理的准确性。
友爱药房管理系统可以通过精确的库存管理、自动化的采购和审核流程,提高药品管理的效率。药品的购进和销售记录可以更加准确和及时,从而减少浪费和损失。系统提供更加完善的药学服务,通过记录和分析药品的使用情况和患者的需求,友爱药房可以更加准确地为患者提供药物咨询和药物治疗建议,提高患者满意度。此外,通过药品的追溯和审核功能,可以减少药品的滥用和泄漏,保障患者的用药安全。同时,与其他医疗信息系统进行互联,实现医药信息的共享和交流。这样可以提高医疗服务的协同效果,避免信息的重复录入和繁琐的手工操作。
综上所述,友爱药房管理系统的研究具有重要的应用和推广价值,可以提高药品管理的效率和质量,提高药学服务的水平,保障患者的用药安全,促进医药信息的共享和交流。
1.3国内外发展现状
药房管理系统是一个涉及药品采购、库存管理、销售等方面的重要管理工具。它能够帮助药房实现高效、准确的药品管理,提高工作效率,减少人为错误,提升服务质量。目前国内外对药房管理系统的研究主要集中在以下几个方面:
(1)药品信息管理。国内外的研究者们关注药品信息的建设、流动和管理。通过药房管理系统,药店可以获得准确的药品信息,包括药品的名称、规格、批次、生产商、有效期、单价等。药品信息的管理可以通过扫描二维码或条形码的方式实现自动化,提高信息的准确性和效率。另外,一些研究致力于药物溯源技术,通过药物信息的追踪,确保药品的质量和来源可靠。
(2)库存管理。库存管理是药房管理系统的核心功能之一。国内外的研究者们主要探讨如何通过药房管理系统,实现药品库存的自动化管理。一些研究者提出了基于预测模型的库存管理方法,通过对历史数据的分析,预测药品需求,从而合理调配库存。另外,也有研究者提出了基于RFID技术的库存管理方法,通过对药品的标识和追踪,实时监控药品的进出库情况,减少库存损耗和过剩。
(3)销售管理。药房管理系统能够帮助药店实现销售管理的自动化。目前国内外的研究主要关注销售数据的收集和分析。一些研究者提出了基于数据挖掘的销售分析方法,通过对药品销售数据的挖掘,发现药品的畅销时段、疗效、市场趋势等,从而指导药品的采购和销售策略。另外,也有研究者提出了基于客户关系管理的销售管理方法,通过建立客户数据库,实现对客户需求的个性化分析和服务。
(4)安全管理。药房管理系统也需要考虑药品的安全管理。国内外的研究者们关注药品的合规性和质量控制。一些研究者提出了基于云计算和物联网技术的安全管理方法,通过对药房内药品温度、湿度等环境参数的监测,及时发现异常情况,保证药品的安全性。另外,也有研究者提出了基于区块链技术的药品溯源方法,通过区块链的去中心化特性,确保药品信息的安全和可信。
总体而言,国内外对药房管理系统的研究主要集中在药品信息管理、库存管理、销售管理和安全管理等方面。未来的研究可以进一步探索药房管理系统与其他领域的整合,如医疗健康互联网、人工智能等,以实现药店管理的智能化和科学化。此外,大数据技术、人工智能技术等的应用也将为药房管理系统的发展提供更多的可能性。
1.4 本文章节安排
本文共分为七章,章节内容安排如下:
第一章:引言,此章节将介绍论文的选题背景、研究意义以及国内外研究现状,这一部分的主要目的是引出论文的主要内容。
第二章:关键技术及相关开发工具,这部分简要概述了本次系统开发所使用的关键技术和开发工具。
第三章:系统需求分析,这可谓是论文中非常重要的一部分,它涵盖了系统的功能需求、性能需求、安全需求等详细的分析。
第四章:系统的设计,这一部分作为论文的核心,主要涉及到的有系统的整体架构设计、功能模块设计,同时包括数据库设计等内容。
第五章:系统的实现,在此章节将用文字描述结合系统截图展示的方式,向大家详细介绍系统的各项功能描述,以及部分重要代码的展示。
第六章:系统测试。用测试用例来对系统的个别功能进行测试,并展示测试结果。
第七章:结论。对整个研究工作进行了总结,并对未来的发展提出了展望。总结部分回顾了系统的设计和实现过程,并强调了所取得的成果和创新之处。展望部分则提出了进一步改进和扩展系统的建议,并展示了未来可能的研究方向和发展前景。
2 关键技术及相关开发工具
2.1 B/S体系结构
B/S体系,即Browser/Server体系,是一种常见的网络应用程序架构。其工作原理基于客户端与服务器之间的请求-响应模型。用户通过浏览器向服务器发送请求,服务器接收到请求后进行处理,并生成相应的响应结果,最终将响应返回给客户端。浏览器接收到服务器返回的响应后,解析其中的标记语言(如HTML),并根据CSS样式表和JavaScript脚本来渲染页面,呈现给用户。用户可以与页面进行交互,例如点击链接、填写表单等操作,这些操作会触发新的请求,循环执行上述过程。
2.2 Java语言简介
Java语言是我们目前生活中最常用的语言,它是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,所以Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
2.3 MySQL数据库介绍
MySQL是一种开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,现在由Oracle公司维护。MySQL支持多个操作系统,包括Linux、Windows、macOS等。它是一种客户端/服务器模式的数据库,提供高效、可靠、稳定的数据存储和管理服务。MySQL是目前最流行的开源关系型数据库之一,被广泛应用于Web应用程序、企业应用程序和移动应用程序等领域。
2.4 SpringBoot框架
Spring Boot是一个基于Java的开源框架,旨在简化和加速Java应用程序的开发过程。它采用自动配置和约定优于配置的方式,减少了繁琐的手动配置和集成工作,使开发者能够快速构建独立、可扩展且具备生产级功能的应用程序。Spring Boot集成了许多常用的第三方库和组件,并提供了强大的开发工具和特性,如内嵌的Servlet容器、自动化依赖管理和可扩展的插件机制。它的可插拔配置选项和灵活的扩展机制使开发者能够根据实际需求进行个性化配置和定制,从而更好地满足项目要求。总之,Spring Boot通过简化和优化开发流程,提高了Java应用程序开发的效率和质量,成为广大开发者喜爱的框架之一。
3 友爱药房管理系统分析
系统分析是在软件开发过程中的一项关键任务,它旨在对要开发的系统进行全面的、系统化的研究和调查,以确定系统需求并为后续的设计和开发工作提供基础。系统分析包括以下几个方面。
3.1 可行性分析
可行性分析是系统开发前的关键步骤,旨在评估技术实施、经济投入和操作流程的可行性。技术可行性评估系统开发所需技术的可行性和实施性,包括技术方案的适应性和可获得性;经济可行性评估系统开发和运营的成本与效益是否符合预期,操作可行性评估系统实施后操作流程是否顺畅。通过综合评估这三个方面,可以确定系统开发的可行性,为系统的顺利实施和成功运营提供重要依据。
3.1.1 技术可行性分析
在技术可行性方面,友爱药房管理系统采用MySQL数据库作为数据存储介质,并利用IDEA、Tomcat等开发工具进行系统的搭建和部署。同时,使用SprignBoot框架进行开发,该框架具有良好的可扩展性和维护性,能够简化开发过程并提高系统的性能和稳定性。这些技术选择是成熟且广泛应用的,能够满足项目的需求。
2.1.2 经济可行性分析
在经济可行性方面,友爱药房管理系统所需的开发软件和工具,如IDEA、Tomcat和MySQL等,都是免费且开源的,无需额外费用。此外,这些工具易于获取和操作,降低了开发成本。而且,随着友爱药房管理系统的运营和发展,可以通过广告推广、会员服务等方式实现收益,增加项目的经济可行性。
3.1.3 操作可行性分析
在操作可行性方面,我们参考了其他成功案例,并对用户界面和功能进行了系统分析。通过以人为本的设计原则,简化了操作流程,使得具备基本计算机知识的用户能够轻松上手。同时,我们也提供了清晰的用户指南和帮助文档,以支持用户的操作和使用。
3.2 系统功能分析
3.2.1 功能性分析
本研究旨在设计和开发一套功能全面、操作简便的友爱药房管理系统,以解决药房日常管理和销售中的问题,并提升其效率和服务水平。因此,将友爱药房管理系统划分为了普通用户模块和管理员模块这两大部分。
普通用户模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现药品商城购买等操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作,同时用户还可以通过“我的”这个按钮对个人信息以及操作的信息进行管控。
(2)查看友爱药房管理系统的首页信息:友爱药房管理系统的首页信息包含了首页、系统公告、药品商城、商城管理、上报处方等。
(3)系统公告:当用户点击“系统公告”这一菜单按钮,会显示管理员在后台发布的所有的系统公告,可以查看详情。
(4)药品商城:用户点击“药品商城”进入到药品商城页面,可以搜索浏览药品商城商品信息,并支持添加至购物车、立即购买、点赞、收藏和购买评论等操作。
(5)商城管理:用户在此模块可以对我的订单、我的购物车和我的地址进行管理。
(6)上报处方:用户点击“上报处方”菜单可以提交上报处方信息,输入上报日期、上报用户、用户姓名、手机号码、处方截图、处方内容等信息完成提交。
(7)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料和密码修改进行管控。
(8)个人中心:用户点击右上角的“用户名”,然后点击“个人中心”可对个人首页、上报处方、订单配送和自己收藏的信息进行管理。
管理员管理模块:
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)系统用户:管理员可以对友爱药房管理系统中的管理员和普通用户进行增删改查。
(3)供应商管理:管理员点击“供应商管理”菜单可以查看到系统所有供应商信息,可以添加新的供应商。
(4)入库记录管理:管理员点击“入库记录管理”菜单可以查看到系统所有药品的入库信息,可以添加新的入库记录信息,也可以对现有的入库药品信息进行出库。
(5)药品分类管理:管理员点击“药品分类管理”菜单可以对所有药品分类信息进行查询、添加、重置和删除。
(6)退货出库管理:管理员点击“退货出库管理”菜单可以查看到系统所有药品的退货出库信息,支持进行查询、审核等。
(7)上报处方管理:管理员点击“上报处方管理”可以查看并审核普通用户提交的上报处方信息,进行处理。
(8)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理。
(9)系统公告管理:管理员点击“系统公告管理”菜单可以查看到系统中的所有系统公告信息,对已经存在的系统公告,管理员可以修改,也可以添加新的系统公告或者删除系统公告。
(10)商城管理:管理员点击“商城管理”可以对药品商城、分类列表、订单列表、订单配送四个子菜单的信息进行管理,可以进行增删改查。
3.2.2 非功能性分析
非功能性分析旨在评估友爱药房管理系统的非功能需求和性能要求。通过对性能、可靠性、安全性、可用性和扩展性等方面进行评估,确保平台能够满足用户和系统运行的要求。具体如下3-1表格中:
表3-1友爱药房管理系统非功能需求表
非功能性要求 | 说明 |
性能 | 评估响应时间、并发用户数、吞吐量等指标,以确保平台稳定高效地运行。 |
可靠性 | 评估系统的稳定性、容错能力和数据完整性,保障系统在故障情况下正常运行。 |
安全性 | 评估用户身份认证、数据加密和访问控制等,保护用户信息和交易的安全。 |
可用性 | 评估系统的稳定性、故障处理能力和用户界面友好性,提供良好的用户体验。 |
扩展性 | 评估系统的可扩展性和灵活性,以便根据需求进行功能扩展和升级。 |
3.3 系统用例分析
系统用例分析是对友爱药房管理系统中各个功能模块的用户需求和行为进行分析,以识别和描述不同的用户用例。通过系统用例分析,可以深入了解用户在系统上的操作流程和交互方式,为系统设计和开发提供指导,并确保系统能够满足用户的需求和期望。友爱药房管理系统的完整UML用例图分别是图3-1和3-2。
图3-1就是普通用户角色的用例展示。
图3-1 友爱药房管理系统普通用户角色用例图
图3-2就是管理员角色的用例展示。
图3-2友爱药房管理系统管理员角色用例图
3.4 系统流程分析
3.4.1数据流程
友爱药房管理系统主要的目的就是实现对药品商城的在线购买交易,图3-3就是系统的数据流图。
图3-3药品商城购买操作展开图
3.4.2业务流程
分析完友爱药房管理系统的数据流,接下来我们来看系统的业务流程,图3-4就是业务流程图:
图3-4业务流程图
3.5本章小结
本章主要通过对友爱药房管理系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个友爱药房管理系统要实现的功能。同时也为友爱药房管理系统的代码实现和测试提供了标准。
4 友爱药房管理系统总体设计
在系统架构设计方面,考虑了系统的整体结构和各个组件之间的交互关系,以确保系统具有良好的扩展性和性能。在功能模块设计方面,我详细描述了系统中的各项功能需求,包括用户和管理员用户的操作流程,以及用户管理、药品商城管理、出入库管理、订单管理、上报处方管理等功能模块的设计。在数据库系统设计方面,设计了系统的数据库结构,包括数据表的设计、通过本章内容的讨论,为友爱药房管理系统的设计和实现提供了系统化的指导和方法,以确保系统能够高效、稳定地运行,并满足用户的需求。
4.1 系统功能模块设计
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。友爱药房管理系统根据前面章节的需求分析得出,其总体设计模块图如图4-1所示。
图4-1 友爱药房管理系统功能模块图
4.2 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.2.1 数据库概念结构设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个友爱药房管理系统中主要的数据库表总E-R实体关系图。
图4-2 友爱药房管理系统总E-R关系图
4.2.2 数据库逻辑结构设计
逻辑结构设计是指在系统开发过程中对系统中数据的组织、存储和处理方式进行设计和规划的过程。通过逻辑结构设计,确定系统中数据的结构、关系和操作规则,以确保数据的有效管理和高效利用。通过上一小节中友爱药房管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
5 | address | varchar | 255 | 0 | N | N | 地址: | |
6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
11 | num | int | 10 | 0 | N | N | 1 | 数量: |
12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | drug_classification_id | int | 10 | 0 | N | Y | 药品分类ID | |
2 | drug_classification | 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 | drug_mall_id | int | 10 | 0 | N | Y | 药品商城ID | |
2 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
3 | drug_manufacturers | varchar | 64 | 0 | Y | N | 药品厂商 | |
4 | drug_category | varchar | 64 | 0 | Y | N | 药品类别 | |
5 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
6 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
7 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
8 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
9 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
10 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
11 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
13 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
14 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
15 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
16 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
17 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
7 | source_field | 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 | 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 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | 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 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
4 | title | varchar | 255 | 0 | Y | N | 商品标题: | |
5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
8 | num | int | 10 | 0 | N | N | 1 | 数量: |
9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
23 | remark | text | 65535 | 0 | Y | N | 订单备注 | |
24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | mobile_phone_number | varchar | 16 | 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 | report_prescription_id | int | 10 | 0 | N | Y | 上报处方ID | |
2 | reporting_date | date | 10 | 0 | Y | N | 上报日期 | |
3 | report_users | int | 10 | 0 | Y | N | 0 | 上报用户 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | mobile_phone_number | varchar | 64 | 0 | Y | N | 手机号码 | |
6 | prescription_screenshot | varchar | 255 | 0 | Y | N | 处方截图 | |
7 | prescription_content | text | 65535 | 0 | Y | N | 处方内容 | |
8 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
9 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | return_and_outbound_id | int | 10 | 0 | N | Y | 退货出库ID | |
2 | sales_number | varchar | 64 | 0 | Y | N | 销售编号 | |
3 | drug_number | varchar | 64 | 0 | Y | N | 药品编号 | |
4 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
5 | drug_classification | varchar | 64 | 0 | Y | N | 药品分类 | |
6 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
7 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂商 | |
8 | purchase_unit_price | varchar | 64 | 0 | Y | N | 采购单价 | |
9 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
10 | supplier_phone | varchar | 64 | 0 | Y | N | 供应商电话 | |
11 | responsible_person | varchar | 64 | 0 | Y | N | 负责人 | |
12 | supplier_address | varchar | 64 | 0 | Y | N | 供应商地址 | |
13 | return_date | date | 10 | 0 | Y | N | 退货日期 | |
14 | return_quantity | int | 10 | 0 | Y | N | 0 | 退货数量 |
15 | return_amount | varchar | 64 | 0 | Y | N | 退货金额 | |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | 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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | storage_records_id | int | 10 | 0 | N | Y | 入库记录ID | |
2 | warehouse_entry_number | varchar | 64 | 0 | Y | N | 入库编号 | |
3 | drug_number | varchar | 64 | 0 | N | N | 药品编号 | |
4 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
5 | drug_classification | varchar | 64 | 0 | Y | N | 药品分类 | |
6 | drug_specifications | varchar | 64 | 0 | Y | N | 药品规格 | |
7 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂商 | |
8 | purchase_quantity | int | 10 | 0 | Y | N | 0 | 采购数量 |
9 | purchase_unit_price | int | 10 | 0 | Y | N | 0 | 采购单价 |
10 | purchase_amount | varchar | 64 | 0 | Y | N | 采购金额 | |
11 | purchase_date | date | 10 | 0 | Y | N | 采购日期 | |
12 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
13 | supplier_phone | varchar | 64 | 0 | Y | N | 供应商电话 | |
14 | responsible_person | varchar | 64 | 0 | Y | N | 负责人 | |
15 | supplier_address | varchar | 64 | 0 | Y | N | 供应商地址 | |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | supplier_id | int | 10 | 0 | N | Y | 供应商ID | |
2 | supplier_name | varchar | 64 | 0 | N | N | 供应商名称 | |
3 | supplier_phone | varchar | 64 | 0 | Y | N | 供应商电话 | |
4 | responsible_person | varchar | 64 | 0 | Y | N | 负责人 | |
5 | supplier_address | varchar | 64 | 0 | Y | N | 供应商地址 | |
6 | main_business | text | 65535 | 0 | Y | N | 主营业务 | |
7 | create_time | datetime | 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 | | 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 | 更新时间: |
4.3本章小结
整个友爱药房管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
5 友爱药房管理系统详细设计与实现
友爱药房管理系统的详细设计与实现主要是根据前面的友爱药房管理系统的需求分析和友爱药房管理系统的总体设计来设计页面并实现业务逻辑。主要从友爱药房管理系统界面实现、业务逻辑实现这两部分进行介绍。
5.1前台用户功能模块
5.1.1 前台首页界面
前台首页界面是用户访问系统的入口页面,它应该展示平台的主要功能和特色,并提供导航链接以便用户浏览和搜索。首页界面的设计应注重页面的美观性和用户体验,同时也需要考虑页面的加载速度和响应性能。当进入友爱药房管理系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,其主界面展示如下图5-1所示。
![](https://i-blog.csdnimg.cn/direct/1d23659761744679896e44d2be7e8a95.png)
图5-1 前台首页界面图
5.1.2 用户注册界面
友爱药房管理系统的游客和普通用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用户注册界面展示如下图5-2所示。
![](https://i-blog.csdnimg.cn/direct/9aac6380a27149ceb875f5effaefd733.png)
图5-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);
}
5.1.3 用户登录界面
友爱药房管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到友爱药房管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图5-3所示。
![](https://i-blog.csdnimg.cn/direct/b8a084efbc8b4c279794a2a3951377bf.png)
图5-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, "账号或密码不正确");
}
}
5.1.4系统公告界面
当访客点击友爱药房管理系统中导航栏上的“系统公告”后将会进入到该“系统公告”列表的界面,然后选择想要看的系统公告信息,点击进入到详细界面。系统公告展示界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/e1c503ffb714479b86cb36e0985d5c1c.png)
图5-4系统公告界面图
5.1.5药品商城界面
游客只能查看药品商城的商品,不能进行任何购买、评论操作,普通用户可以选择自己需要的商品,加入购物车、立即购买、收藏、评论。
加入购物车流程图如图5-5所示。
图5-5加入购物车流程图
购买工作流程图如图5-6所示。
图5-6购买工作流程图
药品商城详情展示页面如图5-7所示。
![](https://i-blog.csdnimg.cn/direct/629f784cb9a04e7da57851efec8ff518.png)
图5-7药品商城详情展示界面图
查询单个商品数据关键代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
我的购物车页面如图5-8所示。
![](https://i-blog.csdnimg.cn/direct/e97709c05616432b957be6109c0f279d.png)
图5-8我的购物车界面图
购物车数量修改关键代码如下所示。
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
5.1.6上报处方界面
用户点击“上报处方”菜单可以提交上报处方信息,输入上报日期、上报用户、用户姓名、手机号码、处方截图、处方内容等信息完成提交。上报处方界面如下图5-9所示。
![](https://i-blog.csdnimg.cn/direct/5ccc4fad714f41eda1eaa7c26ada84a1.png)
图5-9上报处方界面图
5.1.7个人中心界面
当用户点击右上角“我的”这个按钮,会出现子菜单,点击“个人中心”可以对个人首页、上报处方、订单配送和自己收藏的信息进行设置管理。个人中心管理如下图5-10所示。
![](https://i-blog.csdnimg.cn/direct/1c4bb806528c484bb40f0370eeb072dc.png)
图5-10个人中心管理界面图
5.2后台功能模块
5.2.1供应商管理界面
管理员点击“供应商管理”可以查看系统所有的供应商信息,可以添加新的供应商,添加供应商界面如下图5-11所示。
![](https://i-blog.csdnimg.cn/direct/f8e971024ae940a5bc43b708752267d4.png)
图5-11添加供应商界面图
添加供应商关键代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
5.2.2入库记录管理界面
管理员点击“入库记录管理”可以查看所有添加的入库记录信息,可以添加新的入库记录,入库记录管理的界面如下图5-12所示。
![](https://i-blog.csdnimg.cn/direct/690b5763caac4e95b4904c6a515e2666.png)
图5-12入库记录管理界面图
入库记录列表管理关键代码如下:
@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);
}
添加入库记录信息界面如下图5-13所示。
![](https://i-blog.csdnimg.cn/direct/08b692eaf8b7438e9c0651a3815f2a3d.png)
图5-13添加入库记录信息界面图
5.2.3上报处方管理界面
管理员点击“上报处方管理”可以查看用户提交的所有上报处方信息,可以对上报处方进行审核回复,也可以添加新的上报处方。上报处方审核界面如下图5-14所示。
![](https://i-blog.csdnimg.cn/direct/99eae3300e2d4311a1896ad722246ec9.png)
图5-14上报处方审核界面图
上报处方审核关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
5.2.4系统管理界面
友爱药房管理系统中的管理人员在“系统管理”这一菜单下是可以对友爱药房管理系统内展示的轮播图信息进行添加修改的。轮播图管理界面如下图5-15所示。
![](https://i-blog.csdnimg.cn/direct/b88d96106db8478c80343b5484183869.png)
图5-15轮播图管理界面图
轮播图上传关键代码如下所示。
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
5.2.5 药品商城界面
管理员拥有对商城管理中的药品商城商品进行添加、修改、删除、管理评论的功能,药品商城管理界面如下图5-16所示。
![](https://i-blog.csdnimg.cn/direct/c16089b5242b4a14a2d87cdf1e2e2e49.png)
图5-16药品商城管理界面图
添加药品商城关键代码如下所示。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
6 系统评估与测试
系统开发的最后一个步骤就是系统测试,系统测试也是整个系统十分重要的一个环节,测试的好坏关系到产品的发展。客户对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程要必须遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,用户使用起来也更方便、更安全。
6.1 系统测试意义
随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。
图6-1就是纠错测试流程。
图6-1 测试与纠错信息流程
6.2 系统测试方法
具体测试方法包括:黑盒测试和白盒测试。
黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。
白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。
具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。
6.3 系统测试用例
测试编号 | 测试内容 | 预期结果 |
TC-001 | 输入有效信息 | 注册成功,跳转到登录页面 |
TC-002 | 输入已存在账号 | 显示账号已存在的提示信息 |
TC-003 | 输入无效信息 | 显示注册失败的提示信息,要求重新输入有效信息 |
表6-2用户登录测试用例
测试编号 | 测试内容 | 预期结果 |
TC-004 | 输入正确的账号密码 | 登录成功,跳转到个人主页 |
TC-005 | 输入错误的账号密码 | 显示登录失败的提示信息,要求重新输入正确的账号密码 |
表6-3 修改密码测试用例
测试编号 | 测试内容 | 预期结果 |
TC-006 | 输入有效密码 | 密码修改成功,显示修改成功的提示信息 |
TC-007 | 输入无效密码 | 显示密码无效的提示信息,要求重新输入有效密码 |
TC-008 | 输入错误原密码 | 显示原密码错误的提示信息,要求重新输入正确原密码 |
表6-4 收货地址添加测试用例
测试编号 | 测试内容 | 预期结果 |
TC-009 | 输入有效的收货地址信息 | 收货地址添加成功,显示添加成功的提示信息 |
TC-010 | 输入无效的收货地址信息 | 显示添加失败的提示信息,要求重新输入有效信息 |
表6-5 查看药品商城测试用例
测试编号 | 测试内容 | 预期结果 |
TC-014 | 点击查看药品商城 | 显示药品商城页面,展示相关的商品名称、价格、图片等内容 |
TC-015 | 选择其他分类 | 显示所选分类下的相关药品商城等内容 |
TC-016 | 无可用药品商城 | 显示暂无药品商城的提示信息,提醒用户重新选择分类 |
6.4 系统测试结果
综上所述,友爱药房管理系统在功能测试中表现良好,通过了所有测试用例。系统提供的用户注册、登录、修改密码、收货地址、查看药品商城等主要功能都能正常运行,并能够给出预期的提示信息和结果。然而,为了确保系统的全面稳定性和质量,仍建议进行更多的综合性测试,包括性能测试、安全性测试和用户体验测试等,以进一步验证和改进系统的功能和性能。
结论
本研究设计并实现了友爱药房管理系统的设计与实现。通过对系统进行功能测试和评估,得出以下结论:该系统在功能上经过验证,用户注册、登录、购物车、药品购买、收货地址和药品出入库管理等功能都能正常运行;技术上具备稳定性和可扩展性,Spring Boot框架简化开发,MySQL数据库支持数据存储与查询;从经济角度看,Java和MySQL均为免费且开源;操作上易用性好,友爱药房管理系统界面简洁明了,Spring Boot的自动化部署与MySQL的管理工具提供便捷操作。友爱药房管理系统在功能、技术、经济和操作上均具有优势。该系统在提高用户购买药品便捷性的同时,也为商家提供了一种在线销售的渠道,促进了药品行业的发展。未来可以进一步扩展功能和优化性能,以满足用户需求并提供更好的用户体验。
在开发友爱药房管理系统的过程中,我们不仅仅是在实现技术功能,更是在探索如何利用技术创新来改善人们的出行体验。通过Java和MySQL等技术的运用,成功构建了一个高效、稳定的系统,为用户提供了便捷、智能的友爱药房管理系统。这个过程不仅考验了个人的技术能力,更考验了创新意识和解决问题的能力。在不断优化系统功能和提升用户体验的过程中,深切感受到技术的推动力量,以及科技创新对社会发展的重要意义。希望我们的努力能够为用户带来更便捷、环保的药品购物选择,让科技的力量持续推动社会进步,为构建更加智慧、可持续的电子商务生态做出贡献。
参考文献
[1]贾进.T连锁药店服务营销策略研究[D].电子科技大学,2023.DOI:10.27005/d.cnki.gdzku.2023.005826.
[2]潘涛,王柳,董冉冉.基于Vue.js框架的网上商城管理系统的设计与实现[J].科技与创新,2023,(13):8-10.DOI:10.15913/j.cnki.kjycx.2023.13.003.
[3]Wang L ,Chen S ,Ma X .Problems and Solutions of Hotel Information Management under the Background of Internet +[J].Information and Knowledge Management,2023,4(3):
[4]刘家宁.线上线下药品零售订单拆分与配送联合优化[D].大连海事大学,2023.DOI:10.26989/d.cnki.gdlhu.2023.000127.
[5]杨胜万.基于SWOT分析的网上药店电子医保支付发展策略研究[D].北京协和医学院,2023.DOI:10.27648/d.cnki.gzxhu.2023.000561.
[6]谭康康,胡支滨,韩阳,等.药店药品信息管理系统的设计及优化[J].华北理工大学学报(自然科学版),2023,45(02):104-109.
[7]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
[8]Ken T M ,K A J ,Qing X , et al.Multifactor Quality and Safety Analysis of Antimicrobial Drugs Sold by Online Pharmacies That Do Not Require a Prescription: Multiphase Observational, Content Analysis, and Product Evaluation Study.[J].JMIR public health and surveillance,2022,8(12):e41834-e41834.
[9]魏武华.移动电子商务平台开发模式研究综述[J].软件,2022,43(11):167-170+183.
[10]李宜镓.基于SpringBoot的电商秒杀系统的设计与实现[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.002507.
[11]黄伟波.基于微服务架构的电子商城系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.003199.
[12]胡美英.新零售背景下SRYY公司单体药店经营能力提升研究[D].南昌大学,2022.DOI:10.27232/d.cnki.gnchu.2022.003594.
[13]陈国圳.新零售背景下D连锁药店营销策略研究[D].广东工业大学,2022.DOI:10.27029/d.cnki.ggdgu.2022.000648.
[14]Samson O O ,Kasekende F ,George C .Linking key antecedents of hotel information management system adoption to innovative work behavior through attitudinal engagement[J].Journal of Hospitality and Tourism Insights,2022,5(2):274-291.
[15]田松涛,段元梅.基于SpringBoot的线上商城平台设计[J].无线互联科技,2022,19(01):56-57.
[16]郑淼.线上线下双轮驱动“双通道”药店升级对策[N].医药经济报,2021-11-25(B02).DOI:10.38275/n.cnki.nyyjj.2021.001659.
[17]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021,(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.
[18]陈晗.基于RESTful的网上商城的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000739.
[19]颜杰群.以HTML5和ASP.NET开发中小型药店线上管理系统[J].常州信息职业技术学院学报,2021,20(01):29-32+41.
[20]VetSuccess; VetSuccess and Vetsource Create First-Ever Complete View of Pharmacy Sales for Veterinary Practices[J].Veterinary Week,2020,
致 谢
在本文的最后,我要对许多人表示诚挚的感谢,他们为SpringBoot友爱药房管理系统
的设计与实现的研发和完成做出了重要的贡献。首先,我要感谢我的导师,您给予了我悉心的指导和支持,在选题和研究过程中提供了宝贵的意见和建议。您的专业知识和严谨态度使我受益匪浅,让我能够顺利地完成毕业设计。其次,我要感谢我的同学和朋友们,你们在我写作和排版过程中给予了热情的帮助和鼓励。与你们一起度过的大学生活是我宝贵的回忆,你们的友谊让我感到无比温暖和快乐。
此外,我也要感谢那些为我们提供参考和指导的学者和专家们。他们的研究成果为我们的论文提供了宝贵的指导,使我们能够更好地理解问题和展开思考。
最后,我要感谢我的家人和爱人,你们一直以来对我无条件的支持和理解让我能够专注于学业。你们的鼓励和陪伴是我坚持不懈的动力。
在这段时间里,我收获了很多宝贵的经验和知识。尽管我的能力有限,但我会继续努力去完善这篇论文,并且真诚地希望各位老师和同学们能够给予宝贵的指导与意见。
最后,再次向所有支持和帮助过我的人表示深深的感谢!我会将所学所得用于实践,为社会做出自己的贡献。
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-