listsSql.php 2.5 KB
<?php

namespace Model;

/**
 * 邮件列表
 * @author:dc
 * @time 2023/2/17 14:15
 * Class lists
 * @package Model
 */
class listsSql {

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


    /**
     * 查询列表
     * @param int|array $email_id
     * @param int $p
     * @param int $size
     * @param int $folder_id
     * @return string
     * @author:dc
     * @time 2023/3/10 15:24
     */
    public static function lists(int|array $email_id, int $p, int $size, int $folder_id = 0){

        $where = ['email_id'=>$email_id];
        if($folder_id) $where['folder_id'] = $folder_id;

        $filed = '`id`,`uid`,`msgno`,`subject`,`from`,`to`,`date`,`size`,`recent`,`flagged`,`answered`,`deleted`,`seen`,`draft`,`udate`,`folder_id`,`is_file`,`cc`,`bcc`';

        return "select {$filed} from `".static::$table."` where ".dbWhere($where)." order by `udate` desc limit {$size} offset ".(($p-1)*30);

    }

    /**
     * 统计列表
     * @param int|array $email_id
     * @param int $folder_id
     * @return string
     * @author:dc
     * @time 2023/3/10 15:26
     */
    public static function listCount(int|array $email_id, int $folder_id = 0){
        $where = ['email_id'=>$email_id];
        if($folder_id) $where['folder_id'] = $folder_id;
        return "select count(*) from `".static::$table."` where ".dbWhere($where);
    }

    /**
     * 获取最后一条更新的msgno
     * @param $email_id
     * @param $folder_id
     * @return string
     * @author:dc
     * @time 2023/2/18 10:01
     */
    public static function lastMsgno($email_id,$folder_id):string{
        return "select max(`msgno`) from `".self::$table."` where ".dbWhere(['email_id'=>$email_id,'folder_id'=>$folder_id])." limit 1";
    }

    /**
     * 获取已存在的id
     * @param $email_id
     * @param $folder_id
     * @param $msgno
     * @return string
     * @author:dc
     * @time 2023/2/18 10:08
     */
    public static function getIds($email_id,$folder_id,$msgno):string {
        return "select `id`,`msgno` from `".static::$table."` where ".dbWhere([
            'email_id' =>  $email_id,
            'folder_id' =>  $folder_id,
            'msgno' =>  $msgno,
            ]);
    }

    /**
     * 通过uuid查询id和email_id
     * @param $uuid
     * @return string
     * @author:dc
     * @time 2023/2/18 10:44
     */
    public static function hasUuid($uuid):string {
        return "select `id`,`email_id`,`uuid` from `".self::$table."` where ".dbWhere(['uuid'=>$uuid]);
    }




}