跳到主要内容

出席端点

出席模块管理校区位置、礼拜、礼拜时间、出席场次、来访记录以及来访场次。它为跟踪谁参加了哪场礼拜或小组聚会提供了基础设施,支持签到工作流程,并提供出席趋势和汇总报表。

基础路径: /attendance

校区

基础路径:/attendance/campuses

标准 CRUD 控制器(继承 GenericCrudController)。通过 CRUD 基类提供 getByIdgetAllpostdelete 路由。

方法路径认证权限描述
GET/JWT列出教会的所有校区
GET/:idJWT按 ID 获取校区
POST/JWTServices.Edit创建或更新校区
DELETE/:idJWTServices.Edit删除校区

礼拜

基础路径:/attendance/services

继承 GenericCrudController,包含 CRUD 路由 getByIdgetAllpostdeletegetAllGET /)和 search 端点被自定义实现覆盖。

方法路径认证权限描述
GET/JWT列出所有礼拜(包含校区信息)
GET/:idJWT按 ID 获取礼拜
GET/search?campusId=JWT按校区 ID 搜索礼拜
POST/JWTServices.Edit创建或更新礼拜
DELETE/:idJWTServices.Edit删除礼拜

示例:按校区搜索礼拜

GET /attendance/services/search?campusId=abc-123
Authorization: Bearer <token>
[
{
"id": "svc-001",
"churchId": "church-123",
"campusId": "abc-123",
"name": "Sunday Morning"
}
]

礼拜时间

基础路径:/attendance/servicetimes

继承 GenericCrudController,包含 CRUD 路由 getByIdpostdeletegetAllsearch 端点为自定义实现。

方法路径认证权限描述
GET/JWT列出所有礼拜时间。可用 ?serviceId= 筛选。加上 ?include=groups 可附加小组数据
GET/:idJWT按 ID 获取礼拜时间
GET/search?campusId=&serviceId=JWT按校区和礼拜搜索礼拜时间
GET/public/:churchIdPublic获取某教会的校区 → 礼拜 → 时间树。为网站构建器的 serviceTimes 元素提供支持
POST/JWTServices.Edit创建或更新礼拜时间
DELETE/:idJWTServices.Edit删除礼拜时间

小组礼拜时间

基础路径:/attendance/groupservicetimes

将小组与特定礼拜时间关联。

方法路径认证权限描述
GET/JWT列出所有"小组-礼拜时间"关联记录。用 ?groupId= 筛选可获取带礼拜名称的关联
GET/:idJWT按 ID 获取"小组-礼拜时间"关联记录
POST/JWTServices.Edit创建或更新"小组-礼拜时间"关联记录
DELETE/:idJWTServices.Edit删除"小组-礼拜时间"关联记录

出席记录

基础路径:/attendance/attendancerecords

为报表和展示提供出席数据的只读聚合视图。

方法路径认证权限描述
GET/JWTAttendance.View加载某人的出席记录。需要 ?personId=
GET/treeJWT加载完整的出席树(校区、礼拜、礼拜时间、小组)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View Summary加载带可选筛选条件的出席趋势数据
GET/groups?serviceId=&week=JWTAttendance.View加载某场礼拜在指定周的小组出席情况
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.View按条件(校区、礼拜、礼拜时间、小组、日期范围)搜索出席记录

示例:出席趋势

GET /attendance/attendancerecords/trend?serviceId=svc-001
Authorization: Bearer <token>
[
{ "week": "2025-01-05", "count": 142 },
{ "week": "2025-01-12", "count": 156 },
{ "week": "2025-01-19", "count": 138 }
]

场次

基础路径:/attendance/sessions

继承 GenericCrudController,包含 CRUD 路由 getByIddeletegetAllsave 端点为自定义实现,同时也允许小组负责人管理自己小组的场次。

方法路径认证权限描述
GET/JWTAttendance.View 或小组负责人列出所有场次。可用 ?groupId= 筛选(包含名称)。小组负责人可以查看自己小组的场次
GET/:idJWTAttendance.View按 ID 获取场次
POST/JWTAttendance.Edit 或小组负责人创建或更新场次。小组负责人可以为自己的小组保存场次
DELETE/:idJWTAttendance.Edit删除场次

来访记录

基础路径:/attendance/visits

管理单次来访记录(某人在特定日期的出席情况),并提供签到工作流程。

方法路径认证权限描述
GET/JWTAttendance.View列出所有来访记录。可用 ?personId= 筛选
GET/:idJWTAttendance.View按 ID 获取来访记录
GET/checkin?serviceId=&peopleIds=JWTAttendance.View 或 Attendance.Checkin加载某场礼拜中一批人员的签到数据。返回带有最近一次登记日期的来访场次的来访记录
POST/JWTAttendance.Edit创建或更新来访记录
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit 或 Attendance.Checkin提交签到数据。创建/更新来访记录和来访场次,并移除过期记录
DELETE/:idJWTAttendance.Edit删除来访记录

示例:签到流程

第 1 步 -- 加载现有签到数据:

GET /attendance/visits/checkin?serviceId=svc-001&peopleIds=person-1,person-2
Authorization: Bearer <token>
[
{
"id": "visit-001",
"personId": "person-1",
"visitDate": "2025-01-19T00:00:00.000Z",
"visitSessions": [
{
"id": "vs-001",
"sessionId": "sess-001",
"visitId": "visit-001",
"session": {
"id": "sess-001",
"groupId": "group-001",
"serviceTimeId": "st-001",
"sessionDate": "2025-01-19T00:00:00.000Z"
}
}
]
}
]

第 2 步 -- 提交签到:

POST /attendance/visits/checkin?serviceId=svc-001&peopleIds=person-1,person-2
Authorization: Bearer <token>

[
{
"personId": "person-1",
"visitSessions": [
{
"session": { "serviceTimeId": "st-001", "groupId": "group-001" }
}
]
}
]

来访场次

基础路径:/attendance/visitsessions

管理来访记录与场次之间的关联(即某人在一次来访中参加的具体场次)。同时提供快速登记端点和下载/导出端点。

方法路径认证权限描述
GET/JWTAttendance.View 或小组负责人列出来访场次。可用 ?sessionId= 筛选。小组负责人可以查看自己小组的来访场次
GET/:idJWTAttendance.View按 ID 获取来访场次
GET/download/:sessionIdJWTAttendance.View下载某场次的出席情况(返回人员姓名及出席/缺席状态)
POST/JWTAttendance.Edit创建或更新来访场次
POST/logJWTAttendance.Edit 或小组负责人快速登记某人在某场次的出席情况。如有需要会自动创建来访记录。小组负责人可以为自己的小组登记出席情况
DELETE/:idJWTAttendance.Edit按 ID 删除来访场次
DELETE/?personId=&sessionId=JWTAttendance.Edit 或小组负责人将某人从某场次中移除。会删除该来访场次,如果没有剩余场次则同时删除其所属的来访记录。小组负责人可以为自己的小组移除出席记录

示例:快速登记出席

POST /attendance/visitsessions/log
Authorization: Bearer <token>

{
"personId": "person-001",
"visitSessions": [
{ "sessionId": "sess-001" }
]
}
{}

示例:下载场次出席情况

GET /attendance/visitsessions/download/sess-001
Authorization: Bearer <token>
[
{
"id": "vs-001",
"personId": "person-001",
"visitId": "visit-001",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "John Smith",
"status": "present"
},
{
"id": "",
"personId": "person-002",
"visitId": "",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "Jane Doe",
"status": "absent"
}
]

连续出席记录

基础路径:/attendance/streaks

跟踪个人的连续出席记录——某人连续参加了多少周。可用于参与度指标和游戏化。

方法路径认证权限描述
GET/person/:personIdJWT加载某人的连续出席记录

相关页面