ShipYard.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. namespace app\data\controller\api;
  3. use app\data\model\DataShipyard;
  4. use app\data\model\DataXw;
  5. use app\data\model\DataXwAd;
  6. use app\data\model\DataXwCategory;
  7. use hg\apidoc\annotation\Param;
  8. use think\admin\Controller;
  9. use hg\apidoc\annotation\Title;
  10. use hg\apidoc\annotation\Returned;
  11. use hg\apidoc\annotation\Method;
  12. use think\db\Query;
  13. use think\Request;
  14. /**
  15. * @Title("船厂")
  16. */
  17. class ShipYard extends Auth
  18. {
  19. /**
  20. *@Title("列表")
  21. * @Param("sort",desc="1综合2距离")
  22. * @Param("keyword",desc="关键字")
  23. * @Param("longitude",desc="经度sort=2必须")
  24. * @Param("latitude",desc="维度sort=2必须")
  25. * @Returned("name",type="string",require=1,default="",desc="船厂名称")
  26. * @Returned("head_img",type="string",require=1,default="",desc="船厂头像")
  27. * @Returned("province",type="string",require=1,default="",desc="省")
  28. * @Returned("city",type="string",require=1,default="",desc="市")
  29. * @Returned("area",type="string",require=1,default="",desc="区/镇")
  30. * @Returned("address",type="string",require=1,default="",desc="详细地址")
  31. * @Returned("contact_name",type="string",require=1,default="",desc="联系人")
  32. * @Returned("contact_phone",type="string",require=1,default="",desc="联系电话")
  33. * @Returned("intro",type="string",require=1,default="",desc="船厂简介")
  34. * @Returned("longitude",type="string",require=1,default="",desc="经度")
  35. * @Returned("latitude",type="string",require=1,default="",desc="维度")
  36. * @Returned("environment_imgs",type="string",require=1,default="",desc="船厂环境,多个以英文逗号隔开")
  37. * @Returned("product_intro",type="string",require=1,default="",desc="产品简介")
  38. * @Returned("business_img",type="string",require=1,default="",desc="营业执照")
  39. * @Returned("id",type="string",require=0,default="",desc="ID")
  40. * @Returned("why",type="string",require=0,default="",desc="审核失败原因")
  41. * @Returned("audit",type="string",require=0,default="",desc="1:待审核 2:审核通过 3:审核不通过")
  42. * @Returned("audit_at",type="string",require=0,default="",desc="审核时间")
  43. * @Returned("num_staff",type="string",require=1,default="",desc="员工人数")
  44. * @Returned("pos",type="string",require=0,default="",desc="船厂位置,江南船厂什么的")
  45. * @Returned("is_fav",type="string",require=0,default="",desc="是否收藏")
  46. */
  47. public function index(Request $request,DataShipyard $shipyard){
  48. $list=$shipyard->newQuery();
  49. $list->where('audit',2);
  50. if($request['keyword']){
  51. $list->whereLike('name',"%{$request['keyword']}%");
  52. }
  53. $sort=$request['sort']?:1;
  54. if($sort==1){
  55. $list->order('id','desc');
  56. }elseif ($sort==2){
  57. $this->_vali([
  58. 'longitude.require'=>'经纬度必须',
  59. 'longitude.float'=>'经纬度有误',
  60. 'latitude.require'=>'经纬度必须',
  61. 'latitude.float'=>'经纬度有误',
  62. ],'get');
  63. $list
  64. ->field("*,st_distance(point(`longitude`,`latitude`),point({$request['longitude']},{$request['latitude']})) as distance")
  65. ->order('distance');
  66. }
  67. $record=$list->paginate($request['limit']?:15);
  68. $this->success('',$record);
  69. }
  70. /**
  71. *@Title("详情")
  72. *@Param("id",desc="ID")
  73. */
  74. public function show(Request $request,DataShipyard $shipyard){
  75. $ship=$shipyard->where('id',$request['id'])->findOrFail();
  76. $ship->makeFav($this->uuid);
  77. $this->success('',$ship);
  78. }
  79. /**
  80. * @Title("职位列表")
  81. * @Param("shipyard_id",desc="船厂ID")
  82. * @Returned("job_name",desc="职位名称")
  83. * @Returned("salary",desc="薪资")
  84. * @Returned("salary_month",desc="薪资月数")
  85. * @Returned("job_addr",desc="工作地址")
  86. * @Returned("tags",desc="标签数组")
  87. * @Returned("com_name",desc="公司名")
  88. * @Returned("pub_user",desc="发布人")
  89. * @Returned("pub_user_avatar",desc="发布人头像")
  90. * @Returned("pub_user_job",type="string",require=0,default="",desc="发布者职位")
  91. */
  92. public function jobs(Request $request,DataShipyard $shipyard){
  93. $ship=$shipyard->where('id',$request['shipyard_id'])->findOrFail();
  94. $jobs=$ship->jobs()
  95. ->order('id','desc')
  96. ->where('state',1)
  97. ->show()
  98. ->select();
  99. $data=[];
  100. foreach ($jobs as $job){
  101. $temp=[
  102. 'id'=>$job['id'],
  103. 'job_name'=>$job['title'],
  104. 'salary'=>$job['salary_start'].'-'.$job['salary_end'],
  105. 'salary_month'=>'',
  106. 'job_addr'=>[$job['province'],$job['city']],
  107. 'tags'=>[$job['province']],
  108. 'com_name'=>$ship['name'],
  109. 'pub_user'=>$job['contact_person'],
  110. 'pub_user_avatar'=>$job['contact_headimg'],
  111. 'pub_user_job'=>$job['contact_position'],
  112. ];
  113. if(!empty($job['schooling'])){
  114. $temp['tags'][]=$job['schooling'];
  115. }else{
  116. $temp['tags'][]='学历不限';
  117. }
  118. if(!empty($job['experience'])){
  119. $temp['tags'][]=$job['experience'];
  120. }else{
  121. $temp['tags'][]='经验不限';
  122. }
  123. $data[]=$temp;
  124. }
  125. $this->success('',$data);
  126. }
  127. /**
  128. *@Title("收藏取消收藏")
  129. * @Param("shipyard_id",desc="船厂ID")
  130. * @Param("action",desc="1添加0取消收藏")
  131. */
  132. public function fav(Request $request,DataShipyard $shipyard){
  133. $ship=$shipyard->where('id',$request['shipyard_id'])->findOrFail();
  134. $this->success('',$ship->saveFav($this->uuid,$request['action']));
  135. }
  136. }