123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- <?php
- namespace app\api\controller;
- use app\common\model\PlatformDemand;
- use app\common\model\UserDemand;
- use app\common\model\UserSearch;
- use library\tools\Data;
- /**
- * @title 需求
- * @controller Demand
- * @group base
- */
- class Demand extends Base
- {
- // 需要登录的
- protected $need_login = [];
- public function initialize()
- {
- parent::initialize();
- parent::setUid();
- }
- /**
- * @title 需求接口说明
- * @desc 需求接口说明
- * @author qc
- * @url /api/Demand/classIntro
- * @method GET
- */
- public function classIntro(){}
- /**
- * @title 需求列表【平台】
- * @desc 需求列表【平台】
- * @author qc
- * @method GET
- * @url /api/Demand/getDemandList
- * @header name:Authorization require:1 desc:Token
- * @param name:title type:string default:-- desc:标题
- * @param name:is_tj type:int default:0 desc:是否推荐0否1是
- * @param name:is_over type:int default:-1 desc:是否推荐[-1全部0否1是]
- * @param name:page type:int default:0 desc:页数
- * @param name:page_num type:int default:20 desc:每页数
- * @return name:title type:string default:-- desc:标题
- * @return name:content type:string default:-- desc:需求
- * @return name:images type:string default:-- desc:图片【多张|隔开】
- * @return name:user_name type:string default:-- desc:名称
- * @return name:headimg type:string default:-- desc:头像
- * @return name:money type:float default:-- desc:金额
- * @return name:is_over type:int default:-- desc:是否解决【0否,1是】
- */
- public function getDemandList()
- {
- $title = input('get.title');
- $is_tj = input('get.is_tj',0);
- $is_over = input('get.is_over',-1);
- $sel_where =[];
- $sel_where[] = ['d.is_deleted','=',0];
- $sel_where[] = ['d.stats','=',1];
- if($title) $sel_where[] = ['d.title','like','%'.$title.'%'];
- if($is_over > -1) $sel_where[] = ['d.is_over','=',$is_over];
- if($title && $this->user_id) UserSearch::saveSearchTitle($this->user_id,$title,5);
- $where_str = '';
- if($is_tj) {
- $search_log = UserSearch::getSearchTitle($this->user_id,5);
- $search_arr = [];
- foreach ($search_log as $t){
- $search_arr[] = " d.title like '".'%'.$t."%'" .' ';
- }
- if(!empty($search_arr)) $where_str = implode(' OR ',$search_arr);
- }
- $app_name = sysconf('app_name');
- $app_log = sysconf('app_log');
- $list = PlatformDemand::where($sel_where)
- ->field('d.*,u.name user_name,u.headimg')
- ->alias('d')
- ->leftJoin('User u','u.id = d.user_id')
- ->when($where_str,function ($query)use ($where_str){if($where_str) $query->where($where_str);})
- ->order('d.sort desc ,d.id desc')
- ->limit($this->off_set,$this->page_num)->select()->toArray();
- array_walk($list,function (&$v)use ($app_name,$app_log){
- if(!$v['user_name']) $v['user_name'] = $app_name;
- if(!$v['headimg']) $v['headimg'] = $app_log;
- });
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @title 需求详情【平台】
- * @desc 需求详情【平台】
- * @author qc
- * @method GET
- * @url /api/Demand/getDemandInfo
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int default:-- desc:平台发布需求id
- * @return name:title type:string default:-- desc:标题
- * @return name:content type:string default:-- desc:需求
- * @return name:images type:string default:-- desc:图片【多张|隔开】
- * @return name:user_name type:string default:-- desc:名称
- * @return name:headimg type:string default:-- desc:头像
- * @return name:money type:float default:-- desc:金额
- * @return name:is_over type:int default:-- desc:是否解决【0否,1是】
- */
- public function getDemandInfo()
- {
- $detail = PlatformDemand::where('id',input('get.id'))->find();
- if(!$detail || $detail->is_deleted == 1) $this->error('该需求已删除');
- $this->success('ok',['detail'=>$detail->toArray()]);
- }
- /**
- * @title 以下接口调用验证登录【需要header传Authorization】
- * @desc 转发成功后调用
- * @author qc
- * @method
- * @url /api/Demand/needLogin
- */
- public function needLogin(){}
- /**
- * @title 用户提交||修改需求【用户】
- * @desc 用户提交||修改需求
- * @author qc
- * @method POST
- * @url /api/Demand/commitDemand
- * @param name:id type:int default:-- desc:修改必传
- * @param name:title type:string default:-- desc:标题
- * @param name:content type:string default:1 desc:内容
- * @param name:money type:float default:0 desc:价格【设计图没有,可以不传】
- */
- public function commitDemand()
- {
- $title = input('post.title');
- $content = input('post.content');
- $money = input('post.money');
- $id = input('post.id');
- if(!$title ||$content) $this->error('标题和需求内容必填');
- Data::save('UserDemand',['title'=>$title,'content'=>$content,'user_id'=>$this->user_id,'money'=>$money,'id'=>$id],'user_id',['user_id'=>$this->user_id,'id'=>$id]);
- $this->success('提交成功,请等待审核');
- }
- /**
- * @title 获取我的需求列表【用户】
- * @desc 获取我的图文列表【用户】
- * @author qc
- * @method GET
- * @url /api/Demand/getMyDemandList
- * @header name:Authorization require:1 desc:Token
- * @param name:title type:string default:-- desc:标题
- * @param name:page type:int default:0 desc:页数
- * @param name:page_num type:int default:20 desc:每页数
- * @return name:title type:string default:-- desc:标题
- * @return name:content type:string default:-- desc:需求
- * @return name:status type:int default:-- desc:0待审核1审核通过2审核未通过
- * @return name:remark type:string default:-- desc:审核备注
- */
- public function getMyDemandList()
- {
- $sel_where = [];
- $sel_where[] = ['is_deleted','=',0];
- $sel_where[] = ['user_id','=',$this->user_id];
- $title = input('get.title');
- if($title) $sel_where[] = ['title','like','%'.$title.'%'];
- $list = UserDemand::where($sel_where)
- ->field('id,title,content,status,remark')
- ->order('id desc')
- ->limit($this->off_set,$this->page_num)
- ->select()->toArray();
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @title 获取我的需求详情【用户】
- * @desc 获取我的需求详情【用户】
- * @author qc
- * @method GET
- * @url /api/Demand/getMyDemandDetail
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int default:0 desc:需求记录id
- * @return name:title type:string default:-- desc:标题
- * @return name:content type:string default:-- desc:需求
- * @return name:status type:int default:-- desc:0待审核1审核通过2审核未通过
- * @return name:remark type:string default:-- desc:审核备注
- * @return name:money type:float default:-- desc:金额
- */
- public function getMyDemandDetail()
- {
- $detail = UserDemand::where(['user_id'=>$this->user_id,'id'=>input('get.id')])->find();
- if(!$detail || $detail->is_deleted == 1) $this->error('该需求已删除');
- $this->success('ok',['detail'=>$detail->toArray()]);
- }
- /**
- * @title 删除我的需求【用户】
- * @desc 删除我的需求【用户】
- * @author qc
- * @method POST
- * @url /api/Demand/delMyDemand
- * @param name:id type:int default:-- desc:需求记录id
- */
- public function delMyDemand()
- {
- UserDemand::where(['id'=>input('post.id'),'user_id'=>$this->user_id])->delete();
- $this->success('删除成功');
- }
- }
|