<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/9/4 * Time: 15:15 */ namespace api\index\controller; use cmf\controller\RestBaseController; use think\Db; use api\index\model\JobModel; use think\Validate; /** * @title 我的发布 * @description */ class ReleaseController extends RestBaseController { /** * @title 我的发布 * @description 全部我的发布信息 * @author GuoSheng * @url /index/Release/index * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:page type:int require:0 other: desc:当前页(默认1) * @param name:pageNum type:int require:0 other: desc:每页显示数据个数(默认10) * * @return id:信息ID * @return job_type:信息标签类型 * @return job_title:信息标题 * @return create_time:发布日期 * */ public function index() { $user_id = $this->getUserId(); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $where['delete_time'] = ['eq',0]; $where['job_type'] = ['in',[1,2,4]]; $where['user_id'] = ['eq',$user_id]; $list = Db::name('job') ->where($where) ->field('id,job_type,job_title,create_time') ->order('create_time desc') ->page($page,$pageNum) ->select() ->toArray(); foreach ($list as $k=>$v){ $list[$k]['create_time'] = date('Y-m-d',$v['create_time']); } $this->success('SUCCESS',$list); } /** * @title 我发布的分类信息 * @description 各类信息 * @author GuoSheng * @url /index/Release/myType_info * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:job_type type:int require:1 other: desc:类型 (供给信息为1,需求信息为2,招商加盟为4) * @param name:page type:int require:0 other: desc:当前页(默认1) * @param name:pageNum type:int require:0 other: desc:每页显示数据个数(默认10) * * @return id:信息ID * @return job_type:信息标签类型 * @return job_title:信息标题 * @return create_time:发布日期 * @return status:是否提交(0未提交 1已提交) * */ public function myType_info() { $user_id = $this->getUserId(); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $job_type = $this->request->param('job_type'); if(empty($job_type)){ $this->error(['code'=>40002,'msg'=>'缺少必要参数']); } $where['delete_time'] = ['eq',0]; $where['job_type'] = ['eq',$job_type]; $where['user_id'] = ['eq',$user_id]; $list = Db::name('job') ->where($where) ->field('id,job_type,job_title,city,create_time,stick') ->order('stick desc,create_time desc') ->page($page,$pageNum) ->select() ->toArray(); foreach ($list as $k=>$v){ $list[$k]['create_time'] = date('Y-m-d',$v['create_time']); } $this->success('SUCCESS',$list); } /** * @title 我的融资列表 * @description * @author GuoSheng * @url /index/Release/finance * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:page type:int require:0 other: desc:当前页(默认1) * @param name:pageNum type:int require:0 other: desc:每页显示数据个数(默认10) * * @return id:信息ID * @return job_title:信息标题 * @return create_time:发布日期 * */ public function finance() { $user_id = $this->getUserId(); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $where['delete_time'] = ['eq',0]; $where['user_id'] = ['eq',$user_id]; $list = Db::name('finance') ->where($where) ->field('id,company_name,create_time') ->order('create_time desc') ->page($page,$pageNum) ->select() ->toArray(); foreach ($list as $k=>$v){ $list[$k]['create_time'] = date('Y-m-d',$v['create_time']); } $this->success('SUCCESS',$list); } /** * @title 我的供给详情 * @description 我的供给详情 * @author GuoSheng * @url /index/Release/myProvide * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 other: desc:供给信息ID * * @return id:信息ID * @return job_title:信息标题 * @return end_time:有效日期 * @return linkman:联系人 * @return needpeople:需求人数 * @return linkman_tel:联系人电话 * @return city:城市 * @return city_id:城市ID * @return company_name:公司名称 * @return content:项目详情 * @return status:是否提交(0未提交 1已提交) * @return image:详情图片 */ public function myProvide() { $user_id = $this->getUserId(); //供给信息ID $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $where['id'] = ['eq',$id]; $jobModel = new JobModel(); $info = $jobModel->getOne($where); $data['id'] = $info['id']; $data['job_title'] = $info['job_title']; $data['end_time'] = date('Y-m-d',$info['end_time']); $data['linkman'] = $info['linkman']; $data['linkman_tel'] = $info['linkman_tel']; $data['needpeople'] = $info['needpeople']; $data['city_id'] = $info['city']; $city = explode(',',trim($info['city'],',')); $data['city'] = Db::name('area')->whereIn('id',$city)->column('name'); $data['company_name'] = $info['company_name']; $data['content'] = cmf_replace_content_file_url(htmlspecialchars_decode($info['content'])); $data['status'] = $info['status']; $data['image'] = $info['image']; $this->success('SUCCESS',$data); } /** * @title 修改我的供给详情 * @description 修改我的供给详情 * @author GuoSheng * @url /index/Release/updProvide * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 other: desc:供给信息ID * @param name:job_title type:string require:1 desc:信息标题 * @param name:end_time type:string require:0 desc:有效日期 * @param name:linkman type:string require:1 desc:联系人 * @param name:needpeople type:int require:1 desc:需求人数 * @param name:linkman_tel type:string require:1 desc:手机号码 * @param name:city type:string require:1 desc: 城市(最多添加五个) * @param name:company_name type:string require:1 desc:公司名称不能为空 * @param name:content type:text require:1 desc:项目详情 * @param name:status type:int require:1 desc:保存为0 发布为1 */ public function updProvide() { $user_id = $this->getUserId(); //供给信息ID $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $param = $this->request->param(); $param['user_id'] = $user_id; $param['create_time'] = time(); $param['update_time'] = time(); if(empty($param['end_time'])){ $param['end_time'] = $param['create_time']+7*24*60*60; }else{ $param['end_time'] = strtotime($param['end_time']); } $validate = new Validate([ 'job_title' => 'require', 'linkman' => 'require', 'city'=>'require', 'needpeople'=>'require', 'linkman_tel'=>'require|number|max:11', 'company_name'=>'require', 'content'=>'require', ]); if (!$validate->check($param)) { $this->error(['code'=>40005,'msg'=>$validate->getError()]); } $this->secCheck($param['job_title'],1); $this->secCheck($param['company_name'],1); $this->secCheck($param['content'],1); if(!empty($param['image'])){ $this->secCheck($param['image'],2); } $data = Db::name('job') ->where('id',$id) ->update($param); if(empty($data)){ $this->error(['code'=>40006,'msg'=>'sql执行失败']); } $this->success('SUCCESS'); } /** * @title 我的需求详情 * @description 我的需求详情 * @author GuoSheng * @url /index/Release/myDemand * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 other: desc:需求信息ID * * @return id:信息ID * @return job_title:信息标题 * @return create_time:发布日期 * @return end_time:有效日期 * @return linkman:联系人 * @return linkman_tel:联系人电话 * @return workplace:工作地点 * @return sex:性别 (0女 1男 2不限) * @return needpeople:需求人数 * @return min_age:最小年龄 * @return max_age:最大年龄 * @return education:最低学历 * @return company_name:公司名称 * @return empoying:用工单位 * @return content:项目详情 * @return status:是否提交(0未提交 1已提交) * @return image:详情图片 */ public function myDemand() { $user_id = $this->getUserId(); $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $where['id'] = ['eq',$id]; $jobModel = new JobModel(); $info = $jobModel->getOne($where); $data['id'] = $info['id']; $data['job_title'] = $info['job_title']; $data['end_time'] = date('Y-m-d',$info['end_time']); $data['linkman'] = $info['linkman']; $data['linkman_tel'] = $info['linkman_tel']; $data['workplace'] = $info['workplace']; $data['sex'] = $info['sex']; $data['city_id'] = $info['city']; $city = explode(',',trim($info['city'],',')); $data['city'] = Db::name('area')->whereIn('id',$city)->column('name'); $data['needpeople'] = $info['needpeople']; $data['min_age'] = $info['min_age']; $data['max_age'] = $info['max_age']; $data['education'] = $info['education']; $data['company_name'] = $info['company_name']; $data['empoying'] = $info['empoying']; $data['content'] = cmf_replace_content_file_url(htmlspecialchars_decode($info['content'])); $data['status'] = $info['status']; $data['image'] = $info['image']; $this->success('SUCCESS',$data); } /** * @title 修改我的需求详情 * @description 修改我的需求详情 * @author GuoSheng * @url /index/Release/updDemand * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 desc:信息的ID * @param name:job_title type:string require:1 desc:信息标题 * @param name:end_time type:string require:0 desc:有效日期 * @param name:linkman type:string require:1 desc:联系人 * @param name:linkman_tel type:string require:1 desc:手机号码 * @param name:workplace type:string require:1 desc:工作地点 * @param name:needpeople type:int require:1 desc:需求人数 * @param name:sex type:int require:1 desc:性别 (0女 1男 2不限 ) * @param name:min_age type:int require:0 desc:年龄(最小年龄) * @param name:max_age type:int require:0 desc:年龄(最大年龄) * @param name:education type:string require:1 desc:学历 * @param name:company_name type:string require:1 desc:公司名称不能为空 * @param name:empoying type:string require:1 desc:用工单位 * @param name:content type:text require:1 desc:项目详情 * @param name:status type:int require:1 desc:保存为0 发布为1 */ public function updDemand() { $user_id = $this->getUserId(); $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $param = $this->request->param(); $param['user_id'] = $user_id; $param['update_time'] = time(); $param['create_time'] = time(); if(empty($param['end_time'])){ $param['end_time'] = $param['create_time']+7*24*60*60; }else{ $param['end_time'] = strtotime($param['end_time']); } if(empty($param['min_age'])){ $param['min_age'] = 18; } if(empty($param['max_age'])){ $param['max_age'] = 45; } $validate = new Validate([ 'job_title' => 'require', 'linkman' => 'require', 'workplace'=>'require', 'needpeople' =>'require|number', 'sex'=>'require|number', 'education'=>'require', 'company_name'=>'require', 'empoying'=>'require', 'content'=>'require', 'linkman_tel'=>'require|number|max:11', ]); if (!$validate->check($param)) { $this->error(['code'=>40005,'msg'=>$validate->getError()]); } $this->secCheck($param['job_title'],1); $this->secCheck($param['workplace'],1); $this->secCheck($param['company_name'],1); $this->secCheck($param['empoying'],1); $this->secCheck($param['content'],1); if(!empty($param['image'])){ $this->secCheck($param['image'],2); } $data = Db::name('job') ->where('id',$id) ->update($param); if(empty($data)){ $this->error(['code'=>40006,'msg'=>'sql执行失败']); } $this->success('SUCCESS'); } /** * @title 我的招商详情 * @description 我的招商详情 * @author GuoSheng * @url /index/Release/myAttract * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 other: desc:信息ID * @return id:信息ID * @return job_title:信息标题 * @return end_time:有效日期 * @return linkman:联系人 * @return linkman_tel:联系人电话 * @return company_name:公司名称 * @return content:项目详情 * @return status:是否提交(0未提交 1已提交) * @return adress:公司地址 * @return image:详情图片 */ public function myAttract() { $user_id = $this->getUserId(); $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $where['id'] = ['eq',$id]; $jobModel = new JobModel(); $info = $jobModel->getOne($where); $data['id'] = $info['id']; $data['job_title'] = $info['job_title']; $data['end_time'] = date('Y-m-d',$info['end_time']); $data['linkman'] = $info['linkman']; $data['linkman_tel'] = $info['linkman_tel']; $data['adress'] = $info['adress']; $data['city_id'] = $info['city']; $city = explode(',',trim($info['city'],',')); $data['city'] = Db::name('area')->whereIn('id',$city)->column('name'); $data['company_name'] = $info['company_name']; $data['content'] = cmf_replace_content_file_url(htmlspecialchars_decode($info['content'])); $data['status'] = $info['status']; $data['image'] = $info['image']; $this->success('SUCCESS',$data); } /** * @title 修改我的招商详情 * @description 修改我的招商详情 * @author GuoSheng * @url /index/Release/updAttract * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 other: desc:信息ID * @param name:job_title type:string require:1 desc:信息标题 * @param name:end_time type:string require:0 desc:有效日期 * @param name:linkman type:string require:1 desc:联系人 * @param name:linkman_tel type:string require:1 desc:手机号码 * @param name:company_name type:string require:1 desc:公司名称不能为空 * @param name:adress type:string require:0 desc:地址 * @param name:content type:text require:1 desc:项目详情 * @param name:status type:int require:1 desc:保存为0 发布为1 */ public function updAttract() { $user_id = $this->getUserId(); $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $param = $this->request->param(); $param['user_id'] = $user_id; $param['create_time'] = time(); $param['update_time'] = time(); if(empty($param['end_time'])){ $param['end_time'] = $param['create_time']+7*24*60*60; }else{ $param['end_time'] = strtotime($param['end_time']); } $validate = new Validate([ 'job_title' => 'require', 'linkman' => 'require', 'adress'=>'require', 'linkman_tel'=>'require|number|max:11', 'company_name'=>'require', 'content'=>'require', ]); if (!$validate->check($param)) { $this->error(['code'=>40005,'msg'=>$validate->getError()]); } $this->secCheck($param['job_title'],1); $this->secCheck($param['company_name'],1); $this->secCheck($param['adress'],1); $this->secCheck($param['content'],1); if(!empty($param['image'])){ $this->secCheck($param['image'],2); } $data = Db::name('job') ->where('id',$id) ->update($param); if(empty($data)){ $this->error(['code'=>40006,'msg'=>'sql执行失败']); } $this->success('SUCCESS'); } /** * @title 我的融资详情 * @description 我的融资详情 * @author GuoSheng * @url /index/Release/myFinance * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:id type:int require:1 other: desc:融资信息ID * @return id:信息ID * @return company_name:公司名称 * @return content:公司简介 * @return employing:用工单位 * @return money_purpose:资金用途 * @return linkman_tel:联系人电话 * @return work_adress:办公地址 * @return user_name:用户名 * @return user_tel:电话 * @return user_wx:微信 * @return user_email:联系人邮箱 * @return status:是否提交(0未提交 1已提交) */ public function myFinance() { $user_id = $this->getUserId(); $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $data = Db::name('finance') ->where('id',$id) ->find(); $data['employing'] = explode(',',$data['employing']); $data['content'] = cmf_replace_content_file_url(htmlspecialchars_decode($data['content'])); $this->success('SUCCESS',$data); } /** * @title 修改我的融资详情 * @description 修改我的融资详情 * @author GuoSheng * @url /index/Release/updFinance * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:company_name type:string require:1 desc:公司名称 * @param name:content type:text require:1 desc:公司简介 * @param name:employing type:text require:1 desc:用工单位 * @param name:money type:float require:1 desc:融资金额 (float型) * @param name:money_purpose type:string require:1 desc:资金用途 * @param name:work_adress type:string require:1 desc:办公地址 * @param name:user_name type:string require:1 desc:联系人 * @param name:user_tel type:string require:1 desc:手机号码 * @param name:user_wx type:string require:1 desc: 微信号 * @param name:user_email type:string require:1 desc:邮箱 * @param name:status type:int require:1 desc:保存为0 提交为1 */ public function updFinance() { $user_id = $this->getUserId(); $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this -> error(['code'=>40005,'msg'=>'缺少必要参数']); } $param = $this->request->param(); $validate = new Validate([ 'company_name' => 'require', 'content' => 'require', 'employing' => 'require', 'money'=>'require|number', 'money_purpose'=>'require', 'work_adress'=>'require', 'user_name'=>'require', 'user_tel'=>'require|number|max:11', 'user_email'=>'require' ]); if (!$validate->check($param)) { $this->error(['code'=>40005,'msg'=>$validate->getError()]); } $param['user_id'] = $user_id; $param['update_time'] = time(); $data = Db::name('finance') ->where('id',$id) ->update($param); if(empty($data)){ $this->error(['code'=>40006,'msg'=>'sql执行失败']); } $this->success('SUCCESS'); } /** * @title 我的收藏 * @description 我的收藏信息 * @author GuoSheng * @url /index/Release/myCollect * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:page type:int require:0 other: desc:当前页(默认1) * @param name:pageNum type:int require:0 other: desc:每页显示数据个数(默认10) * * @return id:信息ID * @return job_type:信息标签类型 * @return job_title:信息标题 * @return create_time:发布日期 * */ public function myCollect() { $user_id = $this->getUserId(); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $where['j.delete_time'] = ['eq',0]; $where['c.user_id'] = ['eq',$user_id]; $list = Db::name('collect') ->alias('c') ->field('j.id,j.job_type,job_title,j.create_time') ->join('job j','c.job_id = j.id') ->where($where) ->page($page,$pageNum) ->select() ->toArray(); foreach ($list as $k=>$v){ $list[$k]['create_time'] = date('Y-m-d',$v['create_time']); } $this->success('SUCCESS',$list); } /** * @title 我收藏分类信息 * @description 我收藏各类信息 * @author GuoSheng * @url /index/Release/type_info * @method GET * * @header name:XX-Token require:1 default: desc:token * * @param name:job_type type:int require:1 other: desc:类型 (供给信息为1,需求信息为2,招商加盟为4) * @param name:page type:int require:0 other: desc:当前页(默认1) * @param name:pageNum type:int require:0 other: desc:每页显示数据个数(默认10) * * @return id:信息ID * @return job_type:信息标签类型 * @return job_title:信息标题 * @return create_time:发布日期 * */ public function type_info() { $user_id = $this->getUserId(); $page = $this->request->param('page',1,'intval'); $pageNum = $this->request->param('pageNum',10,'intval'); $job_type = $this->request->param('job_type'); $where['j.delete_time'] = ['eq',0]; $where['c.user_id'] = ['eq',$user_id]; $where['j.job_type'] = ['eq',$job_type]; $list = Db::name('collect') ->alias('c') ->field('j.id,j.job_type,job_title,j.create_time') ->join('job j','c.job_id = j.id') ->where($where) ->page($page,$pageNum) ->select() ->toArray(); foreach ($list as $k=>$v){ $list[$k]['create_time'] = date('Y-m-d',$v['create_time']); } $this->success('SUCCESS',$list); } public function get_access_token() { $app_id = config('app_id'); $app_secret = config('app_secret'); $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$app_id.'&secret='.$app_secret; $res = $this->http_get($url); $json_arr = json_decode($res,true); $token = $json_arr['access_token']; return $token; } //curl get请求 public function http_get($url){ $curl = curl_init();//启动一个CURL会话 curl_setopt($curl, CURLOPT_URL,$url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, false);//不开启header curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回 $result = curl_exec($curl); //执行操作 curl_close($curl); return $result; } /** * 小程序内容安全审核 * @param $content 审核内容 * @param $type 类型(1,文本;2,图片;3,音频) */ public function secCheck($content,$type = 1) { // if(!$type) { // return true; // } $access_token = $this->get_access_token(); $basic_url = 'https://api.weixin.qq.com/wxa'; if($type == 1) { $url = $basic_url.'/msg_sec_check?access_token='.$access_token; if(is_array($content)) { foreach ($content as $v) { $this->setUrl($url,['content'=>$v]); } } else { $this->setUrl($url,['content'=>$content]); } } if($type == 2) { $url = $basic_url.'/media_check_async?access_token='.$access_token; if(is_array($content)) { foreach ($content as $v) { $this->setUrl($url,['media_url'=>$v,'media_type'=>2],'图片'); } } else { $this->setUrl($url,['media_url'=>$content,'media_type'=>2],'图片'); } } if($type == 3) { $url = $basic_url.'/media_check_async?access_token='.$access_token; if(is_array($content)) { foreach ($content as $v) { $this->setUrl($url,['media_url'=>$v,'media_type'=>1],'语音'); } } else { $this->setUrl($url,['media_url'=>$content,'media_type'=>1],'语音'); } } } /** * 调用接口审核 * @param $url 跳转地址 * @param $post 审核内容 * @param $type_name * @param $image */ private function setUrl($url,$post,$type_name = '文本') { $result = $this->curls($url,json_encode($post,JSON_UNESCAPED_UNICODE)); $return_data = json_decode($result,true); if($return_data['errcode'] != 0) { $this->error($type_name.'内容含有违法违规内容'); } } // curl方法 function curls($url, $post = null, $header = null) { // 初始化 $curl = curl_init(); // 设置抓取的url curl_setopt($curl, CURLOPT_URL, $url); if($header) { // 请求头 curl_setopt($curl,CURLOPT_HTTPHEADER,$header); } // 设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLINFO_HEADER_OUT, true); // 设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if($post) { curl_setopt($curl, CURLOPT_POST, 1); //把POST的变量加上 curl_setopt($curl, CURLOPT_POSTFIELDS, $post); } // 执行命令 $data = curl_exec($curl); if (curl_errno($curl)) { $data = curl_error($curl); } return $data; } }