美文网首页
2018-01-05一段调整后的代码,逻辑比较复hun杂luan

2018-01-05一段调整后的代码,逻辑比较复hun杂luan

作者: 独聆步武 | 来源:发表于2018-01-05 16:45 被阅读0次

背景:签到情况需求,展示7天的信息,如果连续签到不足7天,则从第一次连签开始(没有连则从今天开始)往后算7个,如果超出超出7天则今天放在最后一个位置往前算7个。

思路:先取前一天的mark,这个字段是标记连续签到天数的,然后大部分值都是推算的(在签到接口逻辑稳定状态下),小部分是数据库取值比如今天的积分获得。具体看代码(虽然看了也可能看不懂)

//签到情况

public function signInStatus($uid){

//取到昨天的签到状态

$begin = strtotime(date('Y-m-d',strtotime('-1 day')));

$end = strtotime(date('Y-m-d'));

$data = $this->model('activity/Model_activity')->signInStatus($uid,$begin,$end);

$mark = empty($data) ? 0 : $data['mark'];

//循环赋值返回数组的7天数据,i记录比较数据的轮次,j记录赋值数组和整体轮次,mark_date用于计算日期

$i = $mark>5 ? $mark-6 : 0;

$j = 0;

$mark_date = $mark>5 ? 6 : $mark;

while($j < 7){

//计算日期

$result[$j]['date'] = date('Y-m-d',strtotime(($j-$mark_date).' day'));

//计算获得的积分

if($i > $mark){

$result[$j]['points'] = 0;

}else if($i == $mark){

$getTimes = $this->model('activity/Model_activity')->getToday();

$today = $this->model('activity/Model_activity')->signInStatus($uid,$getTimes['begin'],$getTimes['end']);

$result[$j]['points'] = empty($today) ? 0 : $today['points'];

} else {

if($i == 0){

$result[$j]['points'] = 10;

}else if($i > 2){

$result[$j]['points'] = 50;

}else {

$result[$j]['points'] = 20;

}

}

//判断今天明天其他天(1为今天,2为明天,0为其他)

if($i == $mark){

$result[$j]['istoday'] = 1;

}else if($i == $mark + 1){

$result[$j]['istoday'] = 2;

}else {

$result[$j]['istoday'] = 0;

}

if($mark>6 && $j == 6){

$result[$j]['istoday'] = 1;

}

$i++;

$j++;

}

return $result;

}

相关文章

  • 2018-01-05一段调整后的代码,逻辑比较复hun杂luan

    背景:签到情况需求,展示7天的信息,如果连续签到不足7天,则从第一次连签开始(没有连则从今天开始)往后算7个,如果...

  • 一种更灵(hun)活(luan)的React的组件方式

    前面一个文章,写了一个内置组件并且可以自由定义的组件后,原理就是内置了两个软件方法,可以根据prop传进去的值进行...

  • rocketMq启动流程

    rocketMq 整体架构 刚开始阅读源代码时候从例子代码开始跟踪代码 1、看快速启动的代码逻辑 代码逻辑比较简单...

  • LuAn

    仿佛容不得眨眼,二十岁的蜡烛就已经被点燃,来不及去想这二十岁之前我的人生是怎样度过的,大概是在滑稽可笑中吧 不停的...

  • LUAN

    轰轰烈烈的一模考试就这么落下帷幕了,怨过,闹过,疯狂过之后,一切就这么尘埃落定了。在经历了一天的对答案,订正试卷后...

  • 就讲一个人多能luan,就是一个话不停的的说,反复的说,忘记别人怎么说,就想达成自己的目的,为luan而luan,...

  • 条件语句12-3

    条件语句 if条件语句:如果...就...,否则... if(一个逻辑值){ 一段代码 } else { 一段代码...

  • 设计模式的理解与总结

    从代码复用说起 如果有一段代码逻辑是会被很多函数使用到,最低级的做法是在每个函数里面重复的写这段代码逻辑。为了代码...

  • 霓虹灯效果

    布局代码: 逻辑代码: 效果如下: 时间比较紧,先写简洁一些吧

  • 2017-05-17

    影hun

网友评论

      本文标题:2018-01-05一段调整后的代码,逻辑比较复hun杂luan

      本文链接:https://www.haomeiwen.com/subject/nfesnxtx.html