Files
thinkyu/報到系統/DOC/活動人員簽到簽退.md
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

47 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 活動人員簽到簽退
## 資料關聯
Classes.ID (1) <-> (*) SignUp.CourseID
## 資料類別
* 各資料存取類別、資料集合類別、資料類別已有程式碼
* 如需擴充加在 DAC_XXXX2.cs 裡面
* DAC_Classes:活動資料處理類別
* ClassesList:活動資料集類別
* ClassesItem:活動資料項目類別
* DAC_SignUp:活動參加人員資料處理類別
* SignUpList:活動參加人員資料集類別
* SignUpItem:活動參加人員資料項目類別
* CheckInItem:簽到資料項目類別(用於 UploadCheckIns
## 畫面檔
* 沒有,這是寫給 WinForm 客戶端使用的後端服務
## 後端服務
* Services/ClassesService.asmx
* 活動的後端服務
* SearchClasses:查詢活動清單
* Services/SignUpService.asmx
* 活動參加人員的後端服務
* SearchSignUps:以活動編號(CourseID)查詢參加人員
* UploadCheckIns(int courseID, List<CheckInItem> items):批量上傳簽到簽退資料
* 上傳資料欄位(CheckInItem):CourseID, Name, Mobile, IDNumber, IDType, MealType, Email, SignUpType, CheckInType, CheckInTime
* 驗證規則
* CourseID: 必填、必須存在於課程表 Classes.ID
* Name, Mobile: 必填
* SignUpType: 必填,允許值 (預約 / 現場)
* CheckInType: 必填,允許值 (CHECKIN / CHECKOUT)
* CheckInTime: 必填,格式 yyyy-MM-dd HH:mm:ss
* 處理邏輯
* 按 (CourseID, Name, Mobile) 查詢 SignUp 表
* 若找到則依照 CheckInType 更新 CheckInTime/CheckOutTime,計入成功筆數
* 若沒找到則新增 (SignUpType="現場"),並依 CheckInType 設定時間欄位,計入成功筆數
* 不使用 transaction
* 回應格式
* 成功: { Success: true, Message: "...", Data: { CreatedCount, UpdatedCount, FailedCount, SkippedCount, SuccessIDs, Errors } }
* 失敗: { Success: false, Message: "...", Data: {...} }
## 技術規格
* 前端使用 Vue.js 實作,不使用 Server Control
* 後端使用 WebService,要 EnableSession