Ver Fonte

feat:用户地址->地址修改

刘学玺 há 4 meses atrás
pai
commit
c2fca651dc

+ 8 - 4
app/Http/Controllers/Client/UserAddressController.php

@@ -76,18 +76,22 @@ class UserAddressController extends Controller
      *
      * @urlParam id integer required 地址ID Example: 1
      *
-     * @bodyParam name string required 收货人姓名 Example: 张三
-     * @bodyParam phone string required 收货人手机号 Example: 13800138000
+     * @bodyParam phone string required 手机号 Example: 13800138000
      * @bodyParam province string required 省份 Example: 广东省
      * @bodyParam city string required 城市 Example: 深圳市
      * @bodyParam district string required 区县 Example: 南山区
-     * @bodyParam address string required 详细地址 Example: 科技园南区
+     * @bodyParam longitude string required 经度 Example: 113.93041
+     * @bodyParam latitude string required 纬度 Example: 22.53332
+     * @bodyParam area_code string required 区划代码 Example: 440305
+     * @bodyParam is_default boolean required 是否默认地址 Example: true
+     * @bodyParam location string required 定位地址 Example: 科技园
+     * @bodyParam detail string required 详细地址 Example: 科技园南区
      *
      * @response {"code": 200,"message": "修改成功"}
      */
     public function update(Request $request, $id)
     {
-        $data = $request->only(['name', 'phone', 'province', 'city', 'district', 'address']);
+        $data = $request->only(['phone', 'province', 'city', 'district', 'longitude', 'latitude', 'area_code', 'is_default', 'location', 'detail']);
 
         return $this->userAddressService->update(Auth::user()->id, $id, $data);
     }

+ 8 - 0
app/Services/Client/UserAddressService.php

@@ -93,6 +93,14 @@ class UserAddressService
                 ->where('id', $id)
                 ->firstOrFail();
 
+            // 如果用户只有一个地址,或者传入的is_default为true,则设置为默认地址
+            $isFirst = $user->addresses()->count() == 1 || ($data['is_default'] ?? false);
+            if ($isFirst) {
+                $data['is_default'] = 1;
+                // 将用户其他地址设为非默认
+                $user->addresses()->update(['is_default' => 0]);
+            }
+
             // 修改地址信息
             $address->update($data);