94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| namespace app\repository;
 | |
| 
 | |
| use app\model\Business;
 | |
| use app\model\Coupon;
 | |
| use app\model\CouponMain;
 | |
| use app\model\CouponType;
 | |
| use app\service\Repository;
 | |
| use Exception;
 | |
| use think\Db;
 | |
| 
 | |
| use think\Model;
 | |
| 
 | |
| /**
 | |
|  * 优惠券 相关操作
 | |
|  *
 | |
|  * Class CouponRepository
 | |
|  * @package app\repository
 | |
|  * @method self getInstance(Model $model = null) static
 | |
|  */
 | |
| class CouponRepository extends Repository
 | |
| {
 | |
|     /**
 | |
|      * 优惠券持有信息列表
 | |
|      *
 | |
|      * @param $id
 | |
|      * @param $keyword
 | |
|      * @param $page
 | |
|      * @param $size
 | |
|      * @return array
 | |
|      * @throws \Exception
 | |
|      */
 | |
|     public function couponMainHasList($id, $keyword, $page, $size)
 | |
|     {
 | |
| 
 | |
|         return Coupon::findList(["id" => $id], [], $page, $size, function ($q) use ($keyword) {
 | |
|             if (!empty($keyword)) {
 | |
|                 return $q::hasWhere('account', function ($q) use ($keyword) {
 | |
|                     $q->where('nick_name', 'like', "%" . $keyword . "%")->field("nick_name,avatar_url");
 | |
|                 });
 | |
|             } else {
 | |
|                 return $q->with(["account" => function ($query) {
 | |
|                     $query->field("nick_name,avatar_url");
 | |
|                 }]);
 | |
|             }
 | |
|         }, ["id" => "desc"]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 优惠券持有信息列表
 | |
|      *
 | |
|      * @param $id
 | |
|      * @param $keyword
 | |
|      * @param $page
 | |
|      * @param $size
 | |
|      * @return array
 | |
|      * @throws \Exception
 | |
|      */
 | |
| 
 | |
|     public function getCouponTypeAll()
 | |
|     {
 | |
| 
 | |
|         return CouponType::order(["id" => "desc"])->select();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 发布优惠券  扣除商家余额
 | |
|      * @param $data
 | |
|      * @param $totalMoney
 | |
|      */
 | |
|     public function releaseCouponMain($data, $totalMoney)
 | |
|     {
 | |
|         CouponMain::create($data);
 | |
|         Business::where("code", $data["business_code"])->dec("balance", $totalMoney)->update();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 查询商家发布的优惠卷列表
 | |
|      *
 | |
|      * @param array $where
 | |
|      * @param array $fields
 | |
|      * @param int $page
 | |
|      * @param int $size
 | |
|      * @param callable|null $call
 | |
|      * @param array $sortOrder
 | |
|      * @return array
 | |
|      * @throws Exception
 | |
|      */
 | |
|     public function findCouponMainList(array $where, array $fields = [], int $page=1, int $size = 0, callable $call=null, array $sortOrder= []): array
 | |
|     {
 | |
|         return CouponMain::findList($where, $fields, $page, $size, $call, $sortOrder);
 | |
|     }
 | |
| 
 | |
| } |