Forráskód Böngészése

feat: 添加获取航次价格接口

luofeiyun 1 hete
szülő
commit
8427799b68

+ 1 - 1
ship-module-product/ship-module-product-api/src/main/java/com/yc/ship/module/product/enums/ErrorCodeConstants.java

@@ -36,7 +36,7 @@ public interface ErrorCodeConstants {
 
     ErrorCode PRICE_TEMPLATE_NOT_EXISTS = new ErrorCode(10_025, "价格模板不存在");
 
-    ErrorCode PRICE_VOYAGE_NOT_EXISTS = new ErrorCode(10_026, "航次价格不存在");
+    ErrorCode PRICE_VOYAGE_NOT_EXISTS = new ErrorCode(10_026, "航次未设置价格");
 
 
 }

+ 22 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/pricevoyage/PriceVoyageController.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.product.controller.admin.pricevoyage;
 
 import com.yc.ship.framework.apilog.core.annotation.ApiAccessLog;
+import com.yc.ship.framework.common.exception.ServiceException;
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageParam;
 import com.yc.ship.framework.common.pojo.PageResult;
@@ -18,6 +19,7 @@ import com.yc.ship.module.product.dal.dataobject.priceroommodel.PriceRoomModelDO
 import com.yc.ship.module.product.dal.dataobject.pricesinglesetting.PriceSingleSettingDO;
 import com.yc.ship.module.product.dal.dataobject.pricevoyage.PriceVoyageDO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
+import com.yc.ship.module.product.enums.ErrorCodeConstants;
 import com.yc.ship.module.product.service.pricefloor.PriceFloorService;
 import com.yc.ship.module.product.service.priceroommodel.PriceRoomModelService;
 import com.yc.ship.module.product.service.pricesinglesetting.PriceSingleSettingService;
@@ -43,6 +45,7 @@ import java.util.List;
 import java.util.Map;
 
 import static com.yc.ship.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.yc.ship.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "管理后台 - 航次价格")
@@ -113,6 +116,25 @@ public class PriceVoyageController {
         return success(respVO);
     }
 
+    @GetMapping("/get-by-voyage-id")
+    @Operation(summary = "通过航次ID获得航次价格")
+    public CommonResult<PriceVoyageRespVO> getByVoyageId(@RequestParam("voyageId") Long voyageId) {
+        PriceVoyageDO priceVoyage = priceVoyageService.getByVoyageId(voyageId);
+        if(priceVoyage == null) {
+            throw exception(ErrorCodeConstants.PRICE_VOYAGE_NOT_EXISTS);
+        }
+        Long id = priceVoyage.getId();
+        PriceVoyageRespVO respVO = BeanUtils.toBean(priceVoyage, PriceVoyageRespVO.class);
+        PriceSingleSettingDO singleSettingDO = priceSingleSettingService.getByObjectId(id);
+        respVO.setSingleSetting(BeanUtils.toBean(singleSettingDO, PriceSingleSettingRespVO.class));
+        List<PriceRoomModelDO> roomModelDOList = priceRoomModelService.getListByObjectId(id);
+        respVO.setRoomModelList(BeanUtils.toBean(roomModelDOList, PriceRoomModelRespVO.class));
+        List<PriceFloorDO> floorDOList = priceFloorService.getListByObjectId(id);
+        respVO.setFloorList(BeanUtils.toBean(floorDOList, PriceFloorRespVO.class));
+        return success(respVO);
+    }
+
+
     @GetMapping("/page")
     @Operation(summary = "获得航次价格分页")
     @PreAuthorize("@ss.hasPermission('product:price-voyage:query')")

+ 3 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/pricevoyage/PriceVoyageMapper.java

@@ -1,6 +1,5 @@
 package com.yc.ship.module.product.dal.mysql.pricevoyage;
 
-import java.util.*;
 
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -31,4 +30,7 @@ public interface PriceVoyageMapper extends BaseMapperX<PriceVoyageDO> {
                 .orderByDesc(PriceVoyageDO::getId));
     }
 
+    default PriceVoyageDO selectByVoyageId(Long voyageId) {
+        return selectOne(PriceVoyageDO::getVoyageId, voyageId);
+    }
 }

+ 1 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/pricevoyage/PriceVoyageService.java

@@ -52,4 +52,5 @@ public interface PriceVoyageService {
      */
     PageResult<PriceVoyageDO> getPriceVoyagePage(PriceVoyagePageReqVO pageReqVO);
 
+    PriceVoyageDO getByVoyageId(Long voyageId);
 }

+ 5 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/pricevoyage/PriceVoyageServiceImpl.java

@@ -94,6 +94,11 @@ public class PriceVoyageServiceImpl implements PriceVoyageService {
         return priceVoyageMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PriceVoyageDO getByVoyageId(Long voyageId) {
+        return priceVoyageMapper.selectByVoyageId(voyageId);
+    }
+
     private void saveRelation(Long objectId, PriceVoyageSaveReqVO vo) {
         //插入房型价格系数
         List<PriceRoomModelDO> roomModelList = vo.getRoomModelList();