| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | 
							- <?php
 
- namespace app\admin\controller;
 
- use think\Db;
 
- class Bursting extends Base
 
- {
 
-     protected $userId = 0;
 
-     protected function initialize()
 
-     {
 
-         parent::initialize();
 
-         if (!is_login()) {
 
-             $this->redirect(url('Common/logout'));
 
-         }
 
-         $this->userId = is_login();
 
-     }
 
-     public function index()
 
-     {
 
-         $info = Db::name('burst_record')
 
-             ->where('user_id',$this->userId)
 
-             ->where('status',1)
 
-             ->where('del',0)
 
-             ->find();
 
-         if(!$info){
 
-             $this->redirect(url('Index/index'));
 
-         }
 
-         $binfo =  Db::name('burst')
 
-             ->where('id',$info['burst_id'])
 
-             ->find();
 
-         $info['title'] = $binfo['title'];
 
-         $this->changeStatus($info);
 
-         $info = Db::name('burst_record')
 
-             ->where('id',$info['id'])
 
-             ->where('del',0)
 
-             ->find();
 
-         $info['title'] = $binfo['title'];
 
-         $this->assign('info',$info);
 
-         return $this->fetch();
 
-     }
 
-     public function detail()
 
-     {
 
-         $id = input('id');
 
-         $info = Db::name('burst_record')
 
-             ->where('id',$id)
 
-             ->where('del',0)
 
-             ->find();
 
-         if(!$info){
 
-             $this->error('数据不存在');
 
-             exit;
 
-         }
 
-         $binfo =  Db::name('burst')
 
-             ->where('id',$info['burst_id'])
 
-             ->find();
 
-         $info['title'] = $binfo['title'];
 
-         $this->assign('info',$info);
 
-         return $this->fetch();
 
-     }
 
-     // 更改步骤状态
 
-     private function changeStatus($info){
 
-         if($info['status'] == 2 || $info['status'] == 3){
 
-             return $info;
 
-         }
 
-         $curTime = time();
 
-         $ctime = ($curTime - strtotime($info['create_time']))/60;
 
-         $content = json_decode($info['content'],true);
 
-         $t = 0;
 
-         // 查状态
 
-         foreach ($content as $k=>$v){
 
-             $t1 = $t;
 
-             $t = $t + $v['time'];
 
-             $s = 0; // 都已完成
 
-             foreach ($v['options'] as $kk=>$vv){
 
-                 if($vv['status'] == 0){
 
-                     $s = 1;
 
-                 }
 
-             }
 
-             if($v['status'] == 0||$v['status'] == 1){
 
-                 if($ctime < $t && $ctime >= $t1){
 
-                     $content[$k]['status'] = 1;
 
-                     if($s == 0){
 
-                         $content[$k]['status'] = 2;
 
-                         if($k+1 < count($content)){
 
-                             $content[$k+1]['status'] = 1;
 
-                         }
 
-                     }
 
-                 }else if($ctime >= $t){
 
-                     $content[$k]['status'] = 2;
 
-                 }
 
-             }
 
-         }
 
-         $status = $info['status'];
 
-         if($ctime < $t){
 
-             $flag = 0;
 
-             foreach ($content as $k=>$v){
 
-                 foreach ($v['options'] as $kk=>$vv){
 
-                     if($vv['status'] == 0){
 
-                         $flag = 1;
 
-                         break;
 
-                     }
 
-                 }
 
-             }
 
-             if($flag == 0){
 
-                 $status = 2;
 
-             }
 
-         }else{
 
-             $status = 3;
 
-         }
 
- //        if($content[count($content) - 1]['status'] == 2 && $ctime >= $t){
 
- //            $status = 3;
 
- //        } else if ($content[count($content) - 1]['status'] == 2 && $ctime < $t){
 
- //            $status = 2;
 
- //        }
 
-         $content = json_encode($content);
 
-         Db::name('burst_record')->where('id',$info['id'])->update(['status'=>$status,'content' => $content,'update_time'=>date('Y-m-d H:i:s')]);
 
-         $info['content'] = $content;
 
-         return $info;
 
-     }
 
-     public function finish(){
 
-         $id = input('id/d',0);
 
-         $index = input('index/d',0);
 
-         $index2 = input('index2/d',0);
 
-         $info = Db::name('burst_record')
 
-             ->where('id',$id)
 
-             ->where('del',0)
 
-             ->find();
 
-         if(!$info){
 
-             $this->error('数据不存在');
 
-         }
 
-         if($info['status'] != 1){
 
-             $this->error('无权限操作');
 
-         }
 
-         $content = json_decode($info['content'],true);
 
-         foreach ($content as $k=>$v){
 
-             if($k == $index){
 
-                 foreach ($v['options'] as $kk => $vv){
 
-                     if($kk == $index2){
 
-                         $content[$k]['options'][$kk]['status'] = 1;
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         $content = json_encode($content);
 
-         $ret = Db::name('burst_record')->where('id',$id)->update(['content' => $content,'update_time'=>date('Y-m-d H:i:s')]);
 
-         if($ret){
 
-             $info['content'] = $content;
 
-             $this->changeStatus($info);
 
-             $this->success('操作成功');
 
-         }else{
 
-             $this->error('操作失败');
 
-         }
 
-     }
 
- }
 
 
  |