签到系统
XYGo Admin 2025-02-20 52 次阅读
每日签到功能与连续签到奖励
签到系统
功能说明
会员每日签到可获得积分奖励,连续签到天数越多奖励越高。
签到规则
- 每天只能签到一次
- 签到成功后获得积分奖励
- 连续签到天数会累计
- 断签后连续天数重置为 1
数据结构
member_checkin 表:
| 字段 | 说明 |
|---|---|
| member_id | 会员 ID |
| days | 连续签到天数 |
| last_checkin_at | 最后签到时间 |
| total_days | 累计签到总天数 |
后端实现
签到逻辑在 internal/logic/member/checkin.go 中:
go
// 签到流程
1. 检查今天是否已签到
2. 判断是否连续签到(昨天是否签到)
3. 更新连续天数(连续 +1,断签重置为 1)
4. 计算积分奖励
5. 增加会员积分 + 记录积分日志
6. 更新签到记录
前端调用
typescript
// api/frontend/member/checkin.ts
import { memberRequest } from '@/utils/http'
// 执行签到
export function doCheckin() {
return memberRequest.post({ url: '/checkin/sign' })
}
// 获取签到状态
export function getCheckinStatus() {
return memberRequest.get({ url: '/checkin/status' })
}
前台展示
会员中心和社区页面中展示签到组件:
- 显示连续签到天数
- 7 天签到日历
- 签到按钮(已签到则置灰)
- 积分奖励提示