discuz每日送用户组积分

一、完整计划任务脚本:每日赠送积分

创建任务脚本

在 ./source/include/cron/ 目录下新建 givecredits_daily.inc.php,示例如下:

<?php

if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

// 配置:不同用户组的积分赠送设置
// 格式:groupid => array('积分字段' => 数量, ...)
$group_credit_config = array(
    10 => array('extcredits1' => 5),             // 用户组ID 10:赠送 extcredits1 = 5
    11 => array('extcredits1' => 3, 'extcredits2' => 1), // 用户组ID 11:extcredits1 = 3,extcredits2 = 1
    12 => array('extcredits2' => 10),            // 用户组ID 12:赠送 extcredits2 = 10
);

// 遍历每个用户组配置
foreach ($group_credit_config as $groupid => $credits) {
    // 查询该用户组的所有用户 UID
    $uids = array();
    $query = DB::query("SELECT uid FROM ".DB::table('common_member')." WHERE groupid='$groupid'");
    while($row = DB::fetch($query)) {
        $uids[] = $row['uid'];
    }

    if(empty($uids)) {
        continue;
    }

    // 构造积分字段更新语句
    $update_fields = array();
    foreach ($credits as $field => $value) {
        $update_fields[] = "`$field` = `$field` + $value";
    }

    // 执行更新
    if(!empty($update_fields)) {
        $sql = "UPDATE ".DB::table('common_member_count')." SET ".implode(', ', $update_fields)." WHERE uid IN (".dimplode($uids).")";
        DB::query($sql);
    }
}

二、后台添加计划任务
进入后台管理:

后台 > 工具 > 计划任务 > 添加

配置如下:

任务名称:每日赠送积分

脚本文件:givecredits_daily.inc.php

执行时间:每天(如 03:00)

阅读剩余
THE END