InitializeWarehouseForm.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Module\Mex\Forms;
  3. use App\Module\Mex\Logic\MexAdminLogic;
  4. use Dcat\Admin\Admin;
  5. use Dcat\Admin\Widgets\Form;
  6. /**
  7. * Mex模块初始化仓库表单
  8. */
  9. class InitializeWarehouseForm extends Form
  10. {
  11. /**
  12. * 处理表单提交请求
  13. */
  14. public function handle(array $input)
  15. {
  16. try {
  17. $result = MexAdminLogic::initializeWarehouse(Admin::user()->id);
  18. if ($result['success']) {
  19. return $this->response()
  20. ->success('初始化成功!' . $result['message'] . ',共初始化了 ' . $result['initialized_count'] . ' 个商品的库存记录。')
  21. ->refresh(); // 刷新当前页面
  22. } else {
  23. return $this->response()->error('初始化失败: ' . $result['message']);
  24. }
  25. } catch (\Exception $e) {
  26. return $this->response()->error('初始化失败: ' . $e->getMessage());
  27. }
  28. }
  29. /**
  30. * 构建表单
  31. */
  32. public function form()
  33. {
  34. $this->html('<div class="alert alert-info">
  35. <h6><i class="fa fa-info-circle"></i> 初始化说明</h6>
  36. <ul class="mb-0">
  37. <li>此操作将为所有已启用定价的商品创建库存记录</li>
  38. <li>初始库存数量为0,可通过注入操作增加库存</li>
  39. <li>只有当库存表为空时才能执行初始化</li>
  40. <li>初始化后可以正常进行注入、回收和用户交易</li>
  41. </ul>
  42. </div>');
  43. $this->html('<div class="alert alert-warning">
  44. <h6><i class="fa fa-exclamation-triangle"></i> 注意事项</h6>
  45. <ul class="mb-0">
  46. <li>初始化操作只能在库存表为空时执行</li>
  47. <li>如果已有库存记录,将无法执行初始化</li>
  48. <li>初始化完成后,所有已定价商品的库存都为0</li>
  49. <li>操作不可撤销,请确认后再执行</li>
  50. </ul>
  51. </div>');
  52. // 添加一个隐藏字段,确保表单可以提交
  53. $this->hidden('action')->value('initialize');
  54. }
  55. /**
  56. * 返回表单默认数据
  57. */
  58. public function default()
  59. {
  60. return [
  61. 'action' => 'initialize',
  62. ];
  63. }
  64. }