Parcourir la source

feat(user): 新增零次用户枚举类并优化用户添加验证逻辑

- 新增 ZeroUserEnum 枚举类,用于定义零线用户的状态和是否移除团队选项
- 在 NewUser 控制器中添加对枚举值的自动验证逻辑
- 使用 EnumUtil工具类进行智能枚举验证
shichen il y a 11 mois
Parent
commit
d033dcbb76

+ 31 - 0
app/common/enum/user/ZeroUserEnum.php

@@ -0,0 +1,31 @@
1
+<?php
2
+
3
+namespace app\common\enum\user;
4
+
5
+use app\common\enum\CommonEnum;
6
+
7
+class ZeroUserEnum extends CommonEnum
8
+{
9
+    // 状态
10
+    const STATUS = [
11
+        0 => '失效',
12
+        1 => '正常',
13
+        2 => '合并',
14
+    ];
15
+    const STATUS_MAP = [
16
+        'FAILURE' => ['code' => 0, 'name' => '失效'],
17
+        'NORMAL' => ['code' => 1, 'name' => '正常'],
18
+        'MERGE' => ['code' => 2, 'name' => '合并'],
19
+    ];
20
+
21
+
22
+    // 是否带走团队
23
+    const IS_REMOVE = [
24
+        0 => '保留',
25
+        1 => '带走'
26
+    ];
27
+    const IS_REMOVE_MAP = [
28
+        'NO' => ['code' => 0, 'name' => '保留'],
29
+        'YES' => ['code' => 1, 'name' => '带走'],
30
+    ];
31
+}

+ 10 - 0
app/controller/admin/user/NewUser.php

@@ -6,6 +6,7 @@ use app\common\repositories\user\ZeroUserRepository;
6 6
 use app\entity\admin\request\user\ZeroUserRequestEntity;
7 7
 use app\entity\admin\response\user\ZeroUserLineResponseEntity;
8 8
 use app\validate\admin\user\AddZeroUserValidate;
9
+use app\utils\EnumUtil;
9 10
 use think\response\Json;
10 11
 
11 12
 /**
@@ -47,6 +48,15 @@ class NewUser
47 48
 
48 49
         /** @var ZeroUserRequestEntity $entity 请求实体 */
49 50
         $entity = $validationResult['data'];
51
+
52
+        // 自动验证枚举参数
53
+        $requestData = $entity->getArray();
54
+        
55
+        // 使用智能枚举验证器自动验证,直接传递枚举类名
56
+        $validationResult = EnumUtil::autoValidate(\app\common\enum\user\ZeroUserEnum::class, $requestData);
57
+        if (!$validationResult['valid']) {
58
+            return app('json')->fail(implode('; ', $validationResult['errors']));
59
+        }
50 60
         try {
51 61
             // 执行插入或更新操作
52 62
             $result = $this->repository->insertOrUpdate(

+ 1 - 1
app/validate/admin/user/AddZeroUserValidate.php

@@ -22,7 +22,7 @@ class AddZeroUserValidate extends CommonValidate
22 22
         'status|状态' => 'require|integer',
23 23
         'team_name|团队昵称' => 'max:20',
24 24
         'team_uid|团队长' => 'require|integer',
25
-        'is_remove|是否移除团队' => 'require|in:0,1'
25
+        'is_remove|是否移除团队' => 'require'
26 26
     ];
27 27
 
28 28
     protected $message = [