|
@@ -0,0 +1,161 @@
|
|
|
+<?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('操作成功');
|
|
|
+ }
|
|
|
+}
|