Browse Source

添加积分商城所需的参数

Yangzw 9 months ago
parent
commit
2ad410f9ad

+ 2 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java

@@ -1,6 +1,5 @@
 package cn.newfeifan.mall.module.trade.controller.app.order.vo;
 
-import cn.hutool.core.util.ObjUtil;
 import cn.newfeifan.mall.framework.common.validation.InEnum;
 import cn.newfeifan.mall.framework.common.validation.Mobile;
 import cn.newfeifan.mall.module.trade.enums.delivery.DeliveryTypeEnum;
@@ -41,6 +40,8 @@ public class AppTradeOrderSettlementReqVO {
 
     @Schema(description = "收件地址编号", example = "1")
     private Long addressId;
+    @Schema(description = "地址类别",example = "1 实体;2虚拟")
+    private Integer addressType;
 
     @Schema(description = "自提门店编号", example = "1088")
     private Long pickUpStoreId;

+ 7 - 6
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -219,7 +219,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
     @Override
     public AppTradeOrderSettlementRespVO settlementOrder(Long userId, AppTradeOrderSettlementReqVO settlementReqVO) {
         // 1. 获得收货地址
-        MemberAddressRespDTO address = getAddress(userId, settlementReqVO.getAddressId());
+        MemberAddressRespDTO address = getAddress(userId, settlementReqVO.getAddressId(),settlementReqVO.getAddressType());
         if (address != null) {
             settlementReqVO.setAddressId(address.getId());
         }
@@ -351,13 +351,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
      *
      * @param userId    用户编号
      * @param addressId 地址编号
+     * @param addressType 地址类别
      * @return 地址
      */
-    private MemberAddressRespDTO getAddress(Long userId, Long addressId) {
+    private MemberAddressRespDTO getAddress(Long userId, Long addressId ,Integer addressType) {
         if (addressId != null) {
-            return addressApi.getAddress(addressId, userId);
+            return addressApi.getAddress(addressId, userId,addressType);
         }
-        return addressApi.getDefaultAddress(userId);
+        return addressApi.getDefaultAddress(userId,addressType);
     }
 
     /**
@@ -769,7 +770,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         // 物流信息
         order.setDeliveryType(createReqVO.getDeliveryType());
         if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) {
-            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId);
+            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId,1);
             Assert.notNull(address, "地址({}) 不能为空", createReqVO.getAddressId()); // 价格计算时,已经计算
             order.setReceiverName(address.getName()).setReceiverMobile(address.getMobile())
                     .setReceiverAreaId(address.getAreaId()).setReceiverDetailAddress(address.getDetailAddress());
@@ -777,7 +778,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             order.setReceiverName(createReqVO.getReceiverName()).setReceiverMobile(createReqVO.getReceiverMobile());
             order.setPickUpVerifyCode(RandomUtil.randomNumbers(8)); // 随机一个核销码,长度为 8 位
         } else if(Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.VIRTUAL_PRODUCT.getType())){
-            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId);
+            MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId,2);
             order.setReceiverName(createReqVO.getReceiverName()).setReceiverMobile(createReqVO.getReceiverMobile())
                     .setReceiverDetailAddress(address.getDetailAddress());
         }

+ 1 - 3
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java

@@ -51,8 +51,6 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator {
     private DeliveryPickUpStoreService deliveryPickUpStoreService;
     @Resource
     private DeliveryExpressTemplateService deliveryExpressTemplateService;
-    @Resource
-    private TradeConfigService tradeConfigService;
 
     @Override
     public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) {
@@ -88,7 +86,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator {
             // 价格计算时,如果为空就不算~最终下单,会校验该字段不允许空
             return;
         }
-        MemberAddressRespDTO address = addressApi.getAddress(param.getAddressId(), param.getUserId());
+        MemberAddressRespDTO address = addressApi.getAddress(param.getAddressId(), param.getUserId(),1);
         Assert.notNull(address, "收件人({})的地址,不能为空", param.getUserId());
 
         // 情况一:全局包邮

+ 4 - 2
feifan-module-member/feifan-module-member-api/src/main/java/cn/newfeifan/mall/module/member/api/address/MemberAddressApi.java

@@ -14,16 +14,18 @@ public interface MemberAddressApi {
      *
      * @param id 收件地址编号
      * @param userId 用户编号
+     * @param addressType 地址类别
      * @return 用户收件地址
      */
-    MemberAddressRespDTO getAddress(Long id, Long userId);
+    MemberAddressRespDTO getAddress(Long id, Long userId,Integer addressType);
 
     /**
      * 获得用户默认收件地址
      *
      * @param userId 用户编号
+     * @param addressType 地址类别
      * @return 用户收件地址
      */
-    MemberAddressRespDTO getDefaultAddress(Long userId);
+    MemberAddressRespDTO getDefaultAddress(Long userId,Integer addressType);
 
 }

+ 4 - 4
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/api/address/MemberAddressApiImpl.java

@@ -21,13 +21,13 @@ public class MemberAddressApiImpl implements MemberAddressApi {
     private AddressService addressService;
 
     @Override
-    public MemberAddressRespDTO getAddress(Long id, Long userId) {
-        return AddressConvert.INSTANCE.convert02(addressService.getAddress(userId, id));
+    public MemberAddressRespDTO getAddress(Long id, Long userId,Integer addressType) {
+        return AddressConvert.INSTANCE.convert02(addressService.getAddress(userId, id,addressType));
     }
 
     @Override
-    public MemberAddressRespDTO getDefaultAddress(Long userId) {
-        return AddressConvert.INSTANCE.convert02(addressService.getDefaultUserAddress(userId));
+    public MemberAddressRespDTO getDefaultAddress(Long userId,Integer addressType) {
+        return AddressConvert.INSTANCE.convert02(addressService.getDefaultUserAddress(userId,addressType));
     }
 
 }

+ 7 - 7
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/address/AppAddressController.java

@@ -49,8 +49,8 @@ public class AppAddressController {
     @Operation(summary = "删除用户收件地址")
     @Parameter(name = "id", description = "编号", required = true)
     @PreAuthenticated
-    public CommonResult<Boolean> deleteAddress(@RequestParam("id") Long id) {
-        addressService.deleteAddress(getLoginUserId(), id);
+    public CommonResult<Boolean> deleteAddress(@RequestParam("id") Long id, @RequestParam(defaultValue = "1") Integer addressType) {
+        addressService.deleteAddress(getLoginUserId(), id,addressType);
         return success(true);
     }
 
@@ -58,23 +58,23 @@ public class AppAddressController {
     @Operation(summary = "获得用户收件地址")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @PreAuthenticated
-    public CommonResult<AppAddressRespVO> getAddress(@RequestParam("id") Long id) {
-        MemberAddressDO address = addressService.getAddress(getLoginUserId(), id);
+    public CommonResult<AppAddressRespVO> getAddress(@RequestParam("id") Long id, @RequestParam(defaultValue = "1") Integer addressType) {
+        MemberAddressDO address = addressService.getAddress(getLoginUserId(), id,addressType);
         return success(AddressConvert.INSTANCE.convert(address));
     }
 
     @GetMapping("/get-default")
     @Operation(summary = "获得默认的用户收件地址")
     @PreAuthenticated
-    public CommonResult<AppAddressRespVO> getDefaultUserAddress() {
-        MemberAddressDO address = addressService.getDefaultUserAddress(getLoginUserId());
+    public CommonResult<AppAddressRespVO> getDefaultUserAddress(@RequestParam(defaultValue = "1") Integer addressType) {
+        MemberAddressDO address = addressService.getDefaultUserAddress(getLoginUserId(),addressType);
         return success(AddressConvert.INSTANCE.convert(address));
     }
 
     @GetMapping("/list")
     @Operation(summary = "获得用户收件地址列表")
     @PreAuthenticated
-    public CommonResult<List<AppAddressRespVO>> getAddressList(Integer addressType) {
+    public CommonResult<List<AppAddressRespVO>> getAddressList(@RequestParam(defaultValue = "1") Integer addressType) {
         List<MemberAddressDO> list = addressService.getAddressList(getLoginUserId(), addressType);
         return success(AddressConvert.INSTANCE.convertList(list));
     }

+ 8 - 2
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/dal/mysql/address/MemberAddressMapper.java

@@ -10,13 +10,19 @@ import java.util.List;
 @Mapper
 public interface MemberAddressMapper extends BaseMapperX<MemberAddressDO> {
 
-    default MemberAddressDO selectByIdAndUserId(Long id, Long userId) {
-        return selectOne(MemberAddressDO::getId, id, MemberAddressDO::getUserId, userId);
+    default MemberAddressDO selectByIdAndUserId(Long id, Long userId,Integer addressType) {
+        return selectOne(MemberAddressDO::getId, id, MemberAddressDO::getUserId, userId, MemberAddressDO::getAddressType, addressType);
     }
 
     default List<MemberAddressDO> selectListByUserIdAndDefaulted(Long userId, Boolean defaulted) {
         return selectList(new LambdaQueryWrapperX<MemberAddressDO>().eq(MemberAddressDO::getUserId, userId)
                 .eqIfPresent(MemberAddressDO::getDefaultStatus, defaulted));
     }
+    default List<MemberAddressDO> selectListByUserIdAndDefaulted(Long userId, Boolean defaulted, Integer addressType) {
+        return selectList(new LambdaQueryWrapperX<MemberAddressDO>().eq(MemberAddressDO::getUserId, userId)
+                .eqIfPresent(MemberAddressDO::getDefaultStatus, defaulted)
+                .eqIfPresent(MemberAddressDO::getAddressType,addressType)
+        );
+    }
 
 }

+ 6 - 3
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/address/AddressService.java

@@ -36,17 +36,19 @@ public interface AddressService {
      * 删除用户收件地址
      *
      * @param userId 用户编号
+     * @param addressType 地址类型
      * @param id 编号
      */
-    void deleteAddress(Long userId, Long id);
+    void deleteAddress(Long userId, Long id,Integer addressType);
 
     /**
      * 获得用户收件地址
      *
      * @param id 编号
+     * @param addressType 地址类型
      * @return 用户收件地址
      */
-    MemberAddressDO getAddress(Long userId, Long id);
+    MemberAddressDO getAddress(Long userId, Long id,Integer addressType);
 
     /**
      * 获得用户收件地址列表
@@ -61,8 +63,9 @@ public interface AddressService {
      * 获得用户默认的收件地址
      *
      * @param userId 用户编号
+     * @param addressType 地址类别
      * @return 用户收件地址
      */
-    MemberAddressDO getDefaultUserAddress(Long userId);
+    MemberAddressDO getDefaultUserAddress(Long userId,Integer addressType);
 
 }

+ 14 - 9
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/address/AddressServiceImpl.java

@@ -49,7 +49,7 @@ public class AddressServiceImpl implements AddressService {
     @Transactional(rollbackFor = Exception.class)
     public void updateAddress(Long userId, AppAddressUpdateReqVO updateReqVO) {
         // 校验存在,校验是否能够操作
-        validAddressExists(userId, updateReqVO.getId());
+        validAddressExists(userId, updateReqVO.getId(),updateReqVO.getAddressType());
 
         // 如果修改的是默认收件地址,则将原默认地址修改为非默认
         if (Boolean.TRUE.equals(updateReqVO.getDefaultStatus())) {
@@ -64,23 +64,23 @@ public class AddressServiceImpl implements AddressService {
     }
 
     @Override
-    public void deleteAddress(Long userId, Long id) {
+    public void deleteAddress(Long userId, Long id,Integer addressType) {
         // 校验存在,校验是否能够操作
-        validAddressExists(userId, id);
+        validAddressExists(userId, id,addressType);
         // 删除
         memberAddressMapper.deleteById(id);
     }
 
-    private void validAddressExists(Long userId, Long id) {
-        MemberAddressDO addressDO = getAddress(userId, id);
+    private void validAddressExists(Long userId, Long id,Integer addressType) {
+        MemberAddressDO addressDO = getAddress(userId, id,addressType);
         if (addressDO == null) {
             throw exception(ADDRESS_NOT_EXISTS);
         }
     }
 
     @Override
-    public MemberAddressDO getAddress(Long userId, Long id) {
-        return memberAddressMapper.selectByIdAndUserId(id, userId);
+    public MemberAddressDO getAddress(Long userId, Long id,Integer addressType) {
+        return memberAddressMapper.selectByIdAndUserId(id, userId,addressType);
     }
 
     @Override
@@ -89,8 +89,13 @@ public class AddressServiceImpl implements AddressService {
     }
 
     @Override
-    public MemberAddressDO getDefaultUserAddress(Long userId) {
-        List<MemberAddressDO> addresses = memberAddressMapper.selectListByUserIdAndDefaulted(userId, true);
+    public MemberAddressDO getDefaultUserAddress(Long userId,Integer addressType) {
+        List<MemberAddressDO> addresses;
+        if(addressType == 1){
+            addresses = memberAddressMapper.selectListByUserIdAndDefaulted(userId, true,addressType);
+        }else{
+            addresses = memberAddressMapper.selectListByUserIdAndDefaulted(userId, true,addressType);
+        }
         return CollUtil.getFirst(addresses);
     }