Quellcode durchsuchen

feat: 增加APP航线列表接口,修改APP端其他接口

luofeiyun vor 12 Stunden
Ursprung
Commit
f0935ecaad
14 geänderte Dateien mit 195 neuen und 42 gelöschten Zeilen
  1. 9 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/route/vo/ResourceRouteRespVO.java
  2. 5 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/route/vo/ResourceRouteSaveReqVO.java
  3. 1 1
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/dock/AppResourceDockController.java
  4. 1 1
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/port/AppResourcePortController.java
  5. 18 15
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/AppResourceRouteController.java
  6. 3 6
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/vo/AppResourceRoutePageReqVO.java
  7. 23 17
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/vo/AppResourceRouteRespVO.java
  8. 8 1
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/ship/AppResourceShipController.java
  9. 9 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/ship/vo/AppResourceShipRespVo.java
  10. 10 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/route/ResourceRouteDO.java
  11. 11 1
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/route/ResourceRouteMapper.java
  12. 11 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteService.java
  13. 16 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteServiceImpl.java
  14. 70 0
      ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/resourceroute/ResourceRouteMapper.xml

+ 9 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/route/vo/ResourceRouteRespVO.java

@@ -79,4 +79,13 @@ public class ResourceRouteRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "行程天数")
+    private Integer dayNum;
+
+    @Schema(description = "行程晚数")
+    private Integer nightNum;
+
+    @Schema(description = "行程总时长")
+    private String duration;
+
 }

+ 5 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/route/vo/ResourceRouteSaveReqVO.java

@@ -55,4 +55,9 @@ public class ResourceRouteSaveReqVO {
     @NotNull(message = "状态不能为空")
     private Integer status;
 
+    @Schema(description = "行程天数")
+    private Integer dayNum;
+
+    @Schema(description = "行程晚数")
+    private Integer nightNum;
 }

+ 1 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/dock/AppResourceDockController.java

@@ -26,7 +26,7 @@ public class AppResourceDockController {
     @Resource
     private ResourceDockService dockService;
     @GetMapping("/enableList")
-    @Operation(summary = "")
+    @Operation(summary = "获取码头列表(下拉筛选用)")
     public CommonResult<List<ResourceDockRespVO>> getEnableList() {
         List<ResourceDockDO> list = dockService.getEnableList();
         return success(BeanUtils.toBean(list, ResourceDockRespVO.class));

+ 1 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/port/AppResourcePortController.java

@@ -27,7 +27,7 @@ public class AppResourcePortController {
     private ResourcePortService portService;
 
     @GetMapping("/list-simple")
-    @Operation(summary = "获得资源管理-口岸列表")
+    @Operation(summary = "获得口岸列表(下拉筛选用)")
     public CommonResult<List<ResourcePortRespVO>> getPortListSimple() {
         List<ResourcePortDO> list = portService.enableList();
         return success(BeanUtils.toBean(list, ResourcePortRespVO.class));

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

@@ -2,30 +2,26 @@ package com.yc.ship.module.resource.controller.app.route;
 
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
-import com.yc.ship.framework.common.util.collection.CollectionUtils;
+
 import com.yc.ship.framework.common.util.object.BeanUtils;
-import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRoutePageReqVO;
 import com.yc.ship.module.resource.controller.admin.route.vo.ResourceRouteRespVO;
 import com.yc.ship.module.resource.controller.app.route.vo.AppResourceRoutePageReqVO;
 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.scenic.ResourceScenicDO;
+import com.yc.ship.module.resource.service.route.ResourceRouteService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.security.access.prepost.PreAuthorize;
+
 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 javax.validation.Valid;
-import java.util.ArrayList;
-import java.util.Arrays;
+
 import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 import static com.yc.ship.framework.common.pojo.CommonResult.success;
 
@@ -35,13 +31,20 @@ import static com.yc.ship.framework.common.pojo.CommonResult.success;
 @Validated
 public class AppResourceRouteController {
 
+    @Resource
+    private ResourceRouteService routeService;
+
     @GetMapping("/page")
-    @Operation(summary = "获得航线管理分页")
-    @PreAuthorize("@ss.hasPermission('resource:route:query')")
+    @Operation(summary = "获得航线分页列表")
     public CommonResult<PageResult<AppResourceRouteRespVO>> getRoutePage(@Valid AppResourceRoutePageReqVO pageReqVO) {
-        // TODO 待完善
-
+        PageResult<AppResourceRouteRespVO> pageResult = routeService.getAppRoutePage(pageReqVO);
+        return success(pageResult);
+    }
 
-        return success(null);
+    @GetMapping("/simple-list")
+    @Operation(summary = "获得航线列表(下拉筛选用)")
+    public CommonResult<List<ResourceRouteRespVO>> getRouteList() {
+        List<ResourceRouteDO> list = routeService.getEnableRouteList();
+        return success(BeanUtils.toBean(list, ResourceRouteRespVO.class));
     }
 }

+ 3 - 6
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/route/vo/AppResourceRoutePageReqVO.java

@@ -12,14 +12,11 @@ import lombok.ToString;
 @ToString(callSuper = true)
 public class AppResourceRoutePageReqVO extends PageParam {
 
-    @Schema(description = "航线名称", example = "王五")
-    private String name;
-
     @Schema(description = "游轮ID", example = "1161")
     private Long shipId;
 
     @Schema(description = "码头ID", example = "28643")
-    private Long onDockId;
+    private Long dockId;
 
     @Schema(description = "口岸ID", example = "1161")
     private Long portId;
@@ -27,7 +24,7 @@ public class AppResourceRoutePageReqVO extends PageParam {
     @Schema(description = "出发日期")
     private String startDay;
 
-    @Schema(description = "出发时间")
-    private String startTime;
+    @Schema(description = "航线ID", example = "1161")
+    private Long routeId;
 
 }

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

@@ -1,9 +1,5 @@
 package com.yc.ship.module.resource.controller.app.route.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.yc.ship.framework.excel.core.annotations.DictFormat;
-import com.yc.ship.framework.excel.core.convert.DictConvert;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -12,31 +8,41 @@ import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - 航线管理 Response VO")
 @Data
-@ExcelIgnoreUnannotated
 public class AppResourceRouteRespVO {
 
-    @Schema(description = "航线ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13031")
-    @ExcelProperty("航线ID")
-    private Long id;
+    @Schema(description = "航线名称")
+    private String routeName;
 
-    @Schema(description = "航线名称", example = "王五")
-    @ExcelProperty("航线名称")
-    private String name;
+    @Schema(description = "码头ID")
+    private Long dockId;
 
-    @Schema(description = "游轮名称", example = "1161")
-    private String shipName;
+    @Schema(description = "岸端ID")
+    private Long portId;
+
+    @Schema(description = "航线简称")
+    private String routeShortName;
+
+    @Schema(description = "航向,1:宜昌到重庆,2:重庆到宜昌")
+    private Integer direction;
+
+    @Schema(description = "航线时长")
+    private String duration;
 
-    @Schema(description = "游玩时长")
-    private String dayDesc;
+    @Schema(description = "船ID")
+    private Long shipId;
 
-    @Schema(description = "游轮封面图")
+    @Schema(description = "船名称")
+    private String shipName;
+
+    @Schema(description = "船图片")
     private String shipImg;
 
-    @Schema(description = "游轮价格")
+    @Schema(description = "价格")
     private BigDecimal price;
 
 
 
 
 
+
 }

+ 8 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/ship/AppResourceShipController.java

@@ -27,10 +27,17 @@ public class AppResourceShipController {
     private ResourceShipService shipService;
 
     @GetMapping("/list-simple")
-    @Operation(summary = "获得资源管理-游轮列表")
+    @Operation(summary = "获取游轮列表(下拉筛选用)")
     public CommonResult<List<ResourceShipRespVO>> getShipListSimple() {
         List<ResourceShipDO> list = shipService.getListSimple();
         return success(BeanUtils.toBean(list, ResourceShipRespVO.class));
     }
 
+    @GetMapping("/detail")
+    @Operation(summary = "获取游轮详情")
+    public CommonResult<ResourceShipRespVO> getShipDetail(Long id) {
+        ResourceShipDO ship = shipService.getShip(id);
+        return success(BeanUtils.toBean(ship, ResourceShipRespVO.class));
+    }
+
 }

+ 9 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/ship/vo/AppResourceShipRespVo.java

@@ -0,0 +1,9 @@
+package com.yc.ship.module.resource.controller.app.ship.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "APP 游轮 - 游轮 Response VO")
+@Data
+public class AppResourceShipRespVo {
+}

+ 10 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/route/ResourceRouteDO.java

@@ -88,4 +88,14 @@ public class ResourceRouteDO extends BaseDO {
      */
     private Integer status;
 
+    /**
+     * 行程天数
+     */
+    private Integer dayNum;
+
+    /**
+     * 行程晚数
+     */
+    private Integer nightNum;
+
 }

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

@@ -1,14 +1,19 @@
 package com.yc.ship.module.resource.dal.mysql.route;
 
-import java.util.*;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 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.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 java.util.List;
+
 /**
  * 航线管理 Mapper
  *
@@ -29,5 +34,10 @@ public interface ResourceRouteMapper extends BaseMapperX<ResourceRouteDO> {
                 .orderByAsc(ResourceRouteDO::getSort)
                 .orderByDesc(ResourceRouteDO::getId));
     }
+    IPage<AppResourceRouteRespVO> selectAppRoutePage(IPage<AppResourceRouteRespVO> ipage, AppResourceRoutePageReqVO reqVo);
 
+    default List<ResourceRouteDO> selectEnableList() {
+        return selectList(new LambdaQueryWrapperX<ResourceRouteDO>()
+                .eq(ResourceRouteDO::getStatus, CommonStatusEnum.ENABLE.getStatus()));
+    }
 }

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

@@ -3,6 +3,8 @@ package com.yc.ship.module.resource.service.route;
 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.AppResourceRouteRespVO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 
 import javax.validation.Valid;
@@ -55,5 +57,14 @@ public interface ResourceRouteService {
 
     List<ResourceRouteDO> getRouteList();
 
+    List<ResourceRouteDO> getEnableRouteList();
+
     List<ResourceRouteDO> getList(List<Long> routeIds);
+
+    /**
+     * 获取APP上的航线分页列表
+     * @param pageReqVO
+     * @return
+     */
+    PageResult<AppResourceRouteRespVO> getAppRoutePage(AppResourceRoutePageReqVO pageReqVO);
 }

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

@@ -1,9 +1,13 @@
 package com.yc.ship.module.resource.service.route;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
+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.AppResourceRouteRespVO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.resource.dal.mysql.route.ResourceRouteMapper;
 import org.springframework.stereotype.Service;
@@ -75,6 +79,11 @@ public class ResourceRouteServiceImpl implements ResourceRouteService {
         return routeMapper.selectList();
     }
 
+    @Override
+    public List<ResourceRouteDO> getEnableRouteList() {
+        return routeMapper.selectEnableList();
+    }
+
     @Override
     public List<ResourceRouteDO> getList(List<Long> routeIds) {
         if(routeIds.isEmpty()) {
@@ -83,4 +92,11 @@ public class ResourceRouteServiceImpl implements ResourceRouteService {
         return routeMapper.selectByIds(routeIds);
     }
 
+    @Override
+    public PageResult<AppResourceRouteRespVO> getAppRoutePage(AppResourceRoutePageReqVO pageReqVO) {
+        IPage<AppResourceRouteRespVO> ipage = MyBatisUtils.buildPage(pageReqVO);
+        IPage<AppResourceRouteRespVO> result = routeMapper.selectAppRoutePage(ipage,pageReqVO);
+        return new PageResult<>(result.getRecords(), result.getTotal());
+    }
+
 }

+ 70 - 0
ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/resourceroute/ResourceRouteMapper.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.resource.dal.mysql.route.ResourceRouteMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+    <select id="selectAppRoutePage" resultType="com.yc.ship.module.resource.controller.app.route.vo.AppResourceRouteRespVO">
+        select * from (
+        SELECT
+            rr.id route_id,
+           rr.NAME route_name,
+           rr.on_dock_id dock_id,
+           rp.id port_id,
+           rr.short_name route_short_name,
+           rr.direction,
+           rr.duration,
+           rs.id ship_id,
+           rs.NAME ship_name,
+           rs.img ship_img,
+           t2.price
+       FROM
+           resource_route rr
+               LEFT JOIN resource_dock rd on rr.on_dock_id = rd.id
+               LEFT JOIN resource_port rp on rd.port_id = rp.id
+               LEFT JOIN product_voyage pv ON rr.id = pv.route_id
+                                                  <if test="reqVo.startDay != null and reqVo.startDay != ''">
+                                                      and pv.start_time BETWEEN BETWEEN CONCAT(#{reqVo.startDay},' 00:00:00') and CONCAT(#{reqVo.startDay},' 23:59:59')
+                                                  </if>
+               LEFT JOIN resource_ship rs ON pv.ship_id = rs.id
+               LEFT JOIN (
+               SELECT
+                   *
+               FROM
+                   (
+                       SELECT
+                           ppv.voyage_id,
+                           pprm.price
+                       FROM
+                           product_price_voyage ppv
+                               LEFT JOIN product_price_room_model pprm ON pprm.object_id = ppv.id
+                       ORDER BY
+                           pprm.price ASC
+                   ) t1
+               GROUP BY
+                   t1.voyage_id
+           ) t2 ON pv.id = t2.voyage_id
+       GROUP BY
+           rs.id
+      ) t3 where 1=1
+     <if test="reqVo.shipId != null">
+      and t3.ship_id = #{reqVo.shipId}
+      </if>
+     <if test="reqVo.dockId != null">
+      and t3.dock_id = #{reqVo.dockId}
+      </if>
+      <if test="reqVo.portId != null">
+          and t3.port_id = #{reqVo.portId}
+      </if>
+        <if test="reqVo.routeId != null">
+                  and t3.routeId = #{reqVo.routeId}
+        </if>
+    </select>
+
+
+</mapper>