|
@@ -1,6 +1,9 @@
|
|
|
<?php
|
|
|
+
|
|
|
namespace app\mainapp\controller;
|
|
|
|
|
|
+use app\common\model\Worder;
|
|
|
+use app\common\model\WorkerThird;
|
|
|
use app\mainapp\BaseController;
|
|
|
use think\facade\Db;
|
|
|
use think\facade\Session;
|
|
@@ -21,98 +24,123 @@ use app\common\model\Sinpage as SinpageModel;
|
|
|
class Index extends BaseController
|
|
|
{
|
|
|
|
|
|
- public function getHomeData()
|
|
|
- {
|
|
|
- $userid = input('userid/d', 0);
|
|
|
- $workerall = WorkerModel::where('userid','=',$userid)->select();
|
|
|
- $sinpage = SinpageModel::where(1)->find();
|
|
|
- page_result(0, "", array(
|
|
|
- 'apptreaty' => $sinpage->apptreaty,
|
|
|
- 'workerall' => $workerall->isEmpty() ? null : $workerall
|
|
|
- ));
|
|
|
- }
|
|
|
-
|
|
|
- public function getIndexData()
|
|
|
- {
|
|
|
- $param = ParamModel::where(1)->find();
|
|
|
- $slide = SlideModel::where('pagetab','=','index')->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
|
|
|
- $navigation = NavigationModel::where('pagetab','=','index')->order(['priority'=>'desc','id'=>'desc'])->select();
|
|
|
- $article = ArticleModel::where([['status','=',1],['priority','>',0],['status','=',1],['createtime','<=',time()]])->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
|
|
|
- page_result(0, "", array(
|
|
|
- 'param' => $param,
|
|
|
- 'slide' => $slide,
|
|
|
- 'navigation' => $navigation,
|
|
|
- 'article' => $article
|
|
|
- ));
|
|
|
- }
|
|
|
-
|
|
|
- public function listComjobs()
|
|
|
- {
|
|
|
- ComjobsModel::where('enddate', '<', time()-86400)->where('status', '=', 3)->update(['status' => 4]);
|
|
|
- $ppage = input('ppage/d', 1);
|
|
|
- $psize = input('psize/d', 20);
|
|
|
- $map[] = ['createtime','<=',time()];
|
|
|
- $map[] = ['priority','>',0];
|
|
|
- $map[] = ['status','in','3,4'];
|
|
|
- $plist = ComjobsModel::with(['worker'])->where($map)->order(['status'=>'asc','priority'=>'desc','updatetime'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->select();
|
|
|
+ public function getHomeData()
|
|
|
+ {
|
|
|
+ $userid = input('userid/d', 0);
|
|
|
+ $workerall = WorkerModel::where('userid', '=', $userid)->select();
|
|
|
+ $sinpage = SinpageModel::where(1)->find();
|
|
|
+ page_result(0, "", [
|
|
|
+ 'apptreaty' => $sinpage->apptreaty,
|
|
|
+ 'workerall' => $workerall->isEmpty() ? null : $workerall,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getIndexData()
|
|
|
+ {
|
|
|
+ $param = ParamModel::where(1)->find();
|
|
|
+ $slide = SlideModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
|
|
|
+ $navigation = NavigationModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->select();
|
|
|
+ $article = ArticleModel::where([['status', '=', 1], ['priority', '>', 0], ['status', '=', 1], ['createtime', '<=', time()]])->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
|
|
|
+ page_result(0, "", [
|
|
|
+ 'param' => $param,
|
|
|
+ 'slide' => $slide,
|
|
|
+ 'navigation' => $navigation,
|
|
|
+ 'article' => $article,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function listComjobs()
|
|
|
+ {
|
|
|
+ ComjobsModel::where('enddate', '<', time() - 86400)->where('status', '=', 3)->update(['status' => 4]);
|
|
|
+ $ppage = input('ppage/d', 1);
|
|
|
+ $psize = input('psize/d', 20);
|
|
|
+ $map[] = ['createtime', '<=', time()];
|
|
|
+ $map[] = ['priority', '>', 0];
|
|
|
+ $map[] = ['status', 'in', '3,4'];
|
|
|
+ $plist = ComjobsModel::with(['worker'])->where($map)->order(['status' => 'asc', 'priority' => 'desc', 'updatetime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->select();
|
|
|
+
|
|
|
+ //第三方id
|
|
|
+ $third_ids = [];
|
|
|
+ $third_lists = [];
|
|
|
+ foreach ($plist as $l) {
|
|
|
+ if (!empty($l['third_id'])) {
|
|
|
+ $third_ids[] = $l['third_id'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!empty($third_ids)) {
|
|
|
+ $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
|
|
|
+ }
|
|
|
|
|
|
$plist = $plist->toArray();
|
|
|
- foreach ($plist as $k => $v) {
|
|
|
- if (!empty($v['company_name'])) {
|
|
|
- $plist[$k]['worker']['title'] = $v['company_name'];
|
|
|
+ foreach ($plist as $k => $v) {
|
|
|
+ if (!empty($v['third_id'])) {
|
|
|
+ $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
|
|
|
}
|
|
|
}
|
|
|
- page_result(0, "", array(
|
|
|
- 'plist' => $plist,
|
|
|
- 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
|
|
|
- ));
|
|
|
- }
|
|
|
+
|
|
|
+ page_result(0, "", [
|
|
|
+ 'plist' => $plist,
|
|
|
+ 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
**
|
|
|
* 附近职位
|
|
|
* */
|
|
|
public function listComjobsofnear()
|
|
|
{
|
|
|
- $lat=input('lat',0); //纬度
|
|
|
- $lng=input('lng',0); //经度
|
|
|
- $radius=input('radius',0); //半径
|
|
|
- //$scope = $this->calcScope($lat, $lng, $radius); // 调用范围计算函数,获取最大最小经纬度
|
|
|
- if(input('ppage/d') == '' or input('ppage/d') == 0){
|
|
|
+ $lat = input('lat', 0); //纬度
|
|
|
+ $lng = input('lng', 0); //经度
|
|
|
+ if (input('ppage/d') == '' or input('ppage/d') == 0) {
|
|
|
$page = 1;
|
|
|
- }else{
|
|
|
- $page=input('ppage/d');
|
|
|
+ } else {
|
|
|
+ $page = input('ppage/d');
|
|
|
}
|
|
|
- if(input('psize/d') == ''){
|
|
|
+ if (input('psize/d') == '') {
|
|
|
$limit = 20;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$limit = input('psize/d');
|
|
|
}
|
|
|
- $amount = 0;
|
|
|
$pagelistcount = $limit; //每页显示条数
|
|
|
- $sql = distance_sql($lng,$lat);
|
|
|
- //$sql = distance_sql();
|
|
|
- $row = Db::query("select * ,".$sql."as distance from echo_comjobs where deletetime=0 and status in (3,4) order by distance limit ".$pagelistcount*($page-1).",".$pagelistcount);
|
|
|
-
|
|
|
- $count = Db::table('echo_comjobs')->count();
|
|
|
- $Pages = ceil($count/$limit);
|
|
|
- foreach ($row as $k => $v){
|
|
|
- $row[$k]["tags"]=json_decode($v["tags"]);
|
|
|
- if (!empty($v['company_name'])) {
|
|
|
- $row[$k]["worker"]["title"]=$v["company_name"];
|
|
|
+ $sql = distance_sql($lng, $lat);
|
|
|
+ $row = Db::query("select * ," . $sql . "as distance from echo_comjobs where deletetime=0 and status in (3,4) order by distance limit " . $pagelistcount * ($page - 1) . "," . $pagelistcount);
|
|
|
+
|
|
|
+ //第三方id和工作列表
|
|
|
+ $third_ids = [];
|
|
|
+ $third_lists = [];
|
|
|
+ $worker_ids = [];
|
|
|
+ $worker_lists = [];
|
|
|
+ foreach ($row as $l) {
|
|
|
+ if (!empty($l['third_id'])) {
|
|
|
+ $third_ids[] = $l['third_id'];
|
|
|
+ }
|
|
|
+ $worker_ids[] = $l["workerid"];
|
|
|
+ }
|
|
|
+ if (!empty($third_ids)) {
|
|
|
+ $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
|
|
|
+ }
|
|
|
+ if (!empty($worker_ids)) {
|
|
|
+ $worker_lists = WorkerModel::where('id', 'in', $worker_ids)->column('*', 'id');
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($row as $k => $v) {
|
|
|
+ $row[$k]["tags"] = json_decode($v["tags"]);
|
|
|
+ if (!empty($v['third_id'])) {
|
|
|
+ $row[$k]["worker"]["title"] = $third_lists[$v['third_id']]['name'];
|
|
|
} else {
|
|
|
- $workerinfo=WorkerModel::find($v["workerid"]);
|
|
|
- $row[$k]["worker"]["title"]=$workerinfo["title"];
|
|
|
+ $workerinfo = $worker_lists[($v["workerid"])];
|
|
|
+ $row[$k]["worker"]["title"] = $workerinfo["title"];
|
|
|
}
|
|
|
- $row[$k]["distance"]=round(calcDistance($lat,$lng,$v["latitude"],$v["longitude"]),2)."千米";
|
|
|
- //$row[$k]["distance"]=calcDistance($lat,$lng,$v["latitude"],$v["longitude"])/1000;
|
|
|
+ $row[$k]["distance"] = round(calcDistance($lat, $lng, $v["latitude"], $v["longitude"]), 2) . "千米";
|
|
|
}
|
|
|
- page_result(0, "", array(
|
|
|
- 'plist' => $row,
|
|
|
- 'pstatus' => $limit > count($row) ? 'noMore' : 'more'
|
|
|
- ));
|
|
|
+
|
|
|
+ page_result(0, "", [
|
|
|
+ 'plist' => $row,
|
|
|
+ 'pstatus' => $limit > count($row) ? 'noMore' : 'more',
|
|
|
+ ]);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|