kphcdr 1 rok pred
rodič
commit
838c3ddafb

+ 0 - 10
app/Console/Commands/TestCommand.php

@@ -47,14 +47,4 @@ class TestCommand extends Command
         $cartesianProduct->appendSet(["红色", "白色"]);
         dump($cartesianProduct->compute());
     }
-
-    public function fixSku()
-    {
-        GoodsSku::chunkById(10, function ($s) {
-            $s->each(function (GoodsSku $sku) {
-                $sku->spec_attr_list;
-
-            });
-        });
-    }
 }

+ 14 - 16
app/Models/Goods/Goods.php

@@ -9,17 +9,17 @@ use Illuminate\Support\Arr;
 /**
  * App\Models\Goods\Goods
  *
- * @property int                             $id
- * @property string                          $name
- * @property array                           $image_list
- * @property array                           $spec 商品的规格
- * @property int                             $weight
- * @property string|null                     $desc_html
- * @property string|null                     $spec_attr_html
- * @property string|null                     $faq_html
- * @property \Illuminate\Support\Carbon|null $created_at
- * @property \Illuminate\Support\Carbon|null $updated_at
- * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @property int                                                                                $id
+ * @property string                                                                             $name
+ * @property array                                                                              $image_list
+ * @property array                                                                              $spec 商品的规格
+ * @property int                                                                                $weight
+ * @property string|null                                                                        $desc_html
+ * @property string|null                                                                        $spec_attr_html
+ * @property string|null                                                                        $faq_html
+ * @property \Illuminate\Support\Carbon|null                                                    $created_at
+ * @property \Illuminate\Support\Carbon|null                                                    $updated_at
+ * @property \Illuminate\Support\Carbon|null                                                    $deleted_at
  * @method static \Illuminate\Database\Eloquent\Builder|Goods newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder|Goods newQuery()
  * @method static \Illuminate\Database\Query\Builder|Goods onlyTrashed()
@@ -53,6 +53,8 @@ use Illuminate\Support\Arr;
  * @method static \Illuminate\Database\Eloquent\Builder|Goods whereUrl3d($value)
  * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Goods\GoodsSpecMap[]     $specMap
  * @property-read int|null                                                                      $spec_map_count
+ * @property array                                                                              $custom
+ * @method static \Illuminate\Database\Eloquent\Builder|Goods whereCustom($value)
  */
 class Goods extends BaseModel
 {
@@ -64,6 +66,7 @@ class Goods extends BaseModel
     protected $casts = [
         "image_list" => "array",
         "spec" => "array",
+        "custom" => "array",
     ];
 
     public function format(...$options)
@@ -76,11 +79,6 @@ class Goods extends BaseModel
         return $this->hasMany(GoodsCategoryMap::class, "goods_id", "id");
     }
 
-    public function sku()
-    {
-        return $this->hasMany(GoodsSku::class, "goods_id", "id");
-    }
-
     public function getThumbAttribute()
     {
         return Arr::first($this->image_list);

+ 1 - 1
app/Modules/Admin/Controllers/Admin/GoodsController.php

@@ -77,7 +77,7 @@ class GoodsController extends BaseController
             "faq_html" => "",
             "url_3d" => "",
             "sn" => "",
-            "sku" => "array",
+            "custom" => "array",
         ]);
         return $this->ok($this->service->store($params));
     }

+ 2 - 21
app/Modules/Admin/Services/GoodsService.php

@@ -61,6 +61,7 @@ class GoodsService extends BaseService
             $goods->desc_html = Arr::get($params, "desc_html", "");
             $goods->spec_attr_html = Arr::get($params, "spec_attr_html", "");
             $goods->faq_html = Arr::get($params, "faq_html", "");
+            $goods->custom = Arr::get($params, "custom", []);
             $goods->save();
             $categoryArr = Arr::get($params, "category", []);
             GoodsCategoryMap::where("goods_id", $goods->id)->whereNotIn("category_id", Arr::pluck($categoryArr, "id"))->delete();
@@ -95,21 +96,6 @@ class GoodsService extends BaseService
             }
 
             GoodsSpecMap::where("goods_id", $goods->id)->whereNotIn("id", $doNotDelIdArr)->delete();
-
-            $skuArr = Arr::get($params, "sku", []);
-            $doNotDelIdArr = [];
-            foreach ($skuArr as $skuParam) {
-                $sku = GoodsSku::where("goods_id", $goods->id)->find($skuParam['id']);
-                if (is_null($sku)) {
-                    $sku = new GoodsSku();
-                    $sku->goods_id = $goods->id;
-                }
-                $sku->spec_attr_list = $skuParam['attr'];
-
-                $sku->save();
-                $doNotDelIdArr[] = $sku->id;
-            }
-            GoodsSku::where("goods_id", $goods->id)->whereNotIn("id", $doNotDelIdArr)->delete();
         });
 
     }
@@ -146,12 +132,7 @@ class GoodsService extends BaseService
                     "name" => $map->spec->name,
                 ];
             }),
-            "sku" => $model->sku->map(function (GoodsSku $sku) {
-                return [
-                    "id" => $sku->id,
-                    "attr" => $sku->spec_attr_list,
-                ];
-            }),
+            "custom" => $model->custom,
         ];
 
         return $return;

+ 1 - 0
app/Modules/Mini/Services/GoodsService.php

@@ -65,6 +65,7 @@ class GoodsService extends BaseService
                     "name" => $m->spec->name,
                 ];
             }),
+            "custom" => $goods->custom,
         ];
 
     }

+ 5 - 6
database/migrations/2023_05_24_094359_alert_goods_sku_url3d.php

@@ -12,9 +12,9 @@ return new class extends Migration {
      */
     public function up()
     {
-        Schema::table("goods_sku", function (Blueprint $table) {
-            $table->dropColumn("url_3d");
-            $table->dropColumn("sn");
+        Schema::dropIfExists("goods_sku");
+        Schema::table("goods", function (Blueprint $t) {
+            $t->string("custom", 2000)->default("");
         });
     }
 
@@ -25,9 +25,8 @@ return new class extends Migration {
      */
     public function down()
     {
-        Schema::table("goods_sku", function (Blueprint $table) {
-            $table->string("sn")->default("")->comment("型号");
-            $table->string("url_3d")->default("")->comment("3D的跳转地址");
+        Schema::table("goods", function (Blueprint $t) {
+            $t->dropColumn("custom");
         });
     }
 };

+ 0 - 5
database/seeders/DatabaseSeeder.php

@@ -72,7 +72,6 @@ class DatabaseSeeder extends Seeder
         Category::truncate();
         Goods::truncate();
         GoodsCategoryMap::truncate();
-        GoodsSku::truncate();
 
         Spec::create(["name" => "颜色"]);
         Spec::create(["name" => "大小"]);
@@ -84,10 +83,6 @@ class DatabaseSeeder extends Seeder
         Category::create(["name" => "一级分类", "thumb" => Image::imageUrl(300, 300), "level" => 2, "parent_id" => 1]);
         Goods::create(["name" => "测试商品", "image_list" => [Image::imageUrl(), Image::imageUrl()], "spec" => [1, 2]]);
         GoodsCategoryMap::create(["goods_id" => 1, "category_id" => 2]);
-        GoodsSku::create(["goods_id" => 1, "sn" => substr(md5(microtime()), 0, 6), "spec_attr_list" => [1, 3]]);
-        GoodsSku::create(["goods_id" => 1, "sn" => substr(md5(microtime()), 0, 6), "spec_attr_list" => [1, 4]]);
-        GoodsSku::create(["goods_id" => 1, "sn" => substr(md5(microtime()), 0, 6), "spec_attr_list" => [2, 3]]);
-        GoodsSku::create(["goods_id" => 1, "sn" => substr(md5(microtime()), 0, 6), "spec_attr_list" => [2, 4]]);
 
     }