75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			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();
 | |
|     }
 | |
| } |