56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace app\model; | ||
|  | 
 | ||
|  | /** | ||
|  |  * 业绩管理 | ||
|  |  * Class Achievement | ||
|  |  * @package app\model | ||
|  |  */ | ||
|  | class Achievement extends Base | ||
|  | { | ||
|  |     public static function onAfterInsert($achievement) | ||
|  |     { | ||
|  |         $achievement->sort = $achievement->id; | ||
|  |         $achievement->save(); | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function getPaginateList($categoryId, $per = 20,  $isSample = false , $onlyVisible = false, $order = []) | ||
|  |     { | ||
|  |         $paginate = [ | ||
|  |             'list_rows' => $per | ||
|  |         ]; | ||
|  |         if(empty($order)) { | ||
|  |             $order = ['sort'=>'desc']; | ||
|  |         } | ||
|  |         return self::where('category_id', $categoryId) | ||
|  |         ->when($onlyVisible, function ($query) { | ||
|  |             $query->where('visible', 1); | ||
|  |         }) | ||
|  |         ->order($order) | ||
|  |         ->paginate($paginate, $isSample); | ||
|  |     } | ||
|  | 
 | ||
|  |     public static function getListByCategoryId($categoryId, $per = 20, $onlyVisible = false, $order = []) | ||
|  |     { | ||
|  |         if(empty($order)) { | ||
|  |             $order = ['sort'=>'desc']; | ||
|  |         } | ||
|  |         $items =  self::where('category_id', $categoryId) | ||
|  |             ->when($onlyVisible, function ($query) { | ||
|  |                 $query->where('visible', 1); | ||
|  |             }) | ||
|  |             ->order($order) | ||
|  |             ->limit($per) | ||
|  |             ->column('*', 'id'); | ||
|  |         if(count($items) > 0) { | ||
|  |             $ids = array_keys($items); | ||
|  |             $infoList = AchievementInfo::getGroupByAchievementIds($ids, $onlyVisible); | ||
|  |             foreach ($items as &$item) { | ||
|  |                 $item['infos'] = $infoList[$item['id']] ?? []; | ||
|  |             } | ||
|  |             unset($item); | ||
|  |         } | ||
|  |         return array_values($items); | ||
|  |     } | ||
|  | 
 | ||
|  | } |