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