kevinlan@lpchku.com vor 3 Monaten
Ursprung
Commit
16fadd33e9

+ 20 - 3
app/Http/Controllers/API/DepartmentController.php

@@ -5,7 +5,10 @@ namespace App\Http\Controllers\API;
 use App\Http\Controllers\Controller;
 use App\Http\Requests\API\Department\CreateOrUpdateRequest;
 use App\Http\Resources\API\DepartmentResource;
+use App\Http\Resources\API\UserSimpleResource;
+use App\Models\Company;
 use App\Models\Department;
+use App\Models\Scopes\CompanyScope;
 use App\Models\User;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
@@ -26,10 +29,13 @@ class DepartmentController extends Controller
     protected function getDepartments(Request $request)
     {
         $sort = $request->input('sort', 'desc');
-        $pageSize = $request->get('page_size') ?? 10;
-        $departments = Department::filter($request->all())->orderBy('created_at', $sort)->paginate($pageSize);
-        $departmentTree = !empty(make_tree($departments->toArray()['data'])) ? make_tree($departments->toArray()['data']) : $departments->toArray()['data'];
+        $pageSize = $request->get('page_size') ?? 0;
+        $company_id = $request->get('company_id') ?? Auth::user()->company_id;
+
+        $departments = Department::query()->withoutGlobalScope(CompanyScope::class)->filter($request->all())
+            ->where('company_id' ,$company_id)->orderBy('created_at', $sort)->paginate($pageSize);
 
+        $departmentTree = !empty(make_tree($departments->toArray()['data'])) ? make_tree($departments->toArray()['data']) : $departments->toArray()['data'];
 
         return [
             'data' => $departmentTree,
@@ -37,6 +43,17 @@ class DepartmentController extends Controller
         ];
     }
 
+    public function userList(Request $request)
+    {
+        $pageSize = $request->get('page_size') ?? 0;
+        $users = User::query()
+            ->filter($request->all())
+            ->where('department_id', $request->department_id)
+            ->where('company_id',$request->company_id)
+            ->orderBy('created_at','desc')->paginate($pageSize);;
+
+        return UserSimpleResource::collection($users);
+    }
 
     public function store(CreateOrUpdateRequest $request)
     {

+ 1 - 0
app/Models/User.php

@@ -39,6 +39,7 @@ class User extends Authenticatable
         'phone',
         'status',
         'fs_password',
+        'leader',
     ];
 
     //因为CompanyScope要拿到当前用户,但是user模型还没创建完无法使用CompanyScope

+ 28 - 0
database/migrations/2024_11_20_115359_add_leader_to_users_table.php

@@ -0,0 +1,28 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     */
+    public function up(): void
+    {
+        Schema::table('users', function (Blueprint $table) {
+            $table->integer("leader")->nullable()->default(0);
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     */
+    public function down(): void
+    {
+        Schema::table('users', function (Blueprint $table) {
+            $table->dropColumn("leader");
+        });
+    }
+};

+ 28 - 0
database/migrations/2024_11_20_115359_add_parent_to_company_table.php

@@ -0,0 +1,28 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     */
+    public function up(): void
+    {
+        Schema::table('company', function (Blueprint $table) {
+            $table->integer("parent")->nullable()->default(0);
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     */
+    public function down(): void
+    {
+        Schema::table('company', function (Blueprint $table) {
+            $table->dropColumn("parent");
+        });
+    }
+};