从0到1:大学校园参观预约小程序开发笔记(一)

时间:2024-01-24 07:05:00

背景调研

校园参观预约小程序,包含参观者和管理人员,门卫角色,实现不同人群的操作需求。整个系统包括:预约模块、用户模块、公告模块、后台管理模块。

  • 后台管理员:可以设置、编辑预约项目,包括预约须知、预约时段,每时段人数上限,用户预约填写的信息(自定义表单);管理员可以在后台查看用户预约记录,对预约信息进行导出Excel表格。
  • 门卫:可以核销已预约用户的参观二维码。
  • 参观者:可以对预约项目进行查看,并根据自己的需要选择时段进行预约,填写相关的必要身份信息(支持一次录入多人信息)进行参观预约。 可以查看个人预约记录和详情,在出入校园的时候展示自己的预约二维码

功能设计

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理

数据库设计

JoinModel.DB_STRUCTURE = {
	_pid: 'string|true',
	JOIN_ID: 'string|true',

	JOIN_EDIT_ADMIN_ID: 'string|false|comment=最近修改的管理员ID',
	JOIN_EDIT_ADMIN_NAME: 'string|false|comment=最近修改的管理员名',
	JOIN_EDIT_ADMIN_TIME: 'int|true|default=0|comment=管理员最近修改的时间',
	JOIN_EDIT_ADMIN_STATUS: 'int|false|comment=最近管理员修改为的状态 ',

	JOIN_IS_ADMIN: 'int|true|default=0|comment=是否管理员添加 0/1',

	JOIN_CODE: 'string|true|comment=核验码15位',
	JOIN_IS_CHECKIN: 'int|true|default=0|comment=是否签到 0/1 ',

	JOIN_USER_ID: 'string|true|comment=用户ID',
	JOIN_MEET_ID: 'string|true|comment=预约PK',
	JOIN_MEET_CATE_ID: 'string|true',
	JOIN_MEET_CATE_NAME: 'string|true',
	JOIN_MEET_TITLE: 'string|true|comment=项目',
	JOIN_MEET_DAY: 'string|true|comment=日期',
	JOIN_MEET_TIME_START: 'string|true|comment=时段开始',
	JOIN_MEET_TIME_END: 'string|true|comment=时段结束',
	JOIN_MEET_TIME_MARK: 'string|true|comment=时段标识',

	JOIN_COMPLETE_END_TIME: 'string|false|comment=完整结束时间',

	JOIN_START_TIME: 'int|true|comment=开始时间戳',

	JOIN_CNT: 'int|true|default=0|comment=人数',

	JOIN_NAME_LIST: 'array|true|default=[]',
	JOIN_FORMS_LIST: 'array|true|default=[]|comment=表单',
	/* title:
	   mark:
	   type:
	   val:
	*/

	JOIN_STATUS: 'int|true|default=1|comment=状态 1=预约成功,10=已取消, 99=系统取消',

	JOIN_REASON: 'string|false|comment=审核拒绝或者取消理由',

	JOIN_ADD_TIME: 'int|true',
	JOIN_EDIT_TIME: 'int|true',
	JOIN_ADD_IP: 'string|false',
	JOIN_EDIT_IP: 'string|false',
};
DayModel.DB_STRUCTURE = {
	_pid: 'string|true',
	DAY_ID: 'string|true',
	DAY_MEET_ID: 'string|true',

	day: 'string|true|comment=日期 yyyy-mm-dd',
	dayDesc: 'string|true|comment=描述',
	times: 'array|true|comment=具体时间段',
	/*
		{
			1. mark=唯一性标识,
			2. start=开始时间点hh:mm ~,  
			3. end=结束时间点hh:mm, 
			4. isLimit=是否人数限制, 
			5. limit=报名上限,  
			6. status=状态 0/1
			7. stat:{ //统计数据 
				succCnt=1预约成功*, 
				cancelCnt=10已取消, 
				adminCancelCnt=99后台取消
			}
		}', 
	*/

	DAY_ADD_TIME: 'int|true',
	DAY_EDIT_TIME: 'int|true',
	DAY_ADD_IP: 'string|false',
	DAY_EDIT_IP: 'string|false',
};

UI设计

从0到1:大学校园参观预约小程序开发笔记(一)_IP_02

从0到1:大学校园参观预约小程序开发笔记(一)_IP_03

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理_04

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理_05

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理_06

后台系统设计

从0到1:大学校园参观预约小程序开发笔记(一)_IP_07

从0到1:大学校园参观预约小程序开发笔记(一)_IP_08

从0到1:大学校园参观预约小程序开发笔记(一)_IP_09

从0到1:大学校园参观预约小程序开发笔记(一)_IP_10

从0到1:大学校园参观预约小程序开发笔记(一)_IP_11

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理_12

从0到1:大学校园参观预约小程序开发笔记(一)_IP_13

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理_14

从0到1:大学校园参观预约小程序开发笔记(一)_后台管理_15

代码分享