84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								namespace app\shop\logic\user;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Logic;
							 | 
						||
| 
								 | 
							
								use app\common\model\shop\ShopFollow;
							 | 
						||
| 
								 | 
							
								use app\common\model\order\Order;
							 | 
						||
| 
								 | 
							
								use app\common\model\user\User;
							 | 
						||
| 
								 | 
							
								use app\common\server\UrlServer;
							 | 
						||
| 
								 | 
							
								use app\common\enum\ClientEnum;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class UserLogic extends Logic
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public static function lists($get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $shopUserWhere = [
							 | 
						||
| 
								 | 
							
								            ['shop_id', '=', $get['shop_id']],
							 | 
						||
| 
								 | 
							
								            ['status', '=', 1]
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								        // 根据关注时间筛选
							 | 
						||
| 
								 | 
							
								        if(!empty($get['start_time'])) {
							 | 
						||
| 
								 | 
							
								            $shopUserWhere[] = ['update_time', '>=', strtotime($get['start_time'])];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if(!empty($get['end_time'])) {
							 | 
						||
| 
								 | 
							
								            $shopUserWhere[] = ['update_time', '<=', strtotime($get['end_time'])];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        // 获取关注的用户
							 | 
						||
| 
								 | 
							
								        $shopUser = ShopFollow::where($shopUserWhere)->column('user_id', 'user_id');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if(!empty($get['start_time']) || !empty($get['end_time'])) { // 通过关注时间筛选,将不显示下单的用户
							 | 
						||
| 
								 | 
							
								            $orderUser = [];
							 | 
						||
| 
								 | 
							
								        }else{
							 | 
						||
| 
								 | 
							
								            // 获取下过单的用户
							 | 
						||
| 
								 | 
							
								            $orderUser = Order::where([
							 | 
						||
| 
								 | 
							
								                'shop_id' => $get['shop_id']
							 | 
						||
| 
								 | 
							
								            ])->column('user_id', 'user_id');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $mergeUser = array_merge($shopUser, $orderUser);
							 | 
						||
| 
								 | 
							
								        $uniqueUser = array_unique($mergeUser);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $where = [
							 | 
						||
| 
								 | 
							
								            ['id', 'in', $uniqueUser]
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if(isset($get['keyword']) && !empty($get['keyword'])) {
							 | 
						||
| 
								 | 
							
								            $where[] = [$get['keyword_type'], 'like', '%'. $get['keyword'] . '%'];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if(isset($get['client']) && $get['client'] != '') {
							 | 
						||
| 
								 | 
							
								            $where[] = ['client', '=', $get['client']];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $count = User::where($where)->count();
							 | 
						||
| 
								 | 
							
								        $lists = User::field('id,sn,nickname,avatar as abs_avatar,level,level as levelName,client,login_time,create_time')
							 | 
						||
| 
								 | 
							
								            ->append(['client_desc'])
							 | 
						||
| 
								 | 
							
								            ->where($where)
							 | 
						||
| 
								 | 
							
								            ->page($get['page'],$get['limit'])
							 | 
						||
| 
								 | 
							
								            ->select()
							 | 
						||
| 
								 | 
							
								            ->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            'count' => $count,
							 | 
						||
| 
								 | 
							
								            'lists' => $lists
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static function getInfo($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $user =  User::field('id,sn,nickname,avatar,birthday,sex,mobile,client,create_time,login_time,user_money')
							 | 
						||
| 
								 | 
							
								            ->findOrEmpty($id);
							 | 
						||
| 
								 | 
							
								        if($user->isEmpty()) {
							 | 
						||
| 
								 | 
							
								            return [];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $user =$user->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 头像
							 | 
						||
| 
								 | 
							
								        $user['avatar'] = UrlServer::getFileUrl($user['avatar']);
							 | 
						||
| 
								 | 
							
								        // 客户端
							 | 
						||
| 
								 | 
							
								        $user['client_desc'] = ClientEnum::getClient($user['client']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $user;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |