96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
namespace app\model;
 | 
						|
 | 
						|
/**
 | 
						|
 * 业绩详情
 | 
						|
 * Class AchievementInfo
 | 
						|
 * @package app\model
 | 
						|
 */
 | 
						|
class AchievementInfo extends Base
 | 
						|
{
 | 
						|
    public static function onAfterInsert($achievementInfo)
 | 
						|
    {
 | 
						|
        $achievementInfo->sort = $achievementInfo->id;
 | 
						|
        $achievementInfo->save();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 根据业绩ID查询是否有关联的详情记录
 | 
						|
     * @param int $achievementId
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public static function hasByAchievementId($achievementId)
 | 
						|
    {
 | 
						|
        $resp = false;
 | 
						|
        $count = self::where('achievement_id', $achievementId)->count();
 | 
						|
        if($count) {
 | 
						|
            $resp = true;
 | 
						|
        }
 | 
						|
        return $resp;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 删除业绩相关的详情记录
 | 
						|
     * @param $achievementId
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public static function delByAchievementId($achievementId)
 | 
						|
    {
 | 
						|
       return self::where('achievement_id', $achievementId)->delete();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取业绩相关的详情记录
 | 
						|
     * @param int $achievementId
 | 
						|
     * @param bool $onlyVisible
 | 
						|
     * @param array $order
 | 
						|
     * @return array
 | 
						|
     * @throws \think\db\exception\DataNotFoundException
 | 
						|
     * @throws \think\db\exception\DbException
 | 
						|
     * @throws \think\db\exception\ModelNotFoundException
 | 
						|
     */
 | 
						|
    public static function getByAchievementId($achievementId, $onlyVisible = false, $order = [])
 | 
						|
    {
 | 
						|
        if(empty($order)) {
 | 
						|
            $order = ['sort'=>'desc'];
 | 
						|
        }
 | 
						|
        return self::where('achievement_id', $achievementId)
 | 
						|
        ->when($onlyVisible, function ($query) {
 | 
						|
            $query->where('visible', 1);
 | 
						|
        })
 | 
						|
        ->order($order)
 | 
						|
        ->select()
 | 
						|
        ->toArray();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 查询业绩相关的项目并以业绩ID进行分组返回
 | 
						|
     * @param array $achievementIds
 | 
						|
     * @param bool $onlyVisible
 | 
						|
     * @param array $order
 | 
						|
     * @return array
 | 
						|
     * @throws \think\db\exception\DataNotFoundException
 | 
						|
     * @throws \think\db\exception\DbException
 | 
						|
     * @throws \think\db\exception\ModelNotFoundException
 | 
						|
     */
 | 
						|
    public static function getGroupByAchievementIds($achievementIds, $onlyVisible = false, $order = [])
 | 
						|
    {
 | 
						|
        $data = [];
 | 
						|
        if(empty($order)) {
 | 
						|
            $order = ['sort'=>'desc'];
 | 
						|
        }
 | 
						|
        $items = self::whereIn('achievement_id', $achievementIds)
 | 
						|
            ->when($onlyVisible, function ($query) {
 | 
						|
                $query->where('visible', 1);
 | 
						|
            })
 | 
						|
            ->order($order)
 | 
						|
            ->select()
 | 
						|
            ->toArray();
 | 
						|
        if(count($items) > 0) {
 | 
						|
            foreach ($items as $item) {
 | 
						|
                $data[$item['achievement_id']][] = $item;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $data;
 | 
						|
    }
 | 
						|
} |