ZCityLib.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. class ZCityLib extends ZComponent
  3. {
  4. /**
  5. * 根据城市码返回城市
  6. */
  7. public function get($city_code){
  8. $criteria = new EMongoCriteria();
  9. $criteria->_id('==', $city_code);
  10. $city = CityLib::model()->find($criteria);
  11. return $city;
  12. }
  13. //增加城市信息
  14. public function addCity($city_code,$name,$parent_province_id,$parent_city_id,$parent_area_id = 0){
  15. $city = $this->get($city_code);
  16. if($city){
  17. $city->name = $name;
  18. $city->parent_province_id = $parent_province_id;
  19. $city->parent_city_id = $parent_city_id;
  20. $city->parent_area_id = $parent_area_id;
  21. return $city->update(array('name','parent_province_id','parent_city_id','parent_area_id'),true);
  22. }else{
  23. $city = new CityLib();
  24. $city->_id = $city_code;
  25. $city->name = $name;
  26. $city->parent_province_id = $parent_province_id;
  27. $city->parent_city_id = $parent_city_id;
  28. $city->parent_area_id = $parent_area_id;
  29. return $city->save();
  30. }
  31. }
  32. //获取某个城市下一级城市列表
  33. public function getSubCity($city_code){
  34. $city = $this->get($city_code);
  35. $res = false;
  36. if($city){
  37. if($city->parent_city_id){
  38. $res = array();
  39. }elseif($city->parent_province_id){
  40. $criteria = new EMongoCriteria();
  41. $criteria->parent_city_id('==', $city->_id);
  42. $cursor = CityLib::model()->findAll($criteria);
  43. $res = CommonFn::getRowsFromCursor($cursor);
  44. $res = CityLib::model()->parse($res);
  45. }else{
  46. $criteria = new EMongoCriteria();
  47. $criteria->parent_province_id('==',$city_code);
  48. $criteria->parent_city_id('==',0);
  49. $cursor = CityLib::model()->findAll($criteria);
  50. $res = CommonFn::getRowsFromCursor($cursor);
  51. $res = CityLib::model()->parse($res);
  52. }
  53. }elseif($city_code==1){
  54. $criteria = new EMongoCriteria();
  55. $criteria->parent_province_id('==',0);
  56. $cursor = CityLib::model()->findAll($criteria);
  57. $res = CommonFn::getRowsFromCursor($cursor);
  58. $res = CityLib::model()->parse($res);
  59. }
  60. return $res;
  61. }
  62. }