luofeiyun 1 день назад
Родитель
Сommit
d0264966b3
24 измененных файлов с 414 добавлено и 9 удалено
  1. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/app/voyage/vo/AppVoyageCalendarPriceRespVO.java
  2. 5 4
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/pricevoyage/PriceVoyageMapper.xml
  3. 8 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodel/ResourceRoomModelController.java
  4. 7 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodel/vo/ResourceRoomModelRespVO.java
  5. 7 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodel/vo/ResourceRoomModelSaveReqVO.java
  6. 31 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodelservice/vo/ResourceRoomModelServiceRespVO.java
  7. 21 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodelservice/vo/ResourceRoomModelServiceSaveReqVO.java
  8. 21 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/scenic/vo/ResourceScenicRespVO.java
  9. 69 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/roommodel/AppResourceRoomModelController.java
  10. 22 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/roommodel/vo/AppResourceRoomModelPageReqVO.java
  11. 1 1
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/scenic/AppResourceScenicController.java
  12. 5 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/roommodel/ResourceRoomModelDO.java
  13. 44 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/roommodelservice/ResourceRoomModelServiceDO.java
  14. 17 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/scenic/ResourceScenicDO.java
  15. 11 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/roommodel/ResourceRoomModelMapper.java
  16. 34 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/roommodelservice/ResourceRoomModelServiceMapper.java
  17. 3 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodel/ResourceRoomModelService.java
  18. 27 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodel/ResourceRoomModelServiceImpl.java
  19. 18 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodelservice/ResourceRoomModelServiceService.java
  20. 45 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodelservice/ResourceRoomModelServiceServiceImpl.java
  21. 6 4
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteServiceImpl.java
  22. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/AppOtcTradeOrderServiceImpl.java
  23. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/refund/impl/TradeRefundServiceImpl.java
  24. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/app/voyage/vo/AppVoyageCalendarPriceRespVO.java

@@ -12,6 +12,9 @@ public class AppVoyageCalendarPriceRespVO {
     @Schema(description = "航次ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22359")
     private Long voyageId;
 
+    @Schema(description = "航次名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "航次名称")
+    private String voyageName;
+
     @Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
     private BigDecimal price;
 

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

@@ -14,6 +14,7 @@
         SELECT
             DATE_FORMAT( t1.start_time, '%Y-%m-%d' ) date,
 	t1.id voyage_id,
+	t1.name voyage_name,
 	min( t3.price ) price
         FROM
             product_voyage t1
@@ -31,19 +32,19 @@
         <if test="reqVO.routeId != null and reqVO.routeId != ''">
           AND t1.route_id = #{reqVO.routeId}
         </if>
-        and t1.start_time > now()
+        and t1.border_time > now()
         and t1.channel like '%2%'
         and t4.can_sale = 1
         <if test="reqVO.startDate != null and reqVO.startDate != ''">
-            AND t1.start_time >= #{reqVO.startDate}
+            AND t1.border_time >= #{reqVO.startDate}
         </if>
         <if test="reqVO.endDate != null and reqVO.endDate != ''">
-            AND t1.start_time &lt;= CONCAT(#{reqVO.endDate},' 23:59:59')
+            AND t1.border_time &lt;= CONCAT(#{reqVO.endDate},' 23:59:59')
         </if>
         GROUP BY
         t1.id
         order by
-        t1.start_time ASC
+        t1.border_time ASC
 
     </select>
     <select id="selectRoomModelListByVoyageId"

+ 8 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodel/ResourceRoomModelController.java

@@ -2,9 +2,12 @@ package com.yc.ship.module.resource.controller.admin.roommodel;
 
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.collection.MapUtils;
+import com.yc.ship.module.resource.controller.admin.roommodelservice.vo.ResourceRoomModelServiceRespVO;
 import com.yc.ship.module.resource.dal.dataobject.roommodelrooms.ResourceRoomModelRoomsDO;
+import com.yc.ship.module.resource.dal.dataobject.roommodelservice.ResourceRoomModelServiceDO;
 import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
 import com.yc.ship.module.resource.service.roomModelRooms.ResourceRoomModelRoomsService;
+import com.yc.ship.module.resource.service.roommodelservice.ResourceRoomModelServiceService;
 import com.yc.ship.module.resource.service.ship.ResourceShipService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
@@ -51,6 +54,9 @@ public class ResourceRoomModelController {
     @Resource
     private ResourceRoomModelRoomsService roomModelRoomsService;
 
+    @Resource
+    private ResourceRoomModelServiceService resourceRoomModelServiceService;
+
 
     @PostMapping("/create")
     @Operation(summary = "创建资源管理-房型管理")
@@ -88,6 +94,8 @@ public class ResourceRoomModelController {
             List<Long> roomIds = CollectionUtils.convertList(list, ResourceRoomModelRoomsDO::getRoomId);
             vo.setRoomNums(roomIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
         }
+        List<ResourceRoomModelServiceDO> services = resourceRoomModelServiceService.getByRoomModelId(id);
+        vo.setServices(BeanUtils.toBean(services, ResourceRoomModelServiceRespVO.class));
         return success(vo);
     }
 

+ 7 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodel/vo/ResourceRoomModelRespVO.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.resource.controller.admin.roommodel.vo;
 
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
+import com.yc.ship.module.resource.controller.admin.roommodelservice.vo.ResourceRoomModelServiceRespVO;
 import com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -155,6 +156,12 @@ public class ResourceRoomModelRespVO {
     @Schema(description = "是否可售")
     private Integer canSale;
 
+    @Schema(description = "房型面积")
+    private String roomArea;
+
+    @Schema(description = "房型服务设施")
+    private List<ResourceRoomModelServiceRespVO> services;
+
 
 
     public void setFloorsNumStr(String floorsNum) {

+ 7 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodel/vo/ResourceRoomModelSaveReqVO.java

@@ -1,5 +1,6 @@
 package com.yc.ship.module.resource.controller.admin.roommodel.vo;
 
+import com.yc.ship.module.resource.controller.admin.roommodelservice.vo.ResourceRoomModelServiceSaveReqVO;
 import com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -112,4 +113,10 @@ public class ResourceRoomModelSaveReqVO {
     @NotNull(message = "是否可售不能为空")
     private Integer canSale;
 
+    @Schema(description = "房型面积")
+    private String roomArea;
+
+    @Schema(description = "房型服务设施")
+    private List<ResourceRoomModelServiceSaveReqVO> services;
+
 }

+ 31 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodelservice/vo/ResourceRoomModelServiceRespVO.java

@@ -0,0 +1,31 @@
+package com.yc.ship.module.resource.controller.admin.roommodelservice.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 房型服务设施 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ResourceRoomModelServiceRespVO {
+
+    @Schema(description = "房型ID", example = "2801")
+    @ExcelProperty("房型ID")
+    private Long roomModelId;
+
+    @Schema(description = "类型", example = "2")
+    @ExcelProperty("类型")
+    private String type;
+
+    @Schema(description = "包含内容")
+    @ExcelProperty("包含内容")
+    private String content;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 21 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/roommodelservice/vo/ResourceRoomModelServiceSaveReqVO.java

@@ -0,0 +1,21 @@
+package com.yc.ship.module.resource.controller.admin.roommodelservice.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 房型服务设施新增/修改 Request VO")
+@Data
+public class ResourceRoomModelServiceSaveReqVO {
+
+    @Schema(description = "房型ID", example = "2801")
+    private Long roomModelId;
+
+    @Schema(description = "类型", example = "2")
+    private String type;
+
+    @Schema(description = "包含内容")
+    private String content;
+
+}

+ 21 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/admin/scenic/vo/ResourceScenicRespVO.java

@@ -2,6 +2,8 @@ package com.yc.ship.module.resource.controller.admin.scenic.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+
+import java.math.BigDecimal;
 import java.util.*;
 import com.alibaba.excel.annotation.*;
 import com.yc.ship.framework.excel.core.annotations.DictFormat;
@@ -97,4 +99,23 @@ public class ResourceScenicRespVO {
     @DictFormat("common_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
     private Integer status;
 
+
+    /**
+     * 建议游玩时间
+     */
+    @Schema(description = "建议游玩时间")
+    private String playTime;
+
+    /**
+     * 景区价格
+     */
+    @Schema(description = "景区价格")
+    private BigDecimal price;
+
+    /**
+     * 评分
+     */
+    @Schema(description = "评分")
+    private BigDecimal score;
+
 }

+ 69 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/roommodel/AppResourceRoomModelController.java

@@ -0,0 +1,69 @@
+package com.yc.ship.module.resource.controller.app.roommodel;
+
+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.collection.MapUtils;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.module.resource.controller.admin.roommodel.vo.ResourceRoomModelRespVO;
+import com.yc.ship.module.resource.controller.admin.roommodelservice.vo.ResourceRoomModelServiceRespVO;
+import com.yc.ship.module.resource.controller.app.roommodel.vo.AppResourceRoomModelPageReqVO;
+import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
+import com.yc.ship.module.resource.dal.dataobject.roommodelservice.ResourceRoomModelServiceDO;
+import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
+import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
+import com.yc.ship.module.resource.service.roommodelservice.ResourceRoomModelServiceService;
+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.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "APP - 资源管理-房型管理")
+@RestController
+@RequestMapping("/resource/room-model")
+@Validated
+public class AppResourceRoomModelController {
+
+    @Resource
+    private ResourceRoomModelService roomModelService;
+
+    @Resource
+    private ResourceShipService shipService;
+
+    @Resource
+    private ResourceRoomModelServiceService resourceRoomModelServiceService;
+
+
+
+
+    @GetMapping("/page")
+    @Operation(summary = "获得资源管理-房型管理分页")
+    public CommonResult<PageResult<ResourceRoomModelRespVO>> getRoomModelPage(@Valid AppResourceRoomModelPageReqVO pageReqVO) {
+        PageResult<ResourceRoomModelDO> pageResult = roomModelService.getAppRoomModelPage(pageReqVO);
+        PageResult<ResourceRoomModelRespVO> page = BeanUtils.toBean(pageResult, ResourceRoomModelRespVO.class);
+        List<ResourceRoomModelRespVO> list = page.getList();
+        List<Long> shipIds = CollectionUtils.convertList(list, ResourceRoomModelRespVO::getShipId);
+        List<ResourceShipDO> shipList = shipService.getList(shipIds);
+        Map<Long, ResourceShipDO> longResourceShipDOMap = CollectionUtils.convertMap(shipList, ResourceShipDO::getId);
+
+        List<Long> roomModelIds = CollectionUtils.convertList(list, ResourceRoomModelRespVO::getId);
+        List<ResourceRoomModelServiceDO> services = resourceRoomModelServiceService.getByRoomModelIds(roomModelIds);
+        List<ResourceRoomModelServiceRespVO> serviceResps = BeanUtils.toBean(services, ResourceRoomModelServiceRespVO.class);
+        Map<Long, List<ResourceRoomModelServiceRespVO>> servicesMap = CollectionUtils.convertMultiMap(serviceResps, ResourceRoomModelServiceRespVO::getRoomModelId);
+        list.stream().forEach(item -> {
+            MapUtils.findAndThen(longResourceShipDOMap, item.getShipId(), ship -> item.setShipName(ship.getName()));
+            item.setFloorsNumStr(item.getFloorsNum());
+            MapUtils.findAndThen(servicesMap, item.getId(), services1 -> item.setServices(services1));
+        });
+        return success(page);
+    }
+
+}

+ 22 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/controller/app/roommodel/vo/AppResourceRoomModelPageReqVO.java

@@ -0,0 +1,22 @@
+package com.yc.ship.module.resource.controller.app.roommodel.vo;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "APP - 资源管理-房型管理分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AppResourceRoomModelPageReqVO extends PageParam {
+
+    @Schema(description = "所属游轮", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1463")
+    private Long shipId;
+}

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

@@ -31,7 +31,7 @@ import static com.yc.ship.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "景区 APP - 景区接口")
 @RestController
-@RequestMapping("/resource/scenic")
+@RequestMapping("/app/resource/scenic")
 @Validated
 public class AppResourceScenicController {
     @Resource

+ 5 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/roommodel/ResourceRoomModelDO.java

@@ -143,6 +143,11 @@ public class ResourceRoomModelDO extends TenantBaseDO {
      */
     private Integer canSale;
 
+    /**
+     * 房型面积(m2)
+     */
+    private String roomArea;
+
     public String getShowName() {
         if(StringUtils.isNotBlank(shortName)) {
             return shortName;

+ 44 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/roommodelservice/ResourceRoomModelServiceDO.java

@@ -0,0 +1,44 @@
+package com.yc.ship.module.resource.dal.dataobject.roommodelservice;
+
+import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 房型服务设施 DO
+ *
+ * @author 管理员
+ */
+@TableName("resource_room_model_service")
+@KeySequence("resource_room_model_service_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResourceRoomModelServiceDO extends TenantBaseDO {
+
+    /**
+     * ID
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 房型ID
+     */
+    private Long roomModelId;
+    /**
+     * 类型
+     */
+    private String type;
+    /**
+     * 包含内容
+     */
+    private String content;
+
+}

+ 17 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/scenic/ResourceScenicDO.java

@@ -2,6 +2,8 @@ package com.yc.ship.module.resource.dal.dataobject.scenic;
 
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
+
+import java.math.BigDecimal;
 import java.util.*;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -103,4 +105,19 @@ public class ResourceScenicDO extends TenantBaseDO {
      */
     private Integer status;
 
+    /**
+     * 建议游玩时间
+     */
+    private String playTime;
+
+    /**
+     * 景区价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 评分
+     */
+    private BigDecimal score;
+
 }

+ 11 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/roommodel/ResourceRoomModelMapper.java

@@ -6,6 +6,7 @@ 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.product.enums.YesOrNoEnum;
+import com.yc.ship.module.resource.controller.app.roommodel.vo.AppResourceRoomModelPageReqVO;
 import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
 import com.yc.ship.module.resource.enums.CommonStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
@@ -42,4 +43,14 @@ public interface ResourceRoomModelMapper extends BaseMapperX<ResourceRoomModelDO
                 .eq(ResourceRoomModelDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
                 .eq(ResourceRoomModelDO::getCanSale, YesOrNoEnum.YES.getType()));
     }
+
+    default PageResult<ResourceRoomModelDO> selectAppPage(AppResourceRoomModelPageReqVO pageReqVO) {
+        return selectPage(pageReqVO, new LambdaQueryWrapperX<ResourceRoomModelDO>()
+                .eqIfPresent(ResourceRoomModelDO::getShipId, pageReqVO.getShipId())
+                .eq(ResourceRoomModelDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
+                .eq(ResourceRoomModelDO::getCanSale, YesOrNoEnum.YES.getType())
+                .orderByDesc(ResourceRoomModelDO::getShipId)
+                .orderByDesc(ResourceRoomModelDO::getId)
+        );
+    }
 }

+ 34 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/roommodelservice/ResourceRoomModelServiceMapper.java

@@ -0,0 +1,34 @@
+package com.yc.ship.module.resource.dal.mysql.roommodelservice;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.resource.dal.dataobject.roommodelservice.ResourceRoomModelServiceDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 房型服务设施 Mapper
+ *
+ * @author 管理员
+ */
+@Mapper
+public interface ResourceRoomModelServiceMapper extends BaseMapperX<ResourceRoomModelServiceDO> {
+
+
+    default void deleteServiceByRoomModelId(Long modelId) {
+        delete(new LambdaQueryWrapper<ResourceRoomModelServiceDO>()
+                .eq(ResourceRoomModelServiceDO::getRoomModelId, modelId));
+    }
+
+    default List<ResourceRoomModelServiceDO> selectListByRoomModelId(Long roomModelId) {
+        return selectList(new LambdaQueryWrapper<ResourceRoomModelServiceDO>()
+                .eq(ResourceRoomModelServiceDO::getRoomModelId, roomModelId));
+    }
+
+    default List<ResourceRoomModelServiceDO> selectListByRoomModelIds(List<Long> roomModelIds) {
+        return selectList(new LambdaQueryWrapper<ResourceRoomModelServiceDO>()
+                .in(ResourceRoomModelServiceDO::getRoomModelId, roomModelIds));
+    }
+}

+ 3 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodel/ResourceRoomModelService.java

@@ -3,6 +3,7 @@ package com.yc.ship.module.resource.service.roommodel;
 import java.util.*;
 import javax.validation.*;
 import com.yc.ship.module.resource.controller.admin.roommodel.vo.*;
+import com.yc.ship.module.resource.controller.app.roommodel.vo.AppResourceRoomModelPageReqVO;
 import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.pojo.PageParam;
@@ -67,4 +68,6 @@ public interface ResourceRoomModelService {
      * @return
      */
     List<ResourceRoomModelDO> getRoomModelCanSaleListByShipId(String shipId);
+
+    PageResult<ResourceRoomModelDO> getAppRoomModelPage(AppResourceRoomModelPageReqVO pageReqVO);
 }

+ 27 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodel/ResourceRoomModelServiceImpl.java

@@ -1,8 +1,11 @@
 package com.yc.ship.module.resource.service.roommodel;
 
+import com.yc.ship.module.resource.controller.app.roommodel.vo.AppResourceRoomModelPageReqVO;
 import com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO;
 import com.yc.ship.module.resource.dal.dataobject.roommodelrooms.ResourceRoomModelRoomsDO;
+import com.yc.ship.module.resource.dal.dataobject.roommodelservice.ResourceRoomModelServiceDO;
 import com.yc.ship.module.resource.dal.mysql.roomModelRooms.ResourceRoomModelRoomsMapper;
+import com.yc.ship.module.resource.dal.mysql.roommodelservice.ResourceRoomModelServiceMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
@@ -36,6 +39,9 @@ public class ResourceRoomModelServiceImpl implements ResourceRoomModelService {
     @Resource
     private ResourceRoomModelRoomsMapper roomModelRoomsMapper;
 
+    @Resource
+    private ResourceRoomModelServiceMapper roomModelServiceMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createRoomModel(ResourceRoomModelSaveReqVO createReqVO) {
@@ -44,6 +50,8 @@ public class ResourceRoomModelServiceImpl implements ResourceRoomModelService {
         roomModelMapper.insert(roomModel);
         //处理关联房间
         handleRoomModelRooms(roomModel.getId(), createReqVO.getRoomNums());
+        //处理服务设施
+        handleServices(roomModel.getId(), BeanUtils.toBean(createReqVO.getServices(), ResourceRoomModelServiceDO.class));
         // 返回
         return roomModel.getId();
     }
@@ -58,6 +66,8 @@ public class ResourceRoomModelServiceImpl implements ResourceRoomModelService {
         roomModelMapper.updateById(updateObj);
         //处理关联房间
         handleRoomModelRooms(updateReqVO.getId(), updateReqVO.getRoomNums());
+        //处理服务设施
+        handleServices(updateReqVO.getId(), BeanUtils.toBean(updateReqVO.getServices(), ResourceRoomModelServiceDO.class));
     }
 
     @Override
@@ -68,6 +78,7 @@ public class ResourceRoomModelServiceImpl implements ResourceRoomModelService {
         // 删除
         roomModelMapper.deleteById(id);
         roomModelRoomsMapper.deleteByRoomModelId(id);
+        roomModelServiceMapper.deleteServiceByRoomModelId(id);
     }
 
     private void validateRoomModelExists(Long id) {
@@ -92,6 +103,17 @@ public class ResourceRoomModelServiceImpl implements ResourceRoomModelService {
         }
     }
 
+    private void handleServices(Long modelId, List<ResourceRoomModelServiceDO> services) {
+        roomModelServiceMapper.deleteServiceByRoomModelId(modelId);
+        services.stream().forEach(service -> {
+            service.setRoomModelId(modelId);
+        });
+        if(services.size() > 0) {
+            roomModelServiceMapper.insertBatch(services);
+        }
+
+    }
+
     @Override
     public ResourceRoomModelDO getRoomModel(Long id) {
         return roomModelMapper.selectById(id);
@@ -120,4 +142,9 @@ public class ResourceRoomModelServiceImpl implements ResourceRoomModelService {
         return roomModelMapper.selectRoomModelCanSaleListByShipId(shipId);
     }
 
+    @Override
+    public PageResult<ResourceRoomModelDO> getAppRoomModelPage(AppResourceRoomModelPageReqVO pageReqVO) {
+        return roomModelMapper.selectAppPage(pageReqVO);
+    }
+
 }

+ 18 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodelservice/ResourceRoomModelServiceService.java

@@ -0,0 +1,18 @@
+package com.yc.ship.module.resource.service.roommodelservice;
+
+import com.yc.ship.module.resource.dal.dataobject.roommodelservice.ResourceRoomModelServiceDO;
+
+import java.util.List;
+
+/**
+ * 房型服务设施 Service 接口
+ *
+ * @author 管理员
+ */
+public interface ResourceRoomModelServiceService {
+
+
+    List<ResourceRoomModelServiceDO> getByRoomModelId(Long id);
+
+    List<ResourceRoomModelServiceDO> getByRoomModelIds(List<Long> roomModelIds);
+}

+ 45 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/roommodelservice/ResourceRoomModelServiceServiceImpl.java

@@ -0,0 +1,45 @@
+package com.yc.ship.module.resource.service.roommodelservice;
+
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.yc.ship.module.resource.controller.admin.roommodelservice.vo.*;
+import com.yc.ship.module.resource.dal.dataobject.roommodelservice.ResourceRoomModelServiceDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+
+import com.yc.ship.module.resource.dal.mysql.roommodelservice.ResourceRoomModelServiceMapper;
+
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.yc.ship.module.resource.enums.ErrorCodeConstants.*;
+
+/**
+ * 房型服务设施 Service 实现类
+ *
+ * @author 管理员
+ */
+@Service
+@Validated
+public class ResourceRoomModelServiceServiceImpl implements ResourceRoomModelServiceService {
+
+    @Resource
+    private ResourceRoomModelServiceMapper roomModelServiceMapper;
+
+    @Override
+    public List<ResourceRoomModelServiceDO> getByRoomModelId(Long id) {
+        return roomModelServiceMapper.selectListByRoomModelId(id);
+    }
+
+    @Override
+    public List<ResourceRoomModelServiceDO> getByRoomModelIds(List<Long> roomModelIds) {
+        if(CollectionUtils.isAnyEmpty(roomModelIds)) {
+            return Collections.emptyList();
+        }
+        return roomModelServiceMapper.selectListByRoomModelIds(roomModelIds);
+    }
+}

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

@@ -80,10 +80,12 @@ public class ResourceRouteServiceImpl implements ResourceRouteService {
             routeTrip.setRouteId(id);
             routeTrip.setId(tripId);
             List<ResourceRouteTripDetailDO> routeTripDetails = routeTrip.getRouteTripDetails();
-            routeTripDetails.stream().forEach(routeTripDetail -> {
-                routeTripDetail.setTripId(tripId);
-                routeTripDetail.setRouteId(id);
-            });
+            if(routeTripDetails != null) {
+                routeTripDetails.stream().forEach(routeTripDetail -> {
+                    routeTripDetail.setTripId(tripId);
+                    routeTripDetail.setRouteId(id);
+                });
+            }
         });
         routeTripMapper.insertBatch(routeTrips);
         List<ResourceRouteTripDetailDO> list = CollectionUtils.convertList(routeTrips, ResourceRouteTripDO::getRouteTripDetails).stream().flatMap(List::stream).collect(Collectors.toList());

+ 5 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/AppOtcTradeOrderServiceImpl.java

@@ -35,6 +35,7 @@ import com.yc.ship.module.trade.enums.PayAccountTypeEnum;
 import com.yc.ship.module.trade.enums.SellMethodEnum;
 import com.yc.ship.module.trade.enums.TradeOrderOperateTypeEnum;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
+import com.yc.ship.module.trade.framework.mq.TradePublishUtils;
 import com.yc.ship.module.trade.service.order.TradeOrderService;
 import com.yc.ship.module.trade.service.otc.AppOtcTradeOrderService;
 import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
@@ -97,6 +98,9 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
     @Resource
     private RedissonClient redissonClient;
 
+    @Resource
+    private TradePublishUtils tradePublishUtils;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -255,6 +259,7 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
                 tradeOrderRoomModelMapper.deleteByOrderId(orderId);
                 tradeOrderRoomModelMapper.insertBatch(tradeOrderRoomDOList);
             }
+            // TODO:需要发布订单超时mq
             OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
             return CommonResult.success(respVO);
         }finally {

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/refund/impl/TradeRefundServiceImpl.java

@@ -631,6 +631,9 @@ public class TradeRefundServiceImpl implements TradeRefundService {
         //获取当前可退金额
         BigDecimal orderApplyRefundAmount = tradeRefundRepositoryService.getOrderApplyRefundAmount(refundCreateReqDTO.getOrderId());
         BigDecimal canRefundAmount = tradeOrderDO.getPayAmount().subtract(orderApplyRefundAmount);
+        if(canRefundAmount.compareTo(new BigDecimal(5)) <= 0) {//测试使用,小于元表示是测试订单,不扣损
+            damaged = BigDecimal.ZERO;
+        }
         respDTO.setOrderId(refundCreateReqDTO.getOrderId());
         BigDecimal refundMoney = tradeOrderDO.getPayAmount().subtract(damaged);
         respDTO.setRefundAmount(refundMoney);

+ 1 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -2470,6 +2470,7 @@
                 LEFT JOIN resource_ship t4 ON t2.ship_id = t4.id
         WHERE
             t1.deleted = 0
+          and t1.order_status in (3,6,7,8,9)
           and member_id = #{memberId}
           <if test="status != null and status != ''">
               <if test="status == '1' or status == 1">