审查视图

application/mobile/controller/UserJob.php 6.6 KB
何书鹏 authored
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
<?php
namespace app\mobile\controller;

use think\Db;
use app\common\controller\Api;
use app\mobile\model\UserJobBanner;
use app\mobile\model\CompanyJob;
use app\mobile\model\CompanyJobResume;

/**
 * 求职接口
 * @ApiWeigh (91)
 */
class UserJob extends Api
{
	protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = model('app\mobile\model\UserJob');
    }

    /**
     * @ApiTitle    (求职-轮播图)
     * @ApiSummary  (求职-轮播图)
     * @ApiMethod   (POST)
     *
     * @ApiReturn({
        "code": 1,
        "msg": "成功",
        "time": "1599907184",
        "data": [{
            "id": 1, // 轮播图ID
            "image": "https://img02.mockplus.cn/idoc/sketch/2020-08-06/006324c3-e5d3-4206-be48-52a7c7468e74.7C1FC40C-CED5-4B08-9506-3E48A2732B2C.png", // 图片地址
            "user_job_id": 1, // 求职ID
        }]
    })
     */
    public function banner()
    {
        $list = UserJobBanner::order('createtime desc')
            ->field('id,image,user_job_id')
            ->select();
        $this->success('成功',$list);
    }

    /**
     * @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=其他")
     *
     * @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');
        $where = [];
        // 搜索关键词
        if(!empty($keyword)){
            $where['name'] = ['like','%'.$keyword.'%'];
        }
        // 求职类型
        if(!empty($type)){
            $where['type'] = $type;
        }
        $data = CompanyJob::where($where)
            ->field('id,name,salary,address')
            ->order('createtime desc')
            ->paginate($page_num,false,['page'=>$page])
            ->toArray();
        $this->success('注册成功', $data);
    }

    /**
     * @ApiWeigh (99)
     * @ApiTitle    (求职-详情)
     * @ApiSummary  (求职-详情)
     * @ApiMethod   (POST)
     *
     * @ApiParams   (name="company_job_id", type="inter", required=false, description="招聘职位ID")
     *
     * @ApiReturn({
        "code": 1,
        "msg": "成功",
        "time": "1599017563",
        "data": "用户协议内容" //协议内容
    })
     */
    public function info()
    {
        $company_job_id = $this->request->param('company_job_id');
        empty($company_job_id) && $this->error('缺少必需参数');
        $info = CompanyJob::get($company_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": null
	})
     */
    public function sendResume()
    {
        $company_job_id = $this->request->param('company_job_id');
        $user_resume_id = $this->request->param('user_resume_id');
        if(!$company_job_id || $user_resume_id){
            $this->error('缺少必需参数');
        }
        CompanyJobResume::create([
            'company_job_id' => $company_job_id,
            'user_resume_id' => $user_resume_id
        ]);
        $this->success('投递成功');
    }

    /**
     * @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="mobile", type="string", required=true, description="手机号")
     * @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="user_job_ability_ids", type="string", required=true, description="资质能力")
     * @ApiParams (name="qualification", type="string", required=true, description="资质证明(多文件用英文逗号隔开)")
     * @ApiParams (name="user_resume_id", type="string", required=true, description="简历ID")
     *
     * @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['mobile']) && $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['user_job_ability_ids']) && $this->error('请选择资质能力');
        empty($post['user_resume_id']) && $this->error('请选择简历');
        $this->model->allowField(true)->save(array_merge([
            'user_id' => $this->auth->id
        ],$post));
        $this->success('发布求职成功');
    }
}