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