CoachRealRecordController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use Slowlyo\OwlAdmin\Admin;
  4. use Illuminate\Http\Request;
  5. use App\Models\CoachRealRecord;
  6. use App\Services\CoachRealRecordService;
  7. use Illuminate\Support\Facades\Validator;
  8. use Slowlyo\OwlAdmin\Controllers\AdminController;
  9. /**
  10. * 技师实名认证
  11. *
  12. * @property CoachRealRecordService $service
  13. */
  14. class CoachRealRecordController extends AdminController
  15. {
  16. protected string $serviceName = CoachRealRecordService::class;
  17. public function list()
  18. {
  19. $crud = $this->baseCRUD()
  20. ->filterTogglable(false)
  21. ->headerToolbar([
  22. $this->createButton('dialog'),
  23. ...$this->baseHeaderToolBar()
  24. ])
  25. ->columns([
  26. amis()->TableColumn('id', 'ID')->sortable(),
  27. amis()->TableColumn('coach_id', '技师编号'),
  28. amis()->TableColumn('real_name', '姓名'),
  29. amis()->TableColumn('id_card', '身份证号'),
  30. amis()->TableColumn('id_card_front_photo', '身份证正面照片'),
  31. amis()->TableColumn('id_card_back_photo', '身份证反面照片'),
  32. amis()->TableColumn('id_card_hand_photo', '手持身份证照片'),
  33. amis()->TableColumn('auditor', '审核人'),
  34. amis()->TableColumn('audit_time', '审核时间'),
  35. amis()->TableColumn('audit_remark', '审核回执'),
  36. amis()->TableColumn('state', '状态')->sortable(),
  37. amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
  38. amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
  39. $this->rowActions('dialog')
  40. ]);
  41. return $this->baseList($crud);
  42. }
  43. public function form($isEdit = false)
  44. {
  45. return $this->baseForm()->body([
  46. amis()->TextControl('coach_id', '技师编号'),
  47. amis()->TextControl('real_name', '姓名'),
  48. amis()->TextControl('id_card', '身份证号'),
  49. amis()->TextControl('id_card_front_photo', '身份证正面照片'),
  50. amis()->TextControl('id_card_back_photo', '身份证反面照片'),
  51. amis()->TextControl('id_card_hand_photo', '手持身份证照片'),
  52. amis()->TextControl('auditor', '审核人'),
  53. amis()->TextControl('audit_time', '审核时间'),
  54. amis()->TextControl('audit_remark', '审核回执'),
  55. amis()->TextControl('state', '状态'),
  56. ]);
  57. }
  58. public function detail()
  59. {
  60. return $this->baseDetail()->body([
  61. amis()->TextControl('id', 'ID')->static(),
  62. amis()->TextControl('coach_id', '技师编号')->static(),
  63. amis()->TextControl('real_name', '姓名')->static(),
  64. amis()->TextControl('id_card', '身份证号')->static(),
  65. amis()->TextControl('id_card_front_photo', '身份证正面照片')->static(),
  66. amis()->TextControl('id_card_back_photo', '身份证反面照片')->static(),
  67. amis()->TextControl('id_card_hand_photo', '手持身份证照片')->static(),
  68. amis()->TextControl('auditor', '审核人')->static(),
  69. amis()->TextControl('audit_time', '审核时间')->static(),
  70. amis()->TextControl('audit_remark', '审核回执')->static(),
  71. amis()->TextControl('state', '状态')->static(),
  72. amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
  73. amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
  74. ]);
  75. }
  76. /**
  77. * [审核]审核技师实名认证
  78. *
  79. * @description 审核技师的实名认证记录,可通过或驳回
  80. *
  81. * @header x-xsrf-token required CSRF令牌 Example: your_csrf_token
  82. *
  83. * @bodyParam real_auth_record_id integer required 实名认证记录ID Example: 1
  84. * @bodyParam real_auth_state integer required 审核状态(2:通过 3:驳回) Example: 2
  85. * @bodyParam audit_remark string required 审核意见 Example: 身份信息核实无误,审核通过
  86. *
  87. * @response scenario=success {
  88. * "code": 200,
  89. * "message": "操作成功"
  90. * }
  91. *
  92. * @response status=400 scenario="已审核" {
  93. * "message": "该认证已审核"
  94. * }
  95. *
  96. * @response status=404 scenario="不存在" {
  97. * "message": "认证记录不存在"
  98. * }
  99. */
  100. public function audit(Request $request)
  101. {
  102. $validated = $request->validate([
  103. 'id' => 'required|integer|exists:coach_real_records,id',
  104. 'state' => 'required|integer|in:2,3', // 2:通过 3:驳回
  105. 'audit_remark' => 'string|max:255',
  106. ]);
  107. $result = $this->service->audit(
  108. $validated['id'],
  109. $validated['state'],
  110. $validated['audit_remark'],
  111. Admin::user()->id
  112. );
  113. return $this->autoResponse($result);
  114. }
  115. /**
  116. * 修改技师实名认证信息
  117. *
  118. * @param Request $request
  119. * @return \Illuminate\Http\JsonResponse
  120. */
  121. public function updateInfo(Request $request)
  122. {
  123. $validated = $request->validate([
  124. 'id' => 'required|integer|exists:coach_real_records,id',
  125. 'id_card_front_photo' => 'nullable|string|max:255',
  126. 'id_card_back_photo' => 'nullable|string|max:255',
  127. 'id_card_hand_photo' => 'nullable|string|max:255',
  128. ]);
  129. $result = $this->service->updateInfo($validated['id'], $validated);
  130. return $this->autoResponse($result);
  131. }
  132. }