123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\Db;
- /**
- * 任务大厅
- */
- class Hire extends Api
- {
- protected $noNeedLogin = [];
- protected $noNeedRight = ['*'];
- //发布任务
- public function add_one(){
- $title = input('title','','trim');
- $info = input('info','','trim');
- $type = input('type',1,'intval');
- $goldprice = input('goldprice',0,'intval');
- if(!$title || !$type || !$goldprice){
- $this->error(__('Invalid parameters'));
- }
- $data = [
- 'user_id' => $this->auth->id,
- 'title' => $title,
- 'info' => $info,
- 'type' => $type,
- 'goldprice' => $goldprice,
- 'createtime' => time(),
- 'status' => 1,
- ];
- $id = Db::name('hire')->insertGetId($data);
- $this->success('发布成功',$id);
- }
- //需求市场,个人服务,两个列表
- public function hire_list(){
- $type = input('type',1);
- $list = Db::name('hire')
- ->alias('hire')
- ->join('user','hire.user_id = user.id','LEFT')
- ->field('user.id as user_id,user.u_id,user.username,user.nickname,user.avatar,user.gender,hire.id,hire.title,hire.info,hire.type,hire.goldprice,hire.status')
- ->where('hire.type',$type)
- ->where('hire.status',1)
- ->order('hire.id desc')
- ->autopage()->select();
- $list = list_domain_image($list,['avatar']);
- if(!empty($list)){
- $my_lingqu = Db::name('user_hire')->where('user_id',$this->auth->id)->where('hire_id','IN',array_column($list,'id'))->column('hire_id');
- foreach($list as $key => &$val){
- //是否领取
- $val['is_lingqu'] = in_array($val['id'],$my_lingqu) ? 1 : 0;
- //是否是我发布
- $val['is_my'] = $val['user_id'] == $this->auth->id ? 1 : 0;
- }
- }
- $this->success('success',$list);
- }
- //我领取的列表
- public function my_join_list(){
- $list = Db::name('user_hire')->alias('uh')
- ->join('hire','uh.hire_id = hire.id','LEFT')
- ->join('user','hire.user_id = user.id','LEFT')
- ->field('user.id as user_id,user.u_id,user.username,user.nickname,user.avatar,user.gender,hire.id,hire.title,hire.info,hire.type,hire.goldprice,hire.status')
- ->where('uh.user_id',$this->auth->id)
- ->order('uh.id desc')
- ->autopage()->select();
- $list = list_domain_image($list,['avatar']);
- $this->success('success',$list);
- }
- //我发布的列表
- public function my_own_list(){
- $list = Db::name('hire')
- ->alias('hire')
- ->join('user','hire.user_id = user.id','LEFT')
- ->field('user.id as user_id,user.u_id,user.username,user.nickname,user.avatar,user.gender,hire.id,hire.title,hire.info,hire.type,hire.goldprice,hire.status')
- ->where('hire.user_id',$this->auth->id)
- ->order('hire.id desc')
- ->autopage()->select();
- $list = list_domain_image($list,['avatar']);
- $this->success('success',$list);
- }
- //某任务,参与人员
- public function hire_joinuser_list(){
- $hire_id = input('hire_id',0);
- $list = Db::name('user_hire')->alias('uh')
- ->join('user','uh.user_id = user.id','LEFT')
- ->field('user.id as user_id,user.u_id,user.username,user.nickname,user.avatar,user.gender,user.desc')
- ->where('uh.hire_id',$hire_id)
- ->select();
- $list = list_domain_image($list,['avatar']);
- $this->success('success',$list);
- }
- //领取一个任务
- public function join_hire(){
- $this->apiLimit();
- $hire_id = input('hire_id',0);
- $hire_info = Db::name('hire')->where('id',$hire_id)->find();
- if($hire_info['status'] != 1){
- $this->error('任务已关闭,请刷新重试');
- }
- if($hire_info['user_id'] == $this->auth->id){
- $this->error('不能领取自己发布的任务');
- }
- //去重
- $map = [
- 'user_id' => $this->auth->id,
- 'hire_id' => $hire_id
- ];
- $check = Db::name('user_hire')->where($map)->find();
- if(!empty($check)){
- $this->error('已经领取该任务,无需重复领取');
- }
- $map['createtime'] = time();
- Db::name('user_hire')->insertGetId($map);
- $this->success('领取成功');
- }
- //关闭我的任务
- public function close_one(){
- $hire_id = input('hire_id',0);
- if(!$hire_id){
- $this->error(__('Invalid parameters'));
- }
- $map = [
- 'user_id' => $this->auth->id,
- 'id' => $hire_id,
- ];
- $rs = Db::name('hire')->where($map)->update(['status'=>0]);
- $this->success('操作成功');
- }
- }
|