| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User:  NODELOG
 
-  * Date: 16/6/7
 
-  * Time: 上午10:10
 
-  */
 
- namespace common\components\notify;
 
- use common\models\Notify;
 
- use common\models\NotifyCategory;
 
- use Yii;
 
- use yii\base\BaseObject;
 
- use yii\data\ActiveDataProvider;
 
- use yii\helpers\Json;
 
- use yii\helpers\Url;
 
- class Handler extends BaseObject
 
- {
 
-     public $notify;
 
-     public $notifyCategory;
 
-     /**
 
-      * @var
 
-      */
 
-     public $user;
 
-     /**
 
-      * @var array
 
-      */
 
-     private $_errors;
 
-     /**
 
-      * 依赖notify,notifyCategory
 
-      * @param Notify $notify
 
-      * @param NotifyCategory $notifyCategory
 
-      * @param array $config
 
-      */
 
-     public function __construct(Notify $notify, NotifyCategory $notifyCategory, $config = [])
 
-     {
 
-         $this->notify = $notify;
 
-         $this->notifyCategory = $notifyCategory;
 
-         $this->user = Yii::$app->user;
 
-         parent::__construct($config);
 
-     }
 
-     public function category($name)
 
-     {
 
-         $category_id = $this->notifyCategory->find()->select('id')->where(['name' => $name])->scalar();
 
-         $this->notify->category_id = $category_id;
 
-         return $this;
 
-     }
 
-     public function from($uid)
 
-     {
 
-         $this->notify->from_uid = $uid;
 
-         return $this;
 
-     }
 
-     public function to($uid)
 
-     {
 
-         $this->notify->to_uid = $uid;
 
-         return $this;
 
-     }
 
-     public function extra($extra)
 
-     {
 
-         $this->notify->extra = Json::encode($extra);
 
-         return $this;
 
-     }
 
-     public function send()
 
-     {
 
-         if ($this->notify->to_uid == $this->notify->from_uid) {
 
-             return true;
 
-         }
 
-         if ($this->notify->save() === false) {
 
-             $this->_errors = $this->notify->errors;
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     public function getNoReadNum()
 
-     {
 
-         return $this->notify->find()->where(['to_uid' => $this->user->id, 'read' => 0])->count();
 
-     }
 
-     public function getDataProvider()
 
-     {
 
-         return new ActiveDataProvider([
 
-             'query' => $this->notify->find()->where(['to_uid' => $this->user->id]),
 
-             'sort' => [
 
-                 'defaultOrder' => [
 
-                     'id' => SORT_DESC
 
-                 ]
 
-             ]
 
-         ]);
 
-     }
 
-     public function readAll()
 
-     {
 
-         return $this->notify->updateAll(['read' => 1], ['to_uid' => $this->user->id]);
 
-     }
 
-     public function getErrors()
 
-     {
 
-         return $this->_errors;
 
-     }
 
- }
 
 
  |