From 21558f841dc686f1b573f2f9bc075b81fbd903c4 Mon Sep 17 00:00:00 2001 From: richarjiang Date: Fri, 30 Oct 2026 20:51:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=8B=E7=BA=BF=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9B=20=E6=9C=88=E5=8D=A1=E7=94=9F?= =?UTF-8?q?=E6=95=88=E6=97=B6=E9=97=B4=E4=BB=8E=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E7=BA=A6=E8=AF=BE=E5=BC=80=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/membership-periods.md | 69 ++++++------- .../monthly-first-check-in-preview.png | Bin 0 -> 81222 bytes .../src/components/BookingConfirmPopup.vue | 10 +- .../src/components/OwnedMembershipCard.vue | 6 +- packages/app/src/components/QuickEntry.vue | 8 +- packages/app/src/components/UserCard.vue | 4 +- packages/app/src/config/features.ts | 2 + packages/app/src/pages/admin/contracts.vue | 2 +- .../app/src/pages/admin/member-arrange.vue | 5 +- .../app/src/pages/admin/member-detail.vue | 6 +- packages/app/src/pages/admin/member-edit.vue | 10 +- .../app/src/pages/admin/member-supplement.vue | 2 +- packages/app/src/pages/card/detail.vue | 81 ++++++++++----- packages/app/src/pages/contract/detail.vue | 2 +- packages/app/src/pages/contract/index.vue | 2 +- packages/app/src/pages/contract/sign.vue | 2 +- packages/app/src/pages/profile/membership.vue | 19 ++-- packages/app/src/utils/format.ts | 9 +- packages/app/src/utils/home.ts | 3 +- .../migration.sql | 5 + packages/server/prisma/schema.prisma | 5 +- .../src/auth/__tests__/auth.service.spec.ts | 9 +- .../booking/__tests__/booking.service.spec.ts | 37 +++++++ .../__tests__/monthly-first-check-in.spec.ts | 96 ++++++++++++++++++ .../server/src/booking/booking.service.ts | 31 ++++-- .../__tests__/contract-template.spec.ts | 12 +++ .../__tests__/contract.service.spec.ts | 13 +++ .../server/src/contract/contract-template.ts | 8 +- .../server/src/contract/contract.service.ts | 26 ++--- .../__tests__/membership-renewal.spec.ts | 28 ++--- .../__tests__/membership.service.spec.ts | 8 +- .../__tests__/monthly-periods.spec.ts | 12 ++- .../server/src/membership/membership-query.ts | 11 +- .../src/membership/membership.service.ts | 14 +-- .../payment/__tests__/payment.service.spec.ts | 3 +- .../src/user/__tests__/user.service.spec.ts | 8 +- .../src/user/lesson-supplement.service.ts | 8 +- packages/server/src/user/user.service.ts | 31 ++++-- packages/shared/src/index.ts | 2 + packages/shared/src/membership-renewal.ts | 64 ++++++++---- packages/shared/src/types/contract.ts | 8 +- packages/shared/src/types/membership.ts | 5 +- 42 files changed, 490 insertions(+), 196 deletions(-) create mode 100644 docs/screenshots/monthly-first-check-in-preview.png create mode 100644 packages/app/src/config/features.ts create mode 100644 packages/server/prisma/migrations/20261030090000_monthly_first_check_in/migration.sql create mode 100644 packages/server/src/booking/__tests__/monthly-first-check-in.spec.ts diff --git a/docs/membership-periods.md b/docs/membership-periods.md index 3346f3b..10d93e1 100644 --- a/docs/membership-periods.md +++ b/docs/membership-periods.md @@ -1,51 +1,40 @@ -# 月卡周期与续费规则 +# 月卡生效、购买与续卡规则 -## 已确认规则 +## 当前规则(2026-10-30) -- 月卡(DURATION)每次购买生成独立会员卡周期,不向旧周期累加课时,不覆盖旧卡、订单和预约关联。 -- 旧周期尚未到期时,新周期从同款卡已购周期的最晚到期时间开始。连续购买按支付确认顺序排期,每期额度独立。 -- 旧周期已结束时,新周期从支付确认时间开始。旧月卡即使账面还有 6 次,也不可继续使用,不会与新购 10 次合成 16 次。 -- 次卡(TIMES)保留现有规则:有效期内续费累加次数、延长有效期;过期余次不结转。体验卡仍为独立新卡。 -- 原有月卡沿用已经约定的有效期,不按开卡日倒推缩短,不批量改写历史余额。 +- 仅新购月卡(DURATION)及后台新开月卡采用首次课程核销生效。历史卡保留原起止时间,不批量修改历史余额、订单、预约或已签合同。 +- 每次购买生成独立会员卡,不累加到旧月卡。新卡保存购买时的 `activationDurationDays`,`startDate`、`expireDate` 均为 `null`,状态为 `SCHEDULED`(待首次核销)。等待期间不会自动生效或过期。 +- 用户预约、教练确认预约、取消预约、标记未出席及课时补录都不会启动计时。原有教练确认预约时扣次的规则保留;取消退回原卡。 +- 只有已确认预约核销为 `COMPLETED`,才在同一事务中首次设置月卡日期。起点取**核销当天中国时区 00:00**,该自然日计为第 1 天,截止时间为起点加购买时的有效天数,采用左闭右开区间。例如 10 月 31 日首次核销的 30 天卡,可用至 11 月 29 日结束,数据库截止时间为 11 月 30 日 00:00(中国时区)。 +- 后续课程核销、重复请求不重新计算或延长有效期。购卡、预约、确认和核销使用同一会员行锁,避免并发重复激活。 +- 待首次核销月卡可以预约,仍须签署要求签署的合同并有可用课时。为了保证提前预约的课程落在首次生效后的有效期内,可预约课程不超过「今天中国时区零点 + 已购天数」。生效后按实际周期验证课程起止时间。 +- 每张月卡的额度、预约、退款和到期独立,月卡余次不跨期结转。次卡、体验卡原有生效和续卡规则保留。 -## 状态与展示 +## 页面与合同 -新增 `SCHEDULED`(待生效)状态,数据库迁移只在原枚举末尾追加值,不改写现有记录。 +- 月卡详情展示「第一次上课核销,才开始计时」,明确自然日、预约不计时和查询位置。使用说明中可直接查看《会员卡服务合同》范本。 +- 「我的会员卡」对新卡显示「首次预约课程核销当天生效」及已购天数,可直接预约,不提供手动提前启用。 +- 预约选卡、馆主代约、会员详情和编辑页均支持日期待定,避免显示虚假日期或将待核销卡误判过期。 +- 新月卡合同模板 `2026-10-v3` 的会员卡信息与第二条说明首次核销起算,未激活时保留日期待定,不用支付或合同创建时间代替。合同购买天数采用会员卡快照。 +- 原有有确定日期的月卡周期、自动到期/生效和提前启用规则继续兼容。已签合同内容与签名摘要保留。 -读取会员权益时,依据服务端时间实时判断生效、到期和可用次数,不依赖凌晨任务。到期的限次月卡返回 0 次可用权益;原始账面余额留在旧记录中用于历史核对。待生效额度不会计入当前余额。 +## 在线支付前端入口 -会员页分为「正在使用」「下期待生效」「历史记录」。续费页显示本期剩余与下期起止时间/独立额度,提前续费提示「支付后排期待生效」。页面打开期间在生效和到期边界刷新展示。 +- 会员卡详情底部改为「联系馆主」,使用微信原生 `button open-type="contact"` 打开小程序客服会话,可附带所咨询会员卡的页面卡片。接待方沿用小程序后台已有客服配置。 +- 支付确认弹窗和下单操作由 `packages/app/src/config/features.ts` 的 `ONLINE_PAYMENT_ENABLED = false` 屏蔽,保留原前端支付流程以供恢复。 +- 后端下单、支付回调、退款、订单、发卡与合同能力均保留;未来恢复支付时,新月卡仍遵循首次核销生效。 -## 提前启用 +## 发布步骤 -接口:`POST /membership/:id/activate`,要求登录及 `{ "confirmed": true }`,仅操作登录用户自己的周期。 +1. 备份数据库,应用 `20261030090000_monthly_first_check_in` 迁移(日期允许为空,新增有效天数快照字段;不更新历史记录)。 +2. 生成 Prisma Client,构建并配套发布 shared/server 及新版小程序;旧版小程序不支持日期待定,不应单独发布服务端。 +3. 在微信小程序真机中验收「联系馆主」客服会话,并验证新月卡购买/后台开卡、预约、确认、取消、核销后的日期与新合同范本。 -只能启用同款卡最早的待生效周期。本期必须已经用完次数;不限次月卡或仍有余次的周期不允许提前结束。 +无新增环境变量。当前改动只完成本地实现与验证,未应用生产迁移、部署服务端或发布小程序。 -启用前先检查本期未完成预约;如仍有未来待确认/已确认课程,需上完或取消后再启用。新周期从启用时刻开始,保留完整已购时长,后续待生效周期连续重新衔接。已经预约到新周期或后续周期的课程必须仍在调整后的范围内,否则拒绝操作并提示调整预约,不自动取消课程。 +## 本地验证 -购卡排期、提前启用及预约写入使用同一会员的数据库行锁串行处理。启用事务只修改周期日期与状态,不改变订单和预约所关联的周期 ID。 - -## 预约与扣次 - -月卡可提前预约已付款周期内的课程,但课程起止时间必须完全落在所选周期内。上课时间按场馆中国时区计算。学员预约、馆主代约及确认预约均验证周期,不能借用另一期额度。 - -仍由教练确认预约时扣次;未来周期被确认预约后保留待生效状态。取消后退回原周期,不转入其他新卡;已过期月卡的退回次数不会变为可用权益。 - -## 发布与兼容 - -1. 备份生产数据库和当前 server/shared 构建及 Prisma Client。 -2. 应用 `20261018090000_scheduled_membership_periods`,生成对应 Prisma Client,再发布 shared/server。 -3. 发布小程序新版本,才能显示独立周期、正确续卡预览及提前启用入口。旧版内置的续卡计算不会随服务端更新,应配套发布小程序。 - -没有新增环境变量,不需要清空或重建已有会员数据。新周期与历史记录共用原有 memberships、orders、bookings 关系,既有购买不会重新发卡。 - -验证包括月卡 6 + 新购 10 分期保存、过期与临界时刻、连续购买排期、提前启用确认与归属、已有预约保护、课程周期边界、支付确认发放新周期、次卡原逻辑,以及共享/服务端/小程序构建。 - -## 本次验证(2026-10-18) - -- 当前工作区完整服务端测试通过:34 个套件、545 项测试。 -- shared/server 构建、小程序类型检查和微信小程序生产构建通过。 -- `pnpm lint` 无法执行:现有环境未安装脚本引用的 `eslint`;未为此调整依赖或锁文件。 -- 使用真实 Vue 页面与模拟数据检查了 390px 宽度下的未过期续卡、已过期续卡、待生效周期列表、提前启用确认及成功后的日期/额度更新;未发起真实支付或修改真实会员权益。 -- 本次月卡迁移及服务端改动已与器械课后评价一并部署生产;新版小程序尚未上传或发布。详见 [联合发布记录](combined-release-2026-10-18.md)。 +- 服务端完整回归:39 个套件、627 项测试通过;包含首次核销、中国时区跨日、预约确认与取消不激活、重复核销、历史卡兼容及合同条款/有效天数快照。 +- shared/server 构建、小程序类型检查、微信小程序生产构建通过;首页 10 项测试通过。 +- 390px 宽度下使用真实 Vue 页面及隔离模拟数据检查详情说明、联系馆主按钮和待首次核销月卡列表。截图见 [页面预览](screenshots/monthly-first-check-in-preview.png)。微信原生客服会话需真机验收。 +- `pnpm lint` 因环境未安装脚本引用的 `eslint` 而无法运行,未为此修改依赖或锁文件。 diff --git a/docs/screenshots/monthly-first-check-in-preview.png b/docs/screenshots/monthly-first-check-in-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..96f49f8aed7f322fd2e20bd62215bcc39c05867d GIT binary patch literal 81222 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 literal 0 HcmV?d00001 diff --git a/packages/app/src/components/BookingConfirmPopup.vue b/packages/app/src/components/BookingConfirmPopup.vue index 953a252..dab2f26 100644 --- a/packages/app/src/components/BookingConfirmPopup.vue +++ b/packages/app/src/components/BookingConfirmPopup.vue @@ -44,12 +44,13 @@ {{ memberships[0].cardType.name }} - 周期 {{ formatChinaDate(memberships[0].startDate) }} 至 {{ formatChinaDate(memberships[0].expireDate) }} + 首次课程核销当天生效 + 周期 {{ formatChinaDate(memberships[0].startDate) }} 至 {{ formatChinaDate(memberships[0].expireDate) }} 剩余 {{ memberships[0].remainingTimes }} 次 - 有效期至 {{ memberships[0].expireDate.slice(0, 10) }} + {{ memberships[0].expireDate ? '有效期至 ' + formatChinaDate(memberships[0].expireDate) : '生效后 ' + (memberships[0].activationDurationDays ?? memberships[0].cardType.durationDays) + ' 天内不限次' }} @@ -69,12 +70,13 @@ > {{ m.cardType.name }} - 周期 {{ formatChinaDate(m.startDate) }} 至 {{ formatChinaDate(m.expireDate) }} + 首次课程核销当天生效 + 周期 {{ formatChinaDate(m.startDate) }} 至 {{ formatChinaDate(m.expireDate) }} 剩余 {{ m.remainingTimes }} 次 - 有效期至 {{ m.expireDate.slice(0, 10) }} + {{ m.expireDate ? '有效期至 ' + formatChinaDate(m.expireDate) : '生效后 ' + (m.activationDurationDays ?? m.cardType.durationDays) + ' 天内不限次' }} diff --git a/packages/app/src/components/OwnedMembershipCard.vue b/packages/app/src/components/OwnedMembershipCard.vue index ecf778f..80003e4 100644 --- a/packages/app/src/components/OwnedMembershipCard.vue +++ b/packages/app/src/components/OwnedMembershipCard.vue @@ -13,7 +13,7 @@ - {{ membership.startDate.slice(0, 10).replace(/-/g, '.') }} 起{{ membership.expireDate.slice(0, 10).replace(/-/g, '.') }} 到期 + {{ formatChinaDate(membership.startDate).replace(/-/g, '.') }} 起{{ formatDateTimeFull(membership.expireDate) }} 到期 @@ -21,14 +21,14 @@ diff --git a/packages/app/src/components/QuickEntry.vue b/packages/app/src/components/QuickEntry.vue index 88a8034..4896d47 100644 --- a/packages/app/src/components/QuickEntry.vue +++ b/packages/app/src/components/QuickEntry.vue @@ -31,6 +31,11 @@ + + 月卡待首次核销 · 可预约课程 + 预约课程 + + 会员卡尚未生效 查看会员卡 @@ -54,7 +59,7 @@