short-play-api/application/common/repository/SkitsLibraryReposotpry.php
2023-01-29 10:26:52 +08:00

90 lines
2.6 KiB
PHP

<?php
namespace app\common\repository;
use think\Db;
use app\common\newmodel\SkitsLibraryModel;
class SkitsLibraryReposotpry extends SkitsLibraryModel
{
/**
* 根据逗号查询数据 function
*
* @author dotdotdot <6383846@qq.com>
* @date 2022-08-15
* @param array $fields
* @param integer $top
* @param integer $limit
* @return array
*/
public function selectFindInTop(array $fields, int $top, int $limit): array
{
return SkitsLibraryModel::field($fields)->where(['' => ['exp', sprintf('find_in_set(%d,top)', $top)], 'status' => 1])->order('sort', 'desc')->limit($limit)->select()->toArray();
}
/**
* 查询随机数据 function
*
* @author dotdotdot <6383846@qq.com>
* @date 2022-08-10
* @param array $fields
* @param array $order
* @param integer $limit
* @return array
*/
public function selectByRand(array $fields, array $order, int $limit = 6): array
{
return SkitsLibraryModel::field($fields)->where(['status' => 1])->order($order)->limit($limit)->select()->toArray();
}
/**
* 查询搜索信息 function
*
* @author dotdotdot <6383846@qq.com>
* @date 2022-08-10
* @param string $keyWords
* @param integer $page
* @param integer $limit
* @return array
*/
public function selectSearch(string $keyWords, int $page, int $limit): array
{
return Db::view('Skits_library', 'id,name,cover')
->view('Skits_video', ['max(Skits_video.order)' => 'order'], 'Skits_library.id=Skits_video.sid and Skits_library.status=Skits_video.status')
->where(['Skits_library.name' => ['like', '%' . $keyWords . '%']])
->group('Skits_video.sid')
->limit($page, $limit)
->select();
}
/**
* 查询部分Id function
*
* @author dotdotdot <6383846@qq.com>
* @date 2022-08-17
* @param array $fields
* @param array $id
* @return array
*/
public function selectInId(array $fields, array $id): array
{
return SkitsLibraryReposotpry::field($fields)->whereIn('id', $id)->select()->toArray();
}
/**
* 根据ID查询 function
*
* @author dotdotdot <6383846@qq.com>
* @date 2022-08-15
* @param array $fields
* @param integer $id
* @return array
*/
public function selectById(array $fields, int $id): array
{
$object = SkitsLibraryModel::field($fields)->where(['id' => $id, 'status' => 1])->find();
return empty($object) ? [] : $object->toArray();
}
}