AdminHistory.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. $is_admin = $value['is_admin'];
  58. if ($is_admin == '1') {
  59. $result['data'][$key]['username'] = $AdminUserModel->where('uid', $value['admin_uid'])->value('username');
  60. } else {
  61. $result['data'][$key]['username'] = $EmployeeModel->where('id', $value['admin_uid'])->value('name');
  62. }
  63. }
  64. }
  65. // 分配数据
  66. if (!$result) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => []]);
  67. // 加载模板
  68. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  69. }
  70. /**
  71. * 管理员操作日志列表
  72. * @author 唐远望
  73. * @version 1.0
  74. * @date 2026-04-20
  75. *
  76. */
  77. public function admin_history_list(Request $request, AdminHistoryModel $AdminHistoryModel, AdminUserModel $AdminUserModel, EmployeeModel $EmployeeModel)
  78. {
  79. $request->scene('admin_history_list')->validate();
  80. $company_id = request('access_token.company_id', '0');
  81. $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
  82. // 查询条件
  83. $map = [];
  84. $limit = request('limit', config('page_num', 10));
  85. $start_time = request('start_time', '');
  86. $end_time = request('end_time', '');
  87. $module_menu_name = request('module_menu_name', '');
  88. $general_description = request('general_description', '');
  89. $notes_type = request('notes_type', '');
  90. // 时间条件
  91. if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
  92. if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time)];
  93. // 其他条件
  94. if ($module_menu_name) $map[] = ['module_menu_name', 'like', "%$module_menu_name%"];
  95. if ($general_description) $map[] = ['general_description', 'like', "%$general_description%"];
  96. if ($notes_type) $map[] = ['notes_type', '=', $notes_type];
  97. // 查询数据
  98. if ($is_admin != 1){
  99. return json_send(['code' => 'error', 'msg' => '无权限获取', 'data' => []]);
  100. }else{
  101. $map[] = ['company_id', '=', $company_id];
  102. }
  103. $result = $AdminHistoryModel
  104. ->where($map)
  105. ->select(['id', 'admin_uid', 'is_admin', 'module_menu_name', 'notes_type', 'general_description', 'insert_time'])
  106. ->orderByDesc('id')
  107. ->paginate($limit)->toarray();
  108. if (isset($result['data']) && count($result['data']) > 0) {
  109. foreach ($result['data'] as $key => $value) {
  110. $is_admin = $value['is_admin'];
  111. if ($is_admin == '1') {
  112. $result['data'][$key]['username'] = $AdminUserModel->where('uid', $value['admin_uid'])->value('username');
  113. } else {
  114. $result['data'][$key]['username'] = $EmployeeModel->where('id', $value['admin_uid'])->value('name');
  115. }
  116. }
  117. }
  118. // 分配数据
  119. if (!$result) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => []]);
  120. // 加载模板
  121. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  122. }
  123. }