Citys.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Http\Controllers\Manager;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\Manager\Citys as Request;
  5. use App\Models\Manager\Citys as CitysModel;
  6. use App\Models\Manager\citysZoning as citysZoningModel;
  7. use App\Servers\Tenxunyun\TextTranslate;
  8. /**
  9. * 城市管理
  10. * @author 唐远望
  11. * @version 1.0
  12. * @date 2025-12-04
  13. */
  14. class Citys extends Controller
  15. {
  16. /**
  17. * 获取城市列表
  18. * @author 唐远望
  19. * @version 1.0
  20. * @date 2025-12-04
  21. * @param Request $request
  22. */
  23. public function list(CitysModel $CitysModel)
  24. {
  25. $result = $CitysModel->getCityList();
  26. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  27. }
  28. /**
  29. * 获取大区城市列表
  30. * @author 唐远望
  31. * @version 1.0
  32. * @date 2026-03-18
  33. * @param Request $request
  34. */
  35. public function list_zoning(citysZoningModel $citysZoningModel, CitysModel $CitysModel)
  36. {
  37. $zoning_result = $citysZoningModel->getList();
  38. if (empty($zoning_result)) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => '']);
  39. $city_result = $CitysModel->getCityList();
  40. if (empty($city_result)) return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => '']);
  41. foreach ($zoning_result as $key => $value) {
  42. $province_ids = explode(',', $value['province_ids']);
  43. $zoning_result[$key]['city_list'] = [];
  44. foreach ($city_result as $k => $v) {
  45. if (in_array($v['id'], $province_ids)) {
  46. $zoning_result[$key]['city_list'][] = $v;
  47. }
  48. }
  49. }
  50. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $zoning_result]);
  51. }
  52. /**
  53. * 翻译省份城市信息
  54. * @author 唐远望
  55. * @version 1.0
  56. * @date 2025-12-04
  57. * @param Request $request
  58. */
  59. public function translate(CitysModel $CitysModel, TextTranslate $TextTranslate)
  60. {
  61. $result = $CitysModel->where([['status', '=', 0], ['level', '<', 3]])->get(['id', 'name', 'pid'])->toarray();
  62. if (!empty($result)) {
  63. foreach ($result as $key => $value) {
  64. $result = $TextTranslate->translateText($value['name'], 'zh', 'en');
  65. if ($result['success']) {
  66. $target_text = $result['target_text'] ?? '';
  67. //更新本地数据为英文
  68. $CitysModel->where(['id' => $value['id']])->update(['name' => $target_text]);
  69. $result[$key]['name'] = $target_text;
  70. }
  71. }
  72. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  73. }
  74. }
  75. }