83 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								namespace app\api\logic;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Logic;
							 | 
						||
| 
								 | 
							
								use app\common\model\shop\ShopFollow;
							 | 
						||
| 
								 | 
							
								use app\common\model\shop\ShopCategory;
							 | 
						||
| 
								 | 
							
								use app\common\server\UrlServer;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ShopFollowLogic extends Logic
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 店铺: 关注/取消关注
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function changeStatus($shopId, $userId)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $data = ShopFollow::where(['shop_id'=>$shopId,'user_id'=>$userId])->findOrEmpty();
							 | 
						||
| 
								 | 
							
								        if($data->isEmpty()) { // 没数据,首次关注
							 | 
						||
| 
								 | 
							
								            $insertData = [
							 | 
						||
| 
								 | 
							
								                'shop_id' => $shopId,
							 | 
						||
| 
								 | 
							
								                'user_id' => $userId,
							 | 
						||
| 
								 | 
							
								                'status' => 1,
							 | 
						||
| 
								 | 
							
								                'create_time' => time()
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								            $result = ShopFollow::create($insertData);
							 | 
						||
| 
								 | 
							
								            return [
							 | 
						||
| 
								 | 
							
								                'result' => $result,
							 | 
						||
| 
								 | 
							
								                'msg' => '关注成功'
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								        }else{ // 关注过,修改关注状态
							 | 
						||
| 
								 | 
							
								            $newStatus = $data['status'] ? 0 : 1;
							 | 
						||
| 
								 | 
							
								            $msg = $newStatus ? '关注成功' : '取消关注';
							 | 
						||
| 
								 | 
							
								            $updateData = [
							 | 
						||
| 
								 | 
							
								                'id' => $data['id'],
							 | 
						||
| 
								 | 
							
								                'status' => $newStatus,
							 | 
						||
| 
								 | 
							
								                'update_time' => time()
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								            $result = ShopFollow::update($updateData);
							 | 
						||
| 
								 | 
							
								            return [
							 | 
						||
| 
								 | 
							
								                'result' => $result,
							 | 
						||
| 
								 | 
							
								                'msg' => $msg
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static function lists($get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $where = [
							 | 
						||
| 
								 | 
							
								            'sf.user_id' => $get['user_id'],
							 | 
						||
| 
								 | 
							
								            'sf.status' => 1
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $lists = ShopFollow::alias('sf')
							 | 
						||
| 
								 | 
							
								            ->field('s.id,s.name,s.cid,s.type,s.logo,s.score')
							 | 
						||
| 
								 | 
							
								            ->leftJoin('shop s', 's.id=sf.shop_id')
							 | 
						||
| 
								 | 
							
								            ->where($where)
							 | 
						||
| 
								 | 
							
								            ->order('sf.update_time', 'desc')
							 | 
						||
| 
								 | 
							
								            ->page($get['page_no'], $get['page_size'])
							 | 
						||
| 
								 | 
							
								            ->select()
							 | 
						||
| 
								 | 
							
								            ->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $count = ShopFollow::alias('sf')->where($where)->count();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $typeDesc = [1=>'官方自营', 2=>'入驻商家'];
							 | 
						||
| 
								 | 
							
								        foreach($lists as &$item) {
							 | 
						||
| 
								 | 
							
								            // 商家类型
							 | 
						||
| 
								 | 
							
								            $item['type_desc'] = $typeDesc[$item['type']];
							 | 
						||
| 
								 | 
							
								            // 主营类目
							 | 
						||
| 
								 | 
							
								            $item['cid_desc'] = ShopCategory::where('id', $item['cid'])->value('name');
							 | 
						||
| 
								 | 
							
								            // logo
							 | 
						||
| 
								 | 
							
								            $item['logo'] = UrlServer::getFileUrl($item['logo']);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $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;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |