123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- namespace app\data\controller\api;
- use app\data\model\DataBidding;
- use app\data\model\DataBiddingType;
- use Carbon\Carbon;
- use hg\apidoc\annotation\Param;
- use hg\apidoc\annotation\Returned;
- use hg\apidoc\annotation\Title;
- use think\admin\Controller;
- use think\facade\Validate;
- use think\Request;
- /**
- * 招标
- * Class Bidding
- * @package app\data\controller\Bidding
- */
- class Bidding extends Controller
- {
- /**
- * @Title("列表")
- * @Param ("limit",desc="每页几条",default="15")
- * @Param ("page",desc="第几页",default="1")
- * @Param ("b_type",desc="披露方式0预1正式")
- * @Param ("amount_min",desc="最低价格")
- * @Param ("amount_max",desc="最高价格")
- * @Param ("type_id",desc="招标类型id")
- * @Param ("city",desc="所在地区id")
- * @Param ("day_type",desc="截至时间类型,day天,month月,year年")
- * @Param ("day",desc="时间值")
- * @Param ("o_f",desc="排序,1披露起始时间2截止时间")
- * @Param ("o_b",desc="asc正序desc倒序")
- * @Param ("keyword",desc="关键字")
- * @Returned ("title",desc="标题")
- * @Returned ("amount",desc="金额")
- * @Returned ("b_type",desc="披露方式0预1正式")
- * @Returned ("type",desc="招标类型对象")
- * @Returned ("type.name",desc="招标类型名称")
- * @Returned ("status",desc="0未中1已中标")
- * @Returned ("com_name",desc="公司名称")
- * @Returned ("com_username",desc="公司联系人")
- * @Returned ("com_mobile",desc="公司联系人手机号")
- * @Returned ("win[com_name]",desc="中标公司名称")
- * @Returned ("win[com_username]",desc="中标公司联系人")
- * @Returned ("win[com_mobile]",desc="中标公司联系人手机号")
- * @Returned ("create_time",desc="发布时间")
- * @Returned ("summary",desc="概述")
- * @Returned ("pl_time_start",desc="披露开始时间")
- * @Returned ("pl_time_end",desc="披露结束时间")
- * @Returned ("citys",desc="省市数组")
- * @Returned ("files[filename]",desc="附件文件名称")
- * @Returned ("files[fileurl]",desc="附件文件url")
- */
- public function index(Request $request,DataBidding $dataBidding){
- $query=$dataBidding->newQuery();
- if(is_numeric($request['b_type'])){
- $query->where('b_type',$request['b_type']);
- }
- if(is_numeric($request['amount_min'])){
- $query->where('amount','>=',$request['amount_min']);
- }
- if(is_numeric($request['amount_max'])){
- $query->where('amount','<=',$request['amount_max']);
- }
- if(is_numeric($request['type_id'])){
- $query->where('type_id',$request['type_id']);
- }
- if(is_numeric($request['city'])){
- $query->whereFindInSet('city',$request['city']);
- }
- if($request['keyword']){
- $query->whereLike('title',"%{$request['keyword']}%");
- }
- $day_type=$request['day_type']?:'day';
- $day=$request['day'];
- if($day){
- switch ($day_type){
- case 'day':
- default:
- $time=Carbon::now()->addDays($day);
- break;
- case 'month':
- $time=Carbon::now()->addMonths($day);
- break;
- case 'year':
- $time=Carbon::now()->addYears($day);
- break;
- }
- $query->where('pl_time_end','<=',$time->toDateTimeString());
- }
- $orderBy=$request['b_b']?:'desc';
- $orderField=$request['o_f'];
- if($orderField==1){
- $field='pl_time_start';
- }elseif ($orderField==2){
- $field='pl_time_end';
- }else{
- $field='id';
- }
- $query->order($field,$orderBy);
- $list=$query
- ->paginate($request['limit']?:15);
- $this->success('',$list);
- }
- /**
- * @Title ("招标类型")
- * @Returned ("name",desc="名称")
- */
- public function types(){
- $types=DataBiddingType::select();
- $this->success('',$types);
- }
- /**
- * @Title ("招标详情")
- * @Param ("id",desc="招标id")
- */
- public function show(Request $request){
- $bidding=DataBidding::with(['type','win'])->findOrFail((int)$request['id']);
- $this->success('',$bidding);
- }
- }
|