一 使用技术
后端技术: node.js+koa2+mysql
前端技术: vue+elementui+axios
二 技术说明
后端技术说明:使用nodejs作为后端开发语言,使用koa2作为后端开发框架,koa2是基于nodejs开发的应用开发框架,提供了多种常用开发中使用的中间件,提升开发效率。数据库方面使用mysql作为数据存储。
前端技术说明:vue是基于javascript的渐进式开发框架,极大的提升了开发效率与质量。elementui是基于vue框架开发的ui框架,提供了大量的常用web应用ui组件,能够最大程度的减少对于前端样式的开发以及统一应用ui风格。Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中,能够使用简介的api实现跟后端的通讯。
三 技术实现思路
后端技术实现:
链接数据库,使用了nodejs的库mysql进行链接。
用户鉴权部分使用koa-jwt及koa中间件,在请求前实现权限校验。并将token中存放的用户信息解析到中间件中,供控制器调用。
用户请求鉴权根据用户输入的账号密码查找数据库中的匹配的账号密码,并返回登录结果及token,token在后面的请求中,均会放在header中,供后端鉴权使用。
系统管理员可以对车位进行增删查改,在数据库中的users表中,对系统管理员账号设置一个is_admin字段,并且在登录后会将这个字段存入token中。在车位的增删改查中,均会对这个字段进行查验。前端也会对是否为管理员进行查验,非系统管理员不会显示这个界面。
小区参数配置也属于系统管理员操作项,对小区参数配置时,也会对是否为系统管理员权限进行查验。前端也会对是否为管理员进行查验,非系统管理员不会显示这个界面。小区参数配置存放在数据库的configure表中。
系统管理员可以新增车位管理员,车位管理员拥有车位清洁缴费,车位出租和车位出售,以及车辆停车权限。会对是否为系统管理员权限进行查验。前端也会对是否为管理员进行查验,非系统管理员不会显示这个界面。
车位清洁缴费,前端传输车位id和当前缴费月份,首先请求后端的缴费计算接口,后端计算应交费用返回给前端,然后再请求清洁缴费接口。清洁缴费接口会在pays表中创建一条缴费数据,并更新parkings表中的clean_end_time字段,完成后返回缴费成功。
车位出租,前端传入车位id,租赁开始和结束日期,租赁人名称和联系方式,车牌号。首先请求后端的缴费计算接口,后端计算应交费用返回给前端,然后再请求租赁缴费接口。租赁缴费接口会在pays表中创建一条缴费数据,并更新parkings表中的clean_end_time,lease_name,lease_phone,parking_car_no字段,完成后返回缴费成功。
车位出售,前端传入车位id,购买人名称和联系方式,车牌号首先请求后端的缴费计算接口,后端计算应交费用返回给前端,然后再请求出售缴费接口,缴费接口会在pays表中创建一条缴费数据,并更新parking表中的业主,业主联系方式,车牌号等字段。
车辆停车,系统在数据库parking表中查找车牌号,如果有,则为长期停车,并判断是否为租赁且已过期,未过期放行,已过期则提示缴费。如果没有,则为临时停车,记录当前进入时间,车牌号,存入数据库temporary_parking中,出场时,查找当前车牌号记录和停留时间,按临停时间返回应收金额。
车辆收费统计
临停收费统计:查找临停数据库temporary_parking中当前月缴费成功的订单。并计算总金额。
长期停车收费统计:查找缴费表pays中当月收费总金额。并返回 车位租金缴费/车位清洁费/车位出售各自的总金额。
**
四 数据库设计
**
Users 用户表
Configure 系统参数表
parkings车位表
Pays 收费表
Temporary_parking 临时停车表
**
五 思维导图
**