59 lines
1.5 KiB
PHP
59 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\model\mall;
|
||
|
|
||
|
use app\model\Base;
|
||
|
use app\model\Spu;
|
||
|
use Exception;
|
||
|
use think\model\relation\HasOne;
|
||
|
|
||
|
class SpuLimitTime extends Base
|
||
|
{
|
||
|
public const TYPE = 'limit_time';// 活动类型
|
||
|
|
||
|
/**
|
||
|
* 获取限时折扣列表
|
||
|
*
|
||
|
* @param array $where
|
||
|
* @param array $field
|
||
|
* @param int $page
|
||
|
* @param int $size
|
||
|
* @param callable|null $callable
|
||
|
* @param array $order
|
||
|
* @return array
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public static function fetchList(array $where, array $field = [], int $page = 1, int $size = 20, callable $callable = null, array $order = []): array
|
||
|
{
|
||
|
$res = SpuLimitTime::findList($where, $field, $page, $size, $callable, $order);
|
||
|
|
||
|
$res['list'] = $res['list']->each(function ($item) {
|
||
|
$statusText = '进行中';
|
||
|
$now = date('Y-m-d H:i:s');
|
||
|
if ($item['begin_at'] > $now) {
|
||
|
$statusText = '未开始';
|
||
|
}
|
||
|
|
||
|
if ($item['begin_at'] < $now && $now < $item['end_at']) {
|
||
|
$statusText = '进行中';
|
||
|
}
|
||
|
|
||
|
if ($item['end_at'] < $now) {
|
||
|
$statusText = '已结束';
|
||
|
}
|
||
|
|
||
|
$item->activity_status = $statusText;
|
||
|
$item->status_text = $item->is_restore == SpuLimitTime::COMMON_ON ? '暂停' : '开启';
|
||
|
});
|
||
|
|
||
|
return $res;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return HasOne
|
||
|
*/
|
||
|
public function spu(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(Spu::class, 'id', 'spu_id');
|
||
|
}
|
||
|
}
|