ソースを参照

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

- 新增 ZeroUserEnum 枚举类,用于定义零线用户的状态和是否移除团队选项
- 在 NewUser 控制器中添加对枚举值的自动验证逻辑
- 使用 EnumUtil工具类进行智能枚举验证
shichen 11 ヶ月 前
コミット
d033dcbb76
共有3 個のファイルを変更した42 個の追加1 個の削除を含む
  1. 31 0
      app/common/enum/user/ZeroUserEnum.php
  2. 10 0
      app/controller/admin/user/NewUser.php
  3. 1 1
      app/validate/admin/user/AddZeroUserValidate.php

+ 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
 use app\entity\admin\request\user\ZeroUserRequestEntity;
6
 use app\entity\admin\request\user\ZeroUserRequestEntity;
7
 use app\entity\admin\response\user\ZeroUserLineResponseEntity;
7
 use app\entity\admin\response\user\ZeroUserLineResponseEntity;
8
 use app\validate\admin\user\AddZeroUserValidate;
8
 use app\validate\admin\user\AddZeroUserValidate;
9
+use app\utils\EnumUtil;
9
 use think\response\Json;
10
 use think\response\Json;
10
 
11
 
11
 /**
12
 /**
@@ -47,6 +48,15 @@ class NewUser
47
 
48
 
48
         /** @var ZeroUserRequestEntity $entity 请求实体 */
49
         /** @var ZeroUserRequestEntity $entity 请求实体 */
49
         $entity = $validationResult['data'];
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
         try {
60
         try {
51
             // 执行插入或更新操作
61
             // 执行插入或更新操作
52
             $result = $this->repository->insertOrUpdate(
62
             $result = $this->repository->insertOrUpdate(

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

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