v2.2.0 升级完成 — 广告播放间隔防刷机制
新增功能后台设置新增「广告播放间隔 (秒)」配置项(默认 60 秒),两次领取积分之间必须等待指定间隔,防止刷广告。
前台交互逻辑
[*]
[*]页面加载时:如果用户在冷却期内,显示「领取冷却中,还需等待 X 秒」,按钮禁用,广告不计时
[*]冷却结束后:自动重置观看状态,开始广告倒计时
[*]领取成功后:如果间隔 > 0,自动进入冷却期,按钮显示「冷却中 Xs」;间隔 = 0 则保持原「观看下一个广告」行为
[*]AJAX 校验:服务端同时校验间隔,即使绕过前端也无法领取(返回 code=6 + 剩余秒数)
## 功能特性
### 核心功能
1. **前台广告观看**: 展示广告(后台配置广告代码),观看满指定秒数后点击按钮领取积分
2. **积分直接发放**: 观看完成后自动发放到用户 Discuz 账户指定类型积分(extcredits1-8),带有效期
3. **系统积分流水同步**: 积分变动同步写入 Discuz 系统积分记录,个人设置中可查
4. **积分有效期(分钟)**: 获得的积分在指定分钟数后自动过期清零(实时过期检测 + 每天凌晨3点计划任务回收)
### 广告管理
5. **多广告权重随机**: 支持多条广告,按权重随机展示
6. **单广告三级设置**: 每条广告可设置通用/电脑版/手机版的观看秒数和奖励积分,优先级:端专属 > 通用 > 全局
7. **广告合规标识**: 明确标注「广告」,支持随时关闭,关闭后计时暂停
8. **防广告拦截**: CSS类名使用 promo 前缀,避免被夸克等浏览器广告拦截插件屏蔽
### 防刷与限制
9. **广告播放间隔**: 后台可设置两次领取之间的冷却时间(秒),前台实时倒计时,服务端双重校验
10. **每日领取上限**: 每个用户每天最多领取次数,0 为不限制
### 前台页面
11. **用户奖励排行榜**: 前台展示用户看广告获得积分的累计/今日排行榜
12. **积分记录页**: 用户查看自己的获得/过期流水和当前余额
13. **页面名称可配置**: 后台可自定义前台三个页面的名称
14. **默认首页可配置**: 后台可选择观看广告/积分记录/奖励排行榜作为插件默认首页
15. **手机端适配**: 独立手机版页面,自适应布局,正常加载 Discuz 后台设置的第三方统计代码
### 后台管理
16. **数据看板**: 累计发放、累计过期、14天趋势图、当前配置概览
17. **广告管理**: 增删改查广告,配置权重、端专属设置、启用状态
18. **积分流水**: 后台查看所有用户的积分获得/过期记录,支持筛选和分页
19. **导航菜单自动添加**: 安装后自动添加到网站顶部主导航,链接随默认首页设置自动同步
20. **自检修复机制**: 访问后台页面时自动检测并补建缺失的数据表、配置变量、导航菜单、版本号
### 版本信息
- 版本号:2.2.0
- 配置变量:10 项
- 文件数:24 个
- 打包大小:45.7 KB ## 更新日志
### v2.2.1
- 修复:后台积分流水页面 UID 筛选跳转问题(改用 JavaScript 纯 GET 跳转,避免 Discuz 后台 POST 保存逻辑干扰)
- 优化:后台三个模块页面(数据看板/广告管理/积分流水)表头样式统一为 Discuz 标准表格头
- 修复:手机版页面正常加载 Discuz 后台设置的第三方统计代码
- 修复:后台插件列表版本号覆盖文件后自动更新
页:
[1]