微报名Lite-myinfo开发list1

通过前端的开发,我拿到了的页面是这个样子的

myinfo页面

很明显页面中的活动标题,活动开始时间都是来自于数据库的读出然后直传就可以了,然后我们看到,还有三个内容是不可以直接传的,分别是:图标,活动是否满额,活动的状态。

1.图标(activityType)

图标喇叭的意思是活动是用户召集的,图标放大镜的意思是活动是用户参与的,这个逻辑很简单,因为我们的后台数据库里有两个集合,activity集合和signupInfo集合,activity集合里面存着用户发起活动的信息,signupInfo里面则是用户报名活动的信息,当有关这条记录的内容是从哪个集合取出来的,我们就给相应的activityType这个变量赋予一个状态参数(activityType: 0-我召集的,1-我参与的),所以当activityType为0时对应图标是喇叭,为1则是放大镜

2.活动是否满额(quota)

quota是判断此活动是活动人员是否满额的检测(quota: 0-未满额,1-满额),正如我上面所说,所有的报名者信息都存在signupInfo集合里,这个最简单的想法是,你拿着活动去数据库里一个个看,有多少人报了此活动。在我们的signupInfo集合里,唯一能与用户与活动搭上钩的就是这个活动的id了,这个活动id并不是我们设定的,它是创建者创建活动存在activity集合里的id


activity集合里的id

我们拿出这条id,让报名者报名的时候,存在于报名者的报名信息中。

当我们在进行活动遍历时,每一个活动的quota 值,通过数据库查询方法,拿activityId对signupInfo集合进行查找遍历,合适的我们进行记录下来,当所报名的人数超过members_limit用户设定的值时,我们对该活动的quota 赋上我们的状态参数

3.活动的状态(activityStatus)

活动状态的状态逻辑值(0-正在报名中,1-报名截止,2-活动开始,3-活动结束)

先说一下,因为我们之前的时间方法的问题,我们存在数据里的时间都是一个长度为5的数组,通过.join("-") 这个方法,我们可以把数组串起来进行比较


在循环中我们拿出每一个活动的三个时间


因为年份只有两位,所有我给每个年份之前拼接了“20” 来 把他凑成一个正常的年份时间


这是拼接


这是打印出来的时间内容

前面的时间获取工作已经做好了,下面就是比较确认时间状态了

if(现在时间<活动结束时间) {

活动已经结束

} else {

//活动没有结束

if((活动报名时间<活动开始时间)&&(活动开始时间<活动结束时间)) {

活动进行中

}

if(活动报名时间<现在时间) {

报名截止

}

if(活动报名时间>现在时间) {

报名中

}

}


时间判定

到时我们只需要在打印的同时,给activityStatus赋值上它的逻辑关系值就好了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,378评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,472评论 2 59
  • 思维导图又叫心智图,通过发散思维自如表达,是大脑使用说明书,是种简单,高效,形象化的思维工具,运用思维导图可以提升...
    桃子_f372阅读 4,196评论 0 0
  • 每个人都知道:冬天会过去,寒意会慢慢驱散,花会开,燕子会归来。可只有我知道,在偌多的语文课堂中,会有那么一...
    向阳乐乐阅读 3,273评论 0 4
  • 取悦自己,才是人生最大的幸福 一位诗人。他写了不少的诗,也有了一定的名气,可是,他还有相当一部分诗没有发表出来,也...
    慢慢花开阅读 1,742评论 0 0