<?php /** * Created by PhpStorm. * Author: NODELOG * DateTime: 2017/3/8 16:32 * Description: */ namespace api\common\models; use api\modules\v1\models\Category; use api\modules\v1\models\Circle; use api\modules\v1\models\Clock; use api\modules\v1\models\ClockLike; use api\modules\v1\models\Comment; use api\modules\v1\models\UserCar; use common\models\Article; use common\models\Footprint; use common\models\Friend; use common\models\SearchRecord; use common\models\Suggest; use yii\helpers\Url; class User extends \common\modules\user\models\User { /** * 默认属性 * @return array|false * @author nodelog */ public function fields() { return [ 'nickname', 'tel', 'avatar' => function ($model) { return Url::to($model->getAvatar(), true); }, 'profile', 'count', 'type', 'chain'=> function ($model) { return Category::find()->where(['id' => $model->chain])->one(); }, ]; } /** * 扩展属性 * 请求时接口url加参数,如:?expand=profile * @return array|false * @author nodelog */ public function extraFields() { return [ 'profile', 'count', ]; } /** * 数据统计 * @author nodelog */ public function getCount() { $data = []; $where = ['user_id' => \Yii::$app->user->id]; $searchCount = SearchRecord::find()->where($where)->andWhere(['del' => 0])->sum('count'); if (empty($searchCount)) { $searchCount = 0; } $pagePathList = \Yii::$app->config->get('page_path_list'); $data[] = [ 'title' => '搜索', 'count' => $searchCount, 'link' => $pagePathList['search_page'], 'link_type' => 1 ]; $data[] = [ 'title' => '足迹', 'count' => Footprint::find()->my()->count(), 'link' => $pagePathList['footprint_page'], 'link_type' => 1 ]; $data[] = [ 'title' => '企业反馈', 'count' => Article::find()->my()->count(), 'link' => $pagePathList['company_page'], 'link_type' => 1 ]; $data[] = [ 'title' => '意见反馈', 'count' => Suggest::find()->where($where)->count(), 'link' => $pagePathList['feedback_page'], 'link_type' => 1 ]; return $data; } /** * 获取用户信息 * @return \yii\db\ActiveQuery * @author nodelog */ public function getProfile() { return $this->hasOne(Profile::className(), ['user_id' => 'id']); } }