65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | 
 | ||
|  | namespace app\api\logic; | ||
|  | 
 | ||
|  | 
 | ||
|  | use app\common\basics\Logic; | ||
|  | use app\common\model\FootprintRecord; | ||
|  | use app\common\server\ConfigServer; | ||
|  | use app\common\server\UrlServer; | ||
|  | 
 | ||
|  | class FootPrintLogic extends Logic | ||
|  | { | ||
|  | 
 | ||
|  |     public static function lists() | ||
|  |     { | ||
|  |         try { | ||
|  |             $config = ConfigServer::get('footprint', 0); | ||
|  |             if (empty($config['footprint_status']) or $config['footprint_status'] === 0) { | ||
|  |                 return ['time' => time(), 'lists' => []]; | ||
|  |             } | ||
|  | 
 | ||
|  |             $where = []; | ||
|  |             if ($config['footprint_duration'] and $config['footprint_duration'] > 0) { | ||
|  |                 $duration = ($config['footprint_duration'] * 60); | ||
|  |                 $time = time() - $duration; //获取多少分钟前
 | ||
|  |                 $where = [ | ||
|  |                     ['create_time', '>=', $time] | ||
|  |                 ]; | ||
|  |             } | ||
|  | 
 | ||
|  |             $model = new FootprintRecord(); | ||
|  |             $lists = $model->field(true)->where($where) | ||
|  |                 ->with(['user' => function ($query) { | ||
|  |                     $query->withAttr('nickname', function ($value) { | ||
|  |                         if (mb_strlen($value) > 4) { | ||
|  |                             return mb_substr($value, 0, 4) . '**'; | ||
|  |                         } | ||
|  |                         return $value; | ||
|  |                     }); | ||
|  |                 }])->order('id', 'desc') | ||
|  |                 ->limit(50) | ||
|  |                 ->append(['time'])->select(); | ||
|  | 
 | ||
|  |             foreach ($lists as &$item) { | ||
|  |                 $item['template'] = self::getTemplate($item); | ||
|  |                 $item['user']['avatar'] = UrlServer::getFileUrl($item['user']['avatar']); | ||
|  |                 unset($item['user_id']); | ||
|  |                 unset($item['foreign_id']); | ||
|  |             } | ||
|  |             return ['time' => time(), 'lists' => $lists]; | ||
|  |         } catch (\Exception $e) { | ||
|  |             self::$error = $e->getMessage(); | ||
|  |             return []; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     // 获取模板
 | ||
|  |     private static function getTemplate($data) | ||
|  |     { | ||
|  |         $nickname = $data['user']['nickname'].' '; | ||
|  |         $time = $data['time']; | ||
|  |         return $nickname.$time.$data['template']; | ||
|  |     } | ||
|  | } |