AddressSetDefaultForm.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\models\v1;
  8. use app\models\Address;
  9. use yii\base\Model;
  10. class AddressSetDefaultForm extends Model
  11. {
  12. public $store_id;
  13. public $user_id;
  14. public $address_id;
  15. public function rules()
  16. {
  17. return [
  18. [['address_id'], 'required'],
  19. ];
  20. }
  21. public function save()
  22. {
  23. if (!$this->validate()) {
  24. return [
  25. 'code' => 1,
  26. 'msg' => $this->getErrorSummary(false)[0],
  27. ];
  28. }
  29. $address = Address::findOne($this->address_id);
  30. if (!$address) {
  31. return [
  32. 'code' => 1,
  33. 'msg' => '操作失败,收货地址不存在',
  34. ];
  35. }
  36. Address::updateAll(['is_default' => Address::DEFAULT_STATUS_FALSE], [
  37. 'user_id' => $this->user_id,
  38. 'is_delete' => Address::DELETE_STATUS_FALSE,
  39. ]);
  40. $address->is_default = Address::DEFAULT_STATUS_TRUE;
  41. $address->save();
  42. return [
  43. 'code' => 0,
  44. 'msg' => '操作成功',
  45. ];
  46. }
  47. public function info()
  48. {
  49. $address = Address::find()->select('id,name,mobile,province_id,province,city_id,city,district_id,district,detail,is_default,longitude,latitude,town_id,town,village_id,village')->where([
  50. 'user_id' => $this->user_id,
  51. 'is_delete' => 0,
  52. 'id' => $this->address_id,
  53. ])->one();
  54. if (!$address) {
  55. return [
  56. 'code' => 1,
  57. 'msg' => '收货地址不存在',
  58. ];
  59. }
  60. return [
  61. 'code' => 0,
  62. 'msg' => 'success',
  63. 'data' => [
  64. 'address_id' => $address->id,
  65. 'name' => $address->name,
  66. 'mobile' => $address->mobile,
  67. 'district' => [
  68. 'province' => [
  69. 'id' => $address->province_id,
  70. 'name' => $address->province,
  71. ],
  72. 'city' => [
  73. 'id' => $address->city_id,
  74. 'name' => $address->city,
  75. ],
  76. 'district' => [
  77. 'id' => $address->district_id,
  78. 'name' => $address->district,
  79. ],
  80. 'town' => [
  81. 'id' => $address->town_id?:0,
  82. 'name' => $address->town?:'',
  83. ],
  84. 'village' => [
  85. 'id' => $address->village_id?:0,
  86. 'name' => $address->village?:'',
  87. ],
  88. ],
  89. 'detail' => $address->detail,
  90. 'latitude' => $address->latitude,
  91. 'longitude' => $address->longitude,
  92. 'is_default' => $address->is_default
  93. ],
  94. ];
  95. }
  96. public function delete()
  97. {
  98. if (!$this->validate()) {
  99. return [
  100. 'code' => 1,
  101. 'msg' => $this->getErrorSummary(false)[0],
  102. ];
  103. }
  104. $address = Address::findOne($this->address_id);
  105. if (!$address) {
  106. return [
  107. 'code' => 1,
  108. 'msg' => '操作失败,收货地址不存在',
  109. ];
  110. }
  111. $address->is_delete = Address::DELETE_STATUS_TRUE;
  112. $address->save();
  113. return [
  114. 'code' => 0,
  115. 'msg' => '操作成功',
  116. ];
  117. }
  118. }