caipan_shop_admin/app/model/Coupon.php

75 lines
1.9 KiB
PHP
Executable File

<?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();
}
}