UserAddressModel.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /**
  3. * 我的地址
  4. */
  5. namespace app\common\model;
  6. use think\facade\Db;
  7. use think\Model;
  8. class UserAddressModel extends Model
  9. {
  10. protected $name = 'user_address';
  11. /**
  12. * 保存地址
  13. * @param $param
  14. * @return string
  15. */
  16. public function saveUserAddress ($param)
  17. {
  18. self::startTrans();
  19. try {
  20. $data = $param->data;
  21. if (isset($data['is_default']) && $data['is_default'] && $data['is_default'] == 1) {
  22. self::where('uid', $param->uid)->save(['is_default' => 0]);
  23. }
  24. if (isset($data['id']) && $data['id']) { // 修改
  25. $data['mergename'] = $data['area_text'] . $data['remark'];
  26. self::update($data);
  27. } else {
  28. $insert = [
  29. 'remark' => $data['remark'],
  30. 'province' => $data['province'],
  31. 'city' => $data['city'],
  32. 'county' => $data['county'],
  33. 'name' => $data['name'],
  34. 'mobile' => $data['mobile'],
  35. 'is_default' => isset($data['is_default']) ? $data['is_default'] : 0,
  36. ];
  37. $insert['mergename'] = $data['area_text'] . $data['remark'];
  38. $insert['uid'] = $param->uid;
  39. self::insert($insert);
  40. }
  41. self::commit();
  42. } catch (\Exception $e) {
  43. self::rollback();
  44. // return api_error_return($e->getMessage());
  45. return api_error_return('保存失败');
  46. // return app('json')->json_error('');
  47. }
  48. return api_succ_return('保存成功');
  49. // return app('json')->json_success();
  50. }
  51. /**
  52. * 设置默认地址
  53. * @param $param
  54. * @return mixed
  55. */
  56. public function setDefaultAddress ($param)
  57. {
  58. self::startTrans();
  59. try {
  60. if (!self::where(['id' => $param->data['id']])->find()){
  61. return api_error_return('参数错误');
  62. }
  63. self::where('uid', $param->uid)->save(['is_default' => 0]);
  64. self::where(['id' => $param->data['id'], 'uid' => $param->uid])->save(['is_default' => 1]);
  65. self::commit();
  66. } catch (\Exception $e) {
  67. self::rollback();
  68. return api_error_return('设置失败');
  69. }
  70. return api_succ_return('设置成功');
  71. }
  72. /**
  73. * 删除地址
  74. * @param $param
  75. * @return string
  76. */
  77. public function delUserAddress ($param)
  78. {
  79. try {
  80. if (!self::where(['id' => $param->data['id']])->find()){
  81. return api_error_return('参数错误');
  82. }
  83. self::where(['id' => $param->data['id'], 'uid' => $param->uid])->delete();
  84. } catch (\Exception $e) {
  85. return api_error_return('删除失败');
  86. }
  87. return api_succ_return('删除成功');
  88. }
  89. /**
  90. * 获取我的地址
  91. * @param $param
  92. * @return mixed
  93. */
  94. public function getUserAddress ($param, $is_default)
  95. {
  96. try {
  97. $list = self::where('uid', $param->uid)
  98. ->where('is_default', 'in', ($is_default==1?['1']:['1', '0']))
  99. ->order('is_default desc')
  100. ->select();
  101. if (empty($list->toArray())){
  102. return api_succ_return(['msg'=>'获取成功', 'data'=>null]);
  103. }
  104. foreach ($list as $k => $v) {
  105. $list[$k]['area_text'] = Db::name('area')->where('id', 'in', $v['province'] . ',' . $v['city'] . ',' . $v['county'])->value('GROUP_CONCAT(name separator "")');
  106. }
  107. return api_succ_return(['msg'=>'获取成功', 'data'=>$list->toArray()]);
  108. } catch (\Exception $e) {
  109. return api_error_return('获取失败');
  110. }
  111. }
  112. /**
  113. * @param int $addressId
  114. * @return array
  115. * 获取地址信息
  116. */
  117. public static function getAddressIdDetails (int $addressId): array
  118. {
  119. return self::where(['id'=>$addressId])->findOrEmpty()->toArray();
  120. }
  121. }