Selaa lähdekoodia

fix: 修改小程序接口

luofeiyun 3 viikkoa sitten
vanhempi
commit
e58d0ecb73

+ 2 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/app/voyage/vo/AppVoyageCalendarPriceReqVO.java

@@ -17,11 +17,9 @@ public class AppVoyageCalendarPriceReqVO {
     @NotNull(message = "船ID不能为空")
     private Long shipId;
 
-    @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "开始时间不能为空")
+    @Schema(description = "开始时间")
     private String startDate;
 
-    @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "结束时间不能为空")
+    @Schema(description = "结束时间")
     private String endDate;
 }

+ 7 - 4
ship-module-product/ship-module-product-biz/src/main/resources/mapper/pricevoyage/PriceVoyageMapper.xml

@@ -25,10 +25,13 @@
           AND t3.deleted = 0
           and t1.ship_id = #{reqVO.shipId}
           AND t1.route_id = #{reqVO.routeId}
-          AND t1.start_time BETWEEN #{reqVO.startDate}
-          AND CONCAT(
-            #{reqVO.endDate},
-            ' 23:59:59')
+        <if test="reqVO.startDate != null and reqVO.startDate != ''">
+            AND t1.start_time >= #{reqVO.startDate}
+        </if>
+        <if test="reqVO.endDate != null and reqVO.endDate != ''">
+            AND t1.start_time &lt;= CONCAT(#{reqVO.endDate},' 23:59:59')
+        </if>
+
     </select>
     <select id="selectRoomModelListByVoyageId"
             resultType="com.yc.ship.module.product.controller.app.voyage.vo.AppRoomModelPriceRespVO">

+ 38 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/AppResourceRouteController.java

@@ -5,11 +5,18 @@ import com.yc.ship.framework.common.pojo.PageResult;
 
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRouteRespVO;
+import com.yc.ship.module.resource.controller.admin.ship.vo.ResourceShipRespVO;
+import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRouteDetailRespVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePageReqVO;
+import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePriceVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRouteRespVO;
 
+import com.yc.ship.module.resource.dal.dataobject.dock.ResourceDockDO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
+import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
+import com.yc.ship.module.resource.service.dock.ResourceDockService;
 import com.yc.ship.module.resource.service.route.ResourceRouteService;
+import com.yc.ship.module.resource.service.ship.ResourceShipService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 
@@ -32,6 +39,12 @@ public class AppResourceRouteController {
     @Resource
     private ResourceRouteService routeService;
 
+    @Resource
+    private ResourceShipService shipService;
+
+    @Resource
+    private ResourceDockService dockService;
+
     @PostMapping("/page")
     @Operation(summary = "获得航线分页列表")
     public CommonResult<PageResult<AppResourceRouteRespVO>> getRoutePage(@RequestBody @Valid AppResourceRoutePageReqVO pageReqVO) {
@@ -39,6 +52,31 @@ public class AppResourceRouteController {
         return success(pageResult);
     }
 
+    @GetMapping("/detail")
+    @Operation(summary = "获得航线详情")
+    public CommonResult<AppResourceRouteDetailRespVO> getRouteDetail(@RequestParam("routeId") Long routeId, @RequestParam("shipId") Long shipId) {
+        ResourceRouteDO route = routeService.getRoute(routeId);
+        AppResourceRouteDetailRespVO respVO = new AppResourceRouteDetailRespVO();
+        respVO.setRouteId(routeId)
+                .setRouteName(route.getName())
+                .setDirection(route.getDirection())
+                .setOnDockId(route.getOnDockId())
+                .setDayNum(route.getDayNum())
+                .setNightNum(route.getNightNum())
+                .setRouteDetail(route.getRouteDetail())
+                .setRouteImg(route.getRouteImg());
+        ResourceShipDO ship = shipService.getShip(shipId);
+        respVO.setShipId(shipId)
+                .setShipName(ship.getName())
+                .setShipDetail(BeanUtils.toBean(ship, ResourceShipRespVO.class));
+        ResourceDockDO dock = dockService.getDock(route.getOnDockId());
+        respVO.setOnDockName(dock.getName());
+        AppResourceRoutePriceVO priceVO = routeService.getMinAndMaxPrice(routeId, shipId);
+        respVO.setMinPrice(priceVO.getMinPrice());
+        respVO.setMaxPrice(priceVO.getMaxPrice());
+        return success(respVO);
+    }
+
     @GetMapping("/simple-list")
     @Operation(summary = "获得航线列表(下拉筛选用)")
     public CommonResult<List<ResourceRouteRespVO>> getRouteList() {

+ 51 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/vo/AppResourceRouteDetailRespVO.java

@@ -0,0 +1,51 @@
+package com.yc.ship.module.resource.controller.app.route.vo;
+
+import com.yc.ship.module.resource.controller.admin.ship.vo.ResourceShipRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(name = "航线 APP - 航线详情接口")
+@Data
+public class AppResourceRouteDetailRespVO {
+    @Schema(description = "航线ID", example = "1161")
+    private Long routeId;
+    @Schema(description = "航线名称", example = "上海-苏州")
+    private String routeName;
+    @Schema(description = "航线方向", example = "1")
+    private Integer direction;
+
+    @Schema(description = "出发码头ID", example = "28643")
+    private Long onDockId;
+
+    @Schema(description = "出发码头名称", example = "上海南")
+    private String onDockName;
+
+    @Schema(description = "最低价", example = "121.5")
+    private BigDecimal minPrice;
+
+    @Schema(description = "最高价", example = "121.5")
+    private BigDecimal maxPrice;
+
+    @Schema(description = "天数", example = "1")
+    private Integer dayNum;
+
+    @Schema(description = "晚数", example = "1")
+    private Integer nightNum;
+
+    @Schema(description = "航线详情", example = "上海-苏州")
+    private String routeDetail;
+
+    @Schema(description = "航线图片", example = "上海-苏州")
+    private String routeImg;
+
+    @Schema(description = "游轮ID", example = "1161")
+    private Long shipId;
+
+    @Schema(description = "游轮名称", example = "上海-苏州")
+    private String shipName;
+
+    @Schema(description = "游轮详情")
+    private ResourceShipRespVO shipDetail;
+}

+ 17 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/vo/AppResourceRoutePriceVO.java

@@ -0,0 +1,17 @@
+package com.yc.ship.module.resource.controller.app.route.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "APP - 航线价格接口")
+@Data
+public class AppResourceRoutePriceVO {
+
+    @Schema(description = "航线最低价格", example = "28643")
+    private BigDecimal minPrice;
+
+    @Schema(description = "航线最高价格", example = "28643")
+    private BigDecimal maxPrice;
+}

+ 5 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/route/ResourceRouteMapper.java

@@ -6,12 +6,14 @@ import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePageReqVO;
+import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePriceVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRouteRespVO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.resource.enums.CommonStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 import com.yc.ship.module.resource.controller.admin.route.vo.*;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -41,4 +43,7 @@ public interface ResourceRouteMapper extends BaseMapperX<ResourceRouteDO> {
         return selectList(new LambdaQueryWrapperX<ResourceRouteDO>()
                 .eq(ResourceRouteDO::getStatus, CommonStatusEnum.ENABLE.getStatus()));
     }
+
+    @Select("select min(price) min_price, max(price) max_price from product_price_room_model where object_id in (select id from product_price_voyage where route_id = #{routeId} and ship_id = #{shipId})")
+    AppResourceRoutePriceVO selectMinAndMaxPrice(@Param("routeId") Long routeId, @Param("shipId") Long shipId);
 }

+ 9 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteService.java

@@ -4,6 +4,7 @@ import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRoutePageReqVO;
 import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRouteSaveReqVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePageReqVO;
+import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePriceVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRouteRespVO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 
@@ -67,4 +68,12 @@ public interface ResourceRouteService {
      * @return
      */
     PageResult<AppResourceRouteRespVO> getAppRoutePage(AppResourceRoutePageReqVO pageReqVO);
+
+    /**
+     * 获取航次最低价和最高价
+     * @param routeId
+     * @param shipId
+     * @return
+     */
+    AppResourceRoutePriceVO getMinAndMaxPrice(Long routeId, Long shipId);
 }

+ 6 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteServiceImpl.java

@@ -7,6 +7,7 @@ import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
 import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRoutePageReqVO;
 import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRouteSaveReqVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePageReqVO;
+import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePriceVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRouteRespVO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.resource.dal.mysql.route.ResourceRouteMapper;
@@ -99,4 +100,9 @@ public class ResourceRouteServiceImpl implements ResourceRouteService {
         return new PageResult<>(result.getRecords(), result.getTotal());
     }
 
+    @Override
+    public AppResourceRoutePriceVO getMinAndMaxPrice(Long routeId, Long shipId) {
+        return routeMapper.selectMinAndMaxPrice(routeId, shipId);
+    }
+
 }