版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章概述1.1课题背景互联网经济推动传统行业变革。随着互联网的高速发展、新技术革命为传统行业带来新的增长动力,“互联网+传统行业”商业模式的应用,在国内产生了一大批共享经济,共享经济的核心理念是使闲置的资源通过社会的公共平台与他人共同使用,从而获取一定收入的经济现象。共享经济强调的是物品的使用权,并不是人们之前印象中的物品的拥有权。共享自行车、共享电动车、共享充电宝、共享汽车等,互联网的发展在解决传统经济增长瓶颈问题的同时,以资源优化配置为手段提高了资源利用率,使社会资源在不同企业个体之间循环利用,为解决产能过剩、节约资源提供了新的思路,丰富了社会公共产品的供给,提升了居民的生活品质。目前市面上使用的寄存柜,大部分都停留在以人工为主的手动开关投币式储物柜和传统的电子式储物柜。有的传统机械式的储物柜系统通常使用传统的钥匙或者密码挂锁来实现物品的存放,这类传统储物柜在使用的时候具有操作比较繁琐、不利于管理等缺点。采用密码挂锁的储物柜,如果忘记密码,将会给用户和工作管理人员造成一定的麻烦;有的电子式储物柜内部嵌入的传统的单片机模块,用户一般是通过扫描纸质的凭条或者项圈手环等方式进行控制放在柜子内部的单片机模块,再进而驱动控制电路实现柜子门的开关。与传统机械式储物柜相比,电子式寄存柜更方便用户操作。但电子存储系统也需要使用纸质条码、手环等额外器件来控制储物柜的开关,这些器件极易丢失,用户需要承担物品丢失的风险,这影响用户的使用体验。根据《基于公共场所下的寄存柜创新设计和使用——以泰安市为例》的社会调查的数据中显示,有57.89%的参与者表示他们在使用寄存柜时出现过小票丢失的情况,并且大家都表示传统寄存柜的开箱码非常难以保存[1]。如果开箱的小票丢失,用户必须联系工作人员并提供自己的在柜中的物品信息以及存物箱号,才能在工作人员的帮助下取出物件,如果忘记自己的箱号则更加麻烦,需要工作人员打开柜子部分柜子甚至全部的柜子,查看柜子内的物品,这样会造成一系列的时间和人力的浪费。基于Android、IOS等手机APP的智能寄存储物系统,在一定程度上相较于传统储物柜系统提升了系统的便利性、稳定性,满足了人们智能化储物的需求。在徐爱昆、康怡琳等人设计的智慧校园储物柜系统中,以手机APP为用户端,以单片机为控制储物柜的核心模块,并结合各种功能模块机型多种方式进行开锁,实现了智能化储物[2]。张世卓在《基于微信小程序的智能储物柜控制系统设计》一文中使用微信小程序控制储物柜的开关,通过连接云服务器下发指令给蓝牙模块,并通过蓝牙模块传递指令信息给单片机执行实现控制储物柜的开关[3]。该设计不能实时查看该储物柜的使用情况,需要用户到寄存柜前,才能知道该寄存柜的使用情况,这对用户来说并不方便。郁美霞在《基于校园卡的智能储物柜人机交互系统的设计》中,使用了校园卡作为开柜的条件,通过基于校园卡的智能电子储物柜系统,系统采用三级分层之间的数据交换模式,可以实现存取信息的动态存储以及现场图像的采集,方便历史查询,能够真正意义上实现存储柜的智能化、信息化管理[4]。用户取物时,不仅需要刷卡,还需输入校园卡密码,这样虽然确保了存储物品的安全性但操作还是有些麻烦,总体对于用户使用来说并不方便。综上所述,本课题主要通过使用HbuiderX软件中的uni-app框架为基础,结合ZigBee组网控制技术应用到传统储物柜中,利用互联网+寄存柜的形式,设计一个可供用户能够实时查看寄存柜的使用情况的小程序使用户能够预约存物、实时查看寄存柜可用余量、管理寄存柜等;管理人员能够在后台管理系统中统计寄存柜的使用情况以及数据,以便提升用户使用体验以及管理人员管理效率的共享寄存柜系统。1.2相关技术1.2.1ZigBee无线组网技术无线组网技术的特点有功耗低、低速率、低成本等,它的网络协议是Z-stack协议,其技术标准是IEE802.15.4的通信标准,工作频率一般为2.4GHz,共有16个频道,频道的中心距离为5MHz,传输速度为250kbps。组建一个完整的ZigBee网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。[5]1.2.2Vue.js框架Vue是一套用于构建用户界面的渐进式框架。Vue可以自底向上逐层应用。它的核心库只关注视图层,便于与第三方库或既有项目整合[6]。本系统使用Vue框架搭建管理员后台管理前端界面,VueE框架数据渲染时,模块与模块之间只以数据进行交互,耦合性低。能够使后端与前端之间数据交互不受干扰。1.2.3uni-app框架uni-app是使Vue.js开发跨平台应用的前端框架,开发者编写一套代码,可编译到IOS、Android、H5、小程序等多个平台[4]。使用uni-app框架开发可编写一套代码,多端运行,解决多端重复开发,减轻开发工作。1.2.4SpringBoot技术SpringBoot是Pivotal团队在Spring的基础上提供的一套全新的开源框架,其目的是为了简化Spring应用的搭建和开发过程。它去除了大量的XML配置文件,简化了复杂的依赖管理。SpringBoot具有Spring的优秀特性,SpringBoot可以做Spring能做的事,而且使用更加简单,功能更加丰富,性能更加稳定、健壮。1.2.5Echarts框架Echarts是一个帮助数据可视化的库。使用图表可以直观的把庞大的数据以一种合适的方式展现给用户,用户可以通过进行图表分析得出有价值的信息。因此,本系统在管理员的后台管理界面中使用Echarts框架,将寄存柜的数据、用户数据进行图表展示。
第2章需求分析随着当今社会的发展,外出游玩的人越来越多。出门在外游玩,免不了带些行李包裹。若在外游玩的时间较长,那么沉重的包裹便成了甜蜜的“负担”。有的景点会设置一些储物柜,方便游客存储行李物品。储物柜数量有限,或在景区位置分散,若不熟悉景区环境,游客一时间便会找不到合适的空置储物柜,拖着笨重的行李包裹就会使人玩得不尽兴,带来各种不必要的麻烦。有的老式储物柜因为使用纸条、手环等凭证,显然已经无法满足现代人的对智能化存储的需求[8]。老式的寄存柜需要专人管理和维护,因此时间和人工的成本较高,随着社会的进步,结合共享经济的发展,传统寄存柜也慢慢发展成为共享类寄存柜,使用户可以通过线上锁定寄存柜位置,通过微信小程序控制寄存柜的开关进行存取物品。本课题计划利用计算机技术设计共享寄存柜应用系统,用户通过微信小程序即可了解储物柜的使用情况,实现智能储物,以满足用户的要求、提升用户体验;传统的寄存柜的收费方式多是采用人工收费记账或投币式储物,统计起来繁琐复杂,对账麻烦,本课题计划设计设置不同规格的定制寄存柜,并且每个柜子在管理端都能够显示详细支付使用记录,使管理人员对账方便,且能够对储物柜实现有效的管理。2.1系统功能概述本课题针对当今社会的‘共享生活’的应用需求,分析整个系统的架构,分析‘存物取物’的从分发空柜到结束的流程等,设计实现存物、取物、预约存物等功能。本系统主要是从用户角度与现实需求两方面考虑的以uni-app框架、Vue编写前端系统,使用SpringBoot框架、Mybatis-Plus等编写后端系统,具体功能界面采用小程序实现,数据库选择MySql。本系统主要需求功能为以下几点:1)在线获取寄存柜的使用情况2)预约存物和存物过程的互斥性,即同一个柜子,不能被重复预约3)用户存物成功后,生成一组取件码4)预约存物成功后,生成预约存物可存时间段、被预约的柜子在该时间段内不可使用5)以清单的方式展示出用户存物的订单记录6)管理员可以查看用户订单信息和增加删除寄存柜7)用户可在手机上提前预约柜号,确认到达存放点后,点击“存物”,进行存放8)用户输入取件码,验证成功后,用户可取走物品9)使用ZigBee的无线组网技术结合ESP8266wifi模块上传数据到OneNet云端,达到小程序远程控制寄存柜柜门的开关效果2.2系统业务流程分析本课题根据共享寄存柜的总体要求,对共享寄存柜的业务流程进行分析。(1)小程序端流程分析用户在小程序端登录后可点击“预约”、“存物”、“取物”等功能按钮,可以进行预约、存取、查询历史记录、账号充值等。用户登录成功后选择点击“存物”,用户进行自主选择需要寄存的柜子编号,确认选择后,用户将收到一组取件码作为取货凭证,用户也可以点击“预约”按钮,提前预约寄存柜寄存物品,点击“预约”后,选择寄存柜子的大小并选择需要预约存物的时间后,支付预约费用,后台分配寄存柜编号,确认到达存放点后,点击“存物”,进行存放。用户点击“取件”,支付取件费用并输入取货码,验证成功后,用户可取走物品。特殊情况时,用户可以点击订单下方的建议反馈或者联系工作人员,验证身份信息,告知自己的取货码,由工作人员进行取物,不影响用户正常取出物品。(2)管理员端流程分析管理员在后台管理中登录后可进行:用户订单管理、用户信息管理、寄存柜信息管理、建议反馈管理等操作管理员可以对用户列表、用户充值订单信息列表、用户余额列表、用户预约订单信息列表、用户订单列表、寄存柜信息列表、建议反馈列表进行导出工作,可以对寄存柜进行新增、修改、禁用等操作以及对建议反馈信息进行回复操作。2.3系统功能需求分析2.3.1小程序端功能模块本系统的小程序端功能包括:预约存物、现场存物、取物、订单中心查看订单信息、个人中心查看修改个人信息、对订单信息反馈建议、账户充值等功能。小程序预设计以下几个功能模块:1)个人信息管理:修改个人信息、修改密码等。2)预约存物:可以对空闲的柜子进行预约3)预约订单管理:查看预约存物的订单,取消预约订单4)普通订单管理:查看订单详情、删除订单(逻辑删除、数据库不删除)5)登录注册:用户登录注册后才能进行预约、存物等操作6)账户充值:充值账户,用于支付存物时产生的费用用户用例场景描述如下:用户在小程序端登录后可选择寄存柜进行预约、存取、查询历史记录、账号充值等功能。具体功能情况如图2-3所示。图2-3用户用例图预约寄存柜功能的详细描述如表2-1所示。表2-1预约功能用例描述名称内容用例编号:UL0001用例名:预约寄存柜参与者:用户触发因素:用户想要通过预约功能,预约寄存柜输入信息:预约时间、预约寄存柜类型结果:预约成功过程:1)进入预约寄存柜界面2)选择预约时间、需要预约的寄存柜类型3)输入支付密码4)点击“预约”按钮,确认预约取物功能的详细描述如表2-2所示。表2-2取物功能用例描述名称内容用例编号:UL0002用例名:取物参与者:用户触发因素:用户想要想要取物输入信息:支付密码、取件码结果:取件成功,柜门打开过程:1)点击取件2)输入取件码3)输入支付密码4)点击“取件”按钮,确认取件,打开柜子2.3.2后台管理端功能模块本系统的管理员后台管理端功能包括:个人信息管理、订单信息管理、用户信息管理、寄存柜信息管理等功能。管理员端预设计以下几个功能模块:1)预约订单管理:管理用户预约订单。2)反馈建议管理:管理用户反馈建议信息。3)个人信息管理:修改个人信息、修改密码等。4)订单管理:用户订单处理,导出用户订单等。5)储物柜管理:对储物柜的新增、修改、删除。6)用户信息管理:用户信息查询、用户密码修改。7)管理员用例场景描述如下:管理员在后台登录后管理员在后台管理端登录后能够查看寄存的使用情况、用户的订单信息情况等功能。具体功能情况如图2-4所示。图2-4用户用例图建议反馈回复功能的详细描述如表2-3所示。表2-3建议反馈回复功能用例描述名称内容用例编号:UL0003用例名:建议反馈回复参与者:管理员触发因素:管理员回复处理用户的反馈建议输入信息:回复信息内容结果:回复成功过程:1)选择回复的反馈信息2)输入回复内容3)点击“回复”按钮,回复成功4)建议反馈内容列表中的管理员回复状态改变订单信息列表导出功能的详细描述如表2-4所示。表2-4订单信息列表导出功能用例描述名称内容用例编号:UL0004用例名:订单信息列表导出参与者:管理员触发因素:管理员导出用户订单信息列表结果:导出成功过程:1)选择订单列表2)点击“导出”按钮,导出成功2.3.3下位机控制模块本系统的下位机使用cc2530芯片搭载ZigBee模块通过无线组网技术配合ESP8266wifi模块将传感器的状态上传到OneNet云端,云端解析用户输入的指令并通过ESP8266模块下发指令给ZigBee模块以控制电磁传感器的开关,从而实现远程控制寄存柜开关。电磁传感器接通电源后,传感器通电,铁芯插入线圈,产生磁力;断开电源力量消失,铁芯靠弹簧自动复位,磁力消失。以达到寄存柜开关门的效果,电磁开关状态示意图如图2-5所示。图2-5电磁开关状态示意图
第3章系统设计3.1总体设计架构本系统的开发主要包括前端小程序应用系统和后台管理系统,主要功能是用户在小程序端登录后可选择寄存柜就可以进行预约、存取、查询历史记录、账号充值等。管理员在后台管理端登录后能够查看寄存的使用情况、用户的订单信息情况等。本课题设计是对共享寄存柜搭建的模型。共享寄存柜的设计部分分为上位机部分和下位机部分,上位机部分是由管理员的后台管理部分和小程序部分组成,下位机部分由ZigBee功能板、cc2530芯片和传感器组成。系统的总体架构如图3-1所示。图3-1系统总体功能结构图3.2小程序端功能模块设计(1)用户登录注册1)注册:用户注册时输入邮箱(唯一键)、密码、确认密码信息等2)登录:用户登录时输入邮箱账号、密码;密码错误或账号不存在登录失败(2)预约用户点击预约后选择预约的柜子,选择存物的时间段,预约存物时间只能预约七天内。支付预约费用后生成预约码。(3)存物1)用户如果为预约用户,点击存物后,输入预约码,选择存物类型,生成取件码,用户存物成功。2)用户如果为普通用户(没有预约),点击存物后,选择存物类型,生成取件码,用户存物成功。3)用户若已存物没有取出,不可再次存物、预约4)用户存物后计费开始,未满一小时按一小时计算,需支付一小时的存物费用(4)取物用户输入取件码,支付存物费用,支付完成后,取件成功;如果用户账户余额不足,需要先进行充值后,才能取件;若是预约用户,取件成功后退回预约费用(5)订单中心1)订单信息查看:用户可以在订单中心查看存物、预约的订单。2)反馈建议:每个订单下面可点击反馈建议,对该订单进行反馈或建议(6)我的1)个人信息修改2)联系客服:用户点击联系客服3)预约查看:可查看用户预约信息、预存码等4)账户金额:用户可充值,若取物时账户没有金额,无法取物成功。小程序端流程图如图3-2所示:图3-2小程序端流程图3.2.1预约模块用户通过小程序端的预约功能预约寄存柜,预约成功后该寄存柜不会再被预约。用户通过选择想要预约的存物时间以及存物柜的大小,支付预约费用后生成预约码以及分配该类型的寄存柜编号。图3-2预约模块流程图预约模块功能流程说明如下:步骤1:用户登录后,选择预约步骤2:预约寄存柜类型步骤3:选择预约时间步骤4:支付该类型寄存柜预约金额步骤5:判断支付是否成功,支付成功进入步骤6,支付失败返回步骤2步骤6:支付成功,分配预约码以及预约的寄存柜编号步骤7:结束3.2.2取物模块用户通过小程序端的取件功能对寄存柜进行取件,取件成功后该寄存柜可以再被预约、存物。用户输入取件码,支付存物费用,支付完成后,取件成功;如果用户账户余额不足,需要先进行充值后,才能取件。图3-3取件模块流程图取件模块功能流程说明如下:步骤1:用户登录后,点击取件步骤2:输入取件码步骤3:判断取件码是否输入正确,输入正确进入步骤4,输入错误返回步骤2步骤4:支付寄存柜的存物费用步骤5:判断支付是否成功,支付成功进入步骤6,支付失败返回步骤4步骤6:支付成功,寄存柜打开,用户取出物品管好柜门步骤7:结束3.2.3订单中心模块用户在订单中心中可以查看所有已完成的柜子、存物中的柜子以及预约中的柜子。预约中的柜子订单下方附加一个去存物按钮,点击该按钮可以跳转存物页面,进行存物操作。存物中的柜子订单下方附加一个去取物按钮,点击该按钮可以跳转首页进行取物结算操作。订单中心页面设计如图所示:图3-4为订单中心(全部)页面设计图,可以查看当前登录用户所有的历史订单记录、正在预约中或使用的寄存柜订单图3-5为订单中心(预约中)页面设计图,可以查看用户预约中的订单记录图3-4订单中心(全部)页面设计图图3-4订单中心(预约中)页面设计图图3-5为订单中心(存物中)页面设计图,可以查看用户正在存物中的订单记录图3-6为订单中心(已完成)页面设计图,可以查看用户已完成的所有订单记录图3-5订单中心(存物中)页面设计图图3-6订单中心(已完成)页面设计图3.2.4反馈建议模块用户在订单中心中可以查看所有已完成的柜子、存物中的柜子以及预约中的柜子。点击订单下方的反馈建议,可以就该订单进行反馈建议。用户可以在个人中心的“我的反馈”中,进入反馈建议列表中可以查看当前反馈管理员是否已回复,回复的内容是什么。3.3管理员端功能模块设计(1)管理员登录模块管理员通过指定账号密码登录后台账户(2)管理员个人信息管理员可以修改自己个人信息:姓名、电话、邮箱、密码等(3)用户信息管理用户信息列表:用户列表查询、导出、禁用;用户列表包含:用户id、用户名、用户账户余额、用户状态(4)用户订单管理1)用户订单信息列表订单信息列表查询、导出;订单信息列表包含:订单编号、用户名、寄存柜id、柜格id、柜格类型、存物时间、取物时间、支付金额、支付时间2)用户预约信息列表预约信息查询、导出;预约信息列表包含:预约编号、用户名、预约时间、预约存物时间3)用户充值订单信息列表充值订单信息列表查询、导出;用户充值订单信息列表包含:充值订单编号、用户名、用户充值金额(5)用户反馈建议管理用户反馈建议处理:查看、回复、导出用户建议信息;反馈建议列表包含:建议编号、用户建议信息、用户id(加密)、管理员回复状态(6)储物柜管理储物柜列表:储物柜新增、修改、禁用、导出;储物柜列表包含:储物柜id、储物柜大格数量、小格数量、大格每小时存物单价、小格每小时存物单价、储物柜地址、储物柜状态管理员端流程图如图3-3所示:图3-3管理员端流程图3.3.1寄存柜管理模块管理员可以对寄存柜进行增改查以及对寄存柜的状态进行管理,寄存柜管理模块功能流程图如图3-5所示:图3-5寄存柜管理模块流程图寄存柜管理模块操作步骤如下:步骤1:管理员登录。步骤2:判断管理员是否登录成功步骤3:登录成功后进入管理员管理后台主界面。步骤4:选择寄存柜管理。步骤5:执行选择操作,可以选择新增一个寄存柜、修改选中寄存柜的信息、修改选中寄存柜的状态,如果被选择的寄存柜正在使用不可被禁用。步骤6:操作成功。步骤7:结束3.3.2用户信息管理模块管理员可以对用户进行状态修改、密码修改、浏览选中用户历史存物记录、导出用户列表等操作。图3-6管理员端(用户列表)页面设计图图3-6管理员端(用户列表历史订单)页面设计图3.3.3用户订单管理模块管理员可以浏览查看用户存物订单列表、用户充值订单列表、用户预约订单列表,也可以做导出列表等操作。图3-7订单管理(存物订单)页面设计图3.3.4反馈建议处理模块管理员可以浏览用户反馈建议信息列表,选中未回复列表点击“回复”按钮可回复该条反馈记录。反馈完成后该条反馈的状态改变为“已回复”,用户可在小程序端的反馈信息列表中点击详情查看管理员回复信息。3.4硬件功能模块设计本课题的硬件部分主要以ZigBee(cc2530)芯片为控制中心。通过Wi-Fi(ESP8266)模块与手机终端进行数据通信,用户通过小程序下发指令传输给云端,云端对小程序发送的指令进行分析和处理,然后使用无线传输的方式把信息发送至协调器,电磁线圈的工作状态通过云端下发的指令进行控制操作。本系统柜格设计如3-8所示。图3-8下位机部分设计图(正面)图3-9下位机部分设计图(背面)3.5数据库概念设计3.5.1数据库结构逻辑设计根据数据库的表可以得出各个实体属性图,而根据各实体属性图可得出整体的E-R图,E-R图如图所示:图3-7系统E-R图(1)管理员关系模式说明:管理员(管理员编号,管理员用户名,管理员密码)主键:管理员编号。外键:无。图3-8管理员实体图(2)用户关系模式说明:用户(用户编号,用户名,密码,地址,邮箱,性别,状态,创建时间,电话)主键:用户编号。外键:无。图3-9用户实体图(3)存物订单关系模式说明:存物订单(订单编号,用户编号,支付时间,寄存柜编号,支付金额,订单创建时间,订单状态)主键:订单编号。外键:无。图3-10存物订单实体图(4)预约订单关系模式说明:预约订单(预约订单编号,用户编号,预约时间,寄存柜编号,支付金额,订单创建时间,订单状态,预约码)主键:预约订单编号。外键:无。图3-11预约订单实体图(5)充值订单关系模式说明:充值订单订单(订单编号,用户编号,支付时间,支付金额,订单状态)主键:充值订单编号。外键:用户编号。图3-12充值订单实体图(6)建议反馈关系模式说明:建议反馈(反馈编号,用户编号,反馈时间,反馈内容,状态,回复内容)主键:充值订单编号。外键:用户编号。图3-13反馈建议实体图(7)寄存柜关系模式说明:寄存柜(寄存柜编号,类型,价格,状态,地址,创建时间)主键:寄存柜编号。外键:无。图3-14寄存柜实体图(8)账户余额关系模式说明:账户余额(用户编号,余额,用户名)主键:用户编号。外键:无。图3-15用户账户余额实体图(9)地址关系模式说明:寄存柜地址(寄存柜编号,地址,id)主键:id。外键:无。图3-16寄存柜地址实体图3.5.2数据库物理结构设计根据分析和设计,本系统主要涉及到以下表,管理员表(3-1),用户表(3-2),存物订单表(3-3),预约订单表(3-4),充值订单表(3-5),建议反馈表(3-6),寄存柜表(3-7),用户余额表(3-8)、地址表(3-9)。(1)管理员表管理员表存放的是管理员信息的列表。此表包含了管理员账号、管理员密码。管理员表的字段结构设计如表3-1所示。表3-1管理员表(admin)序号字段名数据类型大小说明空值描述1usernamevarchar255主键否管理员账号2passwordvarchar255否管理员密码3AdminIdint否编号(2)用户表用户表存放的是用户信息的列表。此表包含了用户名、密码、邮箱、电话、地址、性别、账户状态、创建时间。用户表的字段结构设计如表3-2所示。表3-2用户表(pm_user)序号字段名数据类型大小说明空值描述1User_nameVarchar30用户名2User_passwordvarchar255否管理员密码3User_Emailvarchar30主键否邮箱4User_telVarchar11电话5User_AddressVarchar255地址6User_sexChar2性别7User_statusint用户账户状态8Create_timedatetime创建时间(3)存物订单表存物订单表存放的是用户的存物信息生成的订单列表。此表包含了id编号、支付金额、支付时间、订单状态、用户id、创建时间、寄存柜编号、订单编号。存物订单表的字段结构设计如表3-3所示。表3-3存物订单表(bs_order)序号字段名数据类型大小说明空值描述1pay_moneyVarchar30支付金额2pay_timevarchar255否支付时间3Order_statusvarchar30订单状态4User_idVarchar11用户id5Create_timedatetime创建时间6Box_idvarchar255否寄存柜编号7Order_numvarchar255主键否订单编号(4)预约订单表存物订单表存放的是用户的存物信息生成的订单列表。此表包含了预约时间、寄存柜id、用户id、预约编号、订单创建时间、支付金额、预约单号。预约顶动感表的字段结构设计如表3-4所示。表3-4预约订单表(bs_book_order)序号字段名数据类型大小说明空值描述1book_timevarchar255预约时间2box_idvarchar255否寄存柜id3user_idvarchar255否用户id4book_codevarchar255主键否预约编号5create_timevarchar255创建时间6pay_moneyvarchar255支付金额7book_numvarchar255预约码(5)充值订单表充值订单表存放的是用户的充值信息生成的订单列表。此表包含了充值订单编号、用户id、订单创建时间、支付金额。充值订单表的字段结构设计如表3-5所示。表3-5充值订单表(bs_account_order)序号字段名数据类型大小说明空值描述1account_idvarchar32主键否订单编号2user_idvarchar32用户外键3deal_timedatetime0交易时间4moneyvarchar32交易金额(6)建议反馈表建议反馈表存放的是用户建议反馈信息的列表。此表包含了反馈内容、订单编号、订单创建时间、用户id、回复内容、回复状态。建议反馈表的字段结构设计如表3-6所示。表3-6建议反馈表(bs_complaint_advice)序号字段名数据类型大小说明空值描述1contentvarchar1000用户反馈内容2Advice_numvarchar32主键否订单编号3advice_timedatetime0时间4user_idvarchar255用户id5replyvarchar1000回复6statusvarchar20状态(7)寄存柜表寄存柜表存放的是寄存柜信息的列表。此表包含了柜格类型、柜格状态、柜格存物价格、寄存柜编号、地址。寄存柜表的字段结构设计如表3-7所示。表3-7寄存柜表(bs_box)序号字段名数据类型大小说明空值描述1box_typevarchar255柜格类型2box_statusvarchar255柜格状态3box_moneyvarchar255柜格存物价格4box_numvarchar255主键否寄存柜编号5address_idvarchar32地址外键(8)用户余额表用户余额表存放的是用户账户余额信息的列表。此表包含了账户名称、账户id、账户余额。用户余额表的字段结构设计如表3-8所示。表3-8用户余额表(bs_account)序号字段名数据类型大小说明空值描述1namevarchar32主键否账户名称2user_idvarchar32用户外键3accountvarchar32账户金额(9)地址表地址表主要显示的是用户地址信息的列表。此表包含地址ID、寄存柜编号、寄存柜地址。地址表的字段结构设计如表3-9所示。表3-9地址表(bs_address)序号字段名数据类型大小说明空值描述1Addressidvarchar32主键否地址编号2box_numvarchar255否寄存柜编号3box_addressvarchar255寄存柜地址
第4章系统实现4.1下位机实现下位机的实现是由ZigBee开发与传感器模块组成的,本系统下位机通过ESP8266模块连接云端,云端获取到小程序所发送的指令转换后发送给ESP8266所在的ZigBee协调器,协调器通过广播的方式下发给终端,终端接收后对电磁开关传感器进行控制,实现柜门的开关。下位机设计实物如图4-1、4-2所示图4-1下位机设计实物图(1)图4-2下位机设计实物图(2)(1)广播下发继电器控制命令核心代码:voidSampleApp_SendPeriodicMessage(uint8on){uint8state[3]={0};state[0]=on;//发送0或者1,用来控制终端的继电器开关type=EDP_UnPacketRecv(cmd);switch(type)//判断是pushdata还是命令下发{caseCMDREQ://解命令包result=EDP_UnPacketCmd(cmd,(int8**)&cmdid_devid,&cmdid_len,(int8**)&req,&req_len);if(result==0)//如果解包成功,进行命令回复{EDP_PacketCmdResp(cmdid_devid,cmdid_len,req,req_len,&edpPacket);HalLcdWriteString(req,HAL_LCD_LINE_2);//LCD显示//收到控制命令,控制开发板Ctrl(req);}break;default:break;}if(type==CMDREQ&&result==0)//如果是命令包且解包成功{EDP_FreeBuffer(cmdid_devid);//释放内存EDP_FreeBuffer(req);//回复命令ESP8266_SendData(edpPacket._data,edpPacket._len);//上传平台EDP_DeleteBuffer(&edpPacket);//删包}returnresult;}(2)ZigBee板终端的ESP8266模块连接OneNet云端的核心代码:_BoolOneNet_DevLink(void){EDP_PACKET_STRUCTUREedpPacket={NULL,0,0,0};//OneNet协议包unsignedcharstatus=1;if(EDP_PacketConnect1(DEVID,APIKEY,256,&edpPacket)==0)//根据devid和apikey封装协议包{ESP8266_SendData(edpPacket._data,edpPacket._len);//上传到平台//delay_ms(500);//延迟等待时间500msEDP_DeleteBuffer(&edpPacket);//删包}returnstatus;}4.2上位机实现4.2.1管理员端寄存柜禁用功能管理员能过够对寄存柜进行禁用启用改变其状态,当寄存柜被存放时,管理员则不可对其状态进行更改。当寄存柜状态被管理员改为禁用中时,用户则不能对该寄存柜进行存物。以下图4-1为用户正在使用的寄存柜管理员不可对其更改状态截图。图4-1管理员更改用户状态核心代码:前端部分代码:if(row.boxStatus=="空闲中"||row.boxStatus=="禁用中"){
this.$http.post('/box/box/changeState',row)
if(row.addressId===true){
letindex=this.boxList.findIndex(v=>v.id==row.id)
this.boxList[index].boxStatus="空闲中"
this.$message.success("启用成功")
}else{
//this.getboxList()
letindex=this.boxList.findIndex(v=>v.id==row.id)
this.boxList[index].boxStatus="禁用中"
this.$message.success("禁用成功")
}
}else{
this.$('当前柜子正在使用中')
this.getboxList()
}后端部分代码:@PostMapping("/changeState")
publicvoidchangeState(@RequestBodyBoxbox){
System.out.println(box);
Boxbox1=newBox();
if(box.getAddressId().equals("true")){
box1.setAddressId("true");
box1.setBoxStatus("空闲中");
System.out.println(1);
}else{
box1.setAddressId("false");
box1.setBoxStatus("禁用中");
System.out.println(2);
}
EntityWrapper<Box>wrapper=newEntityWrapper<>();
wrapper.eq("id",box.getId());
booleanupdate=boxService.update(box1,wrapper);
System.out.println(update);
}4.2.2批量导出功能选中需要导出的内容,点击导出后导出excel表格如图4-2、4-3所示图4-2搜索禁用中的柜子图4-3导出的excel表格内容核心代码:require.ensure([],()=>{//获取数据并下载导出
const{export_json_to_excel}=require('../../vendor/Export2Excel')
consttHeader=['柜子编号','柜子类型','柜子状态''柜子单价','柜子状态'];//表头
constfilterVal=['boxNum','boxType','boxStatus','boxMoney','addressId'];//对应字段
constlist=this.boxList;
constdata=this.formatJson(filterVal,list);
export_json_to_excel(tHeader,data,"寄存柜列表");
});
},
formatJson(filterVal,jsonData){
returnjsonData.map(v=>filterVal.map(j=>v[j]));
},
asyncsetSearch(){
this.$refs.searchFormRef.resetFields()
this.boxList=[]
constres=awaitthis.$http.post('/box/box/page',this.queryInfo)
this.boxList=res.data.records
this.total=res.data.total
},4.2.3回复反馈建议功能用户可以点击在订单下方的‘反馈建议’对该订单进行反馈。管理员在反馈建议列表中可以查看用户反馈建议的回复状态,点击右侧的按钮可查看详细反馈信息。未回复的可在下方回复。用户可在‘我的反馈建议’中查看当前反馈的建议是否被回复。如图4-5、4-6、4-7所示用户在图4-5中输入对该订单的反馈建议,反馈成功后管理员可在后台管理端查看用户反馈信息如图4-6所示,并可以选择未回复的反馈订单进行回复如图4-7所示。图4-5用户输入反馈信息界面图4-6反馈建议列表图4-7反馈信息详情图4.2.4储物柜历史使用查看功能管理员可以查看指定柜子的历史使用情况,如图4-8所示图4-8指定寄存柜历史使用记录4.2.5寄存柜预约功能用户可以提前预约寄存柜,但需要支付一定的预约费用。用户有在使用中的柜子时不能再次进行预约,需要将使用中的订单完成后才能使用预约功能。因为需要支付预约费用,因此新用户需要先充值才能使用预约功能。如图4-9、4-10、4-11、4-12、4-13、4-14所示。用户若有正在使用中的柜子,即存物后未取物则不能再次进行预约操作如图4-9所示。图4-9用户有正在使用中的柜子用户若已经预约了寄存柜,还未存物。则不能进行二次预约。如图4-10所示图4-10用户有正在预约中并未存物的订单未预约的用户可以选择未来7天的时间段进行预约如图4-11所示,预约成功后显示预约码如图4-12所示图4-11用户选择预约时间图4-12用户预约成功后显示预存码用户预约成功后,管理员端显示用户预约数据如图4-13所示图4-13管理员端查看用户预约订单数据核心代码:awaitthis.$http({//把钱传到后台扣
url:'/count/access/changeMoney',
method:'GET',
data:{
userID:userID,
boxMoney:this.boxMoney*2//把获取到的柜子编号传给后台pickerData
}
})
//把获取到的柜子编号传给后台pickerData
constres=awaitthis.$http({
url:'/count/access/getOrderCode',
method:'POST',
data:{
boxNum:this.boxNum
}
})4.2.6存物取物功能用户若有预约则点击存物直接进行存物,若没有预约,需要选择柜子类型、柜子编号进行存物。用户取物的时候需要提供取件码以及支付存物费用才能打开寄存柜进行取物。如图4-14、4-15、4-16、4-17、4-18所示用户若有预约的柜子,点击存物时,直接存物柜门打开,显示存物成功字样。如图4-14所示,用户若没有预约的柜子则需要选择柜子编号进行存物如图4-15所示图4-15有预约的柜子直接存物成功图4-15没有预约的柜子需要选择柜子编号用户取件时,需要输入支付密码如图4-16以及输入取件码如图4-17,才能够开启柜门,取出物品如图4-18所示图4-17取件时输入支付密码图4-18输入取件码图4-19取件成功核心代码:小程序上传命令到云端代码:GET_data:function(datastream){
console.log("发送命令:"+datastream)
wx.request({
url:"/devices/862080751/datastreams"+"/"+datastream,
method:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年松溪县带编教师招聘笔试参考题库及答案解析
- 2026年黑水县带编教师招聘笔试参考题库及答案解析
- 2026年东明县带编教师招聘笔试参考题库及答案解析
- 2026年修武县带编教师招聘笔试备考试题及答案解析
- 2026年九江市国信项目管理咨询有限责任公司公开招聘工作人员的补充考试备考题库及答案详解
- 2026年中宁县带编教师招聘考试备考题库及答案解析
- 2026年黄梅县带编教师招聘考试参考题库及答案解析
- 2026年尼玛县带编教师招聘笔试备考试题及答案解析
- 2026年平和县带编教师招聘笔试模拟试题及答案解析
- 2026年寿县带编教师招聘考试参考题库及答案解析
- 道路交通安全认知与实践培训
- 《汽车维修工》高级理论练习题库与答案
- 研发岗位安全考试题目与参考答案
- 2026清镇市产业发展集团有限责任公司招聘15人考试备考试题及答案详解
- 2026年秋季开学小学心理健康开学第一课
- 先天性心脏病诊疗中三维打印技术应用专家共识(2026 版)
- (2026年秋)人教版四年级上册数学教案
- 企业新媒体矩阵从0到1运营SOP工SOP
- 2026年职业卫生技术服务专业技术人员考试(放射卫生检测与评价)模拟题及答案(湖北鄂州)
- 人教版九年级上册历史易错知识点(附答案)
- 新版人教版道德与法治六年级上册全册教案
评论
0/150
提交评论