CoachRealRecordController.php 5.1 KB

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