75 lines
1.9 KiB
PHP
75 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\model;
|
||
|
|
||
|
use think\Collection;
|
||
|
use think\db\exception\DataNotFoundException;
|
||
|
use think\db\exception\DbException;
|
||
|
use think\db\exception\ModelNotFoundException;
|
||
|
|
||
|
/**
|
||
|
* 优惠券
|
||
|
* Class Coupon
|
||
|
* @package app\model
|
||
|
*/
|
||
|
class Coupon extends Base
|
||
|
{
|
||
|
public const TYPE_DISCOUNT = 'discount';//满减
|
||
|
public const TYPE_TASTE = 'taste';//体验
|
||
|
|
||
|
/**
|
||
|
* 类型文案
|
||
|
*
|
||
|
* @return string[]
|
||
|
*/
|
||
|
public static function typeTextList(): array
|
||
|
{
|
||
|
return [
|
||
|
self::TYPE_DISCOUNT => '满减券',
|
||
|
self::TYPE_TASTE => '体验券',
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 可领取列表
|
||
|
*
|
||
|
* @param array $without 需要排除的ID列表
|
||
|
* @return Coupon[]|array|Collection
|
||
|
* @throws DataNotFoundException
|
||
|
* @throws DbException
|
||
|
* @throws ModelNotFoundException
|
||
|
*/
|
||
|
public static function normalList(array $without = [])
|
||
|
{
|
||
|
$now = date('Y-m-d H:i:s');
|
||
|
return self::whereNotIn('id', $without)
|
||
|
->whereNull('deleted_at')
|
||
|
->where('begin_at', '<', $now)
|
||
|
->where('end_at', '>', $now)
|
||
|
->where('remain', '>', 0)
|
||
|
->order('sort', 'desc')
|
||
|
->order('created_at', 'desc')
|
||
|
->select();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取首页推荐优惠券
|
||
|
*
|
||
|
* @return Coupon|array|\think\Model|null
|
||
|
* @throws DataNotFoundException
|
||
|
* @throws DbException
|
||
|
* @throws ModelNotFoundException
|
||
|
*/
|
||
|
public static function homeCoupon()
|
||
|
{
|
||
|
$now = date('Y-m-d H:i:s');
|
||
|
return self::where('is_home', self::COMMON_ON)
|
||
|
->whereNull('deleted_at')
|
||
|
->where('begin_at', '<', $now)
|
||
|
->where('end_at', '>', $now)
|
||
|
->where('remain', '>', 0)
|
||
|
->order('sort', 'desc')
|
||
|
->order('created_at', 'desc')
|
||
|
->find();
|
||
|
}
|
||
|
}
|