Address.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * App.php UTF-8
  4. * app事件
  5. *
  6. * @date : 2018/1/19 17:26
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\controller\address;
  13. use huo\controller\common\Base;
  14. use huo\model\address\MemAddressModel;
  15. use huo\model\shop\RegionModel;
  16. use huolib\status\CommonStatus;
  17. class Address extends Base {
  18. /**
  19. * 获取地址列表
  20. *
  21. * @param int $parent_id
  22. *
  23. * @return array
  24. */
  25. public function getRegionData($parent_id = 0) {
  26. $_code = CommonStatus::NO_ERROR;
  27. $_data = (new RegionModel())->getRegionData($parent_id);
  28. if (false == $_data) {
  29. $_code = CommonStatus::INNER_ERROR;
  30. return $this->huoError($_code, CommonStatus::getMsg($_code));
  31. }
  32. return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_data);
  33. }
  34. public function addAddress($address) {
  35. $_data['mem_id'] = get_val($address, 'mem_id', 0);
  36. $_data['consignee'] = get_val($address, 'consignee', '');
  37. $_data['country'] = get_val($address, 'country', 0);
  38. $_data['province'] = get_val($address, 'province', 0);
  39. $_data['city'] = get_val($address, 'city', 0);
  40. $_data['district'] = get_val($address, 'district', 0);
  41. $_data['town'] = get_val($address, 'town', 0);
  42. $_data['address'] = get_val($address, 'address', '');
  43. $_data['zipcode'] = get_val($address, 'zipcode', '');
  44. $_data['mobile'] = get_val($address, 'mobile', '');
  45. $_data['is_default'] = get_val($address, 'is_default', '');
  46. $_add_model = new MemAddressModel();
  47. $_res = $_add_model->addData($_data);
  48. if ($_data['is_default'] == 2 && false != $_res) {//如果为默认,则设定其他的为非默认
  49. $_add_model->setNoDefaultExcept($_res, $_data['mem_id']);
  50. }
  51. return $_res;
  52. }
  53. public function getMemAddress($mem_id) {
  54. $_map['mem_id'] = $mem_id;
  55. $_map['is_delete'] = 2;
  56. $_add_model = new MemAddressModel();
  57. $_count = $_add_model->where($_map)->count();
  58. if ($_count == 0) {
  59. return [
  60. 'count' => 0,
  61. 'list' => []
  62. ];
  63. }
  64. $_list = $_add_model->where($_map)->order('is_default desc,id desc')->select()->toArray();
  65. $_list = $this->conversion($_list);
  66. return [
  67. 'count' => $_count,
  68. 'list' => $_list
  69. ];
  70. }
  71. private function conversion($list) {
  72. if (empty($list)) {
  73. return [];
  74. }
  75. $_region_list = (new RegionModel())->column('id,name');
  76. foreach ($list as $_key => $_value) {
  77. $list[$_key]['province_name'] = isset($_region_list[$_value['province']])
  78. ? $_region_list[$_value['province']] : '';
  79. $list[$_key]['city_name'] = isset($_region_list[$_value['city']]) ? $_region_list[$_value['city']] : '';
  80. $list[$_key]['district_name'] = isset($_region_list[$_value['district']])
  81. ? $_region_list[$_value['district']] : '';
  82. $list[$_key]['town_name'] = isset($_region_list[$_value['town']]) ? $_region_list[$_value['town']] : '';
  83. }
  84. return $list;
  85. }
  86. public function editMemAddress($id, $address) {
  87. $_map['id'] = $id;
  88. $_mem_id = get_val($address, 'mem_id', '');
  89. $_map['mem_id'] = $_mem_id;
  90. $_add_model = new MemAddressModel();
  91. $_count = $_add_model->where($_map)->count();
  92. if ($_count == 0) {
  93. return false;
  94. }
  95. $_data['consignee'] = get_val($address, 'consignee', '');
  96. $_data['country'] = get_val($address, 'country', 0);
  97. $_data['province'] = get_val($address, 'province', 0);
  98. $_data['city'] = get_val($address, 'city', 0);
  99. $_data['district'] = get_val($address, 'district', 0);
  100. $_data['town'] = get_val($address, 'town', 0);
  101. $_data['address'] = get_val($address, 'address', '');
  102. $_data['zipcode'] = get_val($address, 'zipcode', '');
  103. $_data['mobile'] = get_val($address, 'mobile', '');
  104. $_data['is_default'] = get_val($address, 'is_default', '');
  105. $_res = $_add_model->where($_map)->update($_data);
  106. if ($_data['is_default'] == 2) {//如果为默认,则设定其他的为非默认
  107. $_add_model->setNoDefaultExcept($id, $_mem_id);
  108. }
  109. return $_res;
  110. }
  111. public function getAddressDetail($id) {
  112. if (empty($id)) {
  113. return [];
  114. }
  115. $_detail = (new MemAddressModel())->getInfoById($id);
  116. if (empty($_detail)) {
  117. return [];
  118. }
  119. $_list = [
  120. 0 => $_detail,
  121. ];
  122. $_list = $this->conversion($_list);
  123. return $_list[0];
  124. }
  125. public function deleteAddress($id) {
  126. $_res = (new MemAddressModel())->deleteData($id);
  127. return $_res;
  128. }
  129. }