shenzhongzheng 2 anni fa
parent
commit
79c5f9da46
13 ha cambiato i file con 413 aggiunte e 21 eliminazioni
  1. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutMemberInfoPriceDto.java
  2. 15 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutPriceDto.java
  3. 2 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Vo/CesRoomLayoutVo.java
  4. 52 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomBuildingFloorController.java
  5. 10 8
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutController.java
  6. 96 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutPriceController.java
  7. 87 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomBuildingFloor.java
  8. 2 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomLayoutMemberPrice.java
  9. 26 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomLayoutPrice.java
  10. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesRoomBuildingFloorMapper.java
  11. 51 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomBuildingFloorServiceImpl.java
  12. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutMemberPriceServiceImpl.java
  13. 35 5
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutPriceServiceImpl.java

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutMemberInfoPriceDto.java

@@ -6,9 +6,10 @@ import java.math.BigDecimal;
 
 @Data
 public class CesRoomLayoutMemberInfoPriceDto {
+    private String id;
     private String hotelId;
 
-    private String roomLayoutId;
+    private String layoutId;
 
     private String levelId;
 

+ 15 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutPriceDto.java

@@ -57,6 +57,21 @@ public class CesRoomLayoutPriceDto {
      */
     private Integer num;
 
+    /**
+     * 开始时间
+     */
+    private String startDate;
+
+    /**
+     * 结束时间
+     */
+    private String endDate;
+
+    /**
+     * 钟点房方案
+     */
+    private String sellerId;
+
 
     /**
      * 会员等级

+ 2 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Vo/CesRoomLayoutVo.java

@@ -18,4 +18,6 @@ public class CesRoomLayoutVo extends CesRoomLayout {
      */
     private String hotelName;
 
+    private Integer num;
+
 }

+ 52 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomBuildingFloorController.java

@@ -0,0 +1,52 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.Enum.ResultCode;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.entity.CesRoomBuildingFloor;
+import org.jeecg.modules.rooms.service.CesRoomBuildingFloorServiceImpl;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 楼栋楼层表 前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/rooms/cesRoomBuildingFloor")
+@Api(tags="楼栋")
+@Slf4j
+public class CesRoomBuildingFloorController {
+
+    @Resource
+    private CesRoomBuildingFloorServiceImpl buildingFloorService;
+
+    @ApiOperation(value="楼栋查询", notes="楼栋查询")
+    @GetMapping(value = "/tree")
+    public Result tree(@RequestParam String hotelId){
+        if(StringUtils.isBlank(hotelId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return buildingFloorService.tree(hotelId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+}
+

+ 10 - 8
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutController.java

@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.Enum.ResultCode;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.business.entity.BusAdvertContent;
 import org.jeecg.modules.business.service.IBusAdvertContentService;
@@ -66,7 +67,7 @@ public class CesRoomLayoutController extends JeecgController<CesRoomLayout, CesR
         }
     }
 
-
+    @AutoLog(value = "创建房型房型")
     @ApiOperation(value="创建房型房型", notes="创建房型查询")
     @PostMapping(value = "/save")
     public Result createRoomLayout(@RequestBody CesRoomLayoutDto dto){
@@ -98,8 +99,9 @@ public class CesRoomLayoutController extends JeecgController<CesRoomLayout, CesR
         }
     }
 
+    @AutoLog(value = "修改房型房型")
     @ApiOperation(value="修改房型房型", notes="修改房型查询")
-    @PostMapping(value = "/modify")
+    @PutMapping(value = "/modify")
     public Result modifyCesRoomLayout(@RequestBody CesRoomLayoutDto dto){
         if(StringUtils.isBlank(dto.getId())){
             return Result.error(ResultCode.PARAM_MISS);
@@ -133,9 +135,9 @@ public class CesRoomLayoutController extends JeecgController<CesRoomLayout, CesR
     }
 
 
-
+    @AutoLog(value = "删除房型房型")
     @ApiOperation(value="删除房型房型", notes="删除房型")
-    @PostMapping(value = "/remove")
+    @DeleteMapping(value = "/remove")
     public Result removeRoomLayout(@RequestBody CesRoomLayoutRemoveDto dto){
         if(CollectionUtil.isEmpty(dto.getRoomLayoutIds())){
             return Result.error(ResultCode.PARAM_MISS);
@@ -147,9 +149,9 @@ public class CesRoomLayoutController extends JeecgController<CesRoomLayout, CesR
         }
     }
 
-
+    @AutoLog(value = "修改启用状态")
     @ApiOperation(value="修改启用状态", notes="修改启用状态")
-    @PostMapping(value = "/modifyState/{roomLayoutId}")
+    @PutMapping(value = "/modifyState/{roomLayoutId}")
     public Result modifyState(@PathVariable String roomLayoutId, @RequestParam String hotelId, @RequestParam Integer state){
         if(StringUtils.isBlank(roomLayoutId)){
             return Result.error(ResultCode.PARAM_MISS);
@@ -167,9 +169,9 @@ public class CesRoomLayoutController extends JeecgController<CesRoomLayout, CesR
         }
     }
 
-
+    @AutoLog(value = "修改上架状态")
     @ApiOperation(value="修改上架状态", notes="修改上架状态")
-    @PostMapping(value = "/modifyAppState/{roomLayoutId}")
+    @PutMapping(value = "/modifyAppState/{roomLayoutId}")
     public Result modifyAppState(@PathVariable String roomLayoutId, @RequestParam String hotelId, @RequestParam Integer state){
         if(StringUtils.isBlank(roomLayoutId)){
             return Result.error(ResultCode.PARAM_MISS);

+ 96 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutPriceController.java

@@ -74,6 +74,8 @@ public class CesRoomLayoutPriceController extends JeecgController<CesRoomLayoutP
      * @param dto
      * @return
      */
+    @ApiOperation(value="创建房型价格数据", notes="创建房型价格数据")
+    @PostMapping(value = "/create")
     public Result create(@RequestBody CesRoomLayoutPriceDto dto){
         if(StringUtils.isBlank(dto.getName())){ //价格名称
             return Result.error(ResultCode.PARAM_MISS);
@@ -105,6 +107,16 @@ public class CesRoomLayoutPriceController extends JeecgController<CesRoomLayoutP
         if(dto.getNum() < 0){
             return Result.error(ResultCode.PARAM_MISS);
         }
+        //不同类型的房型 需要不同的验证
+        if(CouponEnums.RoomLayoutPriceTypeEnum.HOUR.code() == dto.getType().intValue()){
+            //需要验证开始时间结束时间 以及 钟点房方案ID
+            if(StringUtils.isBlank(dto.getStartDate())){
+                return Result.error(ResultCode.PARAM_MISS,"钟点房开始时间不能为空!");
+            }
+            if(StringUtils.isBlank(dto.getEndDate())){
+                return Result.error(ResultCode.PARAM_MISS,"钟点房结束时间不能为空!");
+            }
+        }
         try{
             return roomLayoutPriceService.createRoomLayoutPrice(dto);
         }catch (Exception e){
@@ -112,5 +124,89 @@ public class CesRoomLayoutPriceController extends JeecgController<CesRoomLayoutP
         }
     }
 
+
+    /**
+     * 创建房型价格数据
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value="修改房型价格数据", notes="修改房型价格数据")
+    @PostMapping(value = "/modify")
+    public Result modify(@RequestBody CesRoomLayoutPriceDto dto){
+        if(StringUtils.isBlank(dto.getId())){
+            return Result.error(ResultCode.PARAM_MISS,"数据ID必传入!");
+        }
+        if(StringUtils.isBlank(dto.getName())){ //价格名称
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(BigDecimal.ZERO.compareTo(dto.getOprice()) == 0){//原价
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(BigDecimal.ZERO.compareTo(dto.getPrice()) == 0){//现价
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getType() != null && dto.getType().intValue() != 0) {//类型
+            List<Object> codes = EnumUtil.getFieldValues(CouponEnums.RoomLayoutPriceTypeEnum.class, "code");
+            if(!codes.contains(dto.getType().intValue())){
+                return Result.error("参数不正确!请传入正确的房间价格类型!");
+            }
+        }else{
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getIsVip().intValue() == org.jeecg.common.Enum.CouponEnums.TRUEORFALSE.TRUE.code()){//是否vip折扣
+            //验证会员价格数据
+            if(CollectionUtil.isEmpty(dto.getMemberPriceEntities())) return Result.error("会员价格数据必填,请重新填入!");
+        }
+        if(dto.getPrepay().intValue() < 0 || dto.getPrepay().intValue() > 1){//预付
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getIntegral() < 0){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getNum() < 0){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        //不同类型的房型 需要不同的验证
+        if(CouponEnums.RoomLayoutPriceTypeEnum.HOUR.code() == dto.getType().intValue()){
+            //需要验证开始时间结束时间 以及 钟点房方案ID
+            if(StringUtils.isBlank(dto.getStartDate())){
+                return Result.error(ResultCode.PARAM_MISS,"钟点房开始时间不能为空!");
+            }
+            if(StringUtils.isBlank(dto.getEndDate())){
+                return Result.error(ResultCode.PARAM_MISS,"钟点房结束时间不能为空!");
+            }
+            if(StringUtils.isBlank(dto.getSellerId())){
+                return Result.error(ResultCode.PARAM_MISS,"钟点房房价方案不能为空!");
+            }
+        }
+        try{
+            return roomLayoutPriceService.modifyRoomLayoutPrice(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value="逻辑删除房型价格数据", notes="逻辑删除房型价格数据")
+    @PostMapping(value = "/delete")
+    public Result delete(@RequestBody CesRoomLayoutPriceDto dto){
+        if(StringUtils.isBlank(dto.getId())){
+            return Result.error(ResultCode.PARAM_MISS,"数据ID必传入!");
+        }
+        try{
+            return  roomLayoutPriceService.deleteRoomLayoutPrice(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+
+
+
+
+
+
+
+
+
 }
 

+ 87 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomBuildingFloor.java

@@ -0,0 +1,87 @@
+package org.jeecg.modules.rooms.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 楼栋楼层表
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ces_room_building_floor")
+public class CesRoomBuildingFloor extends Model<CesRoomBuildingFloor> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * 酒店ID
+     */
+    @TableField("hotelId")
+    private String hotelId;
+
+    private String name;
+
+    /**
+     * 上级id
+     */
+    private String parentId;
+
+    /**
+     * 1 楼栋 2 楼层
+     */
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createAt")
+    private LocalDateTime createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    public static final String ID = "id";
+
+    public static final String HOTELID = "hotelId";
+
+    public static final String NAME = "name";
+
+    public static final String PARENT_ID = "parent_id";
+
+    public static final String TYPE = "type";
+
+    public static final String CREATEAT = "createAt";
+
+    public static final String UPDATEAT = "updateAt";
+
+    public static final String INVALID = "invalid";
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 2 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomLayoutMemberPrice.java

@@ -48,7 +48,6 @@ public class CesRoomLayoutMemberPrice extends Model<CesRoomLayoutMemberPrice> {
      */
     private String parentId;
 
-
     /**
      * 当前折扣
      */
@@ -79,14 +78,14 @@ public class CesRoomLayoutMemberPrice extends Model<CesRoomLayoutMemberPrice> {
 
     public static final String ID = "id";
 
-    public static final String PARENT_ID = "parent_id";
-
     public static final String LEVEL_ID = "level_id";
 
     public static final String HOTEL_ID = "hotel_id";
 
     public static final String LAYOUT_ID = "layout_id";
 
+    public static final String PARENT_ID = "parent_id";
+
     public static final String DISCOUNT = "discount";
 
     public static final String LDISCOUNT = "ldiscount";

+ 26 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomLayoutPrice.java

@@ -6,15 +6,13 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
-
-import com.sun.org.apache.xpath.internal.operations.Bool;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 /**
  * <p>
- *
+ * 房型价格管理表
  * </p>
  *
  * @author fendo
@@ -53,7 +51,7 @@ public class CesRoomLayoutPrice extends Model<CesRoomLayoutPrice> {
     private BigDecimal oprice;
 
     /**
-     * 预付
+     * 是否预付
      */
     private Boolean prepay;
 
@@ -84,6 +82,24 @@ public class CesRoomLayoutPrice extends Model<CesRoomLayoutPrice> {
     private Integer num;
 
     /**
+     * 开始时间
+     */
+    @TableField("startDate")
+    private String startDate;
+
+    /**
+     * 结束时间
+     */
+    @TableField("endDate")
+    private String endDate;
+
+    /**
+     * 钟点房方案
+     */
+    @TableField("sellerId")
+    private String sellerId;
+
+    /**
      * 创建时间
      */
     @TableField("createAt")
@@ -123,6 +139,12 @@ public class CesRoomLayoutPrice extends Model<CesRoomLayoutPrice> {
 
     public static final String NUM = "num";
 
+    public static final String STARTDATE = "startDate";
+
+    public static final String ENDDATE = "endDate";
+
+    public static final String SELLERID = "sellerId";
+
     public static final String CREATEAT = "createAt";
 
     public static final String UPDATEAT = "updateAt";

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesRoomBuildingFloorMapper.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesRoomBuildingFloor;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 楼栋楼层表 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+public interface CesRoomBuildingFloorMapper extends BaseMapper<CesRoomBuildingFloor> {
+
+}

+ 51 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomBuildingFloorServiceImpl.java

@@ -0,0 +1,51 @@
+package org.jeecg.modules.rooms.service;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.lang.tree.TreeNode;
+import cn.hutool.core.lang.tree.TreeUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.entity.CesRoomBuildingFloor;
+import org.jeecg.modules.rooms.mapper.CesRoomBuildingFloorMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 楼栋楼层表 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@Service
+public class CesRoomBuildingFloorServiceImpl extends ServiceImpl<CesRoomBuildingFloorMapper, CesRoomBuildingFloor> implements IService<CesRoomBuildingFloor> {
+
+    @Resource
+    private CesRoomBuildingFloorMapper buildingFloorMapper;
+
+    /**
+     * 获取楼栋楼层树
+     * @param hotelId
+     * @return
+     */
+    public Result tree(String hotelId){
+        List<TreeNode<String>> nodeList = CollUtil.newArrayList();
+        //查询数据
+        List<CesRoomBuildingFloor> list = buildingFloorMapper.selectList(Wrappers.<CesRoomBuildingFloor>lambdaQuery().eq(CesRoomBuildingFloor::getHotelId,hotelId).eq(CesRoomBuildingFloor::getInvalid,false));
+        list.forEach(v -> {
+            nodeList.add(new TreeNode<>(v.getId(),v.getParentId(),v.getName(),0));
+        });
+        if(CollUtil.isEmpty(nodeList)) return Result.OK(new ArrayList<>());
+        List<Tree<String>> treeList = TreeUtil.build(nodeList, "0");
+        return Result.OK(treeList);
+    }
+
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutMemberPriceServiceImpl.java

@@ -1,11 +1,17 @@
 package org.jeecg.modules.rooms.service;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
 import org.jeecg.modules.rooms.mapper.CesRoomLayoutMemberPriceMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 房型会员价格 记录表 服务实现类
@@ -17,4 +23,17 @@ import org.springframework.stereotype.Service;
 @Service
 public class CesRoomLayoutMemberPriceServiceImpl extends ServiceImpl<CesRoomLayoutMemberPriceMapper, CesRoomLayoutMemberPrice> implements IService<CesRoomLayoutMemberPrice> {
 
+    @Resource
+    private CesRoomLayoutMemberPriceMapper cesRoomLayoutMemberPriceMapper;
+
+
+    public List<CesRoomLayoutMemberPrice> getListByParentId(String parentId){
+        if(StringUtils.isBlank(parentId)) return new ArrayList<>();
+        List<CesRoomLayoutMemberPrice> list = cesRoomLayoutMemberPriceMapper.selectList(Wrappers.<CesRoomLayoutMemberPrice>lambdaQuery()
+                .eq(CesRoomLayoutMemberPrice::getParentId,parentId)
+                .eq(CesRoomLayoutMemberPrice::getInvalid,false));
+        return list;
+    }
+
+
 }

+ 35 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutPriceServiceImpl.java

@@ -10,7 +10,6 @@ import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang3.ObjectUtils;
 import org.jeecg.common.Enum.CouponEnums;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.rooms.DTO.CesRoomLayoutDto;
 import org.jeecg.modules.rooms.DTO.CesRoomLayoutMemberInfoPriceDto;
 import org.jeecg.modules.rooms.DTO.CesRoomLayoutPriceDto;
 import org.jeecg.modules.rooms.DTO.CesRoomLayoutPriceSearchDto;
@@ -86,9 +85,13 @@ public class CesRoomLayoutPriceServiceImpl extends ServiceImpl<CesRoomLayoutPric
          roomLayoutPrice.setUpdateAt(LocalDateTime.now());
          roomLayoutPrice.setType(roomLayoutPriceDto.getType());
          roomLayoutPrice.setInvalid(false);
-
+         if(org.jeecg.modules.rooms.Enum.CouponEnums.RoomLayoutPriceTypeEnum.HOUR.code() == roomLayoutPriceDto.getType().intValue()){
+             roomLayoutPrice.setStartDate(roomLayoutPriceDto.getStartDate());
+             roomLayoutPrice.setEndDate(roomLayoutPriceDto.getEndDate());
+             roomLayoutPrice.setSellerId(roomLayoutPriceDto.getSellerId());
+         }
         roomLayoutPriceMapper.insert(roomLayoutPrice);
-
+        String parentId = roomLayoutPrice.getId();
         if(roomLayoutPriceDto.getIsVip().intValue() == CouponEnums.TRUEORFALSE.TRUE.code()){
             //插入 会员折扣数据
             List<CesRoomLayoutMemberInfoPriceDto> memberPriceEntities = roomLayoutPriceDto.getMemberPriceEntities();
@@ -96,6 +99,10 @@ public class CesRoomLayoutPriceServiceImpl extends ServiceImpl<CesRoomLayoutPric
             memberPriceEntities.forEach(v -> {
                 CesRoomLayoutMemberPrice memberPrice = new CesRoomLayoutMemberPrice();
                 BeanUtil.copyProperties(v,memberPrice);
+                memberPrice.setParentId(parentId);
+                memberPrice.setCreateAt(LocalDateTime.now());
+                memberPrice.setUpdateAt(LocalDateTime.now());
+                memberPrice.setInvalid(false);
                 memberPriceList.add(memberPrice);
             });
             memberPriceService.saveBatch(memberPriceList);
@@ -105,10 +112,11 @@ public class CesRoomLayoutPriceServiceImpl extends ServiceImpl<CesRoomLayoutPric
 
 
     /**
-     * 修改房型
+     * 修改房型价格数据
      * @param roomLayoutPriceDto
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public Result modifyRoomLayoutPrice(CesRoomLayoutPriceDto roomLayoutPriceDto){
         CesRoomLayoutPrice roomLayoutPrice = roomLayoutPriceMapper.selectById(roomLayoutPriceDto.getId());
         if(ObjectUtils.isEmpty(roomLayoutPrice)) return Result.error("价格管理数据未找到!");
@@ -118,6 +126,18 @@ public class CesRoomLayoutPriceServiceImpl extends ServiceImpl<CesRoomLayoutPric
         roomLayoutPrice.setPrepay(roomLayoutPriceDto.getPrepay().intValue() == 1 ? true:false);//是否预支付
         roomLayoutPrice.setUpdateAt(LocalDateTime.now());
         roomLayoutPriceMapper.updateById(roomLayoutPrice);
+        if(roomLayoutPriceDto.getIsVip().intValue() == CouponEnums.TRUEORFALSE.TRUE.code()){
+            //插入 会员折扣数据
+            List<CesRoomLayoutMemberInfoPriceDto> memberPriceEntities = roomLayoutPriceDto.getMemberPriceEntities();
+            List<CesRoomLayoutMemberPrice> memberPriceList = new ArrayList<>();
+            memberPriceEntities.forEach(v -> {
+                CesRoomLayoutMemberPrice memberPrice = new CesRoomLayoutMemberPrice();
+                BeanUtil.copyProperties(v,memberPrice);
+                memberPrice.setUpdateAt(LocalDateTime.now());
+                memberPriceList.add(memberPrice);
+            });
+            memberPriceService.updateBatchById(memberPriceList);
+        }
         return Result.ok("修改成功!");
     }
 
@@ -127,12 +147,22 @@ public class CesRoomLayoutPriceServiceImpl extends ServiceImpl<CesRoomLayoutPric
      * @param roomLayoutPriceDto
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public Result deleteRoomLayoutPrice(CesRoomLayoutPriceDto roomLayoutPriceDto){
         CesRoomLayoutPrice roomLayoutPrice = roomLayoutPriceMapper.selectById(roomLayoutPriceDto.getId());
-        if(ObjectUtils.isEmpty(roomLayoutPrice)) return Result.error("价格管理数据未找到!");
+        if(ObjectUtils.isEmpty(roomLayoutPrice)) return Result.error("删除失败,价格管理数据未找到!");
         roomLayoutPrice.setUpdateAt(LocalDateTime.now());
         roomLayoutPrice.setInvalid(true);
         roomLayoutPriceMapper.updateById(roomLayoutPrice);
+        //删除会员等级折扣数据
+        if(roomLayoutPrice.getIsVip()){
+            List<CesRoomLayoutMemberPrice> data = memberPriceService.getListByParentId(roomLayoutPrice.getId());
+            data.forEach(v -> {
+                v.setInvalid(true);
+                v.setUpdateAt(LocalDateTime.now());
+            });
+            memberPriceService.updateBatchById(data);
+        }
         return Result.ok("删除成功!");
     }