area_helper.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/3/23
  6. * Time: 下午12:09
  7. */
  8. require_once(BASE_ROOT_PATH . '/helper/area/area_upgrade.php');
  9. require_once(BASE_ROOT_PATH . '/helper/area/area_check.php');
  10. require_once(BASE_ROOT_PATH . '/helper/area/area_validator.php');
  11. class area_helper
  12. {
  13. //让'其它区' 排到最后
  14. public static function uplast_country()
  15. {
  16. $items = Db::getAll("SELECT max(area_id) as max_id FROM lrlz_area;");
  17. $maxid = $items[0]['max_id'];
  18. $mod_area = Model('area');
  19. $success_count = 0;
  20. $fail_count = 0;
  21. if($maxid > 0)
  22. {
  23. $items = $mod_area->where(array('area_name' => array('like',"%其它区%")))->field('area_id')->limit(false)->select();
  24. foreach ($items as $item)
  25. {
  26. $maxid += 1;
  27. $area_id = $item['area_id'];
  28. $ret = $mod_area->where(array('area_id' => $area_id))->update(array('area_id' => $maxid));
  29. if($ret == false) {
  30. $fail_count++;
  31. } else {
  32. $success_count++;
  33. }
  34. }
  35. }
  36. Log::record("area_helper uplast_country total update success {$success_count},fail {$fail_count}");
  37. return true;
  38. }
  39. public static function fix_areaid()
  40. {
  41. $validator = new area\area_validator('area_origion');
  42. $mod_addr = Model('address');
  43. $addres = $mod_addr->where(array('handled' => 0))->field('address_id,area_id,city_id,area_info')->order('address_id asc')->limit(false)->select();
  44. foreach ($addres as $addr)
  45. {
  46. $address_id = $addr['address_id'];
  47. $area_info = trim($addr['area_info']);
  48. $area_info = str_replace(array(" "),array("\t"),$area_info);
  49. $areas = explode("\t",$area_info);
  50. $count = count($areas);
  51. if($count == 3)
  52. {
  53. $result_name = $validator->from_name($areas[0],$areas[1],$areas[2]);
  54. if($result_name != false)
  55. {
  56. $city_id = $result_name['city']['area_id'];
  57. $country_id = $result_name['country']['area_id'];
  58. $narea_info = "{$result_name['province']['area_name']}\t{$result_name['city']['area_name']}\t{$result_name['country']['area_name']}";
  59. $ret = $mod_addr->where(array('address_id' => $address_id))->update(array('city_id' => $city_id,
  60. 'area_id' => $country_id,
  61. 'handled' => 10,
  62. 'area_info' => $narea_info));
  63. Log::record("fix_areaid address_id = {$address_id} handled",Log::DEBUG);
  64. }
  65. }
  66. elseif($count == 2) {
  67. Log::record("address_id = {$address_id} 信息不全",Log::ERR);
  68. }
  69. else {
  70. Log::record("address_id = {$address_id} 信息不全",Log::ERR);
  71. }
  72. }
  73. }
  74. public static function fix_areainfo()
  75. {
  76. $validator = new area\area_validator('area');
  77. $mod_addr = Model('address');
  78. $addres = $mod_addr->where(array('handled' => 10))->field('address_id,area_id,city_id,area_info')->order('address_id asc')->limit(false)->select();
  79. foreach ($addres as $addr)
  80. {
  81. $address_id = $addr['address_id'];
  82. $area_id = $addr['area_id'];
  83. $area = $validator->country($area_id);
  84. $area_info = "{$area['province']['area_name']}\t{$area['city']['area_name']}\t{$area['country']['area_name']}";
  85. $mod_addr->where(array('address_id' => $address_id))->update(array('handled' => 11,'area_info' => $area_info));
  86. Log::record("fix_areainfo address_id = {$address_id} handled",Log::DEBUG);
  87. }
  88. }
  89. }