链街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.

110 lines
3.3 KiB

  1. <?php
  2. namespace App\Admin\Forms\v3;
  3. use Dcat\Admin\Models\Administrator;
  4. use Dcat\Admin\Traits\LazyWidget;
  5. use Dcat\Admin\Widgets\Form;
  6. use Dcat\Admin\Contracts\LazyRenderable;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use App\Models\v3\Store as StoreModel;
  9. use App\Models\v3\Goods as GoodsModel;
  10. use App\Models\v3\GoodsBanners as GoodsBannerModel;
  11. class GoodsActivityCopyForm extends Form implements LazyRenderable
  12. {
  13. use LazyWidget;
  14. /**
  15. * Handle the form request.
  16. *
  17. * @param array $input
  18. *
  19. * @return Response
  20. */
  21. public function handle(array $input)
  22. {
  23. // 获取外部传递参数
  24. $goodsId = $input['goods_id'];
  25. $storeIds= $input['store_ids'];
  26. $goods = GoodsModel::find($goodsId);
  27. $goodsBanners = GoodsBannerModel::where('goods_id',$goodsId)->get();
  28. $markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id');
  29. foreach($storeIds as $key =>$value){
  30. $storeId = $value;
  31. $model = new GoodsModel();
  32. $model->store_id = $storeId;
  33. $model->market_id = $markets[$storeId];
  34. $model->category_id = $goods->category_id;
  35. $model->name = $goods->name;
  36. $model->cover_img = $goods->cover_img;
  37. $model->goods_unit = $goods->goods_unit;
  38. $model->tags = $goods->tags;
  39. $model->spec = $goods->spec;
  40. $model->details_imgs = $goods->details_imgs;
  41. $model->content = $goods->content;
  42. $model->details = $goods->details;
  43. $model->price = $goods->price;
  44. $model->original_price = $goods->original_price;
  45. $model->vip_price = $goods->vip_price;
  46. $model->start_num = $goods->start_num;
  47. $model->restrict_num = $goods->restrict_num;
  48. $model->is_infinite = $goods->is_infinite;
  49. $model->inventory = $goods->inventory;
  50. $model->on_sale = $goods->on_sale;
  51. $model->sort = $goods->sort;
  52. $model->remark = $goods->remark;
  53. if($model->save() && !empty($goodsBanners)){
  54. $goodsId = $model->getKey();
  55. $banners = [];
  56. foreach($goodsBanners as $kb => $vb){
  57. $banners[] = [
  58. 'goods_id' => $goodsId,
  59. 'type' => $vb->type,
  60. 'path' => $vb->path,
  61. 'sort' => $vb->sort,
  62. 'created_at' => time(),
  63. 'updated_at' => time(),
  64. ];
  65. GoodsBannerModel::insert($banners);
  66. }
  67. };
  68. }
  69. return $this->success('修改成功', '/goods');
  70. }
  71. /**
  72. * Build a form here.
  73. */
  74. public function form()
  75. {
  76. $id = $this->getKey();
  77. $name = $this->name ?? '';
  78. dd($name);
  79. $this->hidden('id')->value($id);
  80. $this->display('name')->value($name);
  81. $stores = StoreModel::getStoreArray();
  82. $this->multipleSelect('store_ids','选择店铺')->required()->options($stores)->help('选择店铺,将当前商品复制到所选店铺。注意选择重复店铺问题!!!');
  83. }
  84. /**
  85. * The data of the form.
  86. *
  87. * @return array
  88. */
  89. public function default()
  90. {
  91. return [];
  92. }
  93. }