80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace app\api\logic; | ||
|  | 
 | ||
|  | use app\common\basics\Logic; | ||
|  | use app\common\model\goods\GoodsCollect; | ||
|  | 
 | ||
|  | class GoodsCollectLogic extends Logic | ||
|  | { | ||
|  |     /** | ||
|  |      * 商品收藏 | ||
|  |      */ | ||
|  |     public static function changeStatus($goodsId, $userId) | ||
|  |     { | ||
|  |         $data = GoodsCollect::where(['goods_id'=>$goodsId,'user_id'=>$userId])->findOrEmpty(); | ||
|  |         if($data->isEmpty()) { // 没数据,首次收藏
 | ||
|  |             $insertData = [ | ||
|  |                 'goods_id' => $goodsId, | ||
|  |                 'user_id' => $userId, | ||
|  |                 'status' => 1, | ||
|  |                 'create_time' => time() | ||
|  |             ]; | ||
|  |             $result = GoodsCollect::create($insertData); | ||
|  | 
 | ||
|  |             return [ | ||
|  |                 'result' => $result, | ||
|  |                 'msg' => '收藏成功' | ||
|  |             ]; | ||
|  |         }else{ // 收藏过,修改收藏状态
 | ||
|  |             $newStatus = $data['status'] ? 0 : 1; | ||
|  |             $msg = $newStatus ? '收藏成功' : '取消收藏'; | ||
|  |             $updateData = [ | ||
|  |                 'id' => $data['id'], | ||
|  |                 'status' => $newStatus, | ||
|  |                 'update_time' => time() | ||
|  |             ]; | ||
|  |             $result = GoodsCollect::update($updateData); | ||
|  |             return [ | ||
|  |                 'result' => $result, | ||
|  |                 'msg' => $msg | ||
|  |             ]; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function lists($get) | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             'gc.user_id' => $get['user_id'], | ||
|  |             'gc.status' => 1, | ||
|  |         ]; | ||
|  |         $lists = GoodsCollect::alias('gc') | ||
|  |             ->field('g.id,g.shop_id,g.name,g.image,g.min_price,g.status,g.audit_status,g.del') | ||
|  |             ->leftJoin('goods g', 'g.id=gc.goods_id') | ||
|  |             ->where($where) | ||
|  |             ->order('gc.update_time', 'desc') | ||
|  |             ->page($get['page_no'], $get['page_size']) | ||
|  |             ->select() | ||
|  |             ->toArray(); | ||
|  |         $count = GoodsCollect::alias('gc') | ||
|  |             ->field('g.id,g.name,g.image,g.min_price,g.status') | ||
|  |             ->leftJoin('goods g', 'g.id=gc.goods_id') | ||
|  |             ->where($where) | ||
|  |             ->count(); | ||
|  |         foreach($lists as &$item) { | ||
|  |             // 标识商品是否失效
 | ||
|  |             $item['is_valid'] = 1; | ||
|  |             // 下架、待审核、审核拒绝、已删除的均标识为失效
 | ||
|  |             if($item['status'] == 0 || $item['audit_status'] != 1 || $item['del'] == 1) { | ||
|  |                 $item['is_valid'] = 0; | ||
|  |             } | ||
|  |         } | ||
|  |         $data = [ | ||
|  |             'lists' => $lists, | ||
|  |             'count' => $count, | ||
|  |             'more' => is_more($count, $get['page_no'], $get['page_size']), | ||
|  |             'page_no' => $get['page_no'], | ||
|  |             'page_size' => $get['page_size'], | ||
|  |         ]; | ||
|  |         return $data; | ||
|  |     } | ||
|  | } |