Bidding.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. namespace app\data\controller\api;
  3. use app\data\model\DataBidding;
  4. use app\data\model\DataBiddingType;
  5. use Carbon\Carbon;
  6. use hg\apidoc\annotation\Param;
  7. use hg\apidoc\annotation\Returned;
  8. use hg\apidoc\annotation\Title;
  9. use think\admin\Controller;
  10. use think\facade\Validate;
  11. use think\Request;
  12. /**
  13. * 招标
  14. * Class Bidding
  15. * @package app\data\controller\Bidding
  16. */
  17. class Bidding extends Controller
  18. {
  19. /**
  20. * @Title("列表")
  21. * @Param ("limit",desc="每页几条",default="15")
  22. * @Param ("page",desc="第几页",default="1")
  23. * @Param ("b_type",desc="披露方式0预1正式")
  24. * @Param ("amount_min",desc="最低价格")
  25. * @Param ("amount_max",desc="最高价格")
  26. * @Param ("type_id",desc="招标类型id")
  27. * @Param ("city",desc="所在地区id")
  28. * @Param ("day_type",desc="截至时间类型,day天,month月,year年")
  29. * @Param ("day",desc="时间值")
  30. * @Param ("o_f",desc="排序,1披露起始时间2截止时间")
  31. * @Param ("o_b",desc="asc正序desc倒序")
  32. * @Param ("keyword",desc="关键字")
  33. * @Returned ("title",desc="标题")
  34. * @Returned ("amount",desc="金额")
  35. * @Returned ("b_type",desc="披露方式0预1正式")
  36. * @Returned ("type",desc="招标类型对象")
  37. * @Returned ("type.name",desc="招标类型名称")
  38. * @Returned ("status",desc="0未中1已中标")
  39. * @Returned ("com_name",desc="公司名称")
  40. * @Returned ("com_username",desc="公司联系人")
  41. * @Returned ("com_mobile",desc="公司联系人手机号")
  42. * @Returned ("win[com_name]",desc="中标公司名称")
  43. * @Returned ("win[com_username]",desc="中标公司联系人")
  44. * @Returned ("win[com_mobile]",desc="中标公司联系人手机号")
  45. * @Returned ("create_time",desc="发布时间")
  46. * @Returned ("summary",desc="概述")
  47. * @Returned ("pl_time_start",desc="披露开始时间")
  48. * @Returned ("pl_time_end",desc="披露结束时间")
  49. * @Returned ("citys",desc="省市数组")
  50. * @Returned ("files[filename]",desc="附件文件名称")
  51. * @Returned ("files[fileurl]",desc="附件文件url")
  52. */
  53. public function index(Request $request,DataBidding $dataBidding){
  54. $query=$dataBidding->newQuery();
  55. if(is_numeric($request['b_type'])){
  56. $query->where('b_type',$request['b_type']);
  57. }
  58. if(is_numeric($request['amount_min'])){
  59. $query->where('amount','>=',$request['amount_min']);
  60. }
  61. if(is_numeric($request['amount_max'])){
  62. $query->where('amount','<=',$request['amount_max']);
  63. }
  64. if(is_numeric($request['type_id'])){
  65. $query->where('type_id',$request['type_id']);
  66. }
  67. if(is_numeric($request['city'])){
  68. $query->whereFindInSet('city',$request['city']);
  69. }
  70. if($request['keyword']){
  71. $query->whereLike('title',"%{$request['keyword']}%");
  72. }
  73. $day_type=$request['day_type']?:'day';
  74. $day=$request['day'];
  75. if($day){
  76. switch ($day_type){
  77. case 'day':
  78. default:
  79. $time=Carbon::now()->addDays($day);
  80. break;
  81. case 'month':
  82. $time=Carbon::now()->addMonths($day);
  83. break;
  84. case 'year':
  85. $time=Carbon::now()->addYears($day);
  86. break;
  87. }
  88. $query->where('pl_time_end','<=',$time->toDateTimeString());
  89. }
  90. $orderBy=$request['b_b']?:'desc';
  91. $orderField=$request['o_f'];
  92. if($orderField==1){
  93. $field='pl_time_start';
  94. }elseif ($orderField==2){
  95. $field='pl_time_end';
  96. }else{
  97. $field='id';
  98. }
  99. $query->order($field,$orderBy);
  100. $list=$query
  101. ->paginate($request['limit']?:15);
  102. $this->success('',$list);
  103. }
  104. /**
  105. * @Title ("招标类型")
  106. * @Returned ("name",desc="名称")
  107. */
  108. public function types(){
  109. $types=DataBiddingType::select();
  110. $this->success('',$types);
  111. }
  112. /**
  113. * @Title ("招标详情")
  114. * @Param ("id",desc="招标id")
  115. */
  116. public function show(Request $request){
  117. $bidding=DataBidding::with(['type','win'])->findOrFail((int)$request['id']);
  118. $this->success('',$bidding);
  119. }
  120. }