50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
namespace app\model;
 | 
						|
 | 
						|
class History extends Base
 | 
						|
{
 | 
						|
    public static function onAfterInsert($item)
 | 
						|
    {
 | 
						|
        $item->sort  = $item->id;
 | 
						|
        $item->save();
 | 
						|
    }
 | 
						|
 | 
						|
    public static function getPaginateList($categoryId, $per = 20,  $isSample = false)
 | 
						|
    {
 | 
						|
        $paginate = [
 | 
						|
            'list_rows' => $per
 | 
						|
        ];
 | 
						|
        $items = self::where('category_id', $categoryId)->order('sort', 'desc')->paginate($paginate, $isSample);
 | 
						|
        if(!$items->isEmpty()) {
 | 
						|
            $ids = $items->column('id');
 | 
						|
            $infoList = HistoryInfo::getByHistoryIds($ids);
 | 
						|
            foreach ($items as $k => $item) {
 | 
						|
                $items[$k]['info'] = $infoList[$item['id']] ?? [];
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $items;
 | 
						|
    }
 | 
						|
 | 
						|
    public static function getByCategoryId($categoryId, $onlyVisible = false, $defaultNum = -1)
 | 
						|
    {
 | 
						|
        $items = self::where('category_id', $categoryId)
 | 
						|
            ->when($onlyVisible, function($query){
 | 
						|
                $query->where('visible', 1);
 | 
						|
            })
 | 
						|
            ->order('sort', 'desc')
 | 
						|
            ->select();
 | 
						|
        if(!$items->isEmpty()) {
 | 
						|
            $ids = $items->column('id');
 | 
						|
            $infoList = [];
 | 
						|
            if ($defaultNum != 0) {
 | 
						|
                $infoList = HistoryInfo::getByHistoryIds($ids, $onlyVisible);
 | 
						|
            }
 | 
						|
            foreach ($items as $k => $item) {
 | 
						|
                $infos = $infoList[$item['id']] ?? [];
 | 
						|
                $infoData = $defaultNum > 0 ? array_slice($infos, 0, $defaultNum, false) : $infos;
 | 
						|
                $items[$k]['info'] = $infoData;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $items->toArray();
 | 
						|
    }
 | 
						|
} |