Jobs.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. namespace app\mobile\controller;
  3. use app\common\model\Comjobs as ComjobsModel;
  4. use app\common\model\ComjobsStar as ComjobsStarModel;
  5. use app\common\model\Worker as WorkerModel;
  6. use app\common\model\ComjobsCate as ComjobsCateModel;
  7. use app\common\model\ComjobsLog as ComjobsLogModel;
  8. use app\common\model\UserFollow as UserFollowModel;
  9. use app\common\model\WorkerLog as WorkerLogModel;
  10. use app\mobile\UserBaseController;
  11. class Jobs extends UserBaseController
  12. {
  13. public function index()
  14. {
  15. //岗位
  16. $catelist = ComjobsCateModel::field('id as value, title as text')->order(['priority' => 'desc', 'id' => 'desc'])
  17. ->select()->toArray();
  18. array_unshift($catelist, ['value' => 0, 'text' => '不限岗位']);
  19. return view('jobs/index', [
  20. 'type' => input('type', 0),
  21. 'catelist' => json_encode($catelist),
  22. ]);
  23. }
  24. /**
  25. * 岗位列表
  26. */
  27. public function listJobs()
  28. {
  29. $ppage = input('page/d', 1);
  30. $psize = input('size/d', 10);
  31. $map = [];
  32. $map[] = ['createtime', '<=', time()];
  33. $map[] = ['status', 'in', '3,4'];
  34. $searchval = input('searchval/s', "");
  35. $whereor = [];
  36. if (!empty($searchval)) {
  37. $whereor[] = ['title', 'like', '%' . $searchval . '%'];
  38. $lmap = [];
  39. $lmap[] = ['title', 'like', '%' . $searchval . '%'];
  40. $worklike = WorkerModel::where($lmap)->select();
  41. $wkids = [];
  42. foreach ($worklike as $lk => $v) {
  43. $wkids[] = $v["id"];
  44. }
  45. $whereor[] = ['workerid', 'in', $wkids];
  46. }
  47. $cateid = input('cateid/s', "");
  48. if (!empty($cateid)) {
  49. $map[] = ['cateid', '=', $cateid];
  50. }
  51. $wtype = input('type/d', 0);
  52. if ($wtype != 0) {
  53. $map[] = ['wtype', '=', $wtype];
  54. }
  55. $workerid = input('workerid/d', 0);
  56. if ($workerid != 0) {
  57. $map[] = ['workerid', '=', $workerid];
  58. }
  59. $orderby = ['status' => 'asc', 'updatetime' => 'desc', 'id' => 'desc'];
  60. $list = ComjobsModel::with(['worker'])->where($map)->where(function ($q) use ($whereor) {
  61. $q->whereOr($whereor);
  62. })->order($orderby)->append(['wtype_text'])->page($ppage)->limit($psize)->select();
  63. foreach ($list as $v) {
  64. $tags = [];
  65. foreach ($v['tags'] as $tag) {
  66. $tags = array_merge($tags, explode(',', $tag));
  67. }
  68. $v['tags'] = $tags;
  69. }
  70. page_result(0, "", $list);
  71. }
  72. /**
  73. * 详情
  74. */
  75. public function detail()
  76. {
  77. $id = input('id', 0);
  78. if (empty($id)) {
  79. return $this->jump('该岗位不存在或已过期');
  80. }
  81. $job = ComjobsModel::with('worker')->where('status', 'in', '3,4')->where('id', '=', $id)->append(['wtype_text'])->findOrEmpty();
  82. if ($job->isEmpty()) {
  83. return $this->jump('该岗位不存在或已过期');
  84. }
  85. $tags = [];
  86. foreach ($job['tags'] as $tag) {
  87. $tags = array_merge($tags, explode(',', $tag));
  88. }
  89. $job['tags'] = $tags;
  90. $job['comdetails'] = addPByN($job['comdetails']);
  91. $job['requirement'] = addPByN($job['requirement']);
  92. $job['companydetails'] = addPByN($job['companydetails']);
  93. $job->inc('volume', 1)->update();
  94. //收藏
  95. $user_id = get_user_id();
  96. $is_star = ComjobsStarModel::where('userid', $user_id)->where('comjobsid', $id)->find();
  97. $star = empty($is_star) ? 'false' : 'true';
  98. //报名
  99. $is_log = ComjobsLogModel::where(['comjobsid' => $id, 'userid' => $user_id])->find();
  100. $log = empty($is_log) ? 'false' : 'true';
  101. //浏览记录
  102. $workerlog = WorkerLogModel::where(['workerid' => $job->workerid, 'userid' => $user_id])->whereDay('createtime')->findOrEmpty();
  103. if ($workerlog->isEmpty()) {
  104. WorkerLogModel::create([
  105. 'workerid' => $job->workerid,
  106. 'userid' => $user_id,
  107. 'ltotal' => 1,
  108. 'createtime' => date("Y-m-d"),
  109. ]);
  110. } else {
  111. $workerlog->inc('ltotal', 1)->update();
  112. }
  113. return view("jobs/detail", [
  114. 'job' => $job,
  115. 'star' => $star,
  116. 'log' => $log,
  117. 'is_perfect' => $this->user->is_perfect,
  118. ]);
  119. }
  120. /**
  121. * 收藏
  122. */
  123. public function star()
  124. {
  125. $id = input('id', 0);
  126. $user_id = get_user_id();
  127. $is_star = ComjobsStarModel::where('userid', $user_id)->where('comjobsid', $id)->find();
  128. if (empty($is_star)) {
  129. ComjobsStarModel::create(['userid' => $user_id, 'comjobsid' => $id, 'createtime' => time()]);
  130. } else {
  131. $is_star->delete();
  132. }
  133. page_result(0, "操作成功");
  134. }
  135. /**
  136. * 报名
  137. */
  138. public function apply()
  139. {
  140. $comjobsid = input('id/d', 0);
  141. $comjobs = ComjobsModel::findOrEmpty($comjobsid);
  142. if ($comjobs->isEmpty()) {
  143. page_result(1, "招聘信息不存在");
  144. }
  145. $userid = $this->user->id;
  146. $log = ComjobsLogModel::where(['comjobsid' => $comjobsid, 'userid' => $userid])->findOrEmpty();
  147. if ($log->isEmpty()) {
  148. $log->save([
  149. 'workerid' => $comjobs->workerid,
  150. 'comjobsid' => $comjobsid,
  151. 'userid' => $userid,
  152. 'status' => 1,
  153. 'remark' => "",
  154. 'createtime' => time(),
  155. ]);
  156. UserFollowModel::create([
  157. 'userid' => $userid,
  158. 'ftype' => "招聘报名",
  159. 'fstatus' => 1,
  160. 'remark' => $comjobs->title,
  161. 'createtime' => time(),
  162. ]);
  163. page_result(0, "恭喜您,报名成功,我们会尽快给您安排面试上班!!!。");
  164. } else {
  165. page_result(1, "请务重复报名");
  166. }
  167. }
  168. }