123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?php
- namespace app\mobile\controller;
- use app\common\model\Comjobs as ComjobsModel;
- use app\common\model\ComjobsStar as ComjobsStarModel;
- use app\common\model\Worker as WorkerModel;
- use app\common\model\ComjobsCate as ComjobsCateModel;
- use app\common\model\ComjobsLog as ComjobsLogModel;
- use app\common\model\UserFollow as UserFollowModel;
- use app\common\model\WorkerLog as WorkerLogModel;
- use app\mobile\UserBaseController;
- class Jobs extends UserBaseController
- {
- public function index()
- {
- //岗位
- $catelist = ComjobsCateModel::field('id as value, title as text')->order(['priority' => 'desc', 'id' => 'desc'])
- ->select()->toArray();
- array_unshift($catelist, ['value' => 0, 'text' => '不限岗位']);
- return view('jobs/index', [
- 'type' => input('type', 0),
- 'catelist' => json_encode($catelist),
- ]);
- }
- /**
- * 岗位列表
- */
- public function listJobs()
- {
- $ppage = input('page/d', 1);
- $psize = input('size/d', 10);
- $map = [];
- $map[] = ['createtime', '<=', time()];
- $map[] = ['status', 'in', '3,4'];
- $searchval = input('searchval/s', "");
- $whereor = [];
- if (!empty($searchval)) {
- $whereor[] = ['title', 'like', '%' . $searchval . '%'];
- $lmap = [];
- $lmap[] = ['title', 'like', '%' . $searchval . '%'];
- $worklike = WorkerModel::where($lmap)->select();
- $wkids = [];
- foreach ($worklike as $lk => $v) {
- $wkids[] = $v["id"];
- }
- $whereor[] = ['workerid', 'in', $wkids];
- }
- $cateid = input('cateid/s', "");
- if (!empty($cateid)) {
- $map[] = ['cateid', '=', $cateid];
- }
- $wtype = input('type/d', 0);
- if ($wtype != 0) {
- $map[] = ['wtype', '=', $wtype];
- }
- $workerid = input('workerid/d', 0);
- if ($workerid != 0) {
- $map[] = ['workerid', '=', $workerid];
- }
- $orderby = ['status' => 'asc', 'updatetime' => 'desc', 'id' => 'desc'];
- $list = ComjobsModel::with(['worker'])->where($map)->where(function ($q) use ($whereor) {
- $q->whereOr($whereor);
- })->order($orderby)->append(['wtype_text'])->page($ppage)->limit($psize)->select();
- foreach ($list as $v) {
- $tags = [];
- foreach ($v['tags'] as $tag) {
- $tags = array_merge($tags, explode(',', $tag));
- }
- $v['tags'] = $tags;
- }
- page_result(0, "", $list);
- }
- /**
- * 详情
- */
- public function detail()
- {
- $id = input('id', 0);
- if (empty($id)) {
- return $this->jump('该岗位不存在或已过期');
- }
- $job = ComjobsModel::with('worker')->where('status', 'in', '3,4')->where('id', '=', $id)->append(['wtype_text'])->findOrEmpty();
- if ($job->isEmpty()) {
- return $this->jump('该岗位不存在或已过期');
- }
- $tags = [];
- foreach ($job['tags'] as $tag) {
- $tags = array_merge($tags, explode(',', $tag));
- }
- $job['tags'] = $tags;
- $job['comdetails'] = addPByN($job['comdetails']);
- $job['requirement'] = addPByN($job['requirement']);
- $job['companydetails'] = addPByN($job['companydetails']);
- $job->inc('volume', 1)->update();
- //收藏
- $user_id = get_user_id();
- $is_star = ComjobsStarModel::where('userid', $user_id)->where('comjobsid', $id)->find();
- $star = empty($is_star) ? 'false' : 'true';
- //报名
- $is_log = ComjobsLogModel::where(['comjobsid' => $id, 'userid' => $user_id])->find();
- $log = empty($is_log) ? 'false' : 'true';
- //浏览记录
- $workerlog = WorkerLogModel::where(['workerid' => $job->workerid, 'userid' => $user_id])->whereDay('createtime')->findOrEmpty();
- if ($workerlog->isEmpty()) {
- WorkerLogModel::create([
- 'workerid' => $job->workerid,
- 'userid' => $user_id,
- 'ltotal' => 1,
- 'createtime' => date("Y-m-d"),
- ]);
- } else {
- $workerlog->inc('ltotal', 1)->update();
- }
- return view("jobs/detail", [
- 'job' => $job,
- 'star' => $star,
- 'log' => $log,
- 'is_perfect' => $this->user->is_perfect,
- ]);
- }
- /**
- * 收藏
- */
- public function star()
- {
- $id = input('id', 0);
- $user_id = get_user_id();
- $is_star = ComjobsStarModel::where('userid', $user_id)->where('comjobsid', $id)->find();
- if (empty($is_star)) {
- ComjobsStarModel::create(['userid' => $user_id, 'comjobsid' => $id, 'createtime' => time()]);
- } else {
- $is_star->delete();
- }
- page_result(0, "操作成功");
- }
- /**
- * 报名
- */
- public function apply()
- {
- $comjobsid = input('id/d', 0);
- $comjobs = ComjobsModel::findOrEmpty($comjobsid);
- if ($comjobs->isEmpty()) {
- page_result(1, "招聘信息不存在");
- }
- $userid = $this->user->id;
- $log = ComjobsLogModel::where(['comjobsid' => $comjobsid, 'userid' => $userid])->findOrEmpty();
- if ($log->isEmpty()) {
- $log->save([
- 'workerid' => $comjobs->workerid,
- 'comjobsid' => $comjobsid,
- 'userid' => $userid,
- 'status' => 1,
- 'remark' => "",
- 'createtime' => time(),
- ]);
- UserFollowModel::create([
- 'userid' => $userid,
- 'ftype' => "招聘报名",
- 'fstatus' => 1,
- 'remark' => $comjobs->title,
- 'createtime' => time(),
- ]);
- page_result(0, "恭喜您,报名成功,我们会尽快给您安排面试上班!!!。");
- } else {
- page_result(1, "请务重复报名");
- }
- }
- }
|