/** *计算某个经纬度的周围某段距离的范围SQL语句 * *@param lng float 经度 *@param lat float 纬度 *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米 *@return array $p_where */ public static function returnWhereForDBToolAroundPoint($lng, $lat, $distance = 0.5) { $squares = W2Map::returnSquarePoint($lng, $lat, $distance); $p_where = array(); $p_where['lat > \'%s\''] = $squares['right-bottom']['lat']; $p_where['lat < \'%s\''] = $squares['left-top']['lat']; $p_where['lng > \'%s\''] = $squares['left-top']['lng']; $p_where['lng < \'%s\''] = $squares['right-bottom']['lng']; return $p_where; }
public static function actionList() { //周本筛选 if (W2HttpRequest::getRequestString('weekThis') == 1) { if (!empty(W2HttpRequest::getRequestString('weeks', false))) { $where = JobHandler::myCheckWeek(W2HttpRequest::getRequestString('weeks', false)); } else { $where = JobHandler::getCheckedweek(Utility::getCurrentUserID()); } } //附近筛选 $lng = W2HttpRequest::getRequestFloat('lng'); //经度 $lat = W2HttpRequest::getRequestFloat('lat'); //纬度 if (!empty($lng) && !empty($lat)) { $point = W2Map::returnSquarePoint($lng, $lat, 1.5); $where_point = JobHandler::getPointWhere($point); if (!empty($where_point)) { $p_where['lat %s'] = $where_point["lat"]; $p_where['lng %s'] = $where_point["lng"]; } } $p_where = array(); $p_where['id in (%s)'] = W2HttpRequest::getRequestArrayString('ids', false, true); if (!empty($where)) { $p_where['jobStartDate %s'] = $where; } $p_where['id'] = W2HttpRequest::getRequestInt('id'); // $p_where['bossGenre'] = W2HttpRequest::getRequestInt('bossgenre'); //雇主类型 1学生 11个人 21公司 31@bang 企业类型 22私营、23事业单位、24上市公司、25外资 $p_where['jobType'] = W2HttpRequest::getRequestInt('jobtype'); //任务类型 1事件型 2实习生型 // $p_where['tagID'] = W2HttpRequest::getRequestInt('tagid');//标签ID $p_where['userID'] = W2HttpRequest::getRequestInt('userid'); //筛选用户ID $p_where['jobStartDate >= \'%s\''] = W2HttpRequest::getRequestDate('jobstartdatestart'); //工作开始时间 $p_where['jobStartDate < \'%s\''] = W2HttpRequest::getRequestDate('jobstartdateend'); //工作开始时间 $p_where['jobEndDate >= \'%s\''] = W2HttpRequest::getRequestDate('jobenddatestart'); //工作结束时间 $p_where['jobEndDate < \'%s\''] = W2HttpRequest::getRequestDate('jobenddateend'); //工作结束时间 $p_where['jobAreaID'] = W2HttpRequest::getRequestInt('jobareaid'); //工作城市地区ID $p_where['address'] = W2HttpRequest::getRequestString('address', false); //地址 $p_where['jobberCount'] = W2HttpRequest::getRequestInt('jobbercount'); //招收人数 $p_where['money'] = W2HttpRequest::getRequestFloat('money'); //薪酬 $p_where['advanceMoney'] = W2HttpRequest::getRequestFloat('advancemoney'); //预付款金额 $p_where['advanceType'] = W2HttpRequest::getRequestInt('advancetype'); //预付款方式 0: 不存在 11:余额 21: 支付宝 31:微信 41:网银 $p_where['advanceTime >= \'%s\''] = W2HttpRequest::getRequestDateTime('advancetimestart'); //预付款时间 $p_where['advanceTime < \'%s\''] = W2HttpRequest::getRequestDateTime('advancetimeend'); //预付款时间 $p_where['payType'] = W2HttpRequest::getRequestInt('paytype'); //结算方式 0一次性结算 1日结 2周结 3月结 $p_where['payDay'] = W2HttpRequest::getRequestInt('payday'); //结算日期 每周x日 或 每月x日 $p_where['description'] = W2HttpRequest::getRequestString('description', false); //任务介绍 $p_where['feedbackType'] = W2HttpRequest::getRequestInt('feedbacktype'); //汇报单位 1分钟 2小时 3天 $p_where['feedbackRate'] = W2HttpRequest::getRequestInt('feedbackrate'); //汇报频次 $p_where['schoolIDs'] = W2HttpRequest::getRequestString('schoolids', false); //要求学校 $p_where['professionalIDs'] = W2HttpRequest::getRequestString('professionalids', false); //要求专业 $p_where['degreeTypes'] = W2HttpRequest::getRequestString('degreetypes', false); //要求学位 $p_where['status'] = STATUS_NORMAL; //默认列表页只筛选STATUS_NORMAL状态的数据 $p_where['jobStatus'] = W2HttpRequest::getRequestInt('jobstatus'); //0: 不存在 11: 招募中 21: 进行中 31:已结束 $p_where['createTime >= \'%s\''] = W2HttpRequest::getRequestDateTime('createtimestart'); //创建时间 $p_where['createTime < \'%s\''] = W2HttpRequest::getRequestDateTime('createtimeend'); //创建时间 $p_where['modifyTime >= \'%s\''] = W2HttpRequest::getRequestDateTime('modifytimestart'); //修改时间 $p_where['modifyTime < \'%s\''] = W2HttpRequest::getRequestDateTime('modifytimeend'); //修改时间 //根据权限不同,支持的筛选功能也可以不同 switch ($auth = static::getAuthIfUserCanDoIt(Utility::getCurrentUserID(), 'list')) { case 'admin': //有管理权限 $p_where['status'] = W2HttpRequest::getRequestInt('status', null, true, false, STATUS_NORMAL); //管理员可以筛选数据状态 //管理员可以筛选数据状态 case 'self': //作者 //作者 case 'normal': //正常用户 // if ($auth == 'normal') // { // $p_where['userID'] = Utility::getCurrentUserID();//普通用户,默认只能筛选自己名下数据。 // } //正常用户 // if ($auth == 'normal') // { // $p_where['userID'] = Utility::getCurrentUserID();//普通用户,默认只能筛选自己名下数据。 // } case 'draft': //未激活 //未激活 case 'pending': //待审禁言 //待审禁言 case 'disabled': //封号 //封号 case 'visitor': //游客 break; default: return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您没有权限执行该操作'); break; } $_order = W2HttpRequest::getRequestString('order', false, ''); switch (strtolower($_order)) { case 'id': case 'userid': //发布用户ID //发布用户ID case 'bossgenre': //雇主类型 1学生 11个人 21公司 31@bang 企业类型 22私营、23事业单位、24上市公司、25外资 //雇主类型 1学生 11个人 21公司 31@bang 企业类型 22私营、23事业单位、24上市公司、25外资 case 'jobtype': //任务类型 1事件型 2实习生型 //任务类型 1事件型 2实习生型 case 'tagid': //标签ID //标签ID case 'jobstartdate': //工作开始时间 //工作开始时间 case 'jobenddate': //工作结束时间 //工作结束时间 case 'jobareaid': //工作城市地区ID //工作城市地区ID case 'address': //地址 //地址 case 'lng': //经度 //经度 case 'lat': //纬度 //纬度 case 'jobbercount': //招收人数 //招收人数 case 'money': //薪酬 //薪酬 case 'advancemoney': //预付款金额 //预付款金额 case 'advancetype': //预付款方式 0: 不存在 11:余额 21: 支付宝 31:微信 41:网银 //预付款方式 0: 不存在 11:余额 21: 支付宝 31:微信 41:网银 case 'advancetime': //预付款时间 //预付款时间 case 'paytype': //结算方式 0一次性结算 1日结 2周结 3月结 //结算方式 0一次性结算 1日结 2周结 3月结 case 'payday': //结算日期 每周x日 或 每月x日 //结算日期 每周x日 或 每月x日 case 'feedbacktype': //汇报单位 1分钟 2小时 3天 //汇报单位 1分钟 2小时 3天 case 'feedbackrate': //汇报频次 //汇报频次 case 'schoolids': //要求学校 //要求学校 case 'professionalids': //要求专业 //要求专业 case 'degreetypes': //要求学位 //要求学位 case 'status': //0: 不存在 1: 正常 2: 待审 3:草稿 //0: 不存在 1: 正常 2: 待审 3:草稿 case 'jobstatus': //0: 不存在 11: 招募中 21: 进行中 31:已结束 //0: 不存在 11: 招募中 21: 进行中 31:已结束 case 'createtime': //创建时间 //创建时间 case 'modifytime': //修改时间 $p_order = $_order; break; case '': case 'default': $p_order = 'id'; break; default: return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '请使用可选的排序方案。'); break; } $p_countThis = -1; return static::aList($p_where, $p_order, $p_pageIndex = null, $p_pageSize = null, $p_countThis, $isDetail = false); }