Thinkphp6 whereRaw field Raw case when else用途
原创public function video_list_order(){
try{
//处理搜索条件
$map = [];
//分类:0文章;1视频;2直播
$map[] = [art_type,=,"1"];
//是否删除:0否;1是
$map[] = [is_delete,=,"0"];
//标题搜索
$title = Request::param(title,);
if($title != ){
$map[] = [title,like,"%{$title}%"];
}
//分类搜索
$class_id = Request::param(class_id,);
if($class_id != ){
$map[] = [class_id,=,"$class_id"];
}
//审核状态(0:待提交;1:待审核;2:审核通过;3:审核拒绝)
$status = Request::param(status,);
if($status !== ){
$map[] = [status,=,"$status"];
}
//是否启用:0禁用;1启用
$is_enabled = Request::param(is_enabled,);
if($is_enabled !== ){
$map[] = [is_enabled,=,"$is_enabled"];
}
//发布者
$nick_name = Request::param(nick_name,);
if($nick_name != ){
$map[] = [nick_name,like,"%$nick_name%"];
}
//视频标签
$article_label_name = Request::param(article_label_name,);
if($article_label_name != ){
$map[] = [article_label_name,like,"%$article_label_name%"];
}
$list = Db::table(rui_article)->where($map)
->fieldRaw("(CASE
WHEN all_num=0 THEN TRUNCATE(0,0)
ELSE TRUNCATE(wan_num/all_num*100,0) END) as CompletionRate,id,title,art_type,cover_type,cover_images,label_id,
label_name,article_label_id,article_label_name,status,uid,nick_name,avatar,status,class_id,class_name,
zan_num,virtual_views_num,view_num,collect_num,comment_num,share_num,
is_rec,is_top,is_enabled,is_delete,create_time,update_time,video_url,video_other_url,
wan_num as FinishBroadcasting,wei_num as UnfinishedBroadcasting,all_num as Broadcasting")
->order(CompletionRate,desc)
->order(id,desc)
->page(Request::param(page))->limit(Request::param(limit))
->select()->toArray();
foreach ($list as $k=>$v){
$list[$k][is_rec_bool] = $v[is_rec] == 1 ? true :false;
$list[$k][is_top_bool] = $v[is_top] == 1 ? true :false;
$list[$k][is_enabled_bool] = $v[is_enabled] == 1 ? true :false;
$list[$k][is_delete_bool] = $v[is_delete] == 1 ? true :false;
if(!$v[video\_url]){
$list[$k][video\_url] = $v[video\_other\_url];
}
$list[$k][CompletionRate] = "{$v[CompletionRate]}%";
}
$arr[list] = $list;
$arr[count] = Db::table(rui_article)
->where($map)->count();
}catch (ValidateException $e) {
// 验证失败 输出错误信息
throw new ParameterException([msg=>$e->getError()]);
}
return $arr;
}
$chanpinmaidian_arr = ArticleModel::whereRaw("art_type=1 and status=2 and is_enabled=1 and is_delete=0 and ($chanpinmaidian_map)")
->field(id,title,nick_name,art_type,video_url,video_other_url,zan_num,comment_num,share_num,is_coin_fuli)
->order(id,desc)
->page($page_rand)->limit(1)
->select()->toArray();
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123

