Index.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\common\model\Config;
  4. use app\common\model\RensheCode;
  5. use app\common\model\WorkerThird;
  6. use app\common\service\RensheService;
  7. use app\mainapp\BaseController;
  8. use think\facade\Db;
  9. use app\common\model\Slide as SlideModel;
  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. use app\common\model\ComjobsCate as ComjobsCateModel;
  18. class Index extends BaseController
  19. {
  20. public function getHomeData()
  21. {
  22. $userid = input('userid/d', 0);
  23. $workerall = WorkerModel::where('userid', '=', $userid)->select();
  24. $sinpage = SinpageModel::where(1)->find();
  25. page_result(0, "", [
  26. 'apptreaty' => $sinpage->apptreaty,
  27. 'workerall' => $workerall->isEmpty() ? null : $workerall,
  28. ]);
  29. }
  30. public function getIndexData()
  31. {
  32. $param = ParamModel::where(1)->find();
  33. $slide = SlideModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
  34. $navigation = NavigationModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->select();
  35. $article = ArticleModel::where([['status', '=', 1], ['priority', '>', 0], ['status', '=', 1], ['createtime', '<=', time()]])->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
  36. page_result(0, "", [
  37. 'param' => $param,
  38. 'slide' => $slide,
  39. 'navigation' => $navigation,
  40. 'article' => $article,
  41. ]);
  42. }
  43. public function listComjobs()
  44. {
  45. $ids = ComjobsModel::where('enddate', '<', time() - 86400)->where('status', '=', 3)->column('id');
  46. if (!empty($ids)) {
  47. ComjobsModel::where('id', 'in', $ids)->update(['status' => 4]);
  48. $service = new RensheService();
  49. foreach ($ids as $id) {
  50. $service->jobInfoByComId($id);
  51. }
  52. }
  53. $ppage = input('ppage/d', 1);
  54. $psize = input('psize/d', 20);
  55. $map[] = ['createtime', '<=', time()];
  56. $map[] = ['priority', '>', 0];
  57. $map[] = ['status', 'in', '3,4'];
  58. $plist = ComjobsModel::with(['worker'])->where($map)->order(['status' => 'asc', 'priority' => 'desc', 'updatetime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->select();
  59. //第三方id
  60. $third_ids = [];
  61. $third_lists = [];
  62. foreach ($plist as $l) {
  63. if (!empty($l['third_id'])) {
  64. $third_ids[] = $l['third_id'];
  65. }
  66. }
  67. if (!empty($third_ids)) {
  68. $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
  69. }
  70. $plist = $plist->toArray();
  71. foreach ($plist as $k => $v) {
  72. if (!empty($v['third_id'])) {
  73. $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
  74. }
  75. }
  76. page_result(0, "", [
  77. 'plist' => $plist,
  78. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  79. ]);
  80. }
  81. /*
  82. **
  83. * 附近职位
  84. * */
  85. public function listComjobsofnear()
  86. {
  87. $lat = input('lat', 0); //纬度
  88. $lng = input('lng', 0); //经度
  89. if (input('ppage/d') == '' or input('ppage/d') == 0) {
  90. $page = 1;
  91. } else {
  92. $page = input('ppage/d');
  93. }
  94. if (input('psize/d') == '') {
  95. $limit = 20;
  96. } else {
  97. $limit = input('psize/d');
  98. }
  99. $pagelistcount = $limit; //每页显示条数
  100. $sql = distance_sql($lng, $lat);
  101. $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);
  102. //第三方id和工作列表
  103. $third_ids = [];
  104. $third_lists = [];
  105. $worker_ids = [];
  106. $worker_lists = [];
  107. foreach ($row as $l) {
  108. if (!empty($l['third_id'])) {
  109. $third_ids[] = $l['third_id'];
  110. }
  111. $worker_ids[] = $l["workerid"];
  112. }
  113. if (!empty($third_ids)) {
  114. $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
  115. }
  116. if (!empty($worker_ids)) {
  117. $worker_lists = WorkerModel::where('id', 'in', $worker_ids)->column('*', 'id');
  118. }
  119. foreach ($row as $k => $v) {
  120. $row[$k]["tags"] = json_decode($v["tags"]);
  121. if (!empty($v['third_id'])) {
  122. $row[$k]["worker"]["title"] = $third_lists[$v['third_id']]['name'];
  123. } else {
  124. $workerinfo = $worker_lists[($v["workerid"])];
  125. $row[$k]["worker"]["title"] = $workerinfo["title"];
  126. }
  127. $row[$k]["distance"] = round(calcDistance($lat, $lng, $v["latitude"], $v["longitude"]), 2) . "千米";
  128. }
  129. page_result(0, "", [
  130. 'plist' => $row,
  131. 'pstatus' => $limit > count($row) ? 'noMore' : 'more',
  132. ]);
  133. }
  134. public function listComjobsLike()
  135. {
  136. $ppage = input('ppage/d', 1);
  137. $psize = input('psize/d', 20);
  138. $map[] = ['createtime', '<=', time()];
  139. $map[] = ['priority', '>', 0];
  140. $map[] = ['status', 'in', '3,4'];
  141. $userid = input('userid/d', 0);
  142. if (!empty($userid)) {
  143. $user = UserModel::where('id', $userid)->find();
  144. if (!empty($user['com_cate'])) {
  145. $ids = ComjobsCateModel::where('title', 'in', $user['com_cate'])->column('id');
  146. $map[] = ['cateid', 'in', $ids];
  147. }
  148. }
  149. $plist = ComjobsModel::with(['worker'])->where($map)->order(['status' => 'asc', 'priority' => 'desc', 'updatetime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->select();
  150. //第三方id
  151. $third_ids = [];
  152. $third_lists = [];
  153. foreach ($plist as $l) {
  154. if (!empty($l['third_id'])) {
  155. $third_ids[] = $l['third_id'];
  156. }
  157. }
  158. if (!empty($third_ids)) {
  159. $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
  160. }
  161. $plist = $plist->toArray();
  162. foreach ($plist as $k => $v) {
  163. if (!empty($v['third_id'])) {
  164. $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
  165. }
  166. }
  167. page_result(0, "", [
  168. 'plist' => $plist,
  169. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  170. ]);
  171. }
  172. public function getRensheCode()
  173. {
  174. $type = input('type', '');
  175. if (empty($type)) {
  176. page_result(0, "", []);
  177. }
  178. $list = RensheCode::getList($type);
  179. page_result(0, "", $list);
  180. }
  181. public function getComCate()
  182. {
  183. $catelist = ComjobsCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  184. page_result(0, "", $catelist);
  185. }
  186. public function getConfig()
  187. {
  188. $code = input('code', '');
  189. $post = Config::getConfigValue($code);
  190. page_result(0, "", $post);
  191. }
  192. }