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('操作失败');
- }
- }
- }
|