Browse Source

changePassword

kphcdr 1 year ago
parent
commit
2154ca409c

+ 10 - 1
app/Base/BaseModel.php

@@ -1,8 +1,9 @@
 <?php
 
 namespace App\Base;
-use Illuminate\Database\Eloquent\Model;
 
+use Illuminate\Database\Eloquent\Model;
+use DateTimeInterface;
 /**
  * App\Base\BaseModel
  *
@@ -13,5 +14,13 @@ use Illuminate\Database\Eloquent\Model;
  */
 class BaseModel extends Model
 {
+    protected $perPage = 10;
+    protected $casts = [
+        'created_at' => 'datetime:Y-m-d H:i:s',
+    ];
 
+    protected function serializeDate(DateTimeInterface $date)
+    {
+        return $date->format('Y');
+    }
 }

+ 24 - 4
app/Modules/Admin/Controllers/Admin/UserController.php

@@ -3,15 +3,35 @@
 namespace App\Modules\Admin\Controllers\Admin;
 
 use App\Base\BaseController;
-use App\Modules\Admin\Services\AuthService;
+use App\Modules\Admin\Services\UserService;
 
 class UserController extends BaseController
 {
-    protected $authService;
+    protected $service;
 
-    public function __construct(AuthService $authService)
+    public function __construct(UserService $authService)
     {
-        $this->authService = $authService;
+        $this->service = $authService;
+    }
+
+    public function paginate()
+    {
+        $data = $this->valid([
+            "userinfo" => "",
+            "status" => "",
+            "page_size" => "",
+        ]);
+
+        return $this->ok($this->service->paginate($data));
+    }
+
+    public function changeStatus()
+    {
+        $data = $this->valid([
+            "id" => "required",
+        ]);
+
+        return $this->ok($this->service->changeStatus($data));
     }
 
 }

+ 25 - 0
app/Modules/Admin/Services/UserService.php

@@ -2,10 +2,35 @@
 
 namespace App\Modules\Admin\Services;
 
+use App\Models\User;
+
 class UserService
 {
     public function paginate($data)
     {
+        $p = User::query()->orderByDesc("id")->paginate($data['page_size']);
+
+        return [
+            "total" => $p->total(),
+            "page_total" => $p->lastPage(),
+            "list" => array_map(function (User $u) {
+                return [
+                    "id" => $u->id,
+                    "phone" => $u->phone,
+                    "email" => $u->email,
+                    "status" => $u->status,
+                    "created_at" => $u->created_at->format("Y-m-d"),
+                    "company" => "todo company",
+                ];
+            }, $p->items()),
+        ];
+    }
 
+    public function changeStatus($data)
+    {
+        $u = User::findOrFail($data['id']);
+        $u->status = $u->status == User::STATUS_OK ? User::STATUS_STOP : User::STATUS_OK;
+        $u->save();
+        return true;
     }
 }

+ 4 - 0
routes/api.php

@@ -8,4 +8,8 @@ Route::post("/admin/auth/login", [\App\Modules\Admin\Controllers\Admin\AuthContr
 Route::middleware([\App\Http\Middleware\AdminAuthMiddleware::class])->group(function () {
     Route::get("/admin/auth/profile", [\App\Modules\Admin\Controllers\Admin\AuthController::class, "profile"]);
     Route::post("/admin/auth/changePassword", [\App\Modules\Admin\Controllers\Admin\AuthController::class, "changePassword"]);
+
+    Route::get("/admin/user/paginate", [\App\Modules\Admin\Controllers\Admin\UserController::class, "paginate"]);
+    Route::post("/admin/user/changeStatus", [\App\Modules\Admin\Controllers\Admin\UserController::class, "changeStatus"]);
+
 });