32], [['ADMIN_NAME', 'REMARK', 'AUTH_KEY', 'PASSWORD_HASH', 'PASSWORD_RESET_TOKEN'], 'string', 'max' => 255], [['REAL_NAME'], 'string', 'max' => 128], [['LAST_LOGIN_IP'], 'string', 'max' => 16], [['BIND_IP'], 'string', 'max' => 4000], [['ADMIN_NAME'], 'unique'], [['ID'], 'unique'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'ID' => 'ID', 'ADMIN_NAME' => '用户名', 'REAL_NAME' => '会员姓名', 'REMARK' => '备注', 'ROLE_ID' => '角色ID', 'IS_ENABLE' => '是否启用', 'AUTH_KEY' => '认证KEY', 'PASSWORD_HASH' => '密码', 'PASSWORD_RESET_TOKEN' => '重设密码TOKEN', 'DONT_DEL' => '不可删除', 'IS_DEL' => '是否删除', 'LOGIN_NUMS' => '登录次数', 'FAIL_NUMS' => '登录失败次数', 'LAST_LOGIN_IP' => '上次登录IP', 'LAST_LOGIN_AT' => '上次登录时间', 'BIND_IP' => '绑定IP', 'CREATE_ADMIN' => '创建管理员', 'UPDATE_ADMIN' => '更新管理员', 'CREATED_AT' => '创建时间', 'UPDATED_AT' => '更新时间', 'DELETED_AT' => '删除时间', 'IS_MODIFY_PASSWORD' => '是否修改密码', ]; } /** * Validates password * * @param string $password password to validate * @return bool if password provided is valid for current user */ public function validatePassword($password) { return \Yii::$app->security->validatePassword($password, $this->PASSWORD_HASH); } /** * 根据用户名查找 * @param $username * @return array|null|\yii\db\ActiveRecord */ public static function findByUsername($username){ $row = static::find()->selectNoText()->where('ADMIN_NAME=:ADMIN_NAME', [':ADMIN_NAME'=>trim($username)])->one(); return $row; } /** * 获取ID * @param $adminName * @return string|null */ public static function getIdByAdminName($adminName) { $data = self::findOneAsArray('ADMIN_NAME=:ADMIN_NAME', [':ADMIN_NAME' => $adminName], 'ID'); return $data ? $data['ID'] : null; } /** * 获取管理员名通过ID * @param $id * @return string|null */ public static function getAdminNameById($id){ $data = self::findOneAsArray('ID=:ID', [':ID' => $id], 'ADMIN_NAME'); return $data ? $data['ADMIN_NAME'] : null; } /** * 操作日志记录条件 * @return array */ public function attrLabelsWithLogType(){ return [ 'ADMIN_NAME' => '用户名', 'REAL_NAME' => '会员姓名', 'REMARK' => '备注', 'ROLE_ID' => [ 'label' => '角色名称', 'type' => function($data){ $value = isset($data['value']) ? $data['value'] : ''; $result = AdminRole::findOneAsArray('ID=:ID', [':ID'=>$value], 'ROLE_NAME'); return !empty($result) ? $result['ROLE_NAME'] : ''; }, ], 'IS_ENABLE' => [ 'label' => '是否启用', 'type' => ValueTypeConfig::YES_NO_TYPE, ], 'BIND_IP' => '绑定IP', 'CREATE_ADMIN' => [ 'label' => '创建人', 'type' => function($data){ $value = isset($data['value']) ? $data['value'] : ''; $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME'); return !empty($result) ? $result['ADMIN_NAME'] : ''; }, ], 'UPDATE_ADMIN' => [ 'label' => '更新人', 'type' => function($data){ $value = isset($data['value']) ? $data['value'] : ''; $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME'); return !empty($result) ? $result['ADMIN_NAME'] : ''; }, ], 'CREATED_AT' => [ 'label' => '创建时间', 'type' => ValueTypeConfig::DATE_TIME_TYPE, ], 'UPDATED_AT' => [ 'label' => '更新时间', 'type' => ValueTypeConfig::DATE_TIME_TYPE, ], 'IS_MODIFY_PASSWORD' => [ 'label' => '是否修改密码', 'type' => ValueTypeConfig::YES_NO_TYPE, ], ]; } }