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