Index.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\common\model\Worder;
  4. use app\common\model\WorkerThird;
  5. use app\mainapp\BaseController;
  6. use think\facade\Db;
  7. use think\facade\Session;
  8. use app\common\model\Slide as SlideModel;
  9. use app\common\model\Notice as NoticeModel;
  10. use app\common\model\Article as ArticleModel;
  11. use app\common\model\Navigation as NavigationModel;
  12. use app\common\model\User as UserModel;
  13. use app\common\model\Worker as WorkerModel;
  14. use app\common\model\Comjobs as ComjobsModel;
  15. use app\common\model\Param as ParamModel;
  16. use app\common\model\Sinpage as SinpageModel;
  17. class Index extends BaseController
  18. {
  19. public function getHomeData()
  20. {
  21. $userid = input('userid/d', 0);
  22. $workerall = WorkerModel::where('userid', '=', $userid)->select();
  23. $sinpage = SinpageModel::where(1)->find();
  24. page_result(0, "", [
  25. 'apptreaty' => $sinpage->apptreaty,
  26. 'workerall' => $workerall->isEmpty() ? null : $workerall,
  27. ]);
  28. }
  29. public function getIndexData()
  30. {
  31. $param = ParamModel::where(1)->find();
  32. $slide = SlideModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
  33. $navigation = NavigationModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->select();
  34. $article = ArticleModel::where([['status', '=', 1], ['priority', '>', 0], ['status', '=', 1], ['createtime', '<=', time()]])->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
  35. page_result(0, "", [
  36. 'param' => $param,
  37. 'slide' => $slide,
  38. 'navigation' => $navigation,
  39. 'article' => $article,
  40. ]);
  41. }
  42. public function listComjobs()
  43. {
  44. ComjobsModel::where('enddate', '<', time() - 86400)->where('status', '=', 3)->update(['status' => 4]);
  45. $ppage = input('ppage/d', 1);
  46. $psize = input('psize/d', 20);
  47. $map[] = ['createtime', '<=', time()];
  48. $map[] = ['priority', '>', 0];
  49. $map[] = ['status', 'in', '3,4'];
  50. $plist = ComjobsModel::with(['worker'])->where($map)->order(['status' => 'asc', 'priority' => 'desc', 'updatetime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->select();
  51. //第三方id
  52. $third_ids = [];
  53. $third_lists = [];
  54. foreach ($plist as $l) {
  55. if (!empty($l['third_id'])) {
  56. $third_ids[] = $l['third_id'];
  57. }
  58. }
  59. if (!empty($third_ids)) {
  60. $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
  61. }
  62. $plist = $plist->toArray();
  63. foreach ($plist as $k => $v) {
  64. if (!empty($v['third_id'])) {
  65. $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
  66. }
  67. }
  68. page_result(0, "", [
  69. 'plist' => $plist,
  70. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  71. ]);
  72. }
  73. /*
  74. **
  75. * 附近职位
  76. * */
  77. public function listComjobsofnear()
  78. {
  79. $lat = input('lat', 0); //纬度
  80. $lng = input('lng', 0); //经度
  81. if (input('ppage/d') == '' or input('ppage/d') == 0) {
  82. $page = 1;
  83. } else {
  84. $page = input('ppage/d');
  85. }
  86. if (input('psize/d') == '') {
  87. $limit = 20;
  88. } else {
  89. $limit = input('psize/d');
  90. }
  91. $pagelistcount = $limit; //每页显示条数
  92. $sql = distance_sql($lng, $lat);
  93. $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);
  94. //第三方id和工作列表
  95. $third_ids = [];
  96. $third_lists = [];
  97. $worker_ids = [];
  98. $worker_lists = [];
  99. foreach ($row as $l) {
  100. if (!empty($l['third_id'])) {
  101. $third_ids[] = $l['third_id'];
  102. }
  103. $worker_ids[] = $l["workerid"];
  104. }
  105. if (!empty($third_ids)) {
  106. $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
  107. }
  108. if (!empty($worker_ids)) {
  109. $worker_lists = WorkerModel::where('id', 'in', $worker_ids)->column('*', 'id');
  110. }
  111. foreach ($row as $k => $v) {
  112. $row[$k]["tags"] = json_decode($v["tags"]);
  113. if (!empty($v['third_id'])) {
  114. $row[$k]["worker"]["title"] = $third_lists[$v['third_id']]['name'];
  115. } else {
  116. $workerinfo = $worker_lists[($v["workerid"])];
  117. $row[$k]["worker"]["title"] = $workerinfo["title"];
  118. }
  119. $row[$k]["distance"] = round(calcDistance($lat, $lng, $v["latitude"], $v["longitude"]), 2) . "千米";
  120. }
  121. page_result(0, "", [
  122. 'plist' => $row,
  123. 'pstatus' => $limit > count($row) ? 'noMore' : 'more',
  124. ]);
  125. }
  126. }