Explorar o código

fixed:全能后台接口

刘学玺 hai 4 meses
pai
achega
9efccd4ef3
Modificáronse 4 ficheiros con 122 adicións e 0 borrados
  1. 66 0
      app/Admin/Controllers/ViewController.php
  2. 53 0
      app/Services/ViewService.php
  3. 2 0
      routes/admin.php
  4. 1 0
      routes/web.php

+ 66 - 0
app/Admin/Controllers/ViewController.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Services\ViewService;
+
+/**
+ * @group 后台
+ *
+ * 视图列表
+ *
+ * @property ViewService $service
+ */
+class ViewController
+{
+    protected ViewService $service;
+
+    public function __construct(ViewService $service)
+    {
+        $this->service = $service;
+    }
+
+    /**
+     * [视图列表页]-视图列表查询
+     *
+     * @description 获取用户列表,支持条件查询和分页
+     *
+     * @queryParam viewName string 视图名称 Example: manage_user_list
+     * @queryParam page int 页码 Example: 1
+     * @queryParam perPage int 每页数量 Example: 20
+     * @queryParam orderBy string 排序字段 Example: mobile
+     * @queryParam orderDir string 排序方向 Example: desc
+     * @queryParam nickname string 昵称 Example: 张三
+     * @queryParam mobile string 手机号 Example: 13800138000
+     * @queryParam state int 用户状态(1:正常,2:禁用) Example: 1
+     *
+     * @response {
+     *  "code": 200,
+     *  "message": "success",
+     *  "data": {
+     *    "current_page": 1,
+     *    "data": [{
+     *      "id": 1,
+     *      "mobile": "13800138000",
+     *      "nickname": "张三",
+     *      "avatar": "avatar.jpg",
+     *      "gender": 1,
+     *      "area_code": "110000",
+     *      "state": 1,
+     *      "created_at": "2024-01-01 00:00:00",
+     *      "updated_at": "2024-01-01 00:00:00"
+     *    }],
+     *    "total": 100
+     *  }
+     * }
+     */
+    public function viewList()
+    {
+        $viewName = request()->input('viewName');
+        $whereParams = request()->except(['_action', 'page', 'perPage', 'viewName', 'orderBy', 'orderDir']);
+        $pageParams = request()->only(['page', 'perPage']);
+        $sortParams = request()->only(['orderBy', 'orderDir']);
+
+        return $this->service->viewList($viewName, $whereParams, $pageParams, $sortParams);
+    }
+}

+ 53 - 0
app/Services/ViewService.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace App\Services;
+
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
+
+/**
+ * 视图管理
+ */
+class ViewService
+{
+    /**
+     * 获取视图列表
+     *
+     * @param  array  $params  查询参数
+     */
+    public function viewList($viewName, array $whereParams, array $pageParams, array $sortParams = [])
+    {
+        try {
+            $query = DB::table($viewName);
+
+            // 获取分页数据
+            // 条件筛选
+            foreach ($whereParams as $key => $value) {
+                if (is_string($value)) {
+                    $query->where($key, 'like', "%{$value}%");
+                } else {
+                    $query->where($key, $value);
+                }
+            }
+
+            // 排序
+            ! empty($sortParams) && $query->orderBy($sortParams['orderBy'], $sortParams['orderDir']);
+
+            $result = $query->paginate($pageParams['perPage'], ['*'], 'page', $pageParams['page']);
+
+            return response()->json([
+                'code' => 200,
+                'message' => 'success',
+                'data' => $result,
+            ]);
+
+        } catch (\Exception $e) {
+            Log::error('获取用户列表失败:'.$e->getMessage());
+
+            return response()->json([
+                'code' => 500,
+                'message' => '获取用户列表失败',
+            ]);
+        }
+    }
+}

+ 2 - 0
routes/admin.php

@@ -95,4 +95,6 @@ Route::group([
     $router->resource('market_dist_teams', \App\Admin\Controllers\MarketDistTeamController::class);
     // 临时用户列表
     $router->resource('report_user_list', \App\Admin\Controllers\ReportUserListController::class);
+    // 视图管理
+    $router->resource('views', \App\Admin\Controllers\ViewController::class);
 });

+ 1 - 0
routes/web.php

@@ -17,4 +17,5 @@ Route::group([
     // 用户管理路由
     Route::get('/manage/users', [\App\Admin\Controllers\MemberUserController::class, 'manageUserList'])
         ->name('manage.users.list');
+
 });