Browse Source

修复用户登录后资金账户未创建问题

- 创建Fund模块的LoginSuccessListener监听器,监听登录成功事件自动创建资金账户
- 更新FundServiceProvider注册新的登录成功事件监听器
- 修复UserActivityService中的枚举类型错误(STATUS2::Normal->STATUS::Off)
- 创建TestLoginAccountCreationCommand测试命令验证功能
- 为用户38936手动创建资金账户,解决当前问题
- 确保所有新用户登录时自动创建完整的资金账户体系
notfff 6 months ago
parent
commit
dd9944ee28

+ 298 - 0
AiWork/202506/161613-实现URS推广模块活跃用户功能.md

@@ -0,0 +1,298 @@
+# 实现URS推广模块活跃用户功能
+
+**任务时间**: 2025年06月16日 16:13  
+**任务类型**: 功能开发  
+**模块**: UrsPromotion  
+
+## 任务概述
+
+为URS推广模块新增活跃用户概念,将用户活跃度作为达人等级升级的新条件,提升推广体系的质量和真实性。
+
+## 需求背景
+
+- **活跃用户定义**:最近15天操作活跃的人(基于last_activity_time)
+- **存储位置**:用户绑定关系表(urs_promotion_user_mappings)
+- **更新机制**:每日定时任务更新活跃状态
+- **业务影响**:达人等级新增活跃人数条件
+
+## 完成内容
+
+### 1. 数据库结构扩展
+
+#### 1.1 用户映射表扩展
+**文件**: `app/Module/UrsPromotion/Database/add_active_user_fields.sql`
+
+**新增字段**:
+- `is_active` TINYINT(1) - 是否活跃:1活跃,0不活跃
+- `last_activity_check` TIMESTAMP - 最后活跃检查时间
+- `active_days_count` INT - 活跃天数统计
+
+**索引优化**:
+- `idx_is_active` - 活跃状态索引
+- `idx_last_activity_check` - 检查时间索引
+
+#### 1.2 达人等级配置表扩展
+**新增字段**:
+- `active_count_required` INT - 所需活跃人数
+- `active_direct_required` INT - 所需直推活跃人数
+
+**配置示例**:
+| 等级 | 名称 | 直推要求 | 团队要求 | 活跃直推要求 | 活跃团队要求 |
+|------|------|----------|----------|--------------|--------------|
+| 1 | 初级达人 | 3 | 10 | 2 | 3 |
+| 2 | 中级达人 | 8 | 30 | 5 | 8 |
+| 3 | 高级达人 | 15 | 80 | 8 | 15 |
+| 4 | 资深达人 | 30 | 200 | 15 | 30 |
+| 5 | 顶级达人 | 50 | 500 | 25 | 50 |
+
+### 2. 核心服务实现
+
+#### 2.1 UrsActiveUserService (新增)
+**文件**: `app/Module/UrsPromotion/Services/UrsActiveUserService.php`
+
+**核心方法**:
+- `updateUserActiveStatus()` - 更新单个用户活跃状态
+- `batchUpdateActiveStatus()` - 批量更新活跃状态
+- `checkUserActivity()` - 检查用户活跃状态
+- `getActiveTeamMembers()` - 获取活跃团队成员
+- `getActiveUserStats()` - 获取活跃用户统计
+
+**活跃判定规则**:
+```php
+const ACTIVE_DAYS_THRESHOLD = 15; // 活跃天数阈值
+
+public static function checkUserActivity(User $user): bool
+{
+    if (!$user->last_activity_time) {
+        return false;
+    }
+    
+    $threshold = Carbon::now()->subDays(self::ACTIVE_DAYS_THRESHOLD);
+    return $user->last_activity_time >= $threshold;
+}
+```
+
+#### 2.2 模型扩展
+
+**UrsUserMapping模型更新**:
+- 新增活跃状态相关字段和类型转换
+- 添加活跃状态常量和映射
+- 实现活跃用户查询方法
+- 支持批量更新活跃状态
+
+**UrsTalentConfig模型更新**:
+- 新增活跃人数配置字段
+- 更新字段类型转换
+
+#### 2.3 服务层集成
+
+**UrsTalentService扩展**:
+- 更新`calculateTalentLevel()`方法,集成活跃用户条件
+- 更新`checkUpgradeEligibility()`方法,检查活跃用户要求
+- 支持活跃直推人数和活跃团队人数条件
+
+**UrsUserMappingService扩展**:
+- 添加活跃用户统计方法
+- 支持批量更新活跃状态
+- 提供活跃用户查询接口
+
+### 3. 定时任务实现
+
+#### 3.1 UrsUpdateActiveStatusCommand
+**文件**: `app/Module/UrsPromotion/Commands/UrsUpdateActiveStatusCommand.php`
+
+**功能特性**:
+- 支持批量更新用户活跃状态
+- 提供试运行模式(--dry-run)
+- 支持限制处理数量(--limit)
+- 支持重置所有状态(--reset)
+- 详细的执行统计和进度显示
+
+**使用示例**:
+```bash
+# 正常更新
+php artisan urs:update-active-status
+
+# 限制处理500个用户
+php artisan urs:update-active-status --limit=500
+
+# 试运行模式
+php artisan urs:update-active-status --dry-run
+
+# 重置所有状态
+php artisan urs:update-active-status --reset
+```
+
+**建议crontab配置**:
+```bash
+# 每日凌晨2点执行
+0 2 * * * cd /path/to/project && php artisan urs:update-active-status
+```
+
+### 4. 后台管理界面
+
+#### 4.1 用户映射关系管理
+**文件**: `app/Module/UrsPromotion/AdminControllers/UrsUserMappingController.php`
+
+**新增功能**:
+- 列表页面显示活跃状态、活跃天数、最后检查时间
+- 支持按活跃状态筛选
+- 详情页面显示完整的活跃用户信息
+- 活跃状态使用颜色标签区分
+
+#### 4.2 达人等级配置管理
+**文件**: `app/Module/UrsPromotion/AdminControllers/UrsTalentConfigController.php`
+
+**新增功能**:
+- 配置表单支持设置活跃用户要求
+- 列表页面显示活跃人数要求
+- 详情页面显示活跃用户要求信息
+- 提供活跃用户定义的帮助信息
+
+### 5. 测试验证
+
+#### 5.1 TestActiveUserCommand
+**文件**: `app/Module/UrsPromotion/Commands/TestActiveUserCommand.php`
+
+**测试功能**:
+- 活跃用户统计测试(--stats)
+- 活跃状态更新测试(--update)
+- 达人等级计算测试(--talent)
+- 指定用户测试(--user-id)
+- 完整功能测试
+
+**使用示例**:
+```bash
+# 运行完整测试
+php artisan urs:test-active-user
+
+# 测试活跃用户统计
+php artisan urs:test-active-user --stats
+
+# 测试指定用户
+php artisan urs:test-active-user --user-id=1001
+```
+
+### 6. 文档完善
+
+#### 6.1 活跃用户功能文档
+**文件**: `app/Module/UrsPromotion/Docs/活跃用户功能.md`
+
+**内容结构**:
+1. 功能概述和业务价值
+2. 技术实现详细说明
+3. 活跃用户判定规则
+4. 达人等级集成方案
+5. 后台管理功能
+6. API接口说明
+7. 测试和验证方法
+8. 监控和维护建议
+9. 扩展规划
+10. 最佳实践
+
+#### 6.2 用户绑定关系文档更新
+**文件**: `app/Module/UrsPromotion/Docs/用户绑定关系.md`
+
+**更新内容**:
+- 添加活跃用户相关字段说明
+- 补充活跃状态定义
+- 更新数据结构文档
+
+#### 6.3 开发进度记录
+**文件**: `app/Module/UrsPromotion/Docs/DEV.md`
+
+**更新内容**:
+- 详细记录活跃用户功能的实施进度
+- 列出所有新增和修改的文件
+- 总结技术实现要点
+- 提供部署和使用指南
+
+## 技术要点总结
+
+### 1. 设计原则
+- **分离存储**:活跃状态存储在用户映射表中,与推广关系解耦
+- **自动化管理**:通过定时任务自动维护活跃状态
+- **向后兼容**:新增活跃用户条件,不影响现有等级计算
+- **性能优化**:通过索引和批量处理提高查询和更新效率
+
+### 2. 核心算法
+- **活跃判定**:基于last_activity_time字段,15天内有活动即为活跃
+- **等级计算**:在原有条件基础上增加活跃用户数量要求
+- **批量处理**:支持大规模用户的高效批量更新
+
+### 3. 数据一致性
+- **事务保护**:关键操作使用数据库事务确保数据一致性
+- **异常处理**:完善的错误处理和日志记录机制
+- **状态验证**:提供数据验证和修复功能
+
+### 4. 监控和维护
+- **执行日志**:详细记录定时任务的执行情况
+- **统计监控**:提供活跃用户的实时统计和分析
+- **性能监控**:监控批量更新的执行效率
+
+## 部署指南
+
+### 1. 数据库迁移
+```bash
+# 执行数据库迁移脚本
+mysql -u username -p database_name < app/Module/UrsPromotion/Database/add_active_user_fields.sql
+```
+
+### 2. 定时任务配置
+```bash
+# 添加到crontab
+0 2 * * * cd /path/to/project && php artisan urs:update-active-status
+```
+
+### 3. 功能验证
+```bash
+# 运行功能测试
+php artisan urs:test-active-user
+
+# 试运行活跃状态更新
+php artisan urs:update-active-status --dry-run
+```
+
+## 文件清单
+
+### 新增文件
+- `app/Module/UrsPromotion/Services/UrsActiveUserService.php`
+- `app/Module/UrsPromotion/Commands/UrsUpdateActiveStatusCommand.php`
+- `app/Module/UrsPromotion/Commands/TestActiveUserCommand.php`
+- `app/Module/UrsPromotion/Database/add_active_user_fields.sql`
+- `app/Module/UrsPromotion/Docs/活跃用户功能.md`
+
+### 修改文件
+- `app/Module/UrsPromotion/Models/UrsUserMapping.php`
+- `app/Module/UrsPromotion/Models/UrsTalentConfig.php`
+- `app/Module/UrsPromotion/Services/UrsTalentService.php`
+- `app/Module/UrsPromotion/Services/UrsUserMappingService.php`
+- `app/Module/UrsPromotion/AdminControllers/UrsUserMappingController.php`
+- `app/Module/UrsPromotion/AdminControllers/UrsTalentConfigController.php`
+- `app/Module/UrsPromotion/Docs/用户绑定关系.md`
+- `app/Module/UrsPromotion/Docs/DEV.md`
+
+## 提交信息
+
+**Git提交**: `ae0723a5`  
+**提交信息**: 实现URS推广模块活跃用户功能
+
+## 任务价值
+
+1. **提升推广质量**:通过活跃度筛选,确保推广团队的真实活跃度
+2. **优化激励机制**:基于活跃用户数量的等级体系更加公平合理
+3. **数据驱动决策**:提供详细的活跃用户数据支持运营决策
+4. **防止刷量行为**:通过活跃度要求减少虚假推广行为
+5. **系统完整性**:完善URS推广模块的功能体系
+
+## 后续建议
+
+1. **监控部署**:建立活跃用户功能的监控和告警机制
+2. **性能优化**:根据实际使用情况优化批量处理性能
+3. **功能扩展**:考虑增加更精细的活跃度评分机制
+4. **用户反馈**:收集用户对新等级要求的反馈并适时调整
+
+---
+
+**任务完成时间**: 2025年06月16日 16:13  
+**功能开发状态**: ✅ 已完成

+ 154 - 0
AiWork/202506/161619-修复用户登录后资金账户未创建问题.md

@@ -0,0 +1,154 @@
+# 修复用户登录后资金账户未创建问题
+
+**时间**: 2025年06月16日 16:19  
+**问题**: 用户登录后,资金账户未创建,比如:userid 38936
+
+## 问题分析
+
+### 问题现象
+- 用户38936登录后,在`kku_fund`表中没有对应的资金账户记录
+- 用户存在于`kku_users`表中,但缺少必要的资金账户
+
+### 问题原因
+通过代码分析发现:
+1. Fund模块提供了`AccountService::check4user()`方法用于检查和创建用户账户
+2. 但是在登录成功事件中,没有Fund模块的监听器来自动创建资金账户
+3. 只有Farm模块和User模块有登录成功事件的监听器
+
+## 修复方案
+
+### 1. 创建Fund模块的登录成功事件监听器
+
+**文件**: `app/Module/Fund/Listeners/LoginSuccessListener.php`
+
+```php
+<?php
+
+namespace App\Module\Fund\Listeners;
+
+use App\Module\AppGame\Events\LoginSuccessEvent;
+use App\Module\Fund\Services\AccountService;
+use Illuminate\Support\Facades\Log;
+
+/**
+ * 登录成功事件监听器
+ *
+ * 监听用户登录成功事件,自动创建用户资金账户
+ */
+class LoginSuccessListener
+{
+    /**
+     * 处理事件
+     *
+     * @param LoginSuccessEvent $event
+     * @return void
+     */
+    public function handle(LoginSuccessEvent $event): void
+    {
+        try {
+            $userId = $event->user->id;
+
+            Log::info('用户登录成功,开始检查和创建资金账户', [
+                'user_id' => $userId,
+                'login_time' => $event->loginTime
+            ]);
+
+            // 检查和创建用户资金账户
+            AccountService::check4user($userId);
+
+            Log::info('用户资金账户检查和创建完成', [
+                'user_id' => $userId
+            ]);
+
+        } catch (\Exception $e) {
+            Log::error('处理登录成功事件失败,资金账户创建失败', [
+                'error' => $e->getMessage(),
+                'user_id' => $event->user->id,
+                'trace' => $e->getTraceAsString()
+            ]);
+        }
+    }
+}
+```
+
+### 2. 更新Fund模块的服务提供者
+
+**文件**: `app/Module/Fund/Providers/FundServiceProvider.php`
+
+添加登录成功事件监听器的注册:
+
+```php
+use App\Module\AppGame\Events\LoginSuccessEvent;
+use App\Module\Fund\Listeners\LoginSuccessListener;
+
+protected $listen = [
+    // ... 其他事件监听器
+    LoginSuccessEvent::class => [
+        LoginSuccessListener::class . '@handle',
+    ],
+];
+```
+
+### 3. 修复UserActivityService中的枚举类型错误
+
+**问题**: `UserActivityService::updateLoginTime`方法中使用了错误的枚举类型
+
+**修复**: 将`STATUS2::Normal`改为`STATUS::Off`
+
+```php
+// 修复前
+$userInfo = UserInfo::firstOrCreate(
+    ['user_id' => $userId],
+    ['status' => \App\Module\User\Enums\STATUS2::Normal]
+);
+
+// 修复后
+$userInfo = UserInfo::firstOrCreate(
+    ['user_id' => $userId],
+    ['status' => \App\Module\User\Enums\STATUS::Off]
+);
+```
+
+### 4. 创建测试命令
+
+**文件**: `app/Module/Fund/Commands/TestLoginAccountCreationCommand.php`
+
+创建测试命令验证登录时资金账户自动创建功能。
+
+## 修复结果
+
+### 1. 为用户38936手动创建资金账户
+
+```sql
+INSERT INTO kku_fund (user_id, fund_id, balance, create_time, update_time) VALUES 
+(38936, 1, 0.0000000000, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
+(38936, 2, 0.0000000000, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
+(38936, 3, 0.0000000000, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
+```
+
+### 2. 验证自动创建功能
+
+通过测试命令验证:
+- 新用户登录前:0个资金账户
+- 触发登录成功事件后:自动创建3个资金账户(金币、钻石、钻石冻结)
+
+## 测试验证
+
+```bash
+# 运行测试命令
+php artisan fund:test-login-account-creation {user_id}
+```
+
+测试结果显示:
+- 登录成功事件正确触发Fund模块监听器
+- 自动创建了所有必要的资金账户类型
+- 账户初始余额为0,符合预期
+
+## 总结
+
+通过创建Fund模块的登录成功事件监听器,成功解决了用户登录后资金账户未创建的问题。现在所有新用户在登录时都会自动创建完整的资金账户体系,确保系统功能的正常运行。
+
+**影响范围**:
+- 所有新登录用户将自动创建资金账户
+- 现有用户不受影响,已有账户保持不变
+- 系统稳定性和用户体验得到提升

+ 22 - 0
AiWork/WORK.md

@@ -7,6 +7,28 @@
 
 ## 已完成任务
 
+**2025-06-16 16:19** - 修复用户登录后资金账户未创建问题 - 创建Fund模块登录成功事件监听器自动创建资金账户
+- 问题:用户登录后,资金账户未创建,比如:userid 38936,在kku_fund表中没有对应的资金账户记录
+- 分析:Fund模块提供了AccountService::check4user()方法,但没有在登录成功事件中调用此方法
+- 监听器:创建Fund模块的LoginSuccessListener监听器,监听LoginSuccessEvent事件,自动调用AccountService::check4user()
+- 服务提供者:更新FundServiceProvider注册新的登录成功事件监听器,添加LoginSuccessEvent到监听器映射
+- 修复:修复UserActivityService::updateLoginTime方法中的枚举类型错误,将STATUS2::Normal改为STATUS::Off
+- 测试:创建TestLoginAccountCreationCommand测试命令,验证登录时资金账户自动创建功能
+- 验证:为用户38936手动创建资金账户,测试新用户登录时自动创建3种类型资金账户(金币、钻石、钻石冻结)
+- 效果:所有新用户在登录时都会自动创建完整的资金账户体系,确保系统功能正常运行
+- 文件:./AiWork/202506/161619-修复用户登录后资金账户未创建问题.md
+
+**2025-06-16 16:13** - 实现URS推广模块活跃用户功能 - 新增活跃用户概念,集成到达人等级系统
+- 需求:活跃用户定义为最近15天操作活跃的人,用户绑定关系表记录活跃状态,达人等级新增活跃人数条件
+- 数据库:扩展用户映射表添加is_active、last_activity_check、active_days_count字段,扩展达人等级配置表添加活跃人数要求字段
+- 服务层:新增UrsActiveUserService核心服务,扩展UrsTalentService集成活跃用户条件,扩展UrsUserMappingService添加活跃用户方法
+- 定时任务:创建UrsUpdateActiveStatusCommand每日更新命令,支持批量更新、试运行、重置等模式
+- 后台管理:用户映射关系管理显示活跃状态,达人等级配置支持活跃人数设置,添加活跃状态筛选功能
+- 测试验证:创建TestActiveUserCommand测试命令,支持统计、更新、等级计算等功能测试
+- 文档完善:创建活跃用户功能专门文档,更新用户绑定关系文档,完善开发进度记录
+- 技术要点:分离存储设计、自动化管理、向后兼容、性能优化、数据一致性保障
+- 文件:./AiWork/202506/161613-实现URS推广模块活跃用户功能.md
+
 **2025-06-16 15:47** - 维护URS推广模块用户绑定关系文档 - 完善用户映射关系的设计说明和使用指南
 - 任务:维护URS推广模块的用户绑定关系文档,完善用户映射关系的设计说明、使用示例和开发指南
 - 数据库:更新数据库设计文档,添加用户映射表详细设计,补充索引设计和业务规则

+ 96 - 0
app/Module/Fund/Commands/TestLoginAccountCreationCommand.php

@@ -0,0 +1,96 @@
+<?php
+
+namespace App\Module\Fund\Commands;
+
+use App\Module\AppGame\Events\LoginSuccessEvent;
+use App\Module\Fund\Services\AccountService;
+use App\Module\User\Models\User;
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\Event;
+use Illuminate\Support\Facades\Log;
+
+/**
+ * 测试登录时资金账户创建功能
+ */
+class TestLoginAccountCreationCommand extends Command
+{
+    /**
+     * 命令签名
+     *
+     * @var string
+     */
+    protected $signature = 'fund:test-login-account-creation {user_id : 用户ID}';
+
+    /**
+     * 命令描述
+     *
+     * @var string
+     */
+    protected $description = '测试用户登录时资金账户自动创建功能';
+
+    /**
+     * 执行命令
+     *
+     * @return int
+     */
+    public function handle(): int
+    {
+        $userId = $this->argument('user_id');
+
+        $this->info("开始测试用户 {$userId} 的登录资金账户创建功能...");
+
+        try {
+            // 检查用户是否存在
+            $user = User::find($userId);
+            if (!$user) {
+                $this->error("用户 {$userId} 不存在");
+                return 1;
+            }
+
+            $this->info("用户信息: ID={$user->id}, 用户名={$user->username}");
+
+            // 检查用户当前的资金账户
+            $this->info("检查用户当前的资金账户...");
+            $accounts = \App\Module\Fund\Models\FundModel::userAccount($userId);
+            $this->info("当前资金账户数量: " . $accounts->count());
+
+            foreach ($accounts as $account) {
+                $this->line("  - 账户ID: {$account->id}, 资金类型: {$account->fund_id->value}, 余额: {$account->balance}");
+            }
+
+            // 模拟触发登录成功事件
+            $this->info("模拟触发登录成功事件...");
+            Event::dispatch(new LoginSuccessEvent($user, 'test-session-' . time()));
+
+            // 再次检查用户的资金账户
+            $this->info("重新检查用户的资金账户...");
+            $accountsAfter = \App\Module\Fund\Models\FundModel::userAccount($userId);
+            $this->info("登录后资金账户数量: " . $accountsAfter->count());
+
+            foreach ($accountsAfter as $account) {
+                $this->line("  - 账户ID: {$account->id}, 资金类型: {$account->fund_id->value}, 余额: {$account->balance}");
+            }
+
+            // 直接测试AccountService::check4user方法
+            $this->info("直接测试 AccountService::check4user 方法...");
+            AccountService::check4user($userId);
+
+            // 最终检查
+            $this->info("最终检查用户的资金账户...");
+            $accountsFinal = \App\Module\Fund\Models\FundModel::userAccount($userId);
+            $this->info("最终资金账户数量: " . $accountsFinal->count());
+
+            foreach ($accountsFinal as $account) {
+                $this->line("  - 账户ID: {$account->id}, 资金类型: {$account->fund_id->value}, 余额: {$account->balance}");
+            }
+
+            $this->info("测试完成!");
+            return 0;
+
+        } catch (\Exception $e) {
+            $this->error("测试失败: " . $e->getMessage());
+            $this->error("错误详情: " . $e->getTraceAsString());
+            return 1;
+        }
+    }
+}

+ 47 - 0
app/Module/Fund/Listeners/LoginSuccessListener.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace App\Module\Fund\Listeners;
+
+use App\Module\AppGame\Events\LoginSuccessEvent;
+use App\Module\Fund\Services\AccountService;
+use Illuminate\Support\Facades\Log;
+
+/**
+ * 登录成功事件监听器
+ *
+ * 监听用户登录成功事件,自动创建用户资金账户
+ */
+class LoginSuccessListener
+{
+    /**
+     * 处理事件
+     *
+     * @param LoginSuccessEvent $event
+     * @return void
+     */
+    public function handle(LoginSuccessEvent $event): void
+    {
+        try {
+            $userId = $event->user->id;
+
+            Log::info('用户登录成功,开始检查和创建资金账户', [
+                'user_id' => $userId,
+                'login_time' => $event->loginTime
+            ]);
+
+            // 检查和创建用户资金账户
+            AccountService::check4user($userId);
+
+            Log::info('用户资金账户检查和创建完成', [
+                'user_id' => $userId
+            ]);
+
+        } catch (\Exception $e) {
+            Log::error('处理登录成功事件失败,资金账户创建失败', [
+                'error' => $e->getMessage(),
+                'user_id' => $event->user->id,
+                'trace' => $e->getTraceAsString()
+            ]);
+        }
+    }
+}

+ 6 - 0
app/Module/Fund/Providers/FundServiceProvider.php

@@ -2,10 +2,12 @@
 
 namespace App\Module\Fund\Providers;
 
+use App\Module\AppGame\Events\LoginSuccessEvent;
 use App\Module\Fund\Events\FundChangedEvent;
 use App\Module\Fund\Events\FundStatusChangedEvent;
 use App\Module\Fund\Events\FundTransferEvent;
 use App\Module\Fund\Listeners\FundEventListener;
+use App\Module\Fund\Listeners\LoginSuccessListener;
 use Illuminate\Support\ServiceProvider;
 
 /**
@@ -28,6 +30,9 @@ class FundServiceProvider extends ServiceProvider
         FundStatusChangedEvent::class => [
             FundEventListener::class . '@handleFundStatusChanged',
         ],
+        LoginSuccessEvent::class => [
+            LoginSuccessListener::class . '@handle',
+        ],
     ];
 
     /**
@@ -70,6 +75,7 @@ class FundServiceProvider extends ServiceProvider
         if ($this->app->runningInConsole()) {
             $this->commands([
                 \App\Module\Fund\Commands\CheckUserLogsCommand::class,
+                \App\Module\Fund\Commands\TestLoginAccountCreationCommand::class,
             ]);
         }
     }

+ 1 - 1
app/Module/User/Services/UserActivityService.php

@@ -46,7 +46,7 @@ class UserActivityService
             // 获取或创建用户信息记录
             $userInfo = UserInfo::firstOrCreate(
                 ['user_id' => $userId],
-                ['status' => \App\Module\User\Enums\STATUS2::Normal]
+                ['status' => \App\Module\User\Enums\STATUS::Off]
             );
             
             // 更新登录时间