UserOperate.php 2.0 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\LogUserHandleForm;
  10. use common\models\LogUserHandle;
  11. use common\models\Period;
  12. use Yii;
  13. use common\helpers\Date;
  14. class UserOperate 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 = LogUserHandle::class;
  23. }
  24. if(!$this->logForm){
  25. $this->logForm = LogUserHandleForm::class;
  26. }
  27. }
  28. /**
  29. * @param array $params
  30. * @return $this
  31. * @throws \Exception
  32. */
  33. public function setColumn(array $params = []){
  34. if(!isset($params['optType'])){
  35. throw new \Exception('请设置操作类型');
  36. }
  37. $period = Period::instance();
  38. $periodNum = $period->getNowPeriodNum();
  39. $this->columns[] = [
  40. 'user_agent' => Yii::$app->request->getUserAgent(),
  41. 'created_at' => intval(Date::nowTime()),
  42. 'period_num' => intval($periodNum),
  43. 'save_before_content' => $this->saveBeforeContent,
  44. 'save_after_content' => $this->saveAfterContent,
  45. 'user_id' => Yii::$app->user->id,
  46. 'user_name' => Yii::$app->user->getUserInfo()['userName'],
  47. 'ip' => Yii::$app->request->getUserIP(),
  48. 'request_route' => Yii::$app->requestedRoute,
  49. 'opt_type' => $params['optType'],
  50. 'opt_obj_id' => isset($params['userId']) ? $params['userId'] : null,
  51. 'opt_obj_name' => isset($params['userName']) ? $params['userName'] : 'System',
  52. 'remark' => isset($params['remark']) ? $params['remark'] : null,
  53. 'key_log' => 1,
  54. 'is_batch' => $this->_isBatch ? 1 : 0,
  55. 'device' => Yii::$app->request->getDevice(),
  56. ];
  57. return $this;
  58. }
  59. }