Index.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\mainapp\BaseController;
  4. use think\facade\Db;
  5. use think\facade\Session;
  6. use app\common\model\Slide as SlideModel;
  7. use app\common\model\Notice as NoticeModel;
  8. use app\common\model\Article as ArticleModel;
  9. use app\common\model\Navigation as NavigationModel;
  10. use app\common\model\User as UserModel;
  11. use app\common\model\Worker as WorkerModel;
  12. use app\common\model\Comjobs as ComjobsModel;
  13. use app\common\model\Param as ParamModel;
  14. use app\common\model\Sinpage as SinpageModel;
  15. class Index extends BaseController
  16. {
  17. public function getHomeData()
  18. {
  19. $userid = input('userid/d', 0);
  20. $workerall = WorkerModel::where('userid','=',$userid)->select();
  21. $sinpage = SinpageModel::where(1)->find();
  22. page_result(0, "", array(
  23. 'apptreaty' => $sinpage->apptreaty,
  24. 'workerall' => $workerall->isEmpty() ? null : $workerall
  25. ));
  26. }
  27. public function getIndexData()
  28. {
  29. $param = ParamModel::where(1)->find();
  30. $slide = SlideModel::where('pagetab','=','index')->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
  31. $navigation = NavigationModel::where('pagetab','=','index')->order(['priority'=>'desc','id'=>'desc'])->select();
  32. $article = ArticleModel::where([['status','=',1],['priority','>',0],['status','=',1],['createtime','<=',time()]])->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
  33. page_result(0, "", array(
  34. 'param' => $param,
  35. 'slide' => $slide,
  36. 'navigation' => $navigation,
  37. 'article' => $article
  38. ));
  39. }
  40. public function listComjobs()
  41. {
  42. ComjobsModel::where('enddate', '<', time()-86400)->where('status', '=', 3)->update(['status' => 4]);
  43. $ppage = input('ppage/d', 1);
  44. $psize = input('psize/d', 20);
  45. $map[] = ['createtime','<=',time()];
  46. $map[] = ['priority','>',0];
  47. $map[] = ['status','in','3,4'];
  48. $plist = ComjobsModel::with(['worker'])->where($map)->order(['status'=>'asc','priority'=>'desc','updatetime'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->select();
  49. foreach ($plist as $v) {
  50. if (!empty($v['company_name'])) {
  51. $v['worker']['title'] = $v['company_name'];
  52. }
  53. }
  54. page_result(0, "", array(
  55. 'plist' => $plist,
  56. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  57. ));
  58. }
  59. /*
  60. **
  61. * 附近职位
  62. * */
  63. public function listComjobsofnear()
  64. {
  65. $lat=input('lat',0); //纬度
  66. $lng=input('lng',0); //经度
  67. $radius=input('radius',0); //半径
  68. //$scope = $this->calcScope($lat, $lng, $radius); // 调用范围计算函数,获取最大最小经纬度
  69. if(input('ppage/d') == '' or input('ppage/d') == 0){
  70. $page = 1;
  71. }else{
  72. $page=input('ppage/d');
  73. }
  74. if(input('psize/d') == ''){
  75. $limit = 20;
  76. }else{
  77. $limit = input('psize/d');
  78. }
  79. $amount = 0;
  80. $pagelistcount = $limit; //每页显示条数
  81. $sql = distance_sql($lng,$lat);
  82. //$sql = distance_sql();
  83. $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);
  84. $count = Db::table('echo_comjobs')->count();
  85. $Pages = ceil($count/$limit);
  86. foreach ($row as $k => $v){
  87. $row[$k]["tags"]=json_decode($v["tags"]);
  88. if (!empty($v['company_name'])) {
  89. $row[$k]["worker"]["title"]=$v["company_name"];
  90. } else {
  91. $workerinfo=WorkerModel::find($v["workerid"]);
  92. $row[$k]["worker"]["title"]=$workerinfo["title"];
  93. }
  94. $row[$k]["distance"]=round(calcDistance($lat,$lng,$v["latitude"],$v["longitude"]),2)."千米";
  95. //$row[$k]["distance"]=calcDistance($lat,$lng,$v["latitude"],$v["longitude"])/1000;
  96. }
  97. page_result(0, "", array(
  98. 'plist' => $row,
  99. 'pstatus' => $limit > count($row) ? 'noMore' : 'more'
  100. ));
  101. }
  102. }