<?php

namespace admin\action;
use \model\message;

/**
 * Class messageAction
 * @package admin\action
 */
class messageAction  extends elementAction
{
	private $message;
	public function __construct($elename='adm_message')
    {
		parent::__construct($elename);
		$this->message = new message($this->elecfg);
	}

    /**
     * @param
     */
	public function list($id = 0)
    {
        $req = \mvc::$req;
		//前置条件
		$rules = $this->urlRulesToWhere($req);
		$rules['amsg_delete'] = 0;
        $orderby = '';
        if($req['sidx']=='' && $this->elecfg['order']!='') $orderby = $this->elecfg['order'];
        if(getOpuser()=='admin' || getOpuser()=='gsp.admin'||getOpuser()=='admin888'){
            unset($rules['userid']);
        }
        $data = $this->element->list($rules,$req['filters'], $req['page'], $req['rows'], $req['sidx'], $req['sord'],$orderby);
        $this->successJson($data);
	}

    public function detail($key)
    {
        $this->message->setReaded(getOpuser(),$key);
		socketSendCall([getOpuser()],'getServerMessage()');
		parent::detail($key);
    }

	public function editCell()
	{
		socketSendCall([getOpuser()],'getServerMessage()');
		parent::editCell();
	}

    public function deleteRows()
    {
        $req = \mvc::$req;
		$result = $this->message->virtDeleteRows(getOpuser(), $req['ids']);
        if($result==200){
            $this->successJson(lg('删除完成'));
        }else if($result==402){
            $this->msgJson(lg('存在有未完成的任务记录，删除失败'));
		}
    }

    public function readRows()
    {
        $req = \mvc::$req;
		$this->message->readRows(getOpuser(), $req['ids']);
        $this->successJson();
    }
	/**
	* 未读消息数
	* @param
	*/
	public function getNoReadMessageCountByUserid($userid)
    {
		$count = $this->message->getNoReadMessageCountByUserid($userid,0);
		$this->successJson($count);
	}

	/**
	* 未处理任务数
	* @param
	*/
	public function getNoReadTaskCountByUserid($userid)
    {
		$count = $this->message->getNoReadTaskCountByUserid($userid,1);
		$this->successJson($count);
	}

	/**
	* 未读预警消息数
	* @param
	*/
	public function getNoReadWarnMessageCountByUserid($userid)
    {
		$count = $this->message->getNoReadWarnMessageCountByUserid($userid,0);
		$this->successJson($count);
	}
}