feat: 暫時關閉使用次數限制系統
- 修改前端 isPremium 設定為 true,跳過使用次數檢查 - 修改後端 UsageService 調用參數為 premium 用戶 - 修復後端編譯錯誤,添加 System.Text.Json using - 更新使用限制實施報告,添加完整修改記錄和復原步驟 - 驗證系統可無限制調用分析功能 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
1fb7cadd52
commit
e940d86f4a
|
|
@ -4,6 +4,7 @@ using DramaLing.Api.Data;
|
||||||
using DramaLing.Api.Models.Entities;
|
using DramaLing.Api.Models.Entities;
|
||||||
using DramaLing.Api.Services;
|
using DramaLing.Api.Services;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace DramaLing.Api.Controllers;
|
namespace DramaLing.Api.Controllers;
|
||||||
|
|
||||||
|
|
@ -514,7 +515,7 @@ public class AIController : ControllerBase
|
||||||
|
|
||||||
// 0. 檢查使用限制(使用模擬用戶ID)
|
// 0. 檢查使用限制(使用模擬用戶ID)
|
||||||
var mockUserId = Guid.Parse("00000000-0000-0000-0000-000000000001"); // 模擬用戶ID
|
var mockUserId = Guid.Parse("00000000-0000-0000-0000-000000000001"); // 模擬用戶ID
|
||||||
var canUse = await _usageService.CheckUsageLimitAsync(mockUserId, isPremium: false);
|
var canUse = await _usageService.CheckUsageLimitAsync(mockUserId, isPremium: true);
|
||||||
if (!canUse)
|
if (!canUse)
|
||||||
{
|
{
|
||||||
return StatusCode(429, new
|
return StatusCode(429, new
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ function GenerateContent() {
|
||||||
const [grammarCorrection, setGrammarCorrection] = useState<any>(null)
|
const [grammarCorrection, setGrammarCorrection] = useState<any>(null)
|
||||||
const [finalText, setFinalText] = useState('')
|
const [finalText, setFinalText] = useState('')
|
||||||
const [usageCount, setUsageCount] = useState(0)
|
const [usageCount, setUsageCount] = useState(0)
|
||||||
const [isPremium] = useState(false)
|
const [isPremium] = useState(true)
|
||||||
const [cacheStatus, setCacheStatus] = useState<{
|
const [cacheStatus, setCacheStatus] = useState<{
|
||||||
isCached: boolean
|
isCached: boolean
|
||||||
cacheHit: boolean
|
cacheHit: boolean
|
||||||
|
|
|
||||||
|
|
@ -451,6 +451,101 @@ const nextResetTime = new Date(Date.now() + (3 * 60 * 60 * 1000))
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 🔄 系統暫時關閉記錄
|
||||||
|
|
||||||
|
**執行時間**: 2025-01-18 15:54
|
||||||
|
**執行者**: Claude Code
|
||||||
|
**狀態**: ✅ 使用限制系統已暫時關閉
|
||||||
|
|
||||||
|
### 📝 修改記錄
|
||||||
|
|
||||||
|
#### 1. **前端修改**
|
||||||
|
**檔案**: `frontend/app/generate/page.tsx`
|
||||||
|
**位置**: 第24行
|
||||||
|
**修改內容**:
|
||||||
|
```typescript
|
||||||
|
// 修改前
|
||||||
|
const [isPremium] = useState(false)
|
||||||
|
|
||||||
|
// 修改後
|
||||||
|
const [isPremium] = useState(true)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. **後端修改**
|
||||||
|
**檔案**: `backend/DramaLing.Api/Controllers/AIController.cs`
|
||||||
|
**位置**: 第517行
|
||||||
|
**修改內容**:
|
||||||
|
```csharp
|
||||||
|
// 修改前
|
||||||
|
var canUse = await _usageService.CheckUsageLimitAsync(mockUserId, isPremium: false);
|
||||||
|
|
||||||
|
// 修改後
|
||||||
|
var canUse = await _usageService.CheckUsageLimitAsync(mockUserId, isPremium: true);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3. **編譯問題修復**
|
||||||
|
**檔案**: `backend/DramaLing.Api/Controllers/AIController.cs`
|
||||||
|
**位置**: 第7行 (using statements)
|
||||||
|
**修改內容**:
|
||||||
|
```csharp
|
||||||
|
// 新增
|
||||||
|
using System.Text.Json;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🧪 **測試結果**
|
||||||
|
|
||||||
|
✅ **多次調用測試通過**:
|
||||||
|
- 第1次調用: 成功
|
||||||
|
- 第6次調用: 成功 (原本第6次會被限制)
|
||||||
|
- API無限制調用確認成功
|
||||||
|
|
||||||
|
✅ **UI顯示效果**:
|
||||||
|
```
|
||||||
|
🌟 付費用戶:無限制使用
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🔄 **復原使用限制的步驟**
|
||||||
|
|
||||||
|
當需要重新啟用使用限制時,請執行以下步驟:
|
||||||
|
|
||||||
|
#### **步驟1: 復原前端設定**
|
||||||
|
```bash
|
||||||
|
# 編輯檔案: frontend/app/generate/page.tsx
|
||||||
|
# 第24行改回:
|
||||||
|
const [isPremium] = useState(false)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### **步驟2: 復原後端設定**
|
||||||
|
```bash
|
||||||
|
# 編輯檔案: backend/DramaLing.Api/Controllers/AIController.cs
|
||||||
|
# 第517行改回:
|
||||||
|
var canUse = await _usageService.CheckUsageLimitAsync(mockUserId, isPremium: false);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### **步驟3: 重新啟動服務**
|
||||||
|
```bash
|
||||||
|
# 重新啟動後端
|
||||||
|
cd backend/DramaLing.Api
|
||||||
|
dotnet run --urls http://localhost:5000
|
||||||
|
|
||||||
|
# 前端會自動重新編譯
|
||||||
|
```
|
||||||
|
|
||||||
|
#### **步驟4: 驗證復原**
|
||||||
|
復原後應該看到:
|
||||||
|
```
|
||||||
|
免費用戶:已使用 0/5 次 (3小時內)
|
||||||
|
```
|
||||||
|
|
||||||
|
### ⚠️ **重要提醒**
|
||||||
|
|
||||||
|
1. **資料庫統計**: 後端的使用統計仍在記錄,復原限制後會基於實際使用記錄計算
|
||||||
|
2. **快取清理**: 如需要完全重置統計,可考慮清理 `WordQueryUsageStats` 表
|
||||||
|
3. **前端狀態**: 前端計數器會在頁面刷新後重置,但後端限制基於資料庫記錄
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**報告生成時間**: 2025-01-18
|
**報告生成時間**: 2025-01-18
|
||||||
|
**最後更新時間**: 2025-01-18 15:54
|
||||||
**分析範圍**: 前端 + 後端 + 資料庫
|
**分析範圍**: 前端 + 後端 + 資料庫
|
||||||
**功能狀態**: ⚠️ 基本運作,需要優化
|
**功能狀態**: 🔄 **暫時關閉,隨時可復原**
|
||||||
Loading…
Reference in New Issue