Files
xk-api-yii/admin/controllers/system/AdminController.php
2024-09-19 11:32:39 +08:00

92 lines
2.6 KiB
PHP

<?php
namespace admin\controllers\system;
use admin\controllers\AuthController;
use admin\exceptions\ApiException;
use admin\models\Admin;
use common\core\BaseAdminController;
use common\enums\UserRoleEnum;
use common\models\Store;
use yii\base\DynamicModel;
use yii\base\Exception;
use yii\data\ActiveDataProvider;
class AdminController extends BaseAdminController
{
/**
* 管理员列表
*/
public function actionList()
{
$m = new DynamicModel(['page','pageSize']);
//$m->addRule('aa',DateRangeValidator::class);
//$m->addRule('xx','string');
$m->addRule('page','default',['value'=>1]);
$m->addRule('pageSize','default',['value'=>10]);
$m->addRule('page','integer',['max'=>1000]);
$m->addRule('pageSize','integer',['min'=>1,'max'=>50]);
$m->load($this->post());
if(!$m->validate()){
throw new Exception(json_encode($m->getFirstErrors()));
}
$query = Admin::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=>[
'defaultOrder'=>['uid'=>SORT_DESC]
],
'pagination'=>[
'defaultPageSize'=>$m->pageSize,
'params'=>['page'=>$m->page]
]
]);
// add conditions that should always apply here
return $dataProvider;
}
/**
* 账号信息
*/
public function actionInfo()
{
$admin= \Yii::$app->user->identity;
if ($admin->role==UserRoleEnum::SUPER_ADMIN){
$info= Admin::find()->where(['uid'=>$admin->uid,'role'=>UserRoleEnum::SUPER_ADMIN])->one();
}
if ($admin->role==UserRoleEnum::STORE_ADMIN){
$info= Store::find()->where(['id'=>$admin->store_id,'is_delete'=>0])->one();
}
if (!$info) throw new \yii\db\Exception('账号信息不存在');
return $info;
}
/**
* @doc-name 账号禁用
* @doc-param int admin_id 后台用户ID
*/
public function actionAccountDisabled()
{
$post = \Yii::$app->request->post();
$this->requestValidate($post, [
['admin_id', 'required']
]);
$role=\Yii::$app->user->identity->role;
if ($role!=UserRoleEnum::SUPER_ADMIN) throw new \yii\db\Exception('非超级管理员,没有禁用账号的权限');
$Admin = Admin::find()->where([
'uid' => $post['admin_id'],
])->one();
if (!$Admin) throw new \yii\db\Exception('账号不存在');
$status=$Admin->status==1?0:1;
$Admin->status=$status;
$Admin->saveOrFail();
return ['修改成功'];
}
}