ShareConfigController.php 4.1 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\Http\JsonResponse;
  7. use Dcat\Admin\Layout\Column;
  8. use Dcat\Admin\Layout\Content;
  9. use Dcat\Admin\Layout\Row;
  10. use Dcat\Admin\Http\Controllers\AdminController;
  11. use Dcat\Admin\Widgets\Form as WidgetForm;
  12. use Dcat\Admin\Widgets\Box;
  13. class ShareConfigController extends AdminController
  14. {
  15. public function index(Content $content)
  16. {
  17. return $content
  18. ->title(trans('share-config.title'))
  19. ->body(function (Row $row) {
  20. $row->column(12, function (Column $column) {
  21. $form = new WidgetForm();
  22. $config = ShareConfig::first();
  23. $form->width(9);
  24. $form->hidden('id', 'ID')->value($config->id);
  25. $form->radio('become_type', '成为分销条件')
  26. ->options(config('global.become_type'))
  27. ->when(2, function (WidgetForm $form) use ($config) {
  28. $vipCombo = VipCombo::select(['id', 'name'])->get()->toArray();
  29. $form->select('become_vip_id', '对应会员')
  30. ->options(array_column($vipCombo, 'name', 'id'))
  31. ->default($config->become_vip_id)
  32. ->width(3)
  33. ->required();
  34. })
  35. ->when(3, function (WidgetForm $form) use ($config) {
  36. $form->decimal('become_gold', '对应金币')->placeholder('1231')
  37. ->value($config->become_gold)
  38. ->width(3)
  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->rate('share_percent', '分销百分比')->default($config->share_number)->required()->width(3);
  46. })
  47. ->when(2, function (WidgetForm $form) use ($config) {
  48. $form->decimal('share_price', '分销金额')->default($config->share_number)->required()->width(3);
  49. })
  50. ->default($config->share_type)
  51. ->required();
  52. $form->decimal('withdraw_min', '最少提现额度')->value($config->withdraw_min)->required()->width(3);
  53. $form->decimal('withdraw_max', '每日提现上限')->value($config->withdraw_max)->required()->width(3);
  54. $form->rate('withdraw_discount', '提现手续费')->value($config->withdraw_discount)->required()->width(3);
  55. $form->editor('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 = 1 == $req['share_type'] ? $req['share_percent'] : $req['share_price'];
  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. }