優化應用 APP 新增、編輯邏輯
This commit is contained in:
121
CREATOR_NAME_FIX_REPORT.md
Normal file
121
CREATOR_NAME_FIX_REPORT.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# 創建者名稱修正報告
|
||||
|
||||
## 問題描述
|
||||
|
||||
用戶報告:**"你的察看詳細內的編輯應用的視窗部是逮資料庫的資料喔,你看他還再系統管理員,但這資料是再資料庫部是系統管理員,所以這是預設資料"**
|
||||
|
||||
當用戶點擊編輯應用功能時,創建者欄位顯示「系統管理員」,但實際資料庫中的創建者名稱應該是「佩庭」。
|
||||
|
||||
## 問題分析
|
||||
|
||||
### 根本原因
|
||||
1. **資料庫中有兩個不同的創建者資訊來源**:
|
||||
- `apps.creator_name` = "佩庭"(應用程式表中的創建者名稱欄位)
|
||||
- `users.name` = "系統管理員"(用戶表中的用戶名稱)
|
||||
|
||||
2. **列表 API 和詳細 API 使用不同的資料來源**:
|
||||
- 列表 API 使用 `users.name`(系統管理員)
|
||||
- 詳細 API 使用 `apps.creator_name`(佩庭)
|
||||
|
||||
3. **資料不一致導致編輯視窗顯示錯誤的創建者名稱**
|
||||
|
||||
### 影響範圍
|
||||
- 編輯應用功能顯示錯誤的創建者名稱
|
||||
- 列表和詳細視圖的創建者資訊不一致
|
||||
- 影響資料的準確性和用戶體驗
|
||||
|
||||
## 修正方案
|
||||
|
||||
### 修改列表 API 的創建者資訊處理
|
||||
|
||||
**修改前:**
|
||||
```typescript
|
||||
creator: {
|
||||
id: app.creator_id,
|
||||
name: app.user_creator_name, // 只使用用戶表的名稱
|
||||
email: app.user_creator_email,
|
||||
department: app.department || app.user_creator_department,
|
||||
role: app.creator_role
|
||||
}
|
||||
```
|
||||
|
||||
**修改後:**
|
||||
```typescript
|
||||
creator: {
|
||||
id: app.creator_id,
|
||||
name: app.creator_name || app.user_creator_name, // 優先使用應用程式表的創建者名稱
|
||||
email: app.user_creator_email,
|
||||
department: app.department || app.user_creator_department,
|
||||
role: app.creator_role
|
||||
}
|
||||
```
|
||||
|
||||
### 修改的檔案
|
||||
- `app/api/apps/route.ts`:列表 API 的創建者資訊格式化邏輯
|
||||
|
||||
## 測試驗證
|
||||
|
||||
### 測試案例:創建者名稱一致性
|
||||
- **輸入**:包含 `apps.creator_name` 和 `users.name` 的資料庫查詢結果
|
||||
- **期望**:優先使用 `apps.creator_name`(佩庭)
|
||||
- **結果**:✅ 通過
|
||||
|
||||
### 測試結果
|
||||
```
|
||||
📊 原始資料庫查詢結果:
|
||||
應用程式 1:
|
||||
應用名稱: ITBU_佩庭_天氣查詢機器人
|
||||
apps.creator_name: 佩庭
|
||||
users.name: 系統管理員
|
||||
|
||||
📋 修正後的格式化結果:
|
||||
應用程式 1:
|
||||
名稱: ITBU_佩庭_天氣查詢機器人
|
||||
創建者名稱: 佩庭
|
||||
創建者郵箱: admin@example.com
|
||||
創建者部門: ITBU
|
||||
|
||||
✅ 驗證結果:
|
||||
期望創建者名稱: 佩庭
|
||||
實際創建者名稱: 佩庭
|
||||
修正是否成功: true
|
||||
```
|
||||
|
||||
## 修正效果
|
||||
|
||||
### 修正前
|
||||
- 列表視圖顯示「系統管理員」
|
||||
- 詳細視圖顯示「佩庭」
|
||||
- 編輯視窗顯示「系統管理員」
|
||||
- 資料不一致,用戶困惑
|
||||
|
||||
### 修正後
|
||||
- 列表視圖顯示「佩庭」
|
||||
- 詳細視圖顯示「佩庭」
|
||||
- 編輯視窗顯示「佩庭」
|
||||
- 資料一致,用戶體驗改善
|
||||
|
||||
## 技術細節
|
||||
|
||||
### 資料庫結構
|
||||
- `apps.creator_name`:應用程式表中的創建者名稱欄位
|
||||
- `users.name`:用戶表中的用戶名稱欄位
|
||||
- 兩個欄位可能包含不同的值
|
||||
|
||||
### API 邏輯
|
||||
- **列表 API**:現在優先使用 `apps.creator_name`,如果為空則使用 `users.name`
|
||||
- **詳細 API**:使用 `apps.creator_name`
|
||||
- **一致性**:確保兩個 API 都使用相同的資料來源
|
||||
|
||||
### 影響的端點
|
||||
- `GET /api/apps`:列表 API
|
||||
- `GET /api/apps/[id]`:詳細 API(未修改,因為已經正確)
|
||||
|
||||
## 總結
|
||||
|
||||
此修正確保了創建者資訊在整個應用程式中的一致性,優先使用應用程式表中的創建者名稱,而不是用戶表中的用戶名稱。這解決了編輯視窗顯示錯誤創建者名稱的問題,並改善了整體的資料準確性。
|
||||
|
||||
**修正狀態**:✅ 已完成並通過測試
|
||||
**影響範圍**:創建者資訊顯示
|
||||
**測試狀態**:✅ 所有測試案例通過
|
||||
**資料一致性**:✅ 列表和詳細視圖現在顯示相同的創建者資訊
|
Reference in New Issue
Block a user