RecuperateTimeController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace App\Admin\Controllers\Content;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Recuperate;
  5. use App\Models\RecuperateApply;
  6. use App\Models\RecuperateLog;
  7. use App\Models\RecuperateTime;
  8. use Encore\Admin\Controllers\HasResourceActions;
  9. use Encore\Admin\Grid;
  10. use Encore\Admin\Layout\Content;
  11. use Illuminate\Http\Request;
  12. use Encore\Admin\Facades\Admin;
  13. use App\Admin\Extensions\Form\ValidateForm;
  14. class RecuperateTimeController extends Controller
  15. {
  16. use HasResourceActions;
  17. /**
  18. * Index interface.
  19. *
  20. * @param Content $content
  21. * @return Content
  22. */
  23. public function index(Content $content)
  24. {
  25. return $content
  26. ->header('会员列表')
  27. ->description(' ')
  28. ->body(view('admin.content.recuperate_apply')->with(['grid' => $this->grid()]));
  29. }
  30. public function edit($id, Content $content)
  31. {
  32. return $content
  33. ->header('会员列表')
  34. ->description('金额修改')
  35. ->body($this->editForm($id)->edit($id));
  36. }
  37. /**
  38. * Make a grid builder.
  39. *
  40. * @return Grid
  41. */
  42. protected function grid()
  43. {
  44. $grid = new Grid(new RecuperateTime());
  45. $grid->model()->orderBy('year', 'DESC');
  46. $grid->column('memberinfo.realname', '姓名')->display(function ($realname) {
  47. return '<a href="'.route('recuperate.applypersonal',['uid'=>$this->uid]).'" target="_blank">'.$realname.'</a>';
  48. })->width(300);
  49. /* $grid->title('招聘会标题')->display(function ($title) {
  50. return '<a href="'.route('jobfair.show.com',$this->id).'" target="_blank">'.$title.'</a>';
  51. })->width(300);*/
  52. $grid->column('memberinfo.id_card','身份证号');
  53. $grid->column('memberinfo.phone','联系电话');
  54. $grid->year('年份');
  55. $grid->price('金额');
  56. $grid->created_at('创建时间');
  57. //审核功能
  58. $grid->actions(function ($actions) {
  59. if (Admin::user()->can('content_recuperate_time_list_edit')) {
  60. $actions->disableEdit(false);
  61. }
  62. });
  63. $grid->filter(function ($filter) {
  64. $filter->group('搜索', function ($group) {
  65. $group->where('姓名', function ($query) {
  66. $query->whereHas('memberinfo',function ($query){
  67. $query->where('realname', 'like','%'.request()->搜索.'%');
  68. });
  69. });
  70. $group->where('身份证号', function ($query) {
  71. $query->whereHas('memberinfo',function ($query){
  72. $query->where('id_card', 'like','%'.request()->搜索.'%');
  73. });
  74. });
  75. $group->where('联系电话',function ($query){
  76. $query->whereHas('memberinfo',function ($query){
  77. $query->where('phone', 'like','%'.request()->搜索.'%');
  78. });
  79. });
  80. })->placeholder('请输入关键字');
  81. });
  82. return $grid;
  83. }
  84. protected function editForm($id)
  85. {
  86. $form = new ValidateForm(new RecuperateTime());
  87. $form->text('memberinfo.realname', '姓名')->readonly();
  88. $form->text('memberinfo.id_card', '身份证')->readonly();
  89. $form->text('memberinfo.phone', '联系方式')->readonly();
  90. $form->text('price', '金额')->setMustMark();
  91. $form->hidden('id');
  92. return $form;
  93. }
  94. public function update($id, Request $request)
  95. {
  96. $request->validate([
  97. 'price' => 'required',
  98. ],
  99. [
  100. 'price' => '请填写金额',
  101. ]);
  102. $res = $this->editForm($id)->update($id);
  103. if ($res) {
  104. $stu = RecuperateTime::where('id', $id)->select('uid')->first();
  105. $auditData = array(
  106. 'type' => 3,
  107. 'admin_id' => \Encore\Admin\Facades\Admin::user()->id,
  108. 'sid' => $stu->uid,
  109. 'content' =>$request->price
  110. );
  111. RecuperateLog::create($auditData);
  112. }
  113. return $res;
  114. }
  115. }