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