96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\api\logic; | ||
|  | 
 | ||
|  | 
 | ||
|  | use app\common\basics\Logic; | ||
|  | use app\common\enum\IntegralGoodsEnum; | ||
|  | use app\common\model\integral\IntegralGoods; | ||
|  | use app\common\model\user\User; | ||
|  | use app\common\server\UrlServer; | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * 积分商品逻辑 | ||
|  |  * Class IntegralGoodsLogic | ||
|  |  * @package app\api\logic | ||
|  |  */ | ||
|  | class IntegralGoodsLogic extends Logic | ||
|  | { | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 积分商品列表 | ||
|  |      * @param $user_id | ||
|  |      * @param $get | ||
|  |      * @param $page | ||
|  |      * @param $size | ||
|  |      * @return array | ||
|  |      * @throws \think\db\exception\DataNotFoundException | ||
|  |      * @throws \think\db\exception\DbException | ||
|  |      * @throws \think\db\exception\ModelNotFoundException | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/2/28 11:53 | ||
|  |      */ | ||
|  |     public static function lists($user_id, $get, $page, $size) | ||
|  |     { | ||
|  |         $order = []; | ||
|  |         // 所需积分排序
 | ||
|  |         if (!empty($get['sort_by_integral'])) { | ||
|  |             $order['need_integral'] = $get['sort_by_integral']; | ||
|  |         } | ||
|  |         // 兑换量排序
 | ||
|  |         if (!empty($get['sort_by_sales'])) { | ||
|  |             $order['sales'] = $get['sort_by_sales']; | ||
|  |         } | ||
|  |         // 最新排序
 | ||
|  |         if (!empty($get['sort_by_new'])) { | ||
|  |             $order['id'] = $get['sort_by_new']; | ||
|  |         } | ||
|  | 
 | ||
|  |         $where = [ | ||
|  |             ['del', '=', IntegralGoodsEnum::DEL_NORMAL],  // 未删除
 | ||
|  |             ['status', '=', IntegralGoodsEnum::STATUS_SHELVES] // 上架中
 | ||
|  |         ]; | ||
|  | 
 | ||
|  |         $field = ['id', 'image', 'name', 'need_integral', 'need_money', 'exchange_way']; | ||
|  | 
 | ||
|  |         $count = IntegralGoods::where($where)->count('id'); | ||
|  |         $lists = IntegralGoods::where($where)->order(['sort' => 'desc','id'=>'desc'])->field($field) | ||
|  |             ->order($order)->select(); | ||
|  | 
 | ||
|  |         foreach ($lists as $item) { | ||
|  |             $item['image'] = UrlServer::getFileUrl($item['image']); | ||
|  |         } | ||
|  | 
 | ||
|  |         // 当前积分
 | ||
|  |         $integral = User::field('user_integral')->findOrEmpty($user_id); | ||
|  | 
 | ||
|  |         return [ | ||
|  |             'integral' => $integral['user_integral'] ?? 0, | ||
|  |             'goods' => [ | ||
|  |                 'page_no' => $page, | ||
|  |                 'page_size' => $size, | ||
|  |                 'count' => $count, | ||
|  |                 'more' => is_more($count, $page, $size), | ||
|  |                 'lists' => $lists | ||
|  |             ], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 商品详情 | ||
|  |      * @param $goods_id | ||
|  |      * @return array | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/2/28 15:14 | ||
|  |      */ | ||
|  |     public static function detail($goods_id) | ||
|  |     { | ||
|  |         $detail = IntegralGoods::where(['id' => $goods_id])->findOrEmpty(); | ||
|  |         $detail['image'] = UrlServer::getFileUrl($detail['image']); | ||
|  |         return $detail->toArray(); | ||
|  |     } | ||
|  | 
 | ||
|  | } |