链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.0 KiB

  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\LanzuServiceReward;
  4. use App\Libs\SsdbClient;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Controllers\AdminController;
  9. class LanzuServiceRewardController extends AdminController
  10. {
  11. /**
  12. * Make a grid builder.
  13. *
  14. * @return Grid
  15. */
  16. protected function grid()
  17. {
  18. return Grid::make(new LanzuServiceReward(), function (Grid $grid) {
  19. $grid->column('first_reward', '首单奖励')->display(function () {
  20. return $this->set_reward['first_reward'] . ' 元';
  21. });
  22. $grid->column('new_user_reward', '站点奖励')->display(function () {
  23. return $this->set_reward['new_user_reward'] . ' 元';
  24. });
  25. $grid->column('flow_reward', '流水奖励')->display(function () {
  26. $f = $this->set_reward['flow_reward'] * 100;
  27. return $f .= '%';
  28. });
  29. $grid->type->using([0 => '-', 1 => '社区']);
  30. $grid->created_at;
  31. $grid->updated_at;
  32. $grid->filter(function (Grid\Filter $filter) {
  33. $filter->equal('id');
  34. });
  35. });
  36. }
  37. /**
  38. * Make a show builder.
  39. *
  40. * @param mixed $id
  41. *
  42. * @return Show
  43. */
  44. protected function detail($id)
  45. {
  46. return Show::make($id, new LanzuServiceReward(), function (Show $show) {
  47. $show->field('first_reward', '首单奖励')->value($show->model()->set_reward['first_reward']);
  48. $show->field('new_user_reward', '新用户奖励')->value($show->model()->set_reward['new _user_reward']);
  49. $show->field('flow_reward', '流水奖励')->value($show->model()->set_reward['flow_reward']);
  50. $show->field('type')->value('社区');
  51. $show->created_at;
  52. $show->updated_at;
  53. });
  54. }
  55. /**
  56. * Make a form builder.
  57. *
  58. * @return Form
  59. */
  60. protected function form()
  61. {
  62. return Form::make(new LanzuServiceReward(), function (Form $form) {
  63. $form->display('id');
  64. $form->embeds('set_reward', '奖励配置', function ($form) {
  65. $form->number('first_reward', '首单奖励(元)')->min(0);
  66. $form->number('new_user_reward', '站点奖励(元)')->min(0);
  67. $form->number('flow_reward', '流水奖励(%)');
  68. });
  69. $form->radio('type')->options([1 => '社区'])->default(1);
  70. $form->saved(function (Form $form) {
  71. $ssdb = SsdbClient::client(env('SSDB_HOST'), env('SSDB_PORT'));
  72. $data = [
  73. 'first_reward' => $form->set_reward['first_reward'],
  74. 'new_user_reward' => $form->set_reward['new_user_reward'],
  75. 'flow_reward' => $form->set_reward['flow_reward'],
  76. ];
  77. $ssdb->multi_hset('set_reward_' . $form->type, $data);
  78. });
  79. });
  80. }
  81. }