ShareConfigController.php 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Admin\Controllers\Share;
  3. use App\Models\ShareConfig;
  4. use App\Models\VipCombo;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Http\JsonResponse;
  8. use Dcat\Admin\Layout\Column;
  9. use Dcat\Admin\Layout\Content;
  10. use Dcat\Admin\Layout\Row;
  11. use Dcat\Admin\Show;
  12. use Dcat\Admin\Http\Controllers\AdminController;
  13. use Dcat\Admin\Widgets\Form as WidgetForm;
  14. use Dcat\Admin\Widgets\Box;
  15. class ShareConfigController extends AdminController
  16. {
  17. public function index(Content $content)
  18. {
  19. return $content
  20. ->title(trans('share-config.title'))
  21. ->body(function (Row $row) {
  22. $row->column(12, function (Column $column) {
  23. $form = new WidgetForm();
  24. $config = ShareConfig::first();
  25. $form->width(9);
  26. $form->hidden('id','ID')->value($config->id);
  27. $form->radio('become_type','成为分销条件')
  28. ->options(config('global.become_type'))
  29. ->when(2, function (WidgetForm $form) use ($config){
  30. $vipCombo = VipCombo::select(['id','name'])->get()->toArray();
  31. $form->select('become_vip_id','对应会员')
  32. ->options(array_column($vipCombo,'name','id'))
  33. ->default($config->become_vip_id)
  34. ->required();
  35. })
  36. ->when(3, function (WidgetForm $form) use ($config){
  37. $form->number('become_gold','对应金币')->placeholder('1231')
  38. ->value($config->become_gold)
  39. ->required();
  40. })
  41. ->default($config->become_type)->required();
  42. $form->radio('share_type','分佣类型')
  43. ->options(config('global.share_type'))
  44. ->when(1, function (WidgetForm $form) use ($config){
  45. $form->number('share_number','分销百分比')->value($config->share_number)->max(100)->required();
  46. })
  47. ->when(2, function (WidgetForm $form)use ($config){
  48. $form->number('share_number','分销金额')->value($config->share_number)->required();
  49. })
  50. ->default($config->share_type)
  51. ->required();
  52. $form->number('withdraw_min','最少提现额度')->required();
  53. $form->number('withdraw_max','每日提现上限')->required();
  54. $form->number('withdraw_discount','提现手续费')->required();
  55. $form->textarea('withdraw_desc','提现说明')->value($config->withdraw_desc);
  56. $form->action('share/setting/save');
  57. $column->append(Box::make(trans('admin.edit'), $form));
  58. $form->disableResetButton();
  59. });
  60. });
  61. }
  62. public function save(): JsonResponse
  63. {
  64. $req = request()->post();
  65. $config = ShareConfig::first();
  66. $config->become_type = $req['become_type'];
  67. $config->become_vip_id = $req['become_vip_id'];
  68. $config->become_gold = $req['become_gold'];
  69. $config->share_type = $req['share_type'];
  70. $config->share_number = $req['share_number'];
  71. $config->withdraw_min = $req['withdraw_min'];
  72. $config->withdraw_max = $req['withdraw_max'];
  73. $config->withdraw_discount = $req['withdraw_discount'];
  74. $config->withdraw_desc = $req['withdraw_desc'];
  75. $config->save();
  76. $form = new Form();
  77. $response = $form->response();
  78. return $response->success(__('admin.save_succeeded'));
  79. }
  80. }