sendJobsSql.php 2.0 KB
<?php

namespace Model;

/**
 * 邮件发送任务
 * @author:dc
 * @time 2023/4/10 16:28
 * Class sendJobsSql
 * @package Model
 */
class sendJobsSql {

    /**
     * 表
     * @var string
     */
    public static $table = 'send_jobs';


    /**
     * 获取需要发送的邮件
     * @author:dc
     * @time 2023/4/11 14:56
     * @return string
     */
    public static function sendList($limit):string {
        // 控制在500数量,协程数量就控制
        return "select * from `".self::$table."` where `status` in (0,1) and `send_time` <= ".time()." limit {$limit}";
    }


    /**
     * 列表
     * @param string $where
     * @param int $p
     * @param int $limit
     * @return string
     * @author:dc
     * @time 2023/4/17 15:59
     */
    public static function all(string $where,int $p=1,int $limit=20):string {
        $filed = '`id`,`success`,`title`,`created_at`,`error`,`total`,`stop`,`status`,`send_time`,`remark`';
        return "select {$filed} from `".static::$table."` where ".$where." order by id desc limit {$limit} offset ".(($p-1)*$limit);
    }

    /**
     * 统计
     * @param string $where
     * @return string
     * @author:dc
     * @time 2023/4/17 16:44
     */
    public static function count(string $where):string {
        return "select count(`id`) from `".static::$table."` where ".$where;
    }

    /**
     * 某个任务是否暂停了
     * @param int $id
     * @return bool
     * @author:dc
     * @time 2023/4/17 16:19
     */
    public static function isStatus(int $id):bool {
        return "select `status` from `".static::$table."` where `id` = ".$id;
    }

    /**
     * 更新状态
     * @param int $id
     * @param int $status
     * @param null $db
     * @author:dc
     * @time 2023/4/11 16:06
     */
    public static function upStatus(int $id, int $status, $db=null){
        $db = $db?:db();
        // 更新状态
        $db->update(\Model\sendJobsSql::$table,[
            'status'    =>  $status
        ],dbWhere([
            'id'    =>  $id
        ]));
    }


}