Просмотр исходного кода

fix(order): 修复会员专区订单创建地址验证逻辑

- 添加会员专区自提功能,自提时跳过收货地址验证
- 修改地址验证条件,当pick_up_id为0时才进行地址验证
- 调整地址ID验证规则,移除必须大于0的限制
- 优化地址验证流程,支持共富区自提模式
shichen месяцев назад: 4
Родитель
Сommit
1532dfe223

+ 8 - 6
app/common/repositories/store/order/StoreGroupOrderRepository.php

@@ -422,15 +422,17 @@ class StoreGroupOrderRepository extends BaseRepository
422
             throw new ValidateException('获取当前用户信息失败');
422
             throw new ValidateException('获取当前用户信息失败');
423
         }
423
         }
424
 
424
 
425
-        /** 验证 收货地址 */
425
+        /** 验证 收货地址 会员专区,共富区可自提,如果选的自提不验证收货地址 */
426
         /** @var UserAddressRepository $userAddressRepository */
426
         /** @var UserAddressRepository $userAddressRepository */
427
         $userAddressRepository = app()->make(UserAddressRepository::class);
427
         $userAddressRepository = app()->make(UserAddressRepository::class);
428
         $addressEntity = $userAddressRepository->getAddressEntityByAddressId($storeOrderCreateRequestEntity->getAddressId());
428
         $addressEntity = $userAddressRepository->getAddressEntityByAddressId($storeOrderCreateRequestEntity->getAddressId());
429
-        if (empty($addressEntity->getAddressId()) || $addressEntity->getUid() != $storeOrderCreateRequestEntity->getUid()) {
430
-            throw new ValidateException('请选择正确的收货地址');
431
-        }
432
-        if (empty($addressEntity->getCodeList())) {
433
-            throw new ValidateException('地址需要选择4级地址!请修改地址!');
429
+        if ($storeOrderCreateRequestEntity->getPickUpId() == 0) {
430
+            if (empty($addressEntity->getAddressId()) || $addressEntity->getUid() != $storeOrderCreateRequestEntity->getUid()) {
431
+                throw new ValidateException('请选择正确的收货地址');
432
+            }
433
+            if (empty($addressEntity->getCodeList())) {
434
+                throw new ValidateException('地址需要选择4级地址!请修改地址!');
435
+            }
434
         }
436
         }
435
 
437
 
436
         /** 验证 购物车信息 */
438
         /** 验证 购物车信息 */

+ 2 - 2
app/validate/api/store/order/StoreOrderCreateValidate.php

@@ -14,7 +14,7 @@ class StoreOrderCreateValidate extends CommonValidate
14
         'cart_id' => 'require|integer',
14
         'cart_id' => 'require|integer',
15
         'cart_id_list' => 'array',
15
         'cart_id_list' => 'array',
16
         'fzone_paytype' => 'require',
16
         'fzone_paytype' => 'require',
17
-        'address_id' => 'require|integer|gt:0',
17
+        'address_id' => 'require|integer',
18
         'pay_type' => 'require|integer',
18
         'pay_type' => 'require|integer',
19
         'share_id' => 'integer',
19
         'share_id' => 'integer',
20
         'mark' => 'string',
20
         'mark' => 'string',
@@ -29,7 +29,7 @@ class StoreOrderCreateValidate extends CommonValidate
29
         // 'fzone_paytype.string' => '支付方式必须是字符串!',
29
         // 'fzone_paytype.string' => '支付方式必须是字符串!',
30
         'address_id.require' => '地址ID不能为空!',
30
         'address_id.require' => '地址ID不能为空!',
31
         'address_id.integer' => '地址ID必须是整数!',
31
         'address_id.integer' => '地址ID必须是整数!',
32
-        'address_id.gt' => '地址ID必须大于0!',
32
+        // 'address_id.gt' => '地址ID必须大于0!',
33
         'pay_type.require' => '支付方式不能为空!',
33
         'pay_type.require' => '支付方式不能为空!',
34
         'pay_type.integer' => '支付方式类型错误!',
34
         'pay_type.integer' => '支付方式类型错误!',
35
         'share_id.integer' => 'share_id 必须是整数!',
35
         'share_id.integer' => 'share_id 必须是整数!',