zoukankan      html  css  js  c++  java
  • thinkphp5.0.20表达式查询

    直接上代码,欢迎大家阅读

        public function workTopList()
        {
            $user_id = input('param.user_id');
    
            //排序   0序号(大-小)  1距离排序(从小到大)   2最新发布(addtime从大到小)   3热门兼职(is_urgent)
            $sort = trim(input('param.sort'));
    
            //用户当时的经纬度信息
            $latitude = input('param.latitude');
            $longitude = input('param.longitude');
    
            //一级分类nid
            $nidone = empty(input('param.nidone')) ? '' : input('param.nidone');
    
            //二级分类nid
            $nidtwo = empty(input('param.nidtwo')) ? '' : input('param.nidtwo');
    
            $citycode = input('param.citycode');
    
            //区域id
            $countycode = input('param.countycode/a');
            $countycode = count($countycode)>0 ? $countycode : '';
    
            //性别要求 0:不限 1:男 2:女
            $sexCond = empty(input('param.sexCond')) ? 0 :input('param.sexCond');
    
            //其他条件 0选择 1没选择
            $otherCond = empty(input('param.otherCond')) ? 0 : input('param.otherCond');
    
    
    
            //测试数据
            // $user_id = 1;
            // $sort = 1;
    
            // $latitude = '24.98695';
            // $longitude = '118.88637';
    
            // $nidone = '';
            // $nidtwo = '';
    
            // $citycode = 350200;
            // $countycode = [];
            // $sexCond = 0;
            // $otherCond = 1;
    
    
    
            //当前页码,默认为第一页
            $pageNum = empty(input('param.pageNum')) ? 1 : input('param.pageNum');
            //每页数量
            $numPerPage = 8;
    
            if(empty($user_id)){
                $result['code'] = 2;
                $result['msg'] = '暂无用户信息';
                return json($result);
            }
    
            //初始化查询条件
            $where['is_del'] = 0;
            //只有1级分类不为空,才能有二级分类
            if(!empty($nidone)){
                if(!empty($nidtwo)){
                    $where['one_fnid|two_fnid|three_fnid'] = $nidone;
                    $where['one_nid|two_nid|three_nid'] = $nidtwo;
                }else{
                    $where['one_fnid|two_fnid|three_fnid'] = $nidone;
                }
            }
    
            //限制性别
            if(!empty($sexCond)){
                $where['sex'] = $sexCond == 1 ? ['in','0,1'] : ['in','0,2'];
            }
    
            //其他条件查询
            if(empty($otherCond)){
                $a = 1;
                $where[] = ['exp',Db::raw("find_in_set($a,other_condition)")];
            }else{
                $a = 1;
                $where[] = ['exp',Db::raw("!find_in_set($a,other_condition)")];
            }
            $a = 1;
            $where[] = ['exp',Db::raw("locate($a,addip) != 0")];
    
            if(!empty($countycode)){
                $where['threecode'] = ['in',$countycode];
            }else{
                $where['twocode'] = ['in',$citycode];
            }
    
            //起始数据
            $index = ($pageNum-1)*$numPerPage;
    
            if($sort != 1){
                if($sort == 0 || $sort == -1){
                    $orderArr['orders'] = 'desc';
                }elseif($sort == 2){
                    $orderArr['addtime'] = 'desc';
                }elseif($sort == 3){
                    $orderArr['is_urgent'] = 'desc';
                }
    
                $now = Db::table('work')->where($where)->order($orderArr)->field('addip,addtime,work_detail,is_del,orders,one_fnid,two_fnid,three_fnid,one_nid,two_fnid,three_fnid',true)->limit($index,$numPerPage)->select();
                //echo Db::getLastSql() . "<br/>";
            }else{
                if(empty($latitude) || empty($longitude)){
                    $result['code'] = 2;
                    $result['msg'] = '当前位置未确定!';
                    return json($result);
                }
                $now = Db::table('work')->where($where)->field("id,title,need_nums,detailaddress,onecode,twocode,threecode,province,city,county,latitude,longitude,sex,pay_type,work_time,cost_type,cost,is_urgent,page_view,other_condition,round(6378.138*2*asin(sqrt(pow(sin((latitude*pi()/180-$latitude*pi()/180)/2),2)+cos(latitude*pi()/180)*cos($latitude*pi()/180)* pow(sin((longitude*pi()/180-$longitude*pi()/180)/2),2)))*1000) distance")->order('distance asc')->limit($index,$numPerPage)->select();
                //echo Db::getLastSql() . "<br/>";
            }
            $total = Db::table('work')->where($where)->count('id');
    
    
            $nowTotal = count($now);
            if($nowTotal>0){
                foreach ($now as $k=>$v){
                    $danwei = $v['cost_type'] == 0 ? '小时' : ($v['cost_type'] == 1 ? '其他' : '月');
                    $now[$k]['newPrice'] = "{$v['cost']}元/{$danwei}";
                }
            }
    
            $result['total'] = $total;
            $alreadyLoad = ($pageNum-1)*$numPerPage + $nowTotal;
            if($nowTotal>0){
                if($total-$alreadyLoad<=0){
                    $result['havenums'] = 0;
                }else{
                    $result['havenums'] = $total-$alreadyLoad;
                }
                $result['workList'] = $now;
                $result['code'] = 1;
            }else{
                $result['workList'] = [];
                $result['code'] = 2;
            }
            return json($result);
        }
    

      

  • 相关阅读:
    从投影的角度理解pca:向量,投影,基,内积,坐标,维数,分散程度,方差,协方差矩阵,对角化,特征值分解,主成分分析PCA
    随机变量的方差variance & 随机向量的协方差矩阵covariance matrix
    对于随机变量的标准差standard deviation、样本标准差sample standard deviation、标准误差standard error的解释
    fmri当前相关软件工具整理
    NPAIRS框架的理解
    phy+
    当前,思路+进展+idea+下一步要做的工作
    dagli最早干了这样一件事儿 Localization of Cardiac-Induced Signal Change in fMRI
    zollei的心动噪声探索性识别
    第九章——中位数和顺序统计量
  • 原文地址:https://www.cnblogs.com/lyzaidxh/p/10233065.html
Copyright © 2011-2022 走看看