Browse Source

feat: 添加航线(航期)日历表数据小程序接口

luofeiyun 4 days ago
parent
commit
298a68be9e

+ 64 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/app/voyage/AppVoyageController.java

@@ -0,0 +1,64 @@
+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.voyage.vo.VoyageCalendarReqVO;
+import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
+import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
+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.dal.dataobject.ship.ResourceShipDO;
+import com.yc.ship.module.resource.service.ship.ResourceShipService;
+import io.swagger.v3.oas.annotations.Operation;
+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.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+/**
+ * 航次(航期)APP接口
+ */
+@Tag(name = "航次(航期) APP - 航次管理")
+@RestController
+@RequestMapping("/product/voyage")
+@Validated
+public class AppVoyageController {
+
+    @Resource
+    private VoyageService voyageService;
+
+    @Resource
+    private ResourceShipService shipService;
+
+    @Resource
+    private RouteApi routeApi;
+
+    @GetMapping("/list-calendar")
+    @Operation(summary = "获取航次(航期)日历表")
+    public CommonResult<List<VoyageRespVO>> getVoyageListCalendar(VoyageCalendarReqVO reqVO) {
+        List<VoyageDO> list = voyageService.getListCalendar(reqVO);
+        List<VoyageRespVO> voyageRespVOS = BeanUtils.toBean(list, VoyageRespVO.class);
+
+        List<Long> shipIds = CollectionUtils.convertList(voyageRespVOS, VoyageRespVO::getShipId);
+        List<ResourceShipDO> shipList = shipService.getList(shipIds);
+        Map<Long, ResourceShipDO> shipDOMap = CollectionUtils.convertMap(shipList, ResourceShipDO::getId);
+
+        List<Long> routeIds = CollectionUtils.convertList(voyageRespVOS, VoyageRespVO::getRouteId);
+        Map<Long, RouteRespDTO> longRouteRespDTOMap = routeApi.queryRoute(routeIds);
+        voyageRespVOS.stream().forEach(item -> {
+            item.setRouteName(longRouteRespDTOMap.get(item.getRouteId()).getName());
+            item.setRouteResp(longRouteRespDTOMap.get(item.getRouteId()));
+            item.setShipName(shipDOMap.get(item.getShipId()).getName());
+        });
+        return success(voyageRespVOS);
+    }
+}