SettingsController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Distributor\Controllers;
  3. use App\Distributor\Repositories\DistAdminDistributor;
  4. use App\Http\Controllers\Controller;
  5. use Dcat\Admin\Layout\Column;
  6. use Dcat\Admin\Layout\Content;
  7. use Dcat\Admin\Layout\Row;
  8. use Dcat\Admin\Widgets\Form;
  9. use Illuminate\Http\Request;
  10. class SettingsController extends Controller
  11. {
  12. public function index(Content $content)
  13. {
  14. return $content->title(admin_trans( 'admin.settings'))
  15. ->body(
  16. <<<HTML
  17. <div class="card">{$this->form()->render()}</div>
  18. HTML
  19. );
  20. }
  21. protected function form()
  22. {
  23. //查分销商信息
  24. $distInfo = DistAdminDistributor::getInfo();
  25. $secondaryDomain = $distInfo->secondary_domain ? $distInfo->secondary_domain : '';
  26. $customDomain = $distInfo->custom_domain ? $distInfo->custom_domain : '';
  27. $form = new Form();
  28. $form->radio('domain_type')
  29. ->when(0, function (Form $form) use ($secondaryDomain) {
  30. $form->text('secondary_domain')->width(4,2)->value($secondaryDomain)->readOnly();
  31. })
  32. ->when(1, function (Form $form) use ($customDomain){
  33. $form->text('custom_domain')->width(4,2)->value($customDomain)->required()->help('Please enter the domain name, such as www.example.com,and bind the domain name to the IP address '.env('DIST_SITE_IP'));
  34. })
  35. ->options([0=>admin_trans_field('secondary_domain'),1=>admin_trans_field('custom_domain')])
  36. ->value($distInfo->domain_type)
  37. ->required();
  38. return $form;
  39. }
  40. /*
  41. * 保存配置
  42. */
  43. public function store(Request $request) {
  44. $form = new Form();
  45. $domainType = $request->input('domain_type');
  46. $customDomain = $request->input('custom_domain');
  47. if (!in_array($domainType, [0,1])) {
  48. return $form->response()->error('Invalid argument');
  49. }
  50. if ($domainType == 1) {
  51. if (str_starts_with($customDomain,env('TOP_DOMAIN'))) {
  52. return $form->response()->error('Error in domain format');
  53. }
  54. if (!isDomainOnly($customDomain)) {
  55. return $form->response()->error('Error in domain format');
  56. }
  57. }
  58. DistAdminDistributor::updateDomain($domainType,$customDomain);
  59. return $form->response()->success('Success');
  60. }
  61. }