123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- namespace app\mainapp\controller;
- use app\common\model\ComjobsCate;
- use app\common\model\RensheCode;
- use app\common\model\Worder;
- use app\common\model\WorkerThird;
- use app\mainapp\BaseController;
- use think\facade\Db;
- use think\facade\Session;
- use app\common\model\Slide as SlideModel;
- use app\common\model\Notice as NoticeModel;
- use app\common\model\Article as ArticleModel;
- use app\common\model\Navigation as NavigationModel;
- use app\common\model\User as UserModel;
- use app\common\model\Worker as WorkerModel;
- use app\common\model\Comjobs as ComjobsModel;
- use app\common\model\Param as ParamModel;
- 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, "", [
- '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['third_id'])) {
- $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
- }
- }
- page_result(0, "", [
- 'plist' => $plist,
- 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
- ]);
- }
- /*
- **
- * 附近职位
- * */
- public function listComjobsofnear()
- {
- $lat = input('lat', 0); //纬度
- $lng = input('lng', 0); //经度
- if (input('ppage/d') == '' or input('ppage/d') == 0) {
- $page = 1;
- } else {
- $page = input('ppage/d');
- }
- if (input('psize/d') == '') {
- $limit = 20;
- } else {
- $limit = input('psize/d');
- }
- $pagelistcount = $limit; //每页显示条数
- $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 = $worker_lists[($v["workerid"])];
- $row[$k]["worker"]["title"] = $workerinfo["title"];
- }
- $row[$k]["distance"] = round(calcDistance($lat, $lng, $v["latitude"], $v["longitude"]), 2) . "千米";
- }
- page_result(0, "", [
- 'plist' => $row,
- 'pstatus' => $limit > count($row) ? 'noMore' : 'more',
- ]);
- }
- public function getRensheCode()
- {
- $type = input('type','');
- if (empty($type)) {
- page_result(0, "", []);
- }
- $list = RensheCode::getList($type);
- page_result(0, "", $list);
- }
- public function getComCate()
- {
- $catelist = ComjobsCate::order(['priority' => 'desc', 'id' => 'desc'])->select();
- page_result(0, "", $catelist);
- }
- }
|