Bläddra i källkod

修复用户操作记录管理页面枚举常量错误

- 修改ACTION_TYPE枚举常量名称,从全大写改为首字母大写(BAN->Ban, RESTRICT->Restrict等)
- 更新UserActionController中的枚举引用,处理模型cast后的枚举对象
- 更新ActionService中的枚举引用
- 修复页面显示错误:Cannot access offset of type ACTION_TYPE on array
- 确保枚举常量名称与数据库存储值一致
notfff 7 månader sedan
förälder
incheckning
371c67c3d0

+ 28 - 20
app/Module/User/AdminControllers/UserActionController.php

@@ -60,12 +60,14 @@ class UserActionController extends AdminController
             $grid->column('admin_id', '管理员ID');
             $grid->column('type', '操作类型')->display(function ($value) {
                 $typeMap = [
-                    ACTION_TYPE::BAN->name => '封禁',
-                    ACTION_TYPE::RESTRICT->name => '禁止登录',
-                    ACTION_TYPE::DELETE->name => '删除',
-                    ACTION_TYPE::NORMAL->name => '正常化',
+                    'Ban' => '封禁',
+                    'Restrict' => '禁止登录',
+                    'Delete' => '删除',
+                    'Normal' => '正常化',
                 ];
-                return $typeMap[$value] ?? $value;
+                // $value 是 ACTION_TYPE 枚举对象,需要获取其 name 属性
+                $typeName = $value instanceof ACTION_TYPE ? $value->name : $value;
+                return $typeMap[$typeName] ?? $typeName;
             });
             $grid->column('desc', '描述')->limit(30);
             $grid->column('exp_time', '有效期')->display(function ($value) {
@@ -78,7 +80,9 @@ class UserActionController extends AdminController
                     ACTION_STATUS::OUT_TIME->value => '已过期',
                     ACTION_STATUS::END->value => '已结束',
                 ];
-                return $statusMap[$value] ?? '未知';
+                // $value 是 ACTION_STATUS 枚举对象,需要获取其 value 属性
+                $statusValue = $value instanceof ACTION_STATUS ? $value->value : $value;
+                return $statusMap[$statusValue] ?? '未知';
             })->label([
                 ACTION_STATUS::ING->value => 'success',
                 ACTION_STATUS::OK->value => 'info',
@@ -96,10 +100,10 @@ class UserActionController extends AdminController
                 $filter->equal('user_id', '用户ID');
                 $filter->equal('admin_id', '管理员ID');
                 $filter->equal('type', '操作类型')->select([
-                    ACTION_TYPE::BAN->name => '封禁',
-                    ACTION_TYPE::RESTRICT->name => '禁止登录',
-                    ACTION_TYPE::DELETE->name => '删除',
-                    ACTION_TYPE::NORMAL->name => '正常化',
+                    'Ban' => '封禁',
+                    'Restrict' => '禁止登录',
+                    'Delete' => '删除',
+                    'Normal' => '正常化',
                 ]);
                 $filter->like('desc', '描述');
                 $filter->equal('status', '状态')->select([
@@ -131,12 +135,14 @@ class UserActionController extends AdminController
             $show->field('admin_id', '管理员ID');
             $show->field('type', '操作类型')->as(function ($value) {
                 $typeMap = [
-                    ACTION_TYPE::BAN->name => '封禁',
-                    ACTION_TYPE::RESTRICT->name => '禁止登录',
-                    ACTION_TYPE::DELETE->name => '删除',
-                    ACTION_TYPE::NORMAL->name => '正常化',
+                    'Ban' => '封禁',
+                    'Restrict' => '禁止登录',
+                    'Delete' => '删除',
+                    'Normal' => '正常化',
                 ];
-                return $typeMap[$value] ?? $value;
+                // $value 是 ACTION_TYPE 枚举对象,需要获取其 name 属性
+                $typeName = $value instanceof ACTION_TYPE ? $value->name : $value;
+                return $typeMap[$typeName] ?? $typeName;
             });
             $show->field('desc', '描述');
             $show->field('exp_time', '有效期')->as(function ($value) {
@@ -149,7 +155,9 @@ class UserActionController extends AdminController
                     ACTION_STATUS::OUT_TIME->value => '已过期',
                     ACTION_STATUS::END->value => '已结束',
                 ];
-                return $statusMap[$value] ?? '未知';
+                // $value 是 ACTION_STATUS 枚举对象,需要获取其 value 属性
+                $statusValue = $value instanceof ACTION_STATUS ? $value->value : $value;
+                return $statusMap[$statusValue] ?? '未知';
             });
             $show->field('re_type', '关联类型');
             $show->field('re_id', '关联ID');
@@ -180,10 +188,10 @@ class UserActionController extends AdminController
                 ->help('管理员ID,必须是有效的管理员');
             $form->select('type', '操作类型')
                 ->options([
-                    ACTION_TYPE::BAN->name => '封禁',
-                    ACTION_TYPE::RESTRICT->name => '禁止登录',
-                    ACTION_TYPE::DELETE->name => '删除',
-                    ACTION_TYPE::NORMAL->name => '正常化',
+                    'Ban' => '封禁',
+                    'Restrict' => '禁止登录',
+                    'Delete' => '删除',
+                    'Normal' => '正常化',
                 ])
                 ->required();
             $form->textarea('desc', '描述')

+ 4 - 4
app/Module/User/Enums/ACTION_TYPE.php

@@ -13,20 +13,20 @@ enum ACTION_TYPE implements Expression
     /**
      * 封禁
      */
-    case BAN;
+    case Ban;
 
     /**
      * 禁止登录
      */
-    case RESTRICT;
+    case Restrict;
 
     /**
      * 删除
      */
-    case DELETE;
+    case Delete;
 
     /**
      * 正常化
      */
-    case NORMAL;
+    case Normal;
 }

+ 14 - 14
app/Module/User/Services/ActionService.php

@@ -30,7 +30,7 @@ class ActionService
      */
     static public function ban($admin_id, $user_id, $desc, $re_id, $re_type,$exp = 360000)
     {
-        return self::call_type($admin_id, $user_id, $desc, $re_id, $re_type,ACTION_TYPE::BAN,$exp);
+        return self::call_type($admin_id, $user_id, $desc, $re_id, $re_type,ACTION_TYPE::Ban,$exp);
     }
 
     /**
@@ -64,10 +64,10 @@ class ActionService
         }
 
         $list = [
-            ACTION_TYPE::RESTRICT->value() => STATUS2::Restrict->value(),
-            ACTION_TYPE::NORMAL->value()   => STATUS2::Normal->value(),
-            ACTION_TYPE::DELETE->value()   => STATUS2::Deleteing->value(),
-            ACTION_TYPE::BAN->value()      => STATUS2::Ban->value(),
+            ACTION_TYPE::Restrict->value() => STATUS2::Restrict->value(),
+            ACTION_TYPE::Normal->value()   => STATUS2::Normal->value(),
+            ACTION_TYPE::Delete->value()   => STATUS2::Deleteing->value(),
+            ACTION_TYPE::Ban->value()      => STATUS2::Ban->value(),
         ];
         $status = $list[$type->value()]??null;
         if(is_null($status)){
@@ -81,14 +81,14 @@ class ActionService
             throw new \LogicException("user - Action  save error. ");
 
         }
-        if($type === ACTION_TYPE::NORMAL){
+        if($type === ACTION_TYPE::Normal){
             // 正常化处理,需要解除进行中的惩罚
             // 没有过期时间的
             UserAction::query()
                 ->where('user_id',$user_id)
                 ->where('status',ACTION_STATUS::OK)
 
-                ->whereNotIn('type',[ACTION_TYPE::NORMAL])
+                ->whereNotIn('type',[ACTION_TYPE::Normal])
                 ->update([
                     'status'=>ACTION_STATUS::END->value
                 ]);
@@ -96,19 +96,19 @@ class ActionService
             UserAction::query()
                 ->where('user_id',$user_id)
                 ->where('status',ACTION_STATUS::ING)
-                ->whereNotIn('type',[ACTION_TYPE::NORMAL])
+                ->whereNotIn('type',[ACTION_TYPE::Normal])
                 ->update([
                     'status'=>ACTION_STATUS::END->value
                 ]);
         }
         Logger::info('type',[$type->value()]);
 
-        if($type === ACTION_TYPE::BAN){
+        if($type === ACTION_TYPE::Ban){
             // 禁止
             Logger::info('ban');
             SessionApp::removeUKeys($user_id);
         }
-        if($type === ACTION_TYPE::RESTRICT){
+        if($type === ACTION_TYPE::Restrict){
             // 限制登陆
             Logger::info('Restrict');
             SessionApp::removeUKeys($user_id);
@@ -178,20 +178,20 @@ class ActionService
             return;
         }
         $info = UserService::infoinfo($action->user_id, true);
-        if($action->type === ACTION_TYPE::BAN){
+        if($action->type === ACTION_TYPE::Ban){
             if($info->status2 === STATUS2::Ban){
                 // 接触 封禁
-                self::call_type(\App\Module\Sys\Admin::AUTO_BOT,$action->user_id,"到期自动解除-封禁",$action->id,'ActionAuto',ACTION_TYPE::NORMAL,0);
+                self::call_type(\App\Module\Sys\Admin::AUTO_BOT,$action->user_id,"到期自动解除-封禁",$action->id,'ActionAuto',ACTION_TYPE::Normal,0);
                 Logger::info("callItem  $action->id  $type ban  ->Normal  ");
             }else{
                 Logger::info("callItem  $action->id  $type now no ban ");
             }
         }
 
-        if($action->type === ACTION_TYPE::RESTRICT){
+        if($action->type === ACTION_TYPE::Restrict){
             if($info->status2 === STATUS2::Restrict){
                 // 接触禁止登录
-                self::call_type(\App\Module\Sys\Admin::AUTO_BOT,$action->user_id,"到期自动解除-限制登录",$action->id,'ActionAuto',ACTION_TYPE::NORMAL);
+                self::call_type(\App\Module\Sys\Admin::AUTO_BOT,$action->user_id,"到期自动解除-限制登录",$action->id,'ActionAuto',ACTION_TYPE::Normal);
                 Logger::info("callItem  $action->id  $type Restrict  ->Normal  ");
             }else{
                 Logger::info("callItem  $action->id  $type now no Restrict  ");