Admin.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. namespace backendApi\modules\v1\models;
  3. use common\components\ActiveRecord;
  4. use common\libs\logging\operate\valueType\Config as ValueTypeConfig;
  5. /**
  6. * This is the model class for table "{{%ADMIN}}".
  7. *
  8. * @property string $ID
  9. * @property string $ADMIN_NAME 用户名
  10. * @property string $REAL_NAME 会员姓名
  11. * @property string $REMARK 备注
  12. * @property string $ROLE_ID 角色ID
  13. * @property int $IS_ENABLE 是否启用
  14. * @property string $AUTH_KEY 认证KEY
  15. * @property string $PASSWORD_HASH 密码
  16. * @property string $PASSWORD_RESET_TOKEN 重设密码TOKEN
  17. * @property int $DONT_DEL 不可删除
  18. * @property int $IS_DEL 是否删除
  19. * @property int $LOGIN_NUMS 登录次数
  20. * @property int $FAIL_NUMS 登录失败次数
  21. * @property string $LAST_LOGIN_IP 上次登录IP
  22. * @property int $LAST_LOGIN_AT 上次登录时间
  23. * @property string $BIND_IP 绑定IP
  24. * @property string $CREATE_ADMIN 创建管理员
  25. * @property string $UPDATE_ADMIN 更新管理员
  26. * @property int $CREATED_AT 创建时间
  27. * @property int $UPDATED_AT 更新时间
  28. * @property int $DELETED_AT 删除时间
  29. * @property int $IS_MODIFY_PASSWORD 是否修改密码
  30. */
  31. class Admin extends ActiveRecord
  32. {
  33. /**
  34. * @inheritdoc
  35. */
  36. public static function tableName()
  37. {
  38. return '{{%ADMIN}}';
  39. }
  40. /**
  41. * {@inheritdoc}
  42. */
  43. public function rules()
  44. {
  45. return [
  46. [['ADMIN_NAME', 'REAL_NAME', 'ROLE_ID', 'PASSWORD_HASH', 'CREATE_ADMIN', 'CREATED_AT'], 'required'],
  47. [['IS_ENABLE', 'DONT_DEL', 'IS_DEL', 'LOGIN_NUMS', 'FAIL_NUMS', 'LAST_LOGIN_AT', 'CREATED_AT', 'UPDATED_AT', 'DELETED_AT', 'IS_MODIFY_PASSWORD'], 'integer'],
  48. [['ID', 'ROLE_ID', 'CREATE_ADMIN', 'UPDATE_ADMIN'], 'string', 'max' => 32],
  49. [['ADMIN_NAME', 'REMARK', 'AUTH_KEY', 'PASSWORD_HASH', 'PASSWORD_RESET_TOKEN'], 'string', 'max' => 255],
  50. [['REAL_NAME'], 'string', 'max' => 128],
  51. [['LAST_LOGIN_IP'], 'string', 'max' => 16],
  52. [['BIND_IP'], 'string', 'max' => 4000],
  53. [['ADMIN_NAME'], 'unique'],
  54. [['ID'], 'unique'],
  55. ];
  56. }
  57. /**
  58. * {@inheritdoc}
  59. */
  60. public function attributeLabels()
  61. {
  62. return [
  63. 'ID' => 'ID',
  64. 'ADMIN_NAME' => '用户名',
  65. 'REAL_NAME' => '会员姓名',
  66. 'REMARK' => '备注',
  67. 'ROLE_ID' => '角色ID',
  68. 'IS_ENABLE' => '是否启用',
  69. 'AUTH_KEY' => '认证KEY',
  70. 'PASSWORD_HASH' => '密码',
  71. 'PASSWORD_RESET_TOKEN' => '重设密码TOKEN',
  72. 'DONT_DEL' => '不可删除',
  73. 'IS_DEL' => '是否删除',
  74. 'LOGIN_NUMS' => '登录次数',
  75. 'FAIL_NUMS' => '登录失败次数',
  76. 'LAST_LOGIN_IP' => '上次登录IP',
  77. 'LAST_LOGIN_AT' => '上次登录时间',
  78. 'BIND_IP' => '绑定IP',
  79. 'CREATE_ADMIN' => '创建管理员',
  80. 'UPDATE_ADMIN' => '更新管理员',
  81. 'CREATED_AT' => '创建时间',
  82. 'UPDATED_AT' => '更新时间',
  83. 'DELETED_AT' => '删除时间',
  84. 'IS_MODIFY_PASSWORD' => '是否修改密码',
  85. ];
  86. }
  87. /**
  88. * Validates password
  89. *
  90. * @param string $password password to validate
  91. * @return bool if password provided is valid for current user
  92. */
  93. public function validatePassword($password) {
  94. return \Yii::$app->security->validatePassword($password, $this->PASSWORD_HASH);
  95. }
  96. /**
  97. * 根据用户名查找
  98. * @param $username
  99. * @return array|null|\yii\db\ActiveRecord
  100. */
  101. public static function findByUsername($username){
  102. $row = static::find()->selectNoText()->where('ADMIN_NAME=:ADMIN_NAME', [':ADMIN_NAME'=>trim($username)])->one();
  103. return $row;
  104. }
  105. /**
  106. * 获取ID
  107. * @param $adminName
  108. * @return string|null
  109. */
  110. public static function getIdByAdminName($adminName) {
  111. $data = self::findOneAsArray('ADMIN_NAME=:ADMIN_NAME', [':ADMIN_NAME' => $adminName], 'ID');
  112. return $data ? $data['ID'] : null;
  113. }
  114. /**
  115. * 获取管理员名通过ID
  116. * @param $id
  117. * @return string|null
  118. */
  119. public static function getAdminNameById($id){
  120. $data = self::findOneAsArray('ID=:ID', [':ID' => $id], 'ADMIN_NAME');
  121. return $data ? $data['ADMIN_NAME'] : null;
  122. }
  123. /**
  124. * 操作日志记录条件
  125. * @return array
  126. */
  127. public function attrLabelsWithLogType(){
  128. return [
  129. 'ADMIN_NAME' => '用户名',
  130. 'REAL_NAME' => '会员姓名',
  131. 'REMARK' => '备注',
  132. 'ROLE_ID' => [
  133. 'label' => '角色名称',
  134. 'type' => function($data){
  135. $value = isset($data['value']) ? $data['value'] : '';
  136. $result = AdminRole::findOneAsArray('ID=:ID', [':ID'=>$value], 'ROLE_NAME');
  137. return !empty($result) ? $result['ROLE_NAME'] : '';
  138. },
  139. ],
  140. 'IS_ENABLE' => [
  141. 'label' => '是否启用',
  142. 'type' => ValueTypeConfig::YES_NO_TYPE,
  143. ],
  144. 'BIND_IP' => '绑定IP',
  145. 'CREATE_ADMIN' => [
  146. 'label' => '创建人',
  147. 'type' => function($data){
  148. $value = isset($data['value']) ? $data['value'] : '';
  149. $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME');
  150. return !empty($result) ? $result['ADMIN_NAME'] : '';
  151. },
  152. ],
  153. 'UPDATE_ADMIN' => [
  154. 'label' => '更新人',
  155. 'type' => function($data){
  156. $value = isset($data['value']) ? $data['value'] : '';
  157. $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME');
  158. return !empty($result) ? $result['ADMIN_NAME'] : '';
  159. },
  160. ],
  161. 'CREATED_AT' => [
  162. 'label' => '创建时间',
  163. 'type' => ValueTypeConfig::DATE_TIME_TYPE,
  164. ],
  165. 'UPDATED_AT' => [
  166. 'label' => '更新时间',
  167. 'type' => ValueTypeConfig::DATE_TIME_TYPE,
  168. ],
  169. 'IS_MODIFY_PASSWORD' => [
  170. 'label' => '是否修改密码',
  171. 'type' => ValueTypeConfig::YES_NO_TYPE,
  172. ],
  173. ];
  174. }
  175. }