暂无
本系统使用的开发语言为Java,采用后端框架SpringBoot,持久层框架MyBatis Plus,以及Vue.js、Uniapp 前端框架技术,使用MySQL数据库和Redis缓存,采用JWT技术实现了用户身份认证和权限授权。
Spring随着发展逐渐变得笨重,产生大量的大量繁琐的XML配置和第三方整合配置。SpringBoot是由Pivotal团队提供的全新的Web框架,是当前web开发主流,其设计目的是用来简化Spring应用的初始搭建以及开发过程,让开发者能够更容易上手Web项目的开发,从而实现快速开发。SpringBoot 通过“习惯优于配置”的思想实现 Web 项目的快速搭建,从而避免开发人员定义样板化的配置。[[i]]因此,本系统将会使用SpringBoot框架来负责业务开发。
MyBatis是一款优秀的用于持久层的、轻量级的框架,它封装了所有JDBC操作以及设置查询参数和获取结果集的操作,支持自定义sql、存储过程和高级映射。可以简化JDBC开发,使系统的设计更清晰,更易维护,更易单元测试。 Mybatis Plu是MyBatis 的增强工具,在MyBatis基础上只做增强不做改变。因此,本系统持久层将会使用Mybatis Plus来负责数据库的交互,达到简化开发的目的,从而提高效率,如基本的单表增删改查直接调用框架提供的方法即可。
Vue.js是三大前端主流框架之一,该技术是一套用于构建用户界面的渐进式JavaScript结构,是一种快速、简单、灵活的HTML框架,可以实现高效的Web页面开发,并且具有良好的可扩展性和可维护性。此外,Vue.js还可以为用户提供更好的交互体验,让用户能够更加轻松地进行用户管理和操作,从而使系统更具有活力和吸引力。因此,在构建宠物服务管理系统的管理后台的前端页面时,会使用到到Vue.js技术。
Uniapp 是一款以 Vue.js 为开发基础的多平台适配前端框架,开发者仅需遵循开发规范,便可实现一套代码、多平台运行的需求,极大简化了目标系统多平台适配的工作量。[[ii]]因此,选择Uniapp作为小程序端的前端开发框架,配合HBuilderX来开发 uni-app 类型的项目,运行项目到微信开发者工具。
MySQL是Oracle旗下产品最流行的关系型数据库管理系统之一。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,由于 MySQL是开放源码软件,可以大大降低总体拥有成本。因此,本系统选择MySQL作为宠物管理系统的数据库。为了方便创建、管理和维护数据库,使用Navicat的用户界面(GUI)来帮助操作数据库,从而简化数据库的管理。
Redis是基于key-value格式存储、非关系型(NoSQL)数据库,可以用来做数据库、缓存、消息中间件等场景。由于小程序是面向所有的消费者,当所有的数据查询都是从数据库MySQL中直接查询,可能出现频繁访问数据库,数据库访问压力大,系统性能下降,用户体验较差的问题。因此,本系统通过Redis来做缓存,从而降低数据库的访问压力,提高系统的访问性能,提高数据的读写性能。
JSON Web Token简称JWT,用于对应用程序上用户进行身份验证的标记。在基于微服务架构的分布式应用系统中,传统的基于 Session 模式的用户身份认证存在 Session共享的问题,多种解决方案都会增加系统的网络开销;而基于 Token 的分布式系统认证方案可以很好地解决这些问题。[[iii]]使用 JWT 之后不需要保存用户的 cookie 或其他session数据。因此,本系统通过使用JWT完成用户身份认证和权限授权,同时可保证应用程序的安全。
要想使软件产品能够真正的符合使用者的要求,就必须对使用者的需求有一个清晰的认识。在本系统的设计程中,通过实地走访调研本地宠物店以及在网络上收集了大量的相关信息,以供参考,对宠物服务管理系统的业务流程以及用户的操作需求进行了解。通过分析宠物店的主要业务流程可知,系统涉及的人员主要为:后台系统管理员和移动端小程序消费者,他们在系统中的主要操作内容如表 3-1 所示。
表3-1 主要操作内容表
人员操作内容后台系统管理员对后台的所有功能都有操作权限,如:商品分类、商品上架、寄养处理等功能移动端消费者登录小程序前端,可以浏览商品信息、添加购物车、设置地址、在线下单等该系统主要分为管理端后台和用户端前台。
Web管理端主要实现的功能有:
(1)登录功能。管理员必须登录系统管理后台,才能进行下一步的操作。在登录页面上,输入管理员的用户名和密码,就可以完成登录过程,从而访问系统管理后台。
(2)商品分类功能。管理员将拥有的商品进行分类,可以对其进行归纳整理,主要包括查询、新增、修改、删除功能。查询功能可以快速地定位到当前的商品分类,以便用户更方便地找到所需的商品;新增功能可以快速添加新的商品,为用户提供更多的选择;修改功能可以对商品分类进行调整,使其更加合理;删除功能可以对已有的商品分类进行删除,以确保系统中没有无用的商品。
(3)商品上架功能。可以帮助商家更快地将商品在网上展示出来,让消费者能够更方便地购买到自己想要的商品,同时也可以提升消费者购物体验。该功能的实现可以展示该商品的详细信息,如商品名称、价格等,商家可依据顾客的意见及消费反馈来对商品进行修改。
(4)订单管理需求。管理员可以管理用户的订单,包括查询订单、修改订单、确认订单等功能,实现了对用户订单信息的实时查询和跟踪,有效地提高了系统的效率。
(5)寄养需求。寄养是宠物店为消费者的宠物们提供的一系列,让它们在宠物店也能得到更好地照顾。管理员可以在系统上处理消费者提交的寄养订单。通过系统上的展示可以了解宠物的到店时间、寄养时间等信息。
Web管理端用例图如下图所示:
图3.1 管理端用例图
小程序用户端主要实现的功能有:
(1)登陆、注册功能。用户可以在手机移动端通过微信号登录或者注册小程序,这将为用户提供更加便捷、高效的服务。
(2)分类展示商品功能。在小程序中,为了方便用户进行购物,可以通过分类展示商品的功能,将商品按照不同类别进行分类,例如按照宠物食品、宠物用品等类别进行分类,这样就能够让用户根据自己的需求,及时了解自己需要的商品信息,从而更加方便快捷地进行购物。
(3)下单和订单查询功能。用户可以在小程序中添加商品到购物车,下单时添加地址、联系方式、收货人等信息,从而完成下单操作;此外,用户还可以通过查询订单信息,了解已购买的商品,以及是否有其他订单。
(4)宠物寄养提交功能。消费者在外出时,如果不方便携带宠物,可以通过小程序的寄养功能,将它们寄养在宠物店里,这样不仅可以让宠物得到妥善照顾,避免宠物独自在家可能出现的问题,让消费者安心。
小程序用户端用例图如下图所示:
图3.2 用户端用例图
3.2.2 性能需求(1)实时性。宠物服务的业务数据都是基于用户的实时行为数据,基于此,小程序可以实时地将消费者的选择信息同步到商家,从而提升对用户需求的响应速度。
(2)扩展性。系统可以根据业务发展变化,及时更新数据和功能,以满足不同客户的需求。小程序可以提供信息的更新、商品的展示以及线上交易等多种功能,实现更多的应用。
(3)用户体验。在对该系统的用户体验进行设计的时候,应该将其与产品的特点和应用情景相联系,在功能、界面和交互等上都要按照用户的行为习惯来进行,为用户创造一个良好的操作环境,并让业务数据可以与用户的行为数据进行实时交互。小程序的推出可以有效降低用户的使用门槛,提升用户使用体验。
(4)系统安全。宠物服务管理系统的小程序端采用JWT技术实现了用户身份认证和权限授权,保护用户的隐私不受侵犯
本系统采用MySQL作为数据库,使用Navicat的用户界面(GUI)来帮助操作数据库,建立了名为pet的数据库,在数据库下建立了若干张表。
(1)user表(用户表)
表3.1 用户表
名称类型长度含义备注user_idint11用户id主键usernamevarchar20用户名passwordvarchar16密码open_idvarchar255微信open_idavatar_urlvarchar4096头像地址user_typetinyint1用户类型 (0后台管理员,5小程序用户)del_flagtinyint1删除标记 (0未删除,1已删除)create_timedatetime0创建时间update_timedatetime0更新时间(2)goods表(商品表)
表3.2 商品表
名称类型长度含义备注goods_idint11商品id主键titlevarchar255标题pic_urlvarchar4096图片cover_urlvarchar4096封面图pricedecimal10价格weightdouble0重量(kg)goods_desctext0描述sale_numint11销售数量store_numint11库存数量show_statustinyint1上架状态 (0上架,1下架)del_flagtinyint1删除标记 (0未删除,1已删除)create_timedatetime0创建时间update_timedatetime0更新时间(3)category表(分类表)
表3.3 分类表
名称类型长度含义备注category_idint11分类id主键category_namevarchar255分类名称parent_idint11父idsortint255排序(升序排序)(4)category_goods表(分类-商品关联表)
表3.4 分类-商品关联表
名称类型长度含义备注category_idint11分类idgoods_idint11商品id(5)user_order表(订单表)
表3.5 订单表
名称类型长度含义备注order_idint11订单id主键order_novarchar255订单编号user_idint11购买用户usernamevarchar64下单者用户名avatar_urlvarchar4096下单者头像地址goods_numint11购买物品数量price_sumdecimal10购买总价order_statustinyint1订单状态 (0未支付,1支付成功,2支付失败,3备货中,4运输中,5到达地点,6收到货物,7完成)receive_ goods_typetinyint1收货类型 (1现场取货,2外卖,3预约取货)addresstext0收货地址appointment_timedatetime0预约时间remarktext0备注del_flagtinyint1删除标记 (0未删除,1已删除)create_timedatetime0创建时间update_timedatetime0更新时间(6)user_order_item表(订单明细表)
表3.6 订单明细表
名称类型长度含义备注order_item_idint11订单详情id主键order_novarchar64订单编号user_idint11购买者idgoods_idint11物品/商品idpurchase_numint11购买数量pricedecimal10购买价格del_flagtinyint1删除标记 (0未删除,1已删除)create_timedatetime0创建时间update_timedatetime0更新时间(7)address表(用户地址表)
表3.7 用户地址表
名称类型长度含义备注address_idint11地址id主键user_idint11用户idnamevarchar255收货姓名phonevarchar11联系方式detailed_addresstext0详细地址del_flagtinyint1删除标记 (0未删除,1已删除)create_timedatetime0创建时间update_timedatetime0更新时间(8)pet_care表(宠物寄养记录表表)
表3.8 宠物寄养记录表表
名称类型长度含义备注pet_care_idint11宠物寄养id主键user_idint11申请者usernamevarchar20申请者用户名avatar_urlvarchar4096申请者头像地址pet_namevarchar255宠物昵称pet_desctext0宠物描述start_timedatetime0开始时间end_timedatetime0结束时间phonevarchar11联系号码budgetdecimal10预算pay_sumdecimal10支付金额statustinyint1宠物寄养状态 (0 申请中,1 店家已接受,2 宠物已到店,3寄养中,4完成)apply_timedatetime0申请时间accept_timedatetime0店家接受时间arrive_shop_timedatetime0宠物到店时间finish_timedatetime0完成时间del_flagtinyint1删除标记 (0未删除,1已删除)create_timedatetime0创建时间update_timedatetime0更新时间小程序可以通过微信官方提供的登录能力,方便地获取微信提供的用户身份标识,以建立小程序内的用户体系,实现更有效的信息沟通和服务体验。小程序登录注册时序如图3.3所示。
图3.3 小程序登录注册时序图
(1)用户访问小程序,首先判断缓存中是否存在token令牌,如果没有令牌,则跳转到登录页面。
(2)点击“微信一键登录”按钮,先获取微信授权码code,再发起请求,把code传递到服务端。
(3)服务端接收到code参数之后,组装参数:“openID + appSecret + Code”,请求微信官方接口,返回openID等信息。
(4)先根据openID查看用户表中,用户是否注册;如果未注册,则先自动注册账号,再通过jwt创建 token 令牌,并返回;如果已注册,则直接通过jwt创建token令牌,并返回前端给小程序。
(5)收到后端接口返回的token令牌和用户信息,将其保存到缓存中。
(6)如果用户昵称和用户头像,任意一个没有信息,则跳转到完善信息页面,填写昵称和用户头像,之后跳转到首页。
(7)小程序使用微信用户openID作为账号体系,同一个小程序中,每个用户openID是唯一的,因此可以作为账号体系。
小程序登录界面如图3.4所示。
图3.4 小程序登录界面
3.4.2 订单模块用户通过小程序中下单,系统会根据用户的订单信息,从后台获取订单信息,并进行处理,最后生成订单状态以及相关的订单详情。订单时序图如3.5所示。
图3.5 小程序订单时序图
(1)用户点击“商店”,添加需要的商品至购物车中,点击“下单”,进入账单结算界面后,设置收货地址。
(2)小程序将订单信息发送到管理后台,管理员可以从“订单管理”栏中查看订单信息(订单编号、用户名、用户头像、总价、备注、地址、预约时间、类型、状态、操作),此时状态显示“未支付”,订单管理页面如图3.6所示。
图3.6 后台订单管理页面
(3)用户在小程序中点击“支付”按钮之后,会将支付成功结果返回给管理后台,管理员可以看见用户已经支付的状态。
(4)管理员在后台点击“开始备货”按钮后,会将备货状态发送给微信小程序,这时候用户可以在“订单”板块中看见当前订单的状态显示为“正在备货”,如图3.7所示。
图3.7 后台订单管理和详情页面
(5)管理员点击“备货完成”后,后台状态更改为“运输中”,小程序端订单将会显示“正赶来”状态。
(6)管理后台:商品送达后,在订单详情页中,点击“运输中”按钮,系统会自动转换为“等待客人收货”状态。用户在小程序“点击收到”确认收货,然后由管理人员在后台“点击完成”,最终完成整个订单。
3.4.3 寄养宠物模块在用户外出不方便携带宠物时,宠物店便成为了大多数用户选择寄养的场所,因此设计了宠物寄养功能,寄养宠物时序图如图3.8所示。
图3.8 寄养宠物时序图
(1)用户访问“寄养”界面,在小程序中填写寄养申请工单,包括宠物昵称、手机号、开始时间、结束时间、预算金额和宠物描述的内容。小程序寄养申请界面如图3.9所示。
图3.9 小程序寄养申请界面
(2)将寄养的信息工单发送给后台,管理员可以通过“寄养订单”栏查看寄养信息,接受宠物寄养申请。后台寄养订单页面如图3.10所示。
图3.10 后台寄养订单页面
(3)用户进入小程序“寄养中心”界面,查看商家是否同意宠物寄养申请,同意后携带宠物去线下实体店,点击“到达店铺”。后台收到信息后,商家与用户协商最终寄养价格及注意事项,在后端点击“确认寄养”操作。将寄养信息发送给用户。小程序寄养中心界面如图3.11所示。
图3.11 小程序寄养中心界面
(3)寄养日期到期后,用户前往宠物店接走宠物,后台点击“完成寄养订单”,返回寄养的订单状态到小程序,小程序的寄养状态更新为“已完成”,至此,寄养订单全部完成。
相关知识
【开题报告】基于SpringBoot的宠物寄存商店管理系统的设计与实现
基于SpringBoot的宠物管理系统的设计与实现
【开题报告】基于SpringBoot的宠物电商社区系统的设计与实现
【2024】基于springboot的宠物领养管理系统设计与实现研究思路
基于springboot的宠物领养系统的设计与实现
【2024】基于springboot的宠物领养管理系统设计与实现
Springboot计算机毕业设计基于框架的流浪动物管理系统设计与实现01f4a
基于Javaweb的宠物健康生活管理系统的设计与实现
基于SpringBoot微信小程序的宠物美容预约系统设计与实现
基于SpringBoot的宠物寄领养网站管理系统
网址: 基于SpringBoot的宠物管理系统的设计与实现 https://m.mcbbbk.com/newsview284634.html
上一篇: 【原创】SSM宠物领养系统(宠物 |
下一篇: Java毕业设计 |