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);
 | 
						|
    }
 | 
						|
 | 
						|
} |