<?php

namespace app\run\controller;

use app\common\controller\Frontend;
use think\Db;
use think\exception\ValidateException;
use think\Request;
use addons\alisms\controller\Index;
class Work extends Frontend
{

    protected $noNeedLogin = [''];
    protected $noNeedRight = '*';
    protected $layout = '';
    public $model = null;
    protected $modelValidate = true;
    protected $modelSceneValidate = true;
    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\admin\model\reservoir\run\Work;
    }
    
    
    public function index()
    {
        $reservoirname = input('get.reservoirname');
        $list = $this->model->with(['reservoirrunrule','reservoirrunperson','reservoirrunproject'])->order('completetime', 'desc')->where('wrp_reservoir_run_work.reservoirname','like','%'.$reservoirname.'%')->paginate($this->limit, false, [
                'query' => Request::instance()->param(),//不丢失已存在的url参数
            ]);
        $page = $list->render();
        $rule = Db::name('reservoir_run_rule')->field('id,name')->select();
        $person = Db::name('reservoir_run_person')->field('id,duty')->select();
        $project = Db::name('reservoir_run_project')->field('id,name')->select();
        $this->assign('list', $list);
        $this->assign('page', $page);
        $this->assign('rule', $rule);
        $this->assign('project', $project);
        $this->assign('person', $person);
        return $this->view->fetch();
    }
    
    public function add(){
        $params = input('post.params/a');
        try {
            $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
            $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
            $this->model->validateFailException(true)->validate($validate);
            $params['maintaintime'] = strtotime($params['maintaintime']);
            $params['completetime'] = strtotime($params['completetime']);
            $result = $this->model->allowField(true)->save($params);
        } catch (ValidateException $e) {
            $this->error($e->getMessage());
        }
        if ($result !== false) {
            $this->success();
        }
    }
    
    public function del($id){
        $dairy = $this->model->get($id);
        Db::name('reservoir_run_work_log')->where('work_id',$id)->delete();
        $result = $dairy->delete();
        if($result){
            $this->success();
        }
        else{
            $this->error('删除失败');
        }
    }
    
    public function send($id){
        $info = $this->model->with(['reservoirrunperson'])->where('wrp_reservoir_run_work.id',$id)->find();
        if($info->status != '1'){
            $this->error('该工单已经派发');
        }
        $sms = new Index();
        $url = "www.ynzhsk.cn/work/$id";
        $res = $sms->send_param($info->reservoirrunperson->mobile,'SMS_229480259','云南智慧水库安全云平台',array('mtname'=>$info->reservoirname,'submittime'=>$url));
        $info->status = '2';
        $info->save();
        $this->success('派发成功');
    }
    
    
}