<?php

namespace app\api\controller;

use app\common\controller\Api;
use think\Db;
/**
 * 培训活动
 */
class Trainactive extends Api
{


    protected $noNeedLogin = ['info'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = ['test2'];

    //我的培训
    public function my_list(){
        $now  = time();


        $papers = Db::name('train_active')->field('id,title,logo_image,starttime,endtime,pingjia_time')
            ->where('status', 1)
            ->where('deletetime', NULL)
            ->where("(userauth_status = 1) or (find_in_set('".$this->auth->id."',user_ids) )")
            ->autopage()
            ->order('starttime desc')
            ->select();

        foreach($papers as $key => &$val){
            $val['logo_image'] = localpath_to_netpath($val['logo_image']);

            if($now < $val['starttime']){
                $val['show_status'] = 1;
                $val['show_status_text'] = '待开始';
            }
            if($val['starttime'] < $now && $now < $val['endtime']){
                $val['show_status'] = 2;
                $val['show_status_text'] = '进行中';
            }
            if($val['endtime'] < $now || $val['pingjia_time'] > 0){ //时间或评价,都行
                $val['show_status'] = 3;
                $val['show_status_text'] = '已结束';
            }
        }

        $this->success('', $papers);
    }

    //培训详情
    public function info(){
        $id = input('id',0);
        $info = Db::name('train_active')->field('id,title,logo_image,starttime,endtime,pingjia,pingjia_time,pingjia_uid')
            ->where('id', $id)
            ->find();

        if(!empty($info)){
            $info['logo_image'] = localpath_to_netpath($info['logo_image']);

            $info['pingjia_nickname'] = '';
            if($info['pingjia_uid']){
                $info['pingjia_nickname'] = Db::name('user')->where('id',$info['pingjia_uid'])->value('nickname');
            }

            $now  = time();
            if($now < $info['starttime']){
                $val['show_status'] = 1;
                $val['show_status_text'] = '待开始';
            }
            if($info['starttime'] < $now && $now < $info['endtime']){
                $info['show_status'] = 2;
                $info['show_status_text'] = '进行中';
            }
            if($info['endtime'] < $now || $info['pingjia_time'] > 0){ //时间或评价,都行
                $info['show_status'] = 3;
                $info['show_status_text'] = '已结束';
            }
        }

        $this->success(1,$info);
    }


    //签到成功
    public function signin(){
        $sign_image = input('sign_image','');
        if(empty($sign_image)){
            $this->error();
        }

        //
        $id = input('id');
        $info = Db::name('train_active')->where('id',$id)->find();
        if(empty($info)){
            $this->error('不存在的培训活动');
        }

        //判断
        if($info['status'] != 1){
            $this->error('该培训已下架');
        }
        if($info['userauth_status'] == 0){

            if(!in_array($this->auth->id,explode(',',$info['user_ids']))){
                $this->error('您不在该培训活动名单');
            }
        }

        //判断
        $map = [
            'train_id' => $id,
            'user_id'  => $this->auth->id,
        ];
        $check = Db::name('user_train')->where($map)->find();
        if($check){
            $this->error('您已经签过到了');
        }

        //判断
        if(time() < $info['starttime']){
            $this->error('还没到签到开始时间');
        }
        if(time() > $info['endtime']){
            $this->error('已错过签到截止时间');
        }

        //签到
        $status = 1;
        if(time() > $info['sign_endtime']){
            $status = 2;//迟到
        }

        $data = [
            'train_id' => $id,
            'user_id' => $this->auth->id,
            'sign_time' => time(),
            'status' => $status,
            'sign_image' => $sign_image,
        ];
        Db::name('user_train')->insertGetId($data);
        $this->success('签到成功');
    }

    //评价检测权限
    public function check(){
        $type = input('type','pingjia');
        $id = input('id',0);

        if($type == 'pingjia'){

            $info = Db::name('train_active')->where('id',$id)->find();
            if($info['pingjia_uid'] != $this->auth->id){
                $this->error('您不能评价当前培训');
            }
            $this->success('验证成功');
        }

        if($type == 'sign'){
            $this->success('验证成功');
        }

        $this->error('验证失败');
    }

    //评价成功
    public function pingjia(){
        $pingjia       = input('pingjia','');
        $pingjia_image = input('sign_image','');

        if(empty($pingjia) || empty($pingjia_image)){
            $this->error();
        }

        //
        $id = input('id');
        $info = Db::name('train_active')->where('id',$id)->find();
        if(empty($info)){
            $this->error('不存在的培训活动');
        }

        //判断
        if($info['status'] != 1){
            $this->error('该培训已下架');
        }

        if($this->auth->id != $info['pingjia_uid']){
            $this->error('您不能评价该培训活动');
        }

        //评价
        $data = [
            'pingjia' => $pingjia,
            'pingjia_image' => $pingjia_image,
            'pingjia_time' => time(),
            'status' => 0, //评价结束,自动下架
        ];
        Db::name('train_active')->where('id',$id)->update($data);
        $this->success('评价成功');
    }


}