BloggerController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. namespace App\Admin\Controllers\Ask;
  3. use App\Admin\Repositories\Ask\Blogger;
  4. use App\Wen\Utils\Settings;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. use Illuminate\Http\Request;
  10. use App\Models\Ask\BloggerType;
  11. use Illuminate\Support\Facades\DB;
  12. class BloggerController extends AdminController
  13. {
  14. public function blogger(Request $request)
  15. {
  16. $q = $request->get('q');
  17. return \App\Models\Ask\Blogger::where('info', 'like', "%$q%")->paginate(null, ['id', 'info as text']);
  18. }
  19. /**
  20. * Make a grid builder.
  21. *
  22. * @return Grid
  23. */
  24. protected function grid()
  25. {
  26. return Grid::make(new Blogger(), function (Grid $grid) {
  27. $grid->simplePaginate();
  28. $grid->model()->orderBy('user_id', 'desc');
  29. $grid->quickSearch(['user_id', 'info'])->placeholder('搜索用户ID,详细介绍');
  30. $grid->column('user_id');
  31. $grid->column('ask_price');
  32. $grid->column('sit_price');
  33. $grid->column('ask_minute');
  34. $grid->column('ask_status')->using([
  35. 0=>'暂停咨询',
  36. 1=>'接受咨询',
  37. ])->label([
  38. 'default' => 'danger', // 设置默认颜色,不设置则默认为 default
  39. 0 => 'danger',
  40. 1 => 'success',
  41. ]);
  42. $grid->column('status')->using([
  43. 0=>'未认证',
  44. 1=>'已认证',
  45. ])->label([
  46. 'default' => 'danger', // 设置默认颜色,不设置则默认为 default
  47. 0 => 'danger',
  48. 1 => 'success',
  49. ]);
  50. $grid->column('order_number');
  51. $grid->column('order_eva_score');
  52. $types = DB::table('blogger_type')->orderBy('sort','desc')->get();
  53. $types = json_decode(json_encode($types),true);
  54. $grid->column('type_ids')->display(function($type_ids)use($types){
  55. $ids = explode(',',$type_ids);
  56. if(empty($ids)){
  57. return '';
  58. }
  59. $data = [];
  60. foreach($types as $key => $type){
  61. if(in_array($type['id'],$ids)){
  62. $data[] = $type['title'];
  63. }
  64. }
  65. return implode('、',$data);
  66. });
  67. $grid->column('info');
  68. $grid->filter(function (Grid\Filter $filter) {
  69. $filter->like('info');
  70. });
  71. });
  72. }
  73. //没用到
  74. private function getTypessById($ids){
  75. $ids = explode(',',$ids);
  76. if(empty($ids)){
  77. return '';
  78. }
  79. $types = DB::Table('blogger_type')->get();
  80. $types = json_decode(json_encode($types),true);
  81. $data = [];
  82. foreach($types as $key => $type){
  83. if(in_array($type['id'],$ids)){
  84. $data[] = $type['name'];
  85. }
  86. }
  87. return implode(',',$data);
  88. }
  89. /**
  90. * Make a show builder.
  91. *
  92. * @param mixed $id
  93. *
  94. * @return Show
  95. */
  96. protected function detail($id)
  97. {
  98. return Show::make($id, new Blogger(), function (Show $show) {
  99. $show->field('user_id');
  100. $show->field('ask_price');
  101. $show->field('sit_price');
  102. $show->field('ask_minute');
  103. $show->field('ask_status');
  104. $show->field('status');
  105. $show->field('order_number');
  106. $show->field('order_eva_score');
  107. $show->field('type_ids');
  108. $show->field('info');
  109. });
  110. }
  111. /**
  112. * Make a form builder.
  113. *
  114. * @return Form
  115. */
  116. protected function form()
  117. {
  118. return Form::make(new Blogger(), function (Form $form) {
  119. $form->display('id');
  120. $form->text('user_id')->required();
  121. $form->number('ask_price')->default(0);
  122. $form->number('sit_price')->default(0);
  123. $form->number('ask_minute')->default(0);
  124. $form->radio('ask_status')->options([
  125. 0=>'暂停咨询',
  126. 1=>'接受咨询',
  127. ]);
  128. $form->radio('status')->options([
  129. 0=>'未认证',
  130. 1=>'已认证',
  131. ]);
  132. $form->multipleSelect('type_ids')->options(BloggerType::orderBy('sort','desc')->pluck('title', 'id'))->saving(function($array){
  133. return implode(',',$array);
  134. });
  135. // $form->select('type_ids')->options(BloggerType::pluck('title', 'id'));
  136. $form->text('info');
  137. $form->deleting(function (Form $form){
  138. global $__MINI_GLOBAL_TENANT_ID__;
  139. if($__MINI_GLOBAL_TENANT_ID__ > 0){
  140. return $form->response()->error('权限不足,不可以删除其他分站对象');
  141. }
  142. });
  143. });
  144. }
  145. }