45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.4 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', 'asc')->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) | ||
|  |     { | ||
|  |         $items = self::where('category_id', $categoryId) | ||
|  |             ->when($onlyVisible, function($query){ | ||
|  |                 $query->where('visible', 1); | ||
|  |             }) | ||
|  |             ->order('sort', 'asc') | ||
|  |             ->select(); | ||
|  |         if(!$items->isEmpty()) { | ||
|  |             $ids = $items->column('id'); | ||
|  |             $infoList = HistoryInfo::getByHistoryIds($ids, $onlyVisible); | ||
|  |             foreach ($items as $k => $item) { | ||
|  |                 $items[$k]['info'] = $infoList[$item['id']] ?? []; | ||
|  |             } | ||
|  |         } | ||
|  |         return $items->toArray(); | ||
|  |     } | ||
|  | } |