AdminLogin.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sunmoon<i@liming.me>
  5. * Date: 2019-07-30
  6. * Time: 16:47
  7. */
  8. namespace common\libs\logging\login;
  9. use common\helpers\Form;
  10. use common\models\forms\LogAdminLoginForm;
  11. use common\helpers\Date;
  12. use common\models\Period;
  13. use Yii;
  14. class AdminLogin {
  15. /**
  16. * 登录成功
  17. * @param $adminInfo
  18. * @return LogAdminLoginForm
  19. * @throws \Exception
  20. */
  21. public static function success($adminInfo){
  22. $returnResult = '';
  23. $successTimes = intval($adminInfo['LOGIN_NUMS']) + 1;
  24. $result = self::recorder($adminInfo['ADMIN_NAME'], '1', $returnResult, $adminInfo['FAIL_NUMS'], $successTimes);
  25. return $result;
  26. }
  27. /**
  28. * 登录失败
  29. * @param $adminInfo
  30. * @param $returnResult
  31. * @return LogAdminLoginForm
  32. * @throws \Exception
  33. */
  34. public static function fail($adminInfo, $returnResult){
  35. $failTimes = intval($adminInfo['FAIL_NUMS']) + 1;
  36. $result = self::recorder($adminInfo['ADMIN_NAME'], '0', $returnResult, $failTimes, $adminInfo['LOGIN_NUMS']);
  37. return $result;
  38. }
  39. /**
  40. * 记录器
  41. * @param $account
  42. * @param $optType
  43. * @param $returnResult
  44. * @param $failTimes
  45. * @param $successTimes
  46. * @return LogAdminLoginForm
  47. * @throws \Exception
  48. */
  49. public static function recorder($account, $optType, $returnResult, $failTimes, $successTimes){
  50. $period = Period::instance();
  51. $periodNum = $period->getNowPeriodNum();
  52. $form = new LogAdminLoginForm([
  53. 'adm_name' => trim($account),
  54. 'ip' => Yii::$app->request->getUserIP(),
  55. 'created_at' => intval(Date::nowTime()),
  56. 'user_agent' => Yii::$app->request->getUserAgent(),
  57. 'period_num' => intval($periodNum),
  58. 'opt_type' => $optType,
  59. 'success_times' => intval($successTimes),
  60. 'fail_times' => intval($failTimes),
  61. 'device' => Yii::$app->request->getDevice(),
  62. 'request_route' => Yii::$app->requestedRoute,
  63. 'return_result' => $returnResult,
  64. ]);
  65. if(!$form->add()){
  66. throw new \Exception(Form::formatErrorsForApi($form->getErrors()));
  67. }
  68. return $form;
  69. }
  70. }