kphcdr 1 year ago
parent
commit
261568f582

+ 6 - 0
app/Models/Cart.php

@@ -30,6 +30,7 @@ use Illuminate\Support\Arr;
  * @property-read mixed                      $goods_name
  * @property-read mixed                      $sn
  * @property-read mixed                      $sku_id
+ * @property-read mixed                      $custom
  */
 class Cart extends BaseModel
 {
@@ -59,4 +60,9 @@ class Cart extends BaseModel
     {
         return Arr::get($this->extra, "goods_name", "");
     }
+
+    public function getCustomAttribute()
+    {
+        return Arr::get($this->extra, "custom", []);
+    }
 }

+ 5 - 0
app/Models/Order/OrderGoods.php

@@ -30,10 +30,15 @@ use App\Models\Goods\Goods;
  * @method static \Illuminate\Database\Eloquent\Builder|OrderGoods whereSkuId($value)
  * @property-read \App\Models\Order\Order|null $order
  * @property-read Goods|null                   $goods
+ * @property string                            $custom
+ * @method static \Illuminate\Database\Eloquent\Builder|OrderGoods whereCustom($value)
  */
 class OrderGoods extends BaseModel
 {
     protected $table = "order_goods";
+    protected $casts = [
+        "custom" => "array",
+    ];
 
     public function order()
     {

+ 2 - 2
app/Modules/Mini/Controllers/GoodsController.php

@@ -46,8 +46,7 @@ class GoodsController extends BaseController
     {
         $params = $this->valid([
             "id" => "required",
-            "sku_id" => "",
-            "sku_custom" => "",
+            "custom" => "",
             "count" => "",
         ]);
         $params['source'] = Order::SOURCE_GOODS;
@@ -60,6 +59,7 @@ class GoodsController extends BaseController
         $params = $this->valid([
             "id" => "required",
             'count' => "required",
+            "custom" => "",
         ]);
         $cart = app(CartService::class)->add(Auth::user(), $params);
         return $this->ok([

+ 1 - 3
app/Modules/Mini/Services/CartService.php

@@ -5,11 +5,8 @@ namespace App\Modules\Mini\Services;
 use App\Base\BaseService;
 use App\Models\Cart;
 use App\Models\Goods\Goods;
-use App\Models\Goods\GoodsSku;
 use App\Models\Order\Order;
 use App\Models\User\User;
-use Illuminate\Support\Arr;
-use Illuminate\Support\Facades\Auth;
 
 class CartService extends BaseService
 {
@@ -44,6 +41,7 @@ class CartService extends BaseService
             "goods_name" => $goods->name,
             "thumb" => $goods->thumb,
             "sn" => $goods->sn,
+            "custom" => $params['custom'],
         ];
         $cart->save();
 

+ 3 - 2
app/Modules/Mini/Services/OrderService.php

@@ -30,8 +30,9 @@ class OrderService extends BaseService
             $og->order_id = $order->id;
             $og->goods_id = $params['id'];
             $og->sku_id = 0;
-            $og->count = $params['count'];
+            $og->count = $params['count'] ?? 1;
             $og->sn = $goods->sn;
+            $og->custom = $params['custom'];
             if ($skuCustom = Arr::get($params, "sku_custom")) {
                 $og->sn = $og->sn . "-" . implode("-", Arr::pluck($skuCustom, "spec_attr_custom"));
             }
@@ -64,7 +65,7 @@ class OrderService extends BaseService
                 $og->goods_id = $cart->goods_id;
                 $og->sku_id = $cart->sku_id;
                 $og->count = $cart->count;
-                $og->sn = $cart->sn;
+                $og->custom = $cart->custom;
                 $og->save();
             }
 

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

@@ -16,6 +16,9 @@ return new class extends Migration {
         Schema::table("goods", function (Blueprint $t) {
             $t->string("custom", 2000)->default("");
         });
+        Schema::table("order_goods", function (Blueprint $t) {
+            $t->string("custom", 2000)->default("");
+        });
     }
 
     /**
@@ -28,5 +31,8 @@ return new class extends Migration {
         Schema::table("goods", function (Blueprint $t) {
             $t->dropColumn("custom");
         });
+        Schema::table("order_goods", function (Blueprint $t) {
+            $t->dropColumn("custom");
+        });
     }
 };