Ver código fonte

订单模块代码优化,抽离商户的默认地址

wangzhijun 1 mês atrás
pai
commit
66fae8ccda

+ 2 - 0
nightFragrance-massage/src/main/java/com/ylx/address/service/TAddressService.java

@@ -72,5 +72,7 @@ public interface TAddressService extends IService<TAddress> {
     void updateUserAddress(UserAddressUpdateDto dto);
 
     void deleteUserAddress(UserAddressDeleteDto dto);
+
+    TAddress getMerchantDefaultAddress(Long merchantId);
 }
 

+ 11 - 10
nightFragrance-massage/src/main/java/com/ylx/address/service/impl/TAddressServiceImpl.java

@@ -6,26 +6,26 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ylx.common.utils.StringUtils;
-import com.ylx.massage.domain.dto.CoordinateDTO;
-import com.ylx.massage.domain.vo.CityInfoVo;
-import com.ylx.massage.domain.vo.MerchantCurrentAddressVO;
-import com.ylx.massage.domain.vo.UserAddressListVO;
-import com.ylx.area.service.AreaService;
+import com.ylx.address.domain.TAddress;
 import com.ylx.address.domain.dto.UserAddressAddDto;
 import com.ylx.address.domain.dto.UserAddressDeleteDto;
 import com.ylx.address.domain.dto.UserAddressDto;
 import com.ylx.address.domain.dto.UserAddressUpdateDto;
 import com.ylx.address.domain.vo.UserAddressVo;
 import com.ylx.address.mapper.TAddressMapper;
-import com.ylx.address.domain.TAddress;
 import com.ylx.address.service.TAddressService;
+import com.ylx.area.service.AreaService;
+import com.ylx.common.utils.StringUtils;
+import com.ylx.massage.domain.dto.CoordinateDTO;
+import com.ylx.massage.domain.vo.CityInfoVo;
+import com.ylx.massage.domain.vo.MerchantCurrentAddressVO;
+import com.ylx.massage.domain.vo.UserAddressListVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
@@ -53,7 +53,7 @@ public class TAddressServiceImpl extends ServiceImpl<TAddressMapper, TAddress> i
     private static final Integer IS_DEFAULT = 1;
     //0=不是默认地址
     private static final Integer NO_DEFAULT = 0;
-    @Autowired
+    @Resource
     private AreaService areaService;
 
 
@@ -159,7 +159,8 @@ public class TAddressServiceImpl extends ServiceImpl<TAddressMapper, TAddress> i
      * @param merchantId
      * @return TAddress
      */
-    private TAddress getMerchantDefaultAddress(Long merchantId) {
+    @Override
+    public TAddress getMerchantDefaultAddress(Long merchantId) {
         return this.getOne(new LambdaQueryWrapper<TAddress>()
                 .eq(TAddress::getMerchantId, merchantId)
                 .eq(TAddress::getUserType, MERCHANT_USER_TYPE)

+ 1 - 5
nightFragrance-massage/src/main/java/com/ylx/order/constant/OrderConstant.java

@@ -10,14 +10,10 @@ public class OrderConstant {
     public static final int REPURCHASE_DAY_LIMIT = 14;
     /** 字典类型 */
     public static final String DICT_UNIT_TYPE = "unit_type";
-    /** 用户类型 2-商户 */
-    public static final Integer USER_TYPE_MERCHANT = 2;
+
     /** 商户地址类型 1 真实地址 2 虚拟地址 */
     public static final Integer ADDR_TYPE_REAL = 1;
     public static final Integer ADDR_TYPE_VIRTUAL = 2;
 
-    /** 商户地址类型 1默认 */
-    public static final Integer ADDR_DEFAULT_YES = 1;
-
     public static final int PHONE_TAIL_LENGTH = 4;
 }

+ 5 - 19
nightFragrance-massage/src/main/java/com/ylx/order/service/impl/TOrderServiceImpl.java

@@ -711,7 +711,10 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         dto.setMerchantId(merchantId);
 
         // 3. 查询商户默认地址
-        TAddress merchantAddress = getMerchantDefaultAddress(merchantId);
+        TAddress merchantAddress = this.addressService.getMerchantDefaultAddress(merchantId);
+        if (ObjectUtil.isEmpty(merchantAddress)) {
+            throw new ServiceException("商户地址不存在,请先完善商户地址");
+        }
         // 填充商户坐标到查询DTO,用于SQL距离筛选(如有)
         fillMerchantLonLatToDto(dto, merchantAddress);
 
@@ -1078,9 +1081,9 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         List<TGeoFence> validFenceList = geoFenceService.selectValidFences(order.getCityCode());
         List<TGeoFence> usableFence = filterUsableFence(validFenceList);
 
-
         // 5. 查询关联的售后信息 (如果有)
         fillCurrentAfterSaleInfo(vo, order.getId());
+
         // 6. 计算高风险围栏信息
         calcOrderGeoFenceInfo(vo, usableFence);
 
@@ -1310,23 +1313,6 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
         return CustomerTagEnum.OLD_CUSTOMER.getCode();
     }
 
-
-    /**
-     * 获取商户默认地址,无地址直接抛业务异常
-     */
-    private TAddress getMerchantDefaultAddress(Long merchantId) {
-        LambdaQueryWrapper<TAddress> addrWrapper = Wrappers.lambdaQuery(TAddress.class)
-                .eq(TAddress::getMerchantId, merchantId)
-                .eq(TAddress::getUserType, USER_TYPE_MERCHANT)
-                .eq(TAddress::getIsDefault, ADDR_DEFAULT_YES)
-                .eq(TAddress::getIsDelete, NOT_DELETE);
-        List<TAddress> merchantAddressList = addressService.list(addrWrapper);
-        if (CollUtil.isEmpty(merchantAddressList)) {
-            throw new ServiceException("商户地址不存在,请先完善商户地址");
-        }
-        return CollUtil.getFirst(merchantAddressList);
-    }
-
     /**
      * 将商户经纬度填充至查询DTO,坐标为空置null
      */