WinController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Admin\Controllers\Lottery;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\LotteryWin;
  5. use Encore\Admin\Facades\Admin as userAdmin;
  6. use Encore\Admin\Controllers\HasResourceActions;
  7. use Encore\Admin\Grid;
  8. use Encore\Admin\Layout\Content;
  9. use Illuminate\Http\Request;
  10. class WinController extends Controller
  11. {
  12. use HasResourceActions;
  13. /**
  14. * Index interface.
  15. *
  16. * @param Content $content
  17. * @return Content
  18. */
  19. public function index(Content $content)
  20. {
  21. return $content
  22. ->header('中奖列表')
  23. ->description('')
  24. ->body(view('admin.lottery.win')->with(['grid' => $this->grid()]));
  25. }
  26. /**
  27. * Make a grid builder.
  28. *
  29. * @return Grid
  30. */
  31. protected function grid()
  32. {
  33. $status = ['', '未领奖', '已领奖'];
  34. $grid = new Grid(new LotteryWin);
  35. $grid->model()->orderBy('status', 'ASC')->orderBy('created_at','DESC');
  36. $grid->model();
  37. $grid->id('ID');
  38. $grid->column('member.mobile', '手机号');
  39. $grid->column('member.email', '邮箱号');
  40. $grid->column('prize_name', '奖品名称');
  41. $grid->created_at('中奖时间');
  42. $grid->out_at('核销时间');
  43. $grid->status('状态')->display(function () use ($status) {
  44. return $status[$this->status];
  45. });
  46. $grid->actions(function ($actions) {
  47. if ($actions->row['status'] == 1) {
  48. $actions->append('<button data-id="'.$actions->row['id'].'" class="btn btn-primary btn-xs write-off" title="核销" >核销</button>');
  49. }
  50. });
  51. $grid->filter(function ($filter) {
  52. $filter->where(function ($query) {
  53. $query->whereHas('member', function ($query) {
  54. $query->where('email', 'like', "%{$this->input}%")->orWhere('mobile', 'like', "%{$this->input}%");
  55. });
  56. }, '手机/邮箱');
  57. $filter->equal('status', '状态')->select([
  58. 1 => '未领奖',
  59. 2 => '已领奖',
  60. ]);
  61. });
  62. return $grid;
  63. }
  64. /**
  65. * return json
  66. */
  67. public function writeoff(Request $request)
  68. {
  69. $id = $request->input('id');
  70. $info = LotteryWin::find($id);
  71. $info->status = 2;
  72. $info->out_at = date('Y-m-d H:i:s');
  73. $info->save();
  74. return response()->json([]);
  75. }
  76. }