Log.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace app\admin\controller\commission;
  3. use app\common\controller\Backend;
  4. use app\common\model\commission\Log as LogModel;
  5. use app\common\model\User as UserModel;
  6. use app\admin\model\Admin as AdminModel;
  7. use app\common\library\Operator;
  8. class Log extends Backend
  9. {
  10. protected $model = null;
  11. /**
  12. * 快速搜索时执行查找的字段
  13. */
  14. protected $searchFields = 'id,type,oper_type';
  15. /**
  16. * 是否是关联查询
  17. */
  18. protected $relationSearch = true;
  19. public function _initialize()
  20. {
  21. parent::_initialize();
  22. $this->model = new LogModel();
  23. // 配置代理商和操作人信息展示
  24. $this->assignconfig('commission_log_event_types', [
  25. 'agent' => __('分销商日志'),
  26. 'level' => __('等级变动日志'),
  27. 'order' => __('分销业绩'),
  28. 'team' => __('团队日志'),
  29. 'reward' => __('佣金日志'),
  30. 'share' => __('分享日志'),
  31. 'bind' => __('绑定日志')
  32. ]);
  33. $this->assignconfig('commission_log_oper_types', [
  34. 'admin' => __('管理员'),
  35. 'system' => __('系统'),
  36. 'user' => __('用户')
  37. ]);
  38. $this->assignconfig('commission_log_user_display_config', [
  39. 'showAvatar' => true,
  40. 'avatarSize' => 40,
  41. 'showMobile' => true,
  42. 'showId' => true,
  43. 'systemAvatarUrl' => '/assets/img/system-avatar.png',
  44. 'defaultAvatarUrl' => '/assets/img/avatar.png'
  45. ]);
  46. }
  47. /**
  48. * 查看
  49. *
  50. * @return Response
  51. */
  52. public function index()
  53. {
  54. if (!$this->request->isAjax()) {
  55. return $this->view->fetch();
  56. }
  57. //如果发送的来源是 Selectpage,则转发到 Selectpage
  58. if ($this->request->request('keyField')) {
  59. return $this->selectpage();
  60. }
  61. [$where, $sort, $order, $offset, $limit] = $this->buildparams();
  62. $logs = $this->model
  63. ->with(['agent'])
  64. ->where($where)
  65. ->order($sort, $order)
  66. ->paginate($limit);
  67. $morphs = [
  68. 'user' => UserModel::class,
  69. 'admin' => AdminModel::class,
  70. 'system' => AdminModel::class
  71. ];
  72. $logs = morph_to($logs, $morphs, ['oper_type', 'oper_id']);
  73. $logsArray = $logs->toArray();
  74. // 格式化操作人信息
  75. foreach ($logsArray['data'] as &$log) {
  76. $log['oper'] = Operator::info($log['oper_type'], $log['oper'] ?? null);
  77. }
  78. $result = ['total' => $logsArray['total'], 'rows' => $logsArray['data']];
  79. return json($result);
  80. }
  81. }