AdminOperate.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sunmoon<i@liming.me>
  5. * Date: 2019/07/29
  6. * Time: 上午9:39
  7. */
  8. namespace common\libs\logging\operate;
  9. use common\models\forms\LogAdminHandleForm;
  10. use common\models\LogAdminHandle;
  11. use common\models\Period;
  12. use Yii;
  13. use common\helpers\Date;
  14. class AdminOperate extends AbstractOperate {
  15. /**
  16. * Factory constructor.
  17. * @param array $config
  18. */
  19. public function __construct($config = []) {
  20. parent::__construct($config);
  21. if(!$this->logModel){
  22. $this->logModel = LogAdminHandle::class;
  23. }
  24. if(!$this->logForm){
  25. $this->logForm = LogAdminHandleForm::class;
  26. }
  27. }
  28. /**
  29. * set column
  30. * @param array $params
  31. * @return $this|bool
  32. * @throws \Exception
  33. */
  34. public function setColumn(array $params = []){
  35. if(!isset($params['optType'])){
  36. throw new \Exception('请设置操作类型');
  37. }
  38. $period = Period::instance();
  39. $periodNum = $period->getNowPeriodNum();
  40. $this->columns[] = [
  41. 'user_agent' => Yii::$app->request->getUserAgent(),
  42. 'created_at' => intval(Date::nowTime()),
  43. 'period_num' => intval($periodNum),
  44. 'save_before_content' => $this->saveBeforeContent,
  45. 'save_after_content' => $this->saveAfterContent,
  46. 'admin_id' => Yii::$app->user->id,
  47. 'admin_name' => isset(\Yii::$app->user->getUserInfo()['adminName']) ?\Yii::$app->user->getUserInfo()['adminName'] :$params['adminName'],
  48. 'ip' => Yii::$app->request->getUserIP(),
  49. 'request_route' => Yii::$app->requestedRoute,
  50. 'opt_type' => $params['optType'],
  51. 'opt_obj_id' => isset($params['userId']) ? $params['userId'] : null,
  52. 'opt_obj_name' => isset($params['userName']) ? $params['userName'] : 'System',
  53. 'remark' => isset($params['remark']) ? $params['remark'] : null,
  54. 'is_batch' => $this->_isBatch ? 1 : 0,
  55. 'device' => Yii::$app->request->getDevice(),
  56. ];
  57. return $this;
  58. }
  59. }