2.1 KiB
2.1 KiB
活動人員簽到簽退
資料關聯
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 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