kphcdr 1 year ago
parent
commit
7002a77025

+ 3 - 0
app/Models/User/UserCompany.php

@@ -28,6 +28,9 @@ use App\Base\BaseModel;
  */
 class UserCompany extends BaseModel
 {
+    const STATUS_INIT = 1;
+    const STATUS_PASS = 2;
+    const STATUS_FAIL = 3;
     protected $table = "user_company";
 
 }

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

@@ -3,6 +3,7 @@
 namespace App\Models\User;
 
 use App\Base\BaseModel;
+use App\Models\Goods\Goods;
 use Illuminate\Database\Eloquent\SoftDeletes;
 
 /**
@@ -27,6 +28,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
  * @method static \Illuminate\Database\Query\Builder|UserFav onlyTrashed()
  * @method static \Illuminate\Database\Query\Builder|UserFav withTrashed()
  * @method static \Illuminate\Database\Query\Builder|UserFav withoutTrashed()
+ * @property-read Goods|null                 $good
  */
 class UserFav extends BaseModel
 {
@@ -34,4 +36,8 @@ class UserFav extends BaseModel
 
     protected $table = "user_fav";
 
+    public function good()
+    {
+        return $this->belongsTo(Goods::class, "goods_id");
+    }
 }

+ 12 - 12
app/Modules/Mini/Controllers/UserController.php

@@ -3,29 +3,29 @@
 namespace App\Modules\Mini\Controllers;
 
 use App\Base\BaseController;
+use App\Modules\Mini\Services\CompanyService;
+use App\Modules\Mini\Services\FavService;
 use Faker\Provider\Image;
+use Illuminate\Support\Facades\Auth;
 
 class UserController extends BaseController
 {
     public function company()
     {
-        return $this->ok();
+        $params = $this->valid([
+            "name" => "required",
+            "tax_no" => "required",
+        ]);
+
+        return $this->ok(app(CompanyService::class)->company(Auth::user(), $params));
     }
 
     public function fav()
     {
-        return $this->ok([
-            "total" => 1,
-            "page_total" => 1,
-            "list" => [
-                [
-                    "id" => 1,
-                    "goods_id" => 1,
-                    "thumb" => Image::imageUrl(),
-                    "goods_name" => 1,
-                ],
-            ],
+        $params = $this->valid([
+            "page_size" => "",
         ]);
+        return $this->ok(app(FavService::class)->paginate(Auth::user(), $params));
     }
 
     public function favDel()

+ 35 - 0
app/Modules/Mini/Services/CompanyService.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Modules\Mini\Services;
+
+use App\Base\BaseService;
+use App\Exceptions\ClientException;
+use App\Models\User\User;
+use App\Models\User\UserCompany;
+
+class CompanyService extends BaseService
+{
+    public function company(User $user, $params)
+    {
+        if ($user->company) {
+            if ($user->company->status == UserCompany::STATUS_INIT) {
+                throw new ClientException("已经提交过资料了");
+            } else {
+                $user->company->name = $params['name'];
+                $user->company->tax_no = $params['tax_no'];
+                $user->company->status = 1;
+                $user->company->save();
+            }
+            return $user->company;
+        } else {
+
+            $company = new UserCompany();
+            $company->name = $params['name'];
+            $company->user_id = $user->id;
+            $company->tax_no = $params['tax_no'];
+            $company->status = 1;
+            $company->save();
+            return $company;
+        }
+    }
+}

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

@@ -3,6 +3,7 @@
 namespace App\Modules\Mini\Services;
 
 use App\Base\BaseService;
+use App\Models\User\User;
 use App\Models\User\UserFav;
 
 class FavService extends BaseService
@@ -24,4 +25,22 @@ class FavService extends BaseService
 
         return $fav;
     }
+
+    public function paginate(User $user, $params)
+    {
+        $p = UserFav::with("good")->where("user_id", $user->id)->paginate($params['page_size']);
+
+        return [
+            "total" => $p->total(),
+            "page_total" => $p->lastPage(),
+            "list" => array_map(function (UserFav $model) {
+                return [
+                    "id" => $model->id,
+                    "name" => $model->good->name,
+                    "thumb" => $model->good->thumb,
+                    "status" => $model->good->status,
+                ];
+            }, $p->items()),
+        ];
+    }
 }

+ 8 - 6
routes/mini.php

@@ -14,6 +14,14 @@ Route::middleware([\App\Http\Middleware\MiniAuthMiddleware::class])->group(funct
 
     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"]);
+    Route::post("/user/addressStore", [\App\Modules\Mini\Controllers\UserController::class, "addressStore"]);
+
+    Route::post("/user/company", [\App\Modules\Mini\Controllers\UserController::class, "company"]);
+    Route::get("/user/fav", [\App\Modules\Mini\Controllers\UserController::class, "fav"]);
+    Route::post("/user/favDel", [\App\Modules\Mini\Controllers\UserController::class, "favDel"]);
 });
 
 Route::get("/page/home", [\App\Modules\Mini\Controllers\PageController::class, "home"]);
@@ -24,12 +32,6 @@ Route::get("/page/search", [\App\Modules\Mini\Controllers\PageController::class,
 
 Route::get("/goods", [\App\Modules\Mini\Controllers\GoodsController::class, "goods"]);
 
-Route::get("/user/address", [\App\Modules\Mini\Controllers\UserController::class, "address"]);
-Route::post("/user/addressDel", [\App\Modules\Mini\Controllers\UserController::class, "addressDel"]);
-Route::post("/user/addressStore", [\App\Modules\Mini\Controllers\UserController::class, "addressStore"]);
-
-Route::get("/user/fav", [\App\Modules\Mini\Controllers\UserController::class, "fav"]);
-Route::post("/user/favDel", [\App\Modules\Mini\Controllers\UserController::class, "favDel"]);
 
 Route::get("/cart", [\App\Modules\Mini\Controllers\CartController::class, "index"]);
 Route::post("/cart/del", [\App\Modules\Mini\Controllers\CartController::class, "del"]);