<?php namespace app\mobile\controller; use think\Db; use app\common\controller\Api; use app\mobile\model\UserJob; use app\mobile\model\UserResume; /** * 招聘接口 * @ApiWeigh (90) */ class CompanyJob extends Api { protected $noNeedLogin = ['*']; protected $noNeedRight = ['*']; protected $model = null; public function _initialize() { parent::_initialize(); $this->model = model('app\mobile\model\CompanyJob'); } /** * @ApiWeigh (99) * @ApiTitle (招聘-首页) * @ApiSummary (招聘-首页) * @ApiMethod (POST) * * @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)") * @ApiParams (name="page_num", type="inter", required=false, description="每页显示数据个数(默认10)") * @ApiParams (name="keyword", type="string", required=false, description="输入岗位名称") * @ApiParams (name="type", type="inter", required=false, description="岗位类型:1=全职,2=兼职,3=其他") * @ApiParams (name="user_job_ability_id", type="inter", required=false, description="能力ID") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1599017563", "data": "用户协议内容" //协议内容 }) */ public function index() { $page = $this->request->param('page', 1, 'intval'); $page_num = $this->request->param('page_num', 10, 'intval'); $keyword = $this->request->param('keyword'); $type = $this->request->param('type'); $user_job_ability_id = $this->request->param('user_job_ability_id'); $where = []; // 搜索关键词 if(!empty($keyword)){ $where[] = ['name', 'like', "%{$keyword}%"]; } // 求职类型 if(!empty($type)){ $where[] = ['type', $type]; } // 求职类型 if(!empty($user_job_ability_id)){ $where[] = "FIND_IN_SET('{$user_job_ability_id}',user_job_ability_ids)"; } // 整合where $where = function ($query) use ($where) { foreach ($where as $k => $v) { if (is_array($v)) { call_user_func_array([$query, 'where'], $v); } else { $query->where($v); } } }; $data = UserJob::with(['user_job_resume']) ->where($where) ->field('id,name,salary,address,mobile') ->order('createtime desc') ->paginate($page_num,false,['page'=>$page]) ->toArray(); $this->success('注册成功', $data); } /** * @ApiWeigh (99) * @ApiTitle (求职-详情) * @ApiSummary (求职-详情) * @ApiMethod (POST) * * @ApiParams (name="user_job_id", type="inter", required=false, description="求职ID") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1599017563", "data": "用户协议内容" //协议内容 }) */ public function info() { $user_job_id = $this->request->param('user_job_id'); empty($user_job_id) && $this->error('缺少必需参数'); $info = UserJob::get($user_job_id); empty($info) && $this->error('求职信息不存在'); $this->success('成功', $info); } /** * @ApiWeigh (93) * @ApiTitle (投递简历) * @ApiSummary (投递简历) * @ApiMethod (POST) * * @ApiParams (name="company_job_id", type="inter", required=false, description="招聘职位ID") * @ApiParams (name="user_resume_id", type="inter", required=false, description="求职简历ID") * * @ApiReturn({ "code": 1, "msg": "成功", "time": "1599017563", "data": 简历链接 }) */ public function downloadResume() { $user_resume_id = $this->request->param('user_resume_id'); empty($user_resume_id) && $this->error('缺少必需参数'); $info = UserResume::get($user_resume_id); empty($info) && $this->error('简历信息不存在'); $this->success('成功',$info['attachment']); } /** * @ApiWeigh (91) * @ApiTitle (发布招聘) * @ApiSummary (发布招聘) * @ApiMethod (POST) * * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") * @ApiParams (name="name", type="string", required=true, description="岗位名称") * @ApiParams (name="type", type="string", required=true, description="岗位类型:1=全职,2=兼职,3=其他") * @ApiParams (name="start_time", type="string", required=true, description="开始工作日期") * @ApiParams (name="end_time", type="string", required=true, description="结束工作日期") * @ApiParams (name="salary", type="string", required=true, description="薪资待遇") * @ApiParams (name="address", type="string", required=true, description="工作地点") * @ApiParams (name="lng", type="string", required=true, description="工作地点经度") * @ApiParams (name="lat", type="string", required=true, description="工作地点纬度") * @ApiParams (name="house_number", type="string", required=true, description="详细地址") * @ApiParams (name="mobile", type="string", required=true, description="手机号") * @ApiParams (name="description", type="string", required=true, description="岗位职责及要求") * @ApiParams (name="other_desc", type="string", required=true, description="其他说明") * * @ApiReturn({ "code": 1, "msg": "登录成功", "time": "1600498819", "data": null }) */ public function addJob() { $post = $this->request->param(); empty($post['name']) && $this->error('请输入岗位名称'); empty($post['type']) && $this->error('请选择岗位类型'); empty($post['start_time']) && $this->error('请选择开始工作日期'); empty($post['end_time']) && $this->error('请选择结束工作日期'); empty($post['salary']) && $this->error('请输入薪资待遇'); empty($post['address']) && $this->error('请输入工作地点'); empty($post['lng']) && $this->error('请输入工作地点经度'); empty($post['lat']) && $this->error('请输入工作地点纬度'); empty($post['house_number']) && $this->error('请输入详细地址'); empty($post['mobile']) && $this->error('请输入手机号'); empty($post['description']) && $this->error('请填写岗位职责及要求'); $this->model->allowField(true)->save(array_merge([ 'user_id' => $this->auth->id, 'company_id' => Company::where('user_id',$this->auth->id)->value('id') ],$post)); $this->success('发布招聘成功'); } }