mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-11-08 03:50:50 +08:00
72 lines
2.1 KiB
PHP
72 lines
2.1 KiB
PHP
<?php
|
||
|
||
namespace base\admin\model;
|
||
|
||
use app\common\model\TimeModel;
|
||
|
||
/**
|
||
* @property int $id
|
||
* @property int $notice_id 通知ID
|
||
* @property int $admin_id 接收管理员ID
|
||
* @property string $channel 投递渠道
|
||
* @property string $target_addr 投递目标地址
|
||
* @property int $status 状态 0:待发,1:发送中,2:成功,3:失败
|
||
* @property int $send_time 发送时间
|
||
* @property int $read_time 阅读时间
|
||
* @property int $claim_time 抢占时间
|
||
* @property string $claim_token 抢占令牌
|
||
* @property int $retry_count 重试次数
|
||
* @property int $next_retry_time 下次重试时间
|
||
* @property string $error_message 错误信息
|
||
* @property int $create_time 创建时间
|
||
* @property int $update_time 更新时间
|
||
* @property \app\admin\model\SystemNotice|null $notice 所属通知
|
||
* @property \app\admin\model\SystemAdmin|null $admin 接收管理员
|
||
*/
|
||
class SystemNoticeTargetBase extends TimeModel
|
||
{
|
||
/**
|
||
* 投递状态:待发送(队列候选,消费者按 (status,id) 索引抢占).
|
||
*/
|
||
public const STATUS_PENDING = 0;
|
||
|
||
/**
|
||
* 投递状态:发送中(已被消费者原子抢占,超时由回收任务重置回待发送).
|
||
*/
|
||
public const STATUS_SENDING = 1;
|
||
|
||
/**
|
||
* 投递状态:发送成功(终态).
|
||
*/
|
||
public const STATUS_SUCCESS = 2;
|
||
|
||
/**
|
||
* 投递状态:发送失败(终态,可人工重发回置待发送).
|
||
*/
|
||
public const STATUS_FAILED = 3;
|
||
|
||
/**
|
||
* 表无 delete_time 字段,显式关闭软删作用域.
|
||
* @var bool
|
||
*/
|
||
protected $deleteTime = false;
|
||
|
||
/**
|
||
* 所属通知.
|
||
*/
|
||
public function notice()
|
||
{
|
||
return $this->belongsTo('app\admin\model\SystemNotice', 'notice_id', 'id');
|
||
}
|
||
|
||
/**
|
||
* 接收管理员.
|
||
* 仅按需显式调用时才查询;列表页请勿用 withJoin 预载
|
||
* (system_admin 与主表存在 id/status 等同名字段,join 会产生歧义)。
|
||
*/
|
||
public function admin()
|
||
{
|
||
return $this->belongsTo('app\admin\model\SystemAdmin', 'admin_id', 'id');
|
||
}
|
||
}
|