Skip to content
Zhenfei You edited this page Apr 1, 2015 · 16 revisions
//组织用户
OrganizationUser
{
	ObjectId _id,  //用户id
	String email,
	String password,  
	Number phone,  //联系人手机号码
	String name,    //组织名称
	String type,    //组织类型('校级组织','职能社团','院级组织','校级社团','院级社团')
	String school,    //大学内部的学院
	String university,    //大学(为了支持后期多个大学使用)
	String logoUrl,    //logo图片地址
	Number internalOrder,    //内部顺序,默认1000,000
	String description,    //组织介绍 200字以内
	String photoUrl: ['xxx', 'xxxx'],		//组织展示图片,0-3张可选
	String weChat,    //组织微信号
	Date updatedAt,    //更新时间
	departments: 
	[
		{
			ObjectId id,
			String name,
			String description,    //介绍,60字以内
			Date updatdAt:
		}
	]
}

//微信用户
WeChatUser
{
	ObjectId _id,
	String uid,    //微信提供的uid
	Number sex,			//0未知,1男,2女
	String province,
	String city,
	String country,
	String headImgUrl,
	String privilege,
	Date updatedAt,
	String university,    //所在大学
	Number studentId,
	String studentName,
	Date verifiedDate,    //完成学号密码验证的时间
	histories:
	[
		{
			String university,
			Number studentId,
			String studentName,
			Date verifiedDate,	//完成该学号密码验证的时间
			Date updatedAt		//更改认证信息的时间
		}
	]		//记录用户更改认证的历史记录
}

//微信公众平台
WeChatMP
{
	ObjectId _id,
	DBRef organizationUid: {$ref: "orgUser", $id: _id},
	String mpOriginId,		//公众号原始id
	String interfaceUrl,
	String interfaceToken,
	String interfaceKey,    //用于AES加密的key
	String appId,
	String appSecret,
	String redirectUri,
	Date updatedAt,
	autoReplies:
	[
		{
			Number id,
			Array keyword: ["", ""],
			String type,		// text | news,
			String text,    //文字内容,只有文字回复才有
			news:
			[  
				{
        			Number order     //图文的顺序
					String title,    //标题
					String description,    //底部描述
					String cover,    //封面图片地址
					String url,    //指向的url
				}
			],    //图文消息内容,只有图文回复才有,并且是一个array of WeChatMPNews, 不是内嵌文档
			Date updatedAt
		}
	]
}

//团团一家服务号专用的活动二维码,所有项必填
WeChatEtuanQR
{
	ObjectId _id,
	String itemType,        //项目类型
	ObjectId itemId,         //项目id
	Number qrNumber,         //二维码传递的参数
	String imageUrl            //二维码图片的url
}

//-------base models start--------
//以下内容用于继承,不公开包,含所有项目常用的共有属性

//项目基类
BaseItem
{
	ObjectId _id,
	String title,    //表单标题,必填
	String description,		//对于本项目的文字说明,200字以内,可选
	String logoUrl,			//logo图片地址,每个表单一张logo,可选
	String adPicture,	    //广告图片地址
	String adUrl,        //广告指向地址
	String verifyRule,  //验证规则,验证哪些人可以参与(后期再做)
	Date updatedAt
	DBRef organizationUid: {$ref: "organizationUser", $id: _id},
	DBRef qrCode: {$ref: "WeChatEtuanQR", $id: _id}
}

//结果基类
BaseResult
{
	ObjectId _id,
	DBRef weChatUid: {$ref: "WeChatUser", $id: _id},  //用户id
	String ip
}
//-------base models end---------

//表单(报名表,调查表)
//继承自BaseItem
Form 
{
	Date startTime,
	Date stopTime,
	questions:
	[
		{
			Number id,    //问题序号,从0开始,标记项目
			Number type,    //问题类型,采用数字编号,1表示选择题,2表示陈述题,3表示陈述题,4表示判断题
			String label,    //问题标签(题干)
			Array content: ["", ""]		//问题包含内容(例如选项),可选
		}
	]
}

//用户填写表单的结果
//继承自BaseResult
FormResult:
{
	Date startTime,
	Date stopTime,
	DBRef formId: {$ref: "Form", $id: _id},		//对应的表单id
	answers:
	[
		{
			Number qestionId,
			String content,		//填写的内容
		}
	]
}

//投票
//继承自BaseItem
Vote
{	
	subitems:
	[
		{
			Number id, 		//id,从0开始
			String name,		//投票项名称
			String detailUrl,   //投票详情链接
			Number count       //投票项获得的票数,默认为0,只有后台有权限更新
		}
	]
}

//用户填写表单的结果
//继承自BaseResult
VoteResult
{
	DBRef voteId: {$ref: "Vote", $id: _id},		//对应的表单id
	results:[  Number subitemId ]		//一个数组,包含投票的内容
}

//秒杀
//继承自BaseItem
Seckill
{
	arrangement:		//秒杀场次安排
	[
		{	
			Number id, 			//id,从0开始
			Date startTime,		//开始时间
			Date stopTime,		//结束时间
			Number total		//秒杀总量
		}
	]
}

//秒杀结果
//继承自BaseResult,所有合法的参与者都会被记录,不管是否抢到
SeckillResult
{
	DBRef seckillId: {$ref: "Seckill", $id: _id},
	Number arrangementId,
	Number verifyId,
	Boolean isGet		//是否抢票成功
}

//活动宣传
//继承自BaseItem
Activity
{
    Date startTime,
	Date stopTime,
	String	contentUrl	//活动介绍详情内容,类似微信推送,使用UEditor
}
	
Clone this wiki locally