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

小程序接口修改

ZHOUTD 1 hete
szülő
commit
856a896b81

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

@@ -37,6 +37,10 @@ public class AppResourceRouteController {
 
     @Resource
     private ResourceRouteService routeService;
+
+    @Resource
+    private ResourceDockService dockService;
+
     @PostMapping("/page")
     @Operation(summary = "获得航线分页列表")
     public CommonResult<PageResult<AppResourceRouteRespVO>> getRoutePage(@RequestBody @Valid AppResourceRoutePageReqVO pageReqVO) {
@@ -48,7 +52,34 @@ public class AppResourceRouteController {
     @Operation(summary = "获得航线详情")
     public CommonResult<AppResourceRouteRespVO> getRouteDetail(@RequestParam("routeId") Long routeId) {
         ResourceRouteDO route = routeService.getRoute(routeId);
-        return success(BeanUtils.toBean(route, AppResourceRouteRespVO.class));
+        AppResourceRouteRespVO result = BeanUtils.toBean(route, AppResourceRouteRespVO.class);
+        ResourceDockDO onDock = route.getOnDockId() == null ? null : dockService.getDock(route.getOnDockId());
+        ResourceDockDO leaveDock = route.getLeaveDockId() == null ? null : dockService.getDock(route.getLeaveDockId());
+        if (onDock != null) {
+            result.setOnDockName(onDock.getName());
+            result.setOnDockProvinceName(getDockProvinceName(onDock));
+            result.setOnDockCityName(getDockCityName(onDock));
+        }
+        if (leaveDock != null) {
+            result.setLeaveDockName(leaveDock.getName());
+            result.setLeaveDockProvinceName(getDockProvinceName(leaveDock));
+            result.setLeaveDockCityName(getDockCityName(leaveDock));
+        }
+        return success(result);
+    }
+
+    private String getDockProvinceName(ResourceDockDO dock) {
+        if (dock.getProvinceName() != null && !dock.getProvinceName().isEmpty()) {
+            return dock.getProvinceName();
+        }
+        return dock.getCityName();
+    }
+
+    private String getDockCityName(ResourceDockDO dock) {
+        if (dock.getCityName() != null && !dock.getCityName().isEmpty()) {
+            return dock.getCityName();
+        }
+        return dock.getProvinceName();
     }
 
     @GetMapping("/simple-list")

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

@@ -42,6 +42,12 @@ public class AppResourceRouteRespVO {
     @ExcelProperty("登船码头")
     private String onDockName;
 
+    @Schema(description = "登船码头所在省市")
+    private String onDockProvinceName;
+
+    @Schema(description = "登船码头所在城市")
+    private String onDockCityName;
+
     @Schema(description = "离船码头", example = "1161")
     @ExcelProperty("离船码头")
     private Long leaveDockId;
@@ -50,6 +56,12 @@ public class AppResourceRouteRespVO {
     @ExcelProperty("离船码头")
     private String leaveDockName;
 
+    @Schema(description = "离船码头所在省市")
+    private String leaveDockProvinceName;
+
+    @Schema(description = "离船码头所在城市")
+    private String leaveDockCityName;
+
     @Schema(description = "途经停靠码头")
     @ExcelProperty("途经停靠码头")
     private String midwayDockIds;
@@ -140,4 +152,4 @@ public class AppResourceRouteRespVO {
     private List<ResourceRouteTripDO> routeTrips;
 
 
-}
+}

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

@@ -3,9 +3,11 @@ package com.yc.ship.module.resource.controller.app.ship;
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.module.resource.controller.admin.ship.vo.ResourceShipRespVO;
+import com.yc.ship.module.resource.controller.app.ship.vo.AppPublicAreaImageRespVO;
 import com.yc.ship.module.resource.controller.app.ship.vo.AppResourceShipRespVO;
 import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
 import com.yc.ship.module.resource.service.ship.ResourceShipService;
+import com.yc.ship.module.system.api.dict.DictDataApi;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static com.yc.ship.framework.common.pojo.CommonResult.success;
 
@@ -23,22 +26,32 @@ import static com.yc.ship.framework.common.pojo.CommonResult.success;
 @RequestMapping("/resource/ship")
 @Validated
 public class AppResourceShipController {
-
+    
     @Resource
     private ResourceShipService shipService;
 
+    @Resource
+    private DictDataApi dictDataApi;
+
     @GetMapping("/list-simple")
     @Operation(summary = "获取游轮列表(下拉筛选用)")
     public CommonResult<List<AppResourceShipRespVO>> getShipListSimple() {
-        List<ResourceShipDO> list = shipService.getListSimple();
+        List<ResourceShipDO> list = shipService.getAppListSimple();
         return success(BeanUtils.toBean(list, AppResourceShipRespVO.class));
     }
 
     @GetMapping("/detail")
     @Operation(summary = "获取游轮详情")
     public CommonResult<AppResourceShipRespVO> getShipDetail(Long id) {
-        ResourceShipDO ship = shipService.getShip(id);
+        ResourceShipDO ship = shipService.getAppShip(id);
         return success(BeanUtils.toBean(ship, AppResourceShipRespVO.class));
     }
 
+    @GetMapping("/public-area-images")
+    @Operation(summary = "获取游轮公共区域图片")
+    public CommonResult<List<AppPublicAreaImageRespVO>> getPublicAreaImages() {
+        return success(BeanUtils.toBean(dictDataApi.getDictDataList("public_area_images"),
+                AppPublicAreaImageRespVO.class));
+    }
+
 }

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

@@ -0,0 +1,18 @@
+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 AppPublicAreaImageRespVO {
+
+    @Schema(description = "所属楼层", example = "3F")
+    private String label;
+
+    @Schema(description = "图片地址")
+    private String value;
+
+    @Schema(description = "图片内嵌标题", example = "H2O酒吧")
+    private String remark;
+}

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

@@ -7,4 +7,7 @@ import lombok.Data;
 @Schema(description = "APP 游轮 - 游轮 Response VO")
 @Data
 public class AppResourceShipRespVO extends ResourceShipRespVO {
+
+    @Schema(description = "客房数量")
+    private Long roomCount;
 }

+ 7 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/ship/ResourceShipDO.java

@@ -113,4 +113,10 @@ public class ResourceShipDO extends TenantBaseDO {
      */
     private String speed;
 
-}
+    /**
+     * 客房数量
+     */
+    @TableField(exist = false)
+    private Long roomCount;
+
+}

+ 17 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/ship/ResourceShipMapper.java

@@ -7,6 +7,8 @@ import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import com.yc.ship.module.resource.controller.admin.ship.vo.*;
 
 /**
@@ -17,6 +19,20 @@ import com.yc.ship.module.resource.controller.admin.ship.vo.*;
 @Mapper
 public interface ResourceShipMapper extends BaseMapperX<ResourceShipDO> {
 
+    @Select("SELECT s.*, COALESCE(r.room_count, 0) AS room_count " +
+            "FROM resource_ship s " +
+            "LEFT JOIN (SELECT ship_id, COUNT(id) AS room_count FROM resource_room " +
+            "WHERE deleted = 0 GROUP BY ship_id) r ON r.ship_id = s.id " +
+            "WHERE s.deleted = 0 and s.id != 60011")
+    List<ResourceShipDO> selectAppListWithRoomCount();
+
+    @Select("SELECT s.*, COALESCE(r.room_count, 0) AS room_count " +
+            "FROM resource_ship s " +
+            "LEFT JOIN (SELECT ship_id, COUNT(id) AS room_count FROM resource_room " +
+            "WHERE deleted = 0 GROUP BY ship_id) r ON r.ship_id = s.id " +
+            "WHERE s.deleted = 0 AND s.id = #{id}")
+    ResourceShipDO selectAppByIdWithRoomCount(@Param("id") Long id);
+
     default PageResult<ResourceShipDO> selectPage(ResourceShipPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<ResourceShipDO>()
                 .likeIfPresent(ResourceShipDO::getName, reqVO.getName())
@@ -27,4 +43,4 @@ public interface ResourceShipMapper extends BaseMapperX<ResourceShipDO> {
                 .orderByDesc(ResourceShipDO::getId));
     }
 
-}
+}

+ 5 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/ship/ResourceShipService.java

@@ -44,6 +44,8 @@ public interface ResourceShipService {
      */
     ResourceShipDO getShip(Long id);
 
+    ResourceShipDO getAppShip(Long id);
+
     /**
      * 获得资源管理-游轮管理分页
      *
@@ -54,5 +56,7 @@ public interface ResourceShipService {
 
     List<ResourceShipDO> getListSimple();
 
+    List<ResourceShipDO> getAppListSimple();
+
     List<ResourceShipDO> getList(List<Long> ids);
-}
+}

+ 11 - 1
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/ship/ResourceShipServiceImpl.java

@@ -65,6 +65,11 @@ public class ResourceShipServiceImpl implements ResourceShipService {
         return resourceShipMapper.selectById(id);
     }
 
+    @Override
+    public ResourceShipDO getAppShip(Long id) {
+        return resourceShipMapper.selectAppByIdWithRoomCount(id);
+    }
+
     @Override
     public PageResult<ResourceShipDO> getShipPage(ResourceShipPageReqVO pageReqVO) {
         return resourceShipMapper.selectPage(pageReqVO);
@@ -75,6 +80,11 @@ public class ResourceShipServiceImpl implements ResourceShipService {
         return resourceShipMapper.selectList();
     }
 
+    @Override
+    public List<ResourceShipDO> getAppListSimple() {
+        return resourceShipMapper.selectAppListWithRoomCount();
+    }
+
     @Override
     public List<ResourceShipDO> getList(List<Long> ids) {
         if(ids.isEmpty()) {
@@ -83,4 +93,4 @@ public class ResourceShipServiceImpl implements ResourceShipService {
         return resourceShipMapper.selectByIds(ids);
     }
 
-}
+}