kphcdr 1 year ago
parent
commit
e9efb83a64

+ 31 - 0
app/Models/User/UserAddress.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Models\User;
+
+use App\Base\BaseModel;
+
+/**
+ * App\Models\User\UserAddress
+ *
+ * @property int    $id
+ * @property string $name
+ * @property string $phone
+ * @property string $area
+ * @property string $address
+ * @property int    $is_default
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress query()
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress whereAddress($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress whereArea($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress whereIsDefault($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress whereName($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserAddress wherePhone($value)
+ * @mixin \Eloquent
+ */
+class UserAddress extends BaseModel
+{
+    protected $table = "user_address";
+
+}

+ 34 - 0
app/Models/User/UserFav.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Models\User;
+
+use App\Base\BaseModel;
+use Illuminate\Database\Eloquent\SoftDeletes;
+
+/**
+ * App\Models\User\UserFav
+ *
+ * @property int                             $id
+ * @property int                             $user_id
+ * @property int                             $goods_id
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav query()
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav whereGoodsId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav whereUpdatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav whereUserId($value)
+ * @mixin \Eloquent
+ * @property string|null                     $deleted_at
+ * @method static \Illuminate\Database\Eloquent\Builder|UserFav whereDeletedAt($value)
+ */
+class UserFav extends BaseModel
+{
+    use SoftDeletes;
+
+    protected $table = "user_fav";
+
+}

+ 9 - 38
app/Modules/Mini/Controllers/GoodsController.php

@@ -3,8 +3,10 @@
 namespace App\Modules\Mini\Controllers;
 
 use App\Base\BaseController;
+use App\Modules\Mini\Services\FavService;
 use App\Modules\Mini\Services\GoodsService;
 use Faker\Provider\Image;
+use Illuminate\Support\Facades\Auth;
 
 class GoodsController extends BaseController
 {
@@ -24,43 +26,6 @@ class GoodsController extends BaseController
             "id" => "required",
         ]);
         return $this->ok($this->service->info($params));
-        return $this->ok([
-            "id" => 1,
-            "image_list" => [
-                Image::imageUrl(),
-                Image::imageUrl(),
-            ],
-            "spec" => [
-                "id" => 1,
-                "name" => "颜色",
-                "attr" => [
-                    [
-                        "id" => 1,
-                        "name" => "红色",
-                    ],
-                ],
-            ],
-            "sku" => [
-                [
-                    "id" => 1,
-                    "sn" => "sn",
-                    "url_3d" => "",
-                    "spec_attr" => [
-                        [
-                            "id" => 1,
-                            "name" => "白色",
-                        ],
-                        [
-                            "id" => 3,
-                            "name" => "大号",
-                        ],
-                    ],
-                ],
-            ],
-            "desc_html" => "<h1>desc_html</h1>",
-            "spec_attr_html" => "<h1>desc_html</h1>",
-            "faq_html" => "<h1>desc_html</h1>",
-        ]);
     }
 
     public function search()
@@ -87,7 +52,13 @@ class GoodsController extends BaseController
 
     public function fav()
     {
-        return $this->ok();
+        $params = $this->valid([
+            "id" => "required",
+        ]);
+
+        return $this->ok([
+            "was_created" => app(FavService::class)->fav(Auth::id(), $params)->wasRecentlyCreated,
+        ]);
     }
 
     public function ask()

+ 27 - 0
app/Modules/Mini/Services/FavService.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Modules\Mini\Services;
+
+use App\Base\BaseService;
+use App\Models\User\UserFav;
+
+class FavService extends BaseService
+{
+    public function fav($uid, $params)
+    {
+        $gid = $params['id'];
+
+        $fav = UserFav::where("user_id", $uid)->where("goods_id", $gid)->first();
+        if ($fav) {
+            $fav->delete();
+            return $fav;
+        }
+
+        $fav = new UserFav();
+        $fav->user_id = $uid;
+        $fav->goods_id = $gid;
+        $fav->save();
+
+        return $fav;
+    }
+}

+ 43 - 0
database/migrations/2023_05_10_073046_create_usersomething_table.php

@@ -0,0 +1,43 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration {
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('user_fav', function (Blueprint $table) {
+            $table->id();
+            $table->unsignedInteger("user_id")->default(0);
+            $table->unsignedInteger("goods_id")->default(0);
+            $table->timestamps();
+            $table->softDeletes();
+        });
+
+        Schema::create('user_address', function (Blueprint $table) {
+            $table->id();
+            $table->string("name")->default('');
+            $table->string("phone")->default('');
+            $table->string("area")->default('');
+            $table->string("address")->default("");
+            $table->tinyInteger("is_default")->default(0);
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('user_fav');
+        Schema::dropIfExists('user_address');
+    }
+};

+ 3 - 2
routes/mini.php

@@ -11,6 +11,9 @@ Route::middleware([\App\Http\Middleware\MiniAuthMiddleware::class])->group(funct
     Route::post("/auth/decryptUserInfo", [\App\Modules\Mini\Controllers\AuthController::class, "decryptUserInfo"]);
     Route::post("/auth/decryptPhone", [\App\Modules\Mini\Controllers\AuthController::class, "decryptPhone"]);
     Route::get("/auth/profile", [\App\Modules\Mini\Controllers\AuthController::class, "profile"]);
+
+    Route::post("/goods/fav", [\App\Modules\Mini\Controllers\GoodsController::class, "fav"]);
+    Route::post("/goods/ask", [\App\Modules\Mini\Controllers\GoodsController::class, "ask"]);
 });
 
 Route::get("/page/home", [\App\Modules\Mini\Controllers\PageController::class, "home"]);
@@ -20,8 +23,6 @@ Route::get("/page/filterConfig", [\App\Modules\Mini\Controllers\PageController::
 Route::get("/page/search", [\App\Modules\Mini\Controllers\PageController::class, "search"]);
 
 Route::get("/goods", [\App\Modules\Mini\Controllers\GoodsController::class, "goods"]);
-Route::post("/goods/fav", [\App\Modules\Mini\Controllers\GoodsController::class, "fav"]);
-Route::post("/goods/ask", [\App\Modules\Mini\Controllers\GoodsController::class, "ask"]);
 
 Route::get("/user/address", [\App\Modules\Mini\Controllers\UserController::class, "address"]);
 Route::post("/user/addressDel", [\App\Modules\Mini\Controllers\UserController::class, "addressDel"]);