thinkphp order 多字段并带有条件

今天碰到这样的需求,查询出来的数据先把未通过审核的数据排前面并以时间的升序排列,通过审核的数据时间的降序排列。想了一下写出自己的做法。初学thinkphp有点水。

$infos=$cash->alias('a')->order("a.status,(case when a.status=0 then create_time end),(case when a.status>0 then create_time end) desc")->where($map)->page($page.','.$page_count)->join($arr)->select();