AdminHistory.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace App\Http\Controllers\manager;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\Manager\AdminHistory as Request;
  5. use App\Models\Manager\AdminHistory as AdminHistoryModel;
  6. use App\Models\Manager\AdminUser as AdminUserModel;
  7. use App\Models\Manager\Personnel\Employee as EmployeeModel;
  8. /**
  9. * 操作日志记录
  10. * @author 唐远望
  11. * @version 1.0
  12. * @date 2025-12-24
  13. */
  14. class AdminHistory extends Controller
  15. {
  16. /**
  17. * 列表
  18. * @author 唐远望
  19. * @version 1.0
  20. * @date 2025-12-24
  21. *
  22. */
  23. public function list(Request $request, AdminHistoryModel $AdminHistoryModel, AdminUserModel $AdminUserModel, EmployeeModel $EmployeeModel)
  24. {
  25. $request->scene('list')->validate();
  26. $admin_company_id = request('admin_company_id', '0');
  27. $company_id = request('access_token.company_id', '0');
  28. $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
  29. // 查询条件
  30. $map = [];
  31. $limit = request('limit', config('page_num', 10));
  32. $start_time = request('start_time', '');
  33. $end_time = request('end_time', '');
  34. $module_menu_name = request('module_menu_name', '');
  35. $general_description = request('general_description', '');
  36. $notes_type = request('notes_type', '');
  37. // 时间条件
  38. if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
  39. if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time)];
  40. // 其他条件
  41. if ($module_menu_name) $map[] = ['module_menu_name', 'like', "%$module_menu_name%"];
  42. if ($general_description) $map[] = ['general_description', 'like', "%$general_description%"];
  43. if ($notes_type) $map[] = ['notes_type', '=', $notes_type];
  44. // 查询数据
  45. if ($is_admin != 1 && $company_id != 0){
  46. $map[] = ['company_id', '=', $company_id];
  47. }else{
  48. $map[] = ['company_id', '=', $admin_company_id];
  49. }
  50. $result = $AdminHistoryModel
  51. ->where($map)
  52. ->select(['id', 'admin_uid', 'is_admin', 'module_menu_name', 'notes_type', 'general_description', 'insert_time'])
  53. ->orderByDesc('id')
  54. ->paginate($limit)->toarray();
  55. if (isset($result['data']) && count($result['data']) > 0) {
  56. foreach ($result['data'] as $key => $value) {
  57. $result['data'][$key]['username'] = $value['user_name'];
  58. }
  59. }
  60. // 分配数据
  61. if (!$result) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => []]);
  62. // 加载模板
  63. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  64. }
  65. /**
  66. * 管理员操作日志列表
  67. * @author 唐远望
  68. * @version 1.0
  69. * @date 2026-04-20
  70. *
  71. */
  72. public function admin_history_list(Request $request, AdminHistoryModel $AdminHistoryModel, AdminUserModel $AdminUserModel, EmployeeModel $EmployeeModel)
  73. {
  74. $request->scene('admin_history_list')->validate();
  75. $company_id = request('access_token.company_id', '0');
  76. $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
  77. // 查询条件
  78. $map = [];
  79. $limit = request('limit', config('page_num', 10));
  80. $start_time = request('start_time', '');
  81. $end_time = request('end_time', '');
  82. $module_menu_name = request('module_menu_name', '');
  83. $general_description = request('general_description', '');
  84. $notes_type = request('notes_type', '');
  85. // 时间条件
  86. if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
  87. if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time)];
  88. // 其他条件
  89. if ($module_menu_name) $map[] = ['module_menu_name', 'like', "%$module_menu_name%"];
  90. if ($general_description) $map[] = ['general_description', 'like', "%$general_description%"];
  91. if ($notes_type) $map[] = ['notes_type', '=', $notes_type];
  92. // 查询数据
  93. if ($is_admin != 1){
  94. return json_send(['code' => 'error', 'msg' => '无权限获取', 'data' => []]);
  95. }else{
  96. $map[] = ['company_id', '=', $company_id];
  97. }
  98. $result = $AdminHistoryModel
  99. ->where($map)
  100. ->select(['id', 'admin_uid', 'is_admin', 'module_menu_name', 'notes_type', 'general_description', 'insert_time'])
  101. ->orderByDesc('id')
  102. ->paginate($limit)->toarray();
  103. if (isset($result['data']) && count($result['data']) > 0) {
  104. foreach ($result['data'] as $key => $value) {
  105. $is_admin = $value['is_admin'];
  106. if ($is_admin == '1') {
  107. $result['data'][$key]['username'] = $AdminUserModel->where('uid', $value['admin_uid'])->value('username');
  108. } else {
  109. $result['data'][$key]['username'] = $EmployeeModel->where('id', $value['admin_uid'])->value('name');
  110. }
  111. }
  112. }
  113. // 分配数据
  114. if (!$result) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => []]);
  115. // 加载模板
  116. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  117. }
  118. }