|
|
@@ -3,12 +3,31 @@ package com.yc.ship.module.product.controller.app.voyage;
|
|
|
import com.yc.ship.framework.common.pojo.CommonResult;
|
|
|
import com.yc.ship.framework.common.util.collection.CollectionUtils;
|
|
|
import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
+import com.yc.ship.module.product.controller.admin.pricetemplate.vo.*;
|
|
|
+import com.yc.ship.module.product.controller.admin.pricevoyage.vo.PriceVoyageRespVO;
|
|
|
import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageCalendarReqVO;
|
|
|
import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
|
|
|
+import com.yc.ship.module.product.controller.app.voyage.vo.AppRoomModelPriceRespVO;
|
|
|
+import com.yc.ship.module.product.controller.app.voyage.vo.AppVoyageCalendarPriceReqVO;
|
|
|
+import com.yc.ship.module.product.controller.app.voyage.vo.AppVoyageCalendarPriceRespVO;
|
|
|
+import com.yc.ship.module.product.controller.app.voyage.vo.AppVoyageRespVO;
|
|
|
+import com.yc.ship.module.product.dal.dataobject.pricearea.PriceAreaDO;
|
|
|
+import com.yc.ship.module.product.dal.dataobject.pricefloor.PriceFloorDO;
|
|
|
+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.pricearea.PriceAreaService;
|
|
|
+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;
|
|
|
+import com.yc.ship.module.product.service.pricespu.PriceSpuService;
|
|
|
+import com.yc.ship.module.product.service.pricevoyage.PriceVoyageService;
|
|
|
import com.yc.ship.module.product.service.voyage.VoyageService;
|
|
|
import com.yc.ship.module.resource.api.route.RouteApi;
|
|
|
import com.yc.ship.module.resource.api.route.dto.RouteRespDTO;
|
|
|
+import com.yc.ship.module.resource.api.ship.ShipApi;
|
|
|
import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
|
|
|
import com.yc.ship.module.resource.service.ship.ResourceShipService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
@@ -16,12 +35,15 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static com.yc.ship.framework.common.pojo.CommonResult.success;
|
|
|
|
|
|
/**
|
|
|
@@ -42,11 +64,31 @@ public class AppVoyageController {
|
|
|
@Resource
|
|
|
private RouteApi routeApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private PriceVoyageService priceVoyageService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PriceRoomModelService priceRoomModelService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PriceFloorService priceFloorService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PriceSingleSettingService priceSingleSettingService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PriceAreaService priceAreaService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PriceSpuService priceSpuService;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@GetMapping("/list-calendar")
|
|
|
@Operation(summary = "获取航次(航期)日历表")
|
|
|
- public CommonResult<List<VoyageRespVO>> getVoyageListCalendar(VoyageCalendarReqVO reqVO) {
|
|
|
+ public CommonResult<List<AppVoyageRespVO>> getVoyageListCalendar(VoyageCalendarReqVO reqVO) {
|
|
|
List<VoyageDO> list = voyageService.getListCalendar(reqVO);
|
|
|
- List<VoyageRespVO> voyageRespVOS = BeanUtils.toBean(list, VoyageRespVO.class);
|
|
|
+ List<AppVoyageRespVO> voyageRespVOS = BeanUtils.toBean(list, AppVoyageRespVO.class);
|
|
|
|
|
|
List<Long> shipIds = CollectionUtils.convertList(voyageRespVOS, VoyageRespVO::getShipId);
|
|
|
List<ResourceShipDO> shipList = shipService.getList(shipIds);
|
|
|
@@ -54,11 +96,64 @@ public class AppVoyageController {
|
|
|
|
|
|
List<Long> routeIds = CollectionUtils.convertList(voyageRespVOS, VoyageRespVO::getRouteId);
|
|
|
Map<Long, RouteRespDTO> longRouteRespDTOMap = routeApi.queryRoute(routeIds);
|
|
|
+
|
|
|
+ voyageRespVOS.stream().filter(item -> {
|
|
|
+ List<Long> shipIdList = CollectionUtils.convertList(shipList, ResourceShipDO::getId);
|
|
|
+ Set<Long> routeIdList = longRouteRespDTOMap.keySet();
|
|
|
+ return shipIdList.contains(item.getShipId()) && routeIdList.contains(item.getRouteId());
|
|
|
+ });
|
|
|
+
|
|
|
voyageRespVOS.stream().forEach(item -> {
|
|
|
item.setRouteName(longRouteRespDTOMap.get(item.getRouteId()).getName());
|
|
|
item.setRouteResp(longRouteRespDTOMap.get(item.getRouteId()));
|
|
|
item.setShipName(shipDOMap.get(item.getShipId()).getName());
|
|
|
+ item.setShipShortName(shipDOMap.get(item.getShipId()).getShortName());
|
|
|
});
|
|
|
return success(voyageRespVOS);
|
|
|
}
|
|
|
+
|
|
|
+ @GetMapping("/list-calendar-price")
|
|
|
+ @Operation(summary = "获取航次(航期)日历表价格")
|
|
|
+ public CommonResult<List<AppVoyageCalendarPriceRespVO>> getVoyageListCalendarPrice(AppVoyageCalendarPriceReqVO reqVO) {
|
|
|
+ List<AppVoyageCalendarPriceRespVO> list = priceVoyageService.getListCalendarPrice(reqVO);
|
|
|
+ return success(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/getRoomModelListByVoyageId")
|
|
|
+ @Operation(summary = "获取航次(航期)房型列表")
|
|
|
+ public CommonResult<List<AppRoomModelPriceRespVO>> getRoomModelListByVoyageId(@RequestParam("voyageId") Long voyageId) {
|
|
|
+ List<AppRoomModelPriceRespVO> list = priceVoyageService.getRoomModelListByVoyageId(voyageId);
|
|
|
+ return success(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ @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);
|
|
|
+ List<PriceRoomModelDO> roomModelDOList = priceRoomModelService.getListByObjectId(id);
|
|
|
+ List<PriceRoomModelRespVO> priceRoomModelRespVOS = BeanUtils.toBean(roomModelDOList, PriceRoomModelRespVO.class);
|
|
|
+ List<PriceSingleSettingDO> singleSettingDO = priceSingleSettingService.getByObjectId(id);
|
|
|
+ List<PriceSingleSettingRespVO> priceSingleSettingRespVOS = BeanUtils.toBean(singleSettingDO, PriceSingleSettingRespVO.class);
|
|
|
+ Map<Long, PriceSingleSettingRespVO> settingRespVOMap = CollectionUtils.convertMap(priceSingleSettingRespVOS, PriceSingleSettingRespVO::getRoomModelId);
|
|
|
+ priceRoomModelRespVOS.stream().forEach(item -> {
|
|
|
+ item.setSingleSetting(settingRespVOMap.get(item.getRoomModelId()));
|
|
|
+ });
|
|
|
+ respVO.setRoomModelList(priceRoomModelRespVOS);
|
|
|
+ List<PriceFloorDO> floorDOList = priceFloorService.getListByObjectId(id);
|
|
|
+ respVO.setFloorList(BeanUtils.toBean(floorDOList, PriceFloorRespVO.class));
|
|
|
+ List<PriceAreaDO> areaList = priceAreaService.getListByObjectId(id);
|
|
|
+ respVO.setAreaList(BeanUtils.toBean(areaList, PriceAreaRespVO.class));
|
|
|
+ List<PriceCountryRespVO> countryList = priceAreaService.getCountryPriceByObjectId(id);
|
|
|
+ respVO.setCountryList(countryList);
|
|
|
+ //附加产品
|
|
|
+ List<PriceSpuRespVO> spuList = priceSpuService.getListByObjectId(id);
|
|
|
+ respVO.setSpuList(spuList);
|
|
|
+ return success(respVO);
|
|
|
+ }
|
|
|
+
|
|
|
}
|