3.8 KiB
3.8 KiB
創建者名稱修正報告
問題描述
用戶報告:"你的察看詳細內的編輯應用的視窗部是逮資料庫的資料喔,你看他還再系統管理員,但這資料是再資料庫部是系統管理員,所以這是預設資料"
當用戶點擊編輯應用功能時,創建者欄位顯示「系統管理員」,但實際資料庫中的創建者名稱應該是「佩庭」。
問題分析
根本原因
-
資料庫中有兩個不同的創建者資訊來源:
apps.creator_name
= "佩庭"(應用程式表中的創建者名稱欄位)users.name
= "系統管理員"(用戶表中的用戶名稱)
-
列表 API 和詳細 API 使用不同的資料來源:
- 列表 API 使用
users.name
(系統管理員) - 詳細 API 使用
apps.creator_name
(佩庭)
- 列表 API 使用
-
資料不一致導致編輯視窗顯示錯誤的創建者名稱
影響範圍
- 編輯應用功能顯示錯誤的創建者名稱
- 列表和詳細視圖的創建者資訊不一致
- 影響資料的準確性和用戶體驗
修正方案
修改列表 API 的創建者資訊處理
修改前:
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
}
修改後:
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
:列表 APIGET /api/apps/[id]
:詳細 API(未修改,因為已經正確)
總結
此修正確保了創建者資訊在整個應用程式中的一致性,優先使用應用程式表中的創建者名稱,而不是用戶表中的用戶名稱。這解決了編輯視窗顯示錯誤創建者名稱的問題,並改善了整體的資料準確性。
修正狀態:✅ 已完成並通過測試 影響範圍:創建者資訊顯示 測試狀態:✅ 所有測試案例通過 資料一致性:✅ 列表和詳細視圖現在顯示相同的創建者資訊