Weather.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\data\controller\api;
  3. use app\data\model\BasePostageRegion;
  4. use app\data\service\WeatherSvc;
  5. use hg\apidoc\annotation\Param;
  6. use hg\apidoc\annotation\Returned;
  7. use hg\apidoc\annotation\Title;
  8. use think\admin\Controller;
  9. /**
  10. * @Title("天气预报")
  11. */
  12. class Weather extends Controller
  13. {
  14. /**
  15. * @Title("天气预报")
  16. * @Param("name",desc="地区名称")
  17. * @Returned("index.date",desc="预报日期")
  18. * @Returned("index.name",desc="生活指数类型的名称")
  19. * @Returned("index.category",desc="生活指数预报级别名称")
  20. * @Returned("daily.fxDate",desc="预报日期")
  21. * @Returned("daily.fxWeek",desc="预报周")
  22. * @Returned("daily.textDay",desc="天气状况")
  23. * @Returned("daily.tempMax",desc="最高温度")
  24. * @Returned("daily.tempMin",desc="最低温度")
  25. * @Returned("daily.windDirDay",desc="预报白天风向")
  26. * @Returned("daily.windDirDay",desc="预报白天风向")
  27. * @Returned("daily.windScaleNight",desc="预报夜间风力等级")
  28. * @Returned("hourly.fxTime",desc="预报时间")
  29. * @Returned("hourly.temp",desc="温度,默认单位:摄氏度")
  30. * @Returned("hourly.windDir",desc="风向")
  31. * @Returned("hourly.windScale",desc="风力等级")
  32. * @Returned("hourly.category",desc="空气质量等级")
  33. * @Returned("now.humidity",desc="相对湿度,百分比数值")
  34. * @Returned("now.text",desc="天气状况的文字描述")
  35. * @Returned("now.temp",desc="温度")
  36. * @Returned("now.windDir",desc="风向")
  37. * @Returned("now.category",desc="空气质量等级")
  38. * @Returned("now.aqi",desc="空气质量指数")
  39. * @Returned("now.obsTime",desc="更新时间")
  40. * @Returned("now.tempMax",desc="最高温度")
  41. * @Returned("now.tempMin",desc="最低温度")
  42. * @Returned("now.tomorrow",desc="参考daily")
  43. */
  44. public function area(WeatherSvc $svc){
  45. $data=$this->_vali([
  46. 'name.require'=>'地区名称必须',
  47. ]);
  48. $area=BasePostageRegion::level(2)->where('name|short',$data['name'])->find();
  49. if(!$area){
  50. $this->error('地区不存在');
  51. }
  52. $svc->setArea($area);
  53. $this->success('',$svc->getWeather());
  54. }
  55. }