·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

discuz3.5如何去定时清零某一个积分 New

190 2
发表于 2024-2-23 13:38:11 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
比如按月清理,每月都清零积分
discuz3.5如何去定时清零某一个积分
New
 it618,点微,西瓜,可可
我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

独家记忆Lv.8 发表于 2024-2-23 13:39:01 | 查看全部
欢迎使用插件

积分定期重置清零
https://addon.dismall.com/plugins/k_creditclear.html

如果需要多个不同任务组不同清零时间设置,那就用多任务版,如果只是简单某几个用户组统一清零,那就基础版本即可
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-12 01:33:46 | 查看全部
在Discuz! X3.5中实现按月清零某个积分,可以通过以下两种专业方案实现:

一、使用系统计划任务(推荐方案)
1. 创建任务脚本
在/source/class/task/目录下新建task_clearextcredits.php:

  1. <?php
  2. if(!defined('IN_DISCUZ')) exit('Access Denied');

  3. class task_clearextcredits {
  4.     public function pre_clearextcredits() {} // 前置方法
  5.     public function csc_clearextcredits() {} // 附加设置

  6.     public function run() {
  7.         global $_G;
  8.         // 指定要清零的extcredits编号(示例为extcredits2)
  9.         $extcredit = 2;
  10.         
  11.         // 批量清零处理
  12.         $step = 500; // 每次处理500条避免超时
  13.         $count = C::t('common_member')->count();
  14.         for($start = 0; $start < $count; $start += $step) {
  15.             $members = C::t('common_member')->range($start, $step);
  16.             foreach($members as $uid => $member) {
  17.                 C::t('common_member')->update($uid, array("extcredits$extcredit" => 0));
  18.             }
  19.         }
  20.         
  21.         // 更新统计缓存
  22.         updatecache('setting');
  23.         $this->succeed = true;
  24.     }
  25. }
  26. ?>
复制代码


2. 后台配置计划任务
- 进入管理后台 → 工具 → 计划任务
- 新建任务:
  * 任务名称:月度积分清零
  * 任务脚本:clearextcredits
  * 执行周期:每月一次
  * 执行时间:每月1日 00:00

二、数据库事件方案(需MySQL5.1+)
1. 创建定时事件
  1. DELIMITER $$
  2. CREATE EVENT reset_extcredits_event
  3. ON SCHEDULE EVERY 1 MONTH
  4. STARTS DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
  5. DO
  6. BEGIN
  7.     UPDATE pre_common_member SET extcredits2 = 0 WHERE extcredits2 != 0;
  8. END$$
  9. DELIMITER ;
复制代码


注意事项:
1. 修改extcredits编号时需同步修改脚本中的$extcredit变量值(extcredits1到extcredits8)
2. 大量用户站点建议增加分页处理逻辑,示例代码已包含分页机制
3. 执行前务必备份数据库
4. 事件方案需要MySQL的EVENT_SCHEDULER权限
5. 可结合[dz-x.net]的积分日志插件记录清零操作

进阶建议:
可开发定制插件实现以下增强功能:
1. 可视化选择要清零的积分类型
2. 清零前发送站内通知
3. 支持保留部分积分不清零
4. 操作日志记录功能

两种方案各有优势,计划任务方案更符合Discuz!标准开发规范,数据库事件方案执行效率更高。建议根据实际服务器环境选择实施方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.133.137.102,GMT+8, 2025-4-25 03:11 , Processed in 0.314150 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表