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

fix 框架规定代码

shenzhongzheng 2 éve
szülő
commit
2bf22ab41d
20 módosított fájl, 827 hozzáadás és 18 törlés
  1. 48 0
      jeecg-boot-base-core/src/main/java/org/jeecg/common/Enum/CouponEnums.java
  2. 16 0
      jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/BasePage.java
  3. 0 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusHotel.java
  4. 13 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusHotelServiceImpl.java
  5. 21 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutMemberInfoPriceDto.java
  6. 65 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutPriceDto.java
  7. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutPriceSearchDto.java
  8. 2 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomLayoutSearchDto.java
  9. 40 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Enum/CouponEnums.java
  10. 12 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutController.java
  11. 32 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutMemberPriceController.java
  12. 116 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomLayoutPriceController.java
  13. 8 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomPricePlanController.java
  14. 105 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomLayoutMemberPrice.java
  15. 137 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRoomLayoutPrice.java
  16. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesRoomLayoutMemberPriceMapper.java
  17. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesRoomLayoutPriceMapper.java
  18. 20 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutMemberPriceServiceImpl.java
  19. 131 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutPriceServiceImpl.java
  20. 15 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutServiceImpl.java

+ 48 - 0
jeecg-boot-base-core/src/main/java/org/jeecg/common/Enum/CouponEnums.java

@@ -0,0 +1,48 @@
+package org.jeecg.common.Enum;
+
+/**
+ *  通用枚举类
+ */
+public class CouponEnums {
+    /**
+     * 房型app上架状态 枚举
+     */
+    public static enum TRUEORFALSE{
+        TRUE(1,"是"), FALSE(0,"否");
+
+        int code = 0;
+        String value = "";
+
+        private TRUEORFALSE(int code,String value){
+            this.code = code;
+            this.value = value;
+        }
+
+        public int code(){
+            return code;
+        }
+
+        public String getValue(){
+            return value;
+        }
+
+        //根据CODE获取类型
+        public static TRUEORFALSE val(int vcode){
+            for(TRUEORFALSE bld: values()){
+                if(bld.code == vcode){
+                    return bld;
+                }
+            }
+            return FALSE;
+        }
+
+        public static TRUEORFALSE val(String value){
+            for(TRUEORFALSE bld : values()){
+                if(bld.value.equals(value)){
+                    return bld;
+                }
+            }
+            return FALSE;
+        }
+    }
+}

+ 16 - 0
jeecg-boot-base-core/src/main/java/org/jeecg/common/api/dto/BasePage.java

@@ -0,0 +1,16 @@
+package org.jeecg.common.api.dto;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 通用固定分页 DTO
+ */
+@Data
+public class BasePage implements Serializable {
+    private Integer pageNo;
+
+    private Integer pageSize;
+}

+ 0 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusHotel.java

@@ -1,7 +1,6 @@
 package org.jeecg.modules.business.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;

+ 13 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusHotelServiceImpl.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.business.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -66,6 +67,17 @@ public class BusHotelServiceImpl extends ServiceImpl<BusHotelMapper, BusHotel> i
         );
         return busHotelList;
     }
+
+    public List<BusHotel> findHotelsByIds(List<String> ids){
+        if(CollectionUtil.isEmpty(ids)) return new ArrayList<>();
+        List<BusHotel> list = this.busHotelMapper.selectList(Wrappers.<BusHotel>lambdaQuery()
+                .eq(BusHotel::getTenantId, TokenUtils.currentTenantId())
+                .eq(BusHotel::getStatus, 1)
+                .eq(BusHotel::getCheckStatus, 1)
+                .eq(BusHotel::getDelFlag, false)
+                .in(BusHotel::getId,ids));
+        return list;
+    }
     @Override
     public Result<?> editHotelInfo(BusHotel busHotel) {
 
@@ -73,5 +85,5 @@ public class BusHotelServiceImpl extends ServiceImpl<BusHotelMapper, BusHotel> i
         this.busHotelMapper.update(busHotel, new LambdaQueryWrapper<BusHotel>().eq(BusHotel::getId, busHotel.getId()));
         return Result.ok("信息编辑成功!");
     }
-    
+
 }

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

@@ -0,0 +1,21 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class CesRoomLayoutMemberInfoPriceDto {
+    private String hotelId;
+
+    private String roomLayoutId;
+
+    private String levelId;
+
+    private String parentId;
+
+    private BigDecimal discount;//当前折扣
+
+    private BigDecimal ldiscount;//会员折扣
+
+}

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

@@ -0,0 +1,65 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class CesRoomLayoutPriceDto {
+    private String id;
+    /**
+     * 酒店ID
+     */
+    private String hotelId;
+
+    /**
+     * 房型ID
+     */
+    private String layoutId;
+
+    /**
+     * 价格名称
+     */
+    private String name;
+
+    /**
+     * 原价
+     */
+    private BigDecimal oprice;
+
+    /**
+     * 预付
+     */
+    private Integer prepay;
+
+    /**
+     * 现价
+     */
+    private BigDecimal price;
+
+    /**
+     * 类型 1 全天  2  钟点
+     */
+    private Integer type;
+
+    /**
+     * 是否vip
+     */
+    private Integer isVip;
+
+    /**
+     * 积分
+     */
+    private Integer integral;
+
+    /**
+     * 数量
+     */
+    private Integer num;
+
+
+    /**
+     * 会员等级
+     */
+    private List<CesRoomLayoutMemberInfoPriceDto> memberPriceEntities;
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import org.jeecg.common.api.dto.BasePage;
+
+@Data
+public class CesRoomLayoutPriceSearchDto  extends BasePage {
+    private String hotelId;
+
+    private String roomLayoutId;
+
+    private Integer type;
+
+}

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.rooms.DTO;
 
 import lombok.Data;
+import org.jeecg.common.api.dto.BasePage;
 
 /**
  * <p>
@@ -11,7 +12,7 @@ import lombok.Data;
  * @since 2023-03-01
  */
 @Data
-public class CesRoomLayoutSearchDto {
+public class CesRoomLayoutSearchDto  extends BasePage {
     /**
      * 商家名称
      */
@@ -27,7 +28,4 @@ public class CesRoomLayoutSearchDto {
      */
     private Integer appState;
 
-    private Integer pageNum;
-
-    private Integer pageSize;
 }

+ 40 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Enum/CouponEnums.java

@@ -44,5 +44,45 @@ public class CouponEnums {
 		}
 	}
 
+	public static enum RoomLayoutPriceTypeEnum {
+		ALL_DAY(1,"全天房"), HOUR(2,"钟点房");
+
+		int code = 0;
+		String value = "";
+
+		private RoomLayoutPriceTypeEnum(int code,String value){
+			this.code = code;
+			this.value = value;
+		}
+
+		public int code(){
+			return code;
+		}
+
+		public String getValue(){
+			return value;
+		}
+
+		//根据CODE获取类型
+		public static RoomLayoutPriceTypeEnum val(int vcode){
+			for(RoomLayoutPriceTypeEnum bld: values()){
+				if(bld.code == vcode){
+					return bld;
+				}
+			}
+			return HOUR;
+		}
+
+		public static RoomLayoutPriceTypeEnum val(String value){
+			for(RoomLayoutPriceTypeEnum bld : values()){
+				if(bld.value.equals(value)){
+					return bld;
+				}
+			}
+			return HOUR;
+		}
+	}
+
+
 
 }

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

@@ -3,14 +3,20 @@ package org.jeecg.modules.rooms.controller;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.EnumUtil;
+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.common.system.base.controller.JeecgController;
+import org.jeecg.modules.business.entity.BusAdvertContent;
+import org.jeecg.modules.business.service.IBusAdvertContentService;
 import org.jeecg.modules.rooms.DTO.CesRoomLayoutDto;
 import org.jeecg.modules.rooms.DTO.CesRoomLayoutRemoveDto;
 import org.jeecg.modules.rooms.DTO.CesRoomLayoutSearchDto;
 import org.jeecg.modules.rooms.Enum.CouponEnums;
+import org.jeecg.modules.rooms.entity.CesRoomLayout;
 import org.jeecg.modules.rooms.service.CesRoomLayoutServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -31,15 +37,17 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/rooms/cesRoomLayout")
-public class CesRoomLayoutController {
+@Api(tags="ces_room_layout")
+@Slf4j
+public class CesRoomLayoutController extends JeecgController<CesRoomLayout, CesRoomLayoutServiceImpl> {
 
     @Resource
     private CesRoomLayoutServiceImpl cesRoomLayoutService;
 
     @ApiOperation(value="房型分页列表查询", notes="房型分页列表查询")
-    @PostMapping(value = "/list")
-    public Result list(@RequestBody CesRoomLayoutSearchDto dto){
-        if(dto.getPageNum().intValue() <= 0){
+    @GetMapping(value = "/list")
+    public Result list(CesRoomLayoutSearchDto dto){
+        if(dto.getPageNo().intValue() <= 0){
             return Result.error("页数不能小于等于0");
         }
         if(dto.getPageSize().intValue() < 10){

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

@@ -0,0 +1,32 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.rooms.entity.CesRoomLayout;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
+import org.jeecg.modules.rooms.service.CesRoomLayoutMemberPriceServiceImpl;
+import org.jeecg.modules.rooms.service.CesRoomLayoutServiceImpl;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 房型会员价格 记录表 前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/rooms/cesRoomLayoutMemberPrice")
+@Api(tags="ces_room_layout_member_price")
+@Slf4j
+public class CesRoomLayoutMemberPriceController extends JeecgController<CesRoomLayoutMemberPrice, CesRoomLayoutMemberPriceServiceImpl> {
+
+
+}
+

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

@@ -0,0 +1,116 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.EnumUtil;
+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.common.system.base.controller.JeecgController;
+import org.jeecg.modules.rooms.DTO.CesRoomLayoutPriceDto;
+import org.jeecg.modules.rooms.DTO.CesRoomLayoutPriceSearchDto;
+import org.jeecg.modules.rooms.Enum.CouponEnums;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutPrice;
+import org.jeecg.modules.rooms.service.CesRoomLayoutMemberPriceServiceImpl;
+import org.jeecg.modules.rooms.service.CesRoomLayoutPriceServiceImpl;
+import org.jeecg.modules.rooms.service.CesRoomPricePlanServiceImpl;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/rooms/cesRoomLayoutPrice")
+@Api(tags="ces_room_layout_price")
+@Slf4j
+public class CesRoomLayoutPriceController extends JeecgController<CesRoomLayoutPrice, CesRoomLayoutPriceServiceImpl> {
+
+    @Resource
+    private CesRoomLayoutPriceServiceImpl roomLayoutPriceService;
+
+    @ApiOperation(value="获取房型的所有价格数据", notes="获取房型的所有价格数据")
+    @GetMapping(value = "/list")
+    public Result list(CesRoomLayoutPriceSearchDto searchDto){
+        if(StringUtils.isBlank(searchDto.getHotelId())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(searchDto.getRoomLayoutId())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(searchDto.getType().intValue() <= 0){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(searchDto.getPageNo().intValue() <= 0){
+            return Result.error("页数不能小于等于0");
+        }
+        if(searchDto.getPageSize().intValue() < 10){
+            return Result.error("分页条数不能小于10");
+        }
+        try{
+            return  roomLayoutPriceService.list(searchDto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 创建房型价格数据
+     * @param dto
+     * @return
+     */
+    public Result create(@RequestBody CesRoomLayoutPriceDto dto){
+        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);
+        }
+        try{
+            return roomLayoutPriceService.createRoomLayoutPrice(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+}
+

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

@@ -1,11 +1,16 @@
 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.common.system.base.controller.JeecgController;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
 import org.jeecg.modules.rooms.entity.CesRoomPricePlan;
+import org.jeecg.modules.rooms.service.CesRoomLayoutMemberPriceServiceImpl;
 import org.jeecg.modules.rooms.service.CesRoomPricePlanServiceImpl;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,7 +28,9 @@ import javax.annotation.Resource;
  */
 @RestController
 @RequestMapping("/rooms/roomPricePlan")
-public class CesRoomPricePlanController {
+@Api(tags="ces_room_price_plan")
+@Slf4j
+public class CesRoomPricePlanController  extends JeecgController<CesRoomPricePlan, CesRoomPricePlanServiceImpl> {
 
     @Resource
     private CesRoomPricePlanServiceImpl roomPricePlanService;

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

@@ -0,0 +1,105 @@
+package org.jeecg.modules.rooms.entity;
+
+import java.math.BigDecimal;
+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_layout_member_price")
+public class CesRoomLayoutMemberPrice extends Model<CesRoomLayoutMemberPrice> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * 会员ID
+     */
+    private String levelId;
+
+    /**
+     * 酒店ID
+     */
+    private String hotelId;
+
+    /**
+     * 房型ID
+     */
+    private String layoutId;
+
+    /**
+     * 上级ID
+     */
+    private String parentId;
+
+
+    /**
+     * 当前折扣
+     */
+    private BigDecimal discount;
+
+    /**
+     * 会员折扣
+     */
+    private BigDecimal ldiscount;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createAt")
+    private LocalDateTime createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    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 DISCOUNT = "discount";
+
+    public static final String LDISCOUNT = "ldiscount";
+
+    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;
+    }
+
+}

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

@@ -0,0 +1,137 @@
+package org.jeecg.modules.rooms.entity;
+
+import java.math.BigDecimal;
+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 com.sun.org.apache.xpath.internal.operations.Bool;
+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_layout_price")
+public class CesRoomLayoutPrice extends Model<CesRoomLayoutPrice> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * 酒店ID
+     */
+    @TableField("hotelId")
+    private String hotelId;
+
+    /**
+     * 房型ID
+     */
+    @TableField("layoutId")
+    private String layoutId;
+
+    /**
+     * 价格名称
+     */
+    private String name;
+
+    /**
+     * 原价
+     */
+    private BigDecimal oprice;
+
+    /**
+     * 预付
+     */
+    private Boolean prepay;
+
+    /**
+     * 现价
+     */
+    private BigDecimal price;
+
+    /**
+     * 类型 1 全天  2  钟点
+     */
+    private Integer type;
+
+    /**
+     * 是否vip
+     */
+    @TableField("isVip")
+    private Boolean isVip;
+
+    /**
+     * 积分
+     */
+    private Integer integral;
+
+    /**
+     * 数量
+     */
+    private Integer num;
+
+    /**
+     * 创建时间
+     */
+    @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 LAYOUTID = "layoutId";
+
+    public static final String NAME = "name";
+
+    public static final String OPRICE = "oprice";
+
+    public static final String PREPAY = "prepay";
+
+    public static final String PRICE = "price";
+
+    public static final String TYPE = "type";
+
+    public static final String ISVIP = "isVip";
+
+    public static final String INTEGRAL = "integral";
+
+    public static final String NUM = "num";
+
+    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;
+    }
+
+}

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

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 房型会员价格 记录表 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+public interface CesRoomLayoutMemberPriceMapper extends BaseMapper<CesRoomLayoutMemberPrice> {
+
+}

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

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

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

@@ -0,0 +1,20 @@
+package org.jeecg.modules.rooms.service;
+
+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;
+
+/**
+ * <p>
+ * 房型会员价格 记录表 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@Service
+public class CesRoomLayoutMemberPriceServiceImpl extends ServiceImpl<CesRoomLayoutMemberPriceMapper, CesRoomLayoutMemberPrice> implements IService<CesRoomLayoutMemberPrice> {
+
+}

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

@@ -0,0 +1,131 @@
+package org.jeecg.modules.rooms.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+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.CesRoomLayoutPriceDto;
+import org.jeecg.modules.rooms.DTO.CesRoomLayoutPriceSearchDto;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutPrice;
+import org.jeecg.modules.rooms.mapper.CesRoomLayoutPriceMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-06
+ */
+@Service
+public class CesRoomLayoutPriceServiceImpl extends ServiceImpl<CesRoomLayoutPriceMapper, CesRoomLayoutPrice> implements IService<CesRoomLayoutPrice> {
+    @Resource
+    private CesRoomLayoutPriceMapper roomLayoutPriceMapper;
+
+
+    /**
+     * 查询某家酒店下某个房型的房间价格管理数据
+     * @param searchDto
+     * @return
+     */
+    public Result list(CesRoomLayoutPriceSearchDto searchDto){
+        QueryWrapper<CesRoomLayoutPrice> queryWrapper =new QueryWrapper<>();
+        queryWrapper.eq(CesRoomLayoutPrice.HOTELID,searchDto.getHotelId());
+        queryWrapper.eq(CesRoomLayoutPrice.LAYOUTID,searchDto.getRoomLayoutId());
+        queryWrapper.eq(CesRoomLayoutPrice.TYPE,searchDto.getType().intValue());
+        queryWrapper.eq(CesRoomLayoutPrice.INVALID,false);
+
+        queryWrapper.orderByDesc(CesRoomLayoutPrice.CREATEAT);
+        IPage<CesRoomLayoutPrice>  dataPage = roomLayoutPriceMapper.selectPage(new Page<>(searchDto.getPageNo().intValue(),searchDto.getPageSize().intValue()),queryWrapper);
+        Map<String,Object> map = new HashedMap();
+        map.put("recoreds",dataPage.getRecords());
+        map.put("total",dataPage.getTotal());
+        return Result.OK(map);
+    }
+
+
+    /**
+     * 创建房型价格
+     * @param roomLayoutPriceDto
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Result createRoomLayoutPrice(CesRoomLayoutPriceDto roomLayoutPriceDto){
+         CesRoomLayoutPrice roomLayoutPrice = new CesRoomLayoutPrice();
+         roomLayoutPrice.setHotelId(roomLayoutPriceDto.getHotelId());
+         roomLayoutPrice.setLayoutId(roomLayoutPriceDto.getLayoutId());
+         roomLayoutPrice.setName(roomLayoutPriceDto.getName());
+         roomLayoutPrice.setOprice(roomLayoutPriceDto.getOprice());//原价
+         roomLayoutPrice.setIntegral(roomLayoutPriceDto.getIntegral().intValue());//积分
+         roomLayoutPrice.setIsVip(roomLayoutPriceDto.getIsVip().intValue() == 1 ? true:false);
+         roomLayoutPrice.setNum(roomLayoutPriceDto.getNum());
+         roomLayoutPrice.setPrice(roomLayoutPriceDto.getPrice());//价格
+         roomLayoutPrice.setPrepay(roomLayoutPriceDto.getPrepay().intValue() == 1 ? true:false);//是否预支付
+         roomLayoutPrice.setCreateAt(LocalDateTime.now());
+         roomLayoutPrice.setUpdateAt(LocalDateTime.now());
+         roomLayoutPrice.setType(roomLayoutPriceDto.getType());
+         roomLayoutPrice.setInvalid(false);
+
+        roomLayoutPriceMapper.insert(roomLayoutPrice);
+
+        if(roomLayoutPriceDto.getIsVip().intValue() == CouponEnums.TRUEORFALSE.TRUE.code()){
+
+        }
+        return Result.ok("创建成功");
+    }
+
+
+    /**
+     * 修改房型
+     * @param roomLayoutPriceDto
+     * @return
+     */
+    public Result modifyRoomLayoutPrice(CesRoomLayoutPriceDto roomLayoutPriceDto){
+        CesRoomLayoutPrice roomLayoutPrice = roomLayoutPriceMapper.selectById(roomLayoutPriceDto.getId());
+        if(ObjectUtils.isEmpty(roomLayoutPrice)) return Result.error("价格管理数据未找到!");
+
+        BeanUtil.copyProperties(roomLayoutPriceDto,roomLayoutPrice, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
+        roomLayoutPrice.setIsVip(roomLayoutPriceDto.getIsVip().intValue() == 1? true:false);
+        roomLayoutPrice.setPrepay(roomLayoutPriceDto.getPrepay().intValue() == 1 ? true:false);//是否预支付
+        roomLayoutPrice.setUpdateAt(LocalDateTime.now());
+        roomLayoutPriceMapper.updateById(roomLayoutPrice);
+        return Result.ok("修改成功!");
+    }
+
+
+    /**
+     * 删除房型价格数据
+     * @param roomLayoutPriceDto
+     * @return
+     */
+    public Result deleteRoomLayoutPrice(CesRoomLayoutPriceDto roomLayoutPriceDto){
+        CesRoomLayoutPrice roomLayoutPrice = roomLayoutPriceMapper.selectById(roomLayoutPriceDto.getId());
+        if(ObjectUtils.isEmpty(roomLayoutPrice)) return Result.error("价格管理数据未找到!");
+        roomLayoutPrice.setUpdateAt(LocalDateTime.now());
+        roomLayoutPrice.setInvalid(true);
+        roomLayoutPriceMapper.updateById(roomLayoutPrice);
+        return Result.ok("删除成功!");
+    }
+
+
+
+
+
+
+
+
+}

+ 15 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomLayoutServiceImpl.java

@@ -26,10 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -79,12 +76,23 @@ public class CesRoomLayoutServiceImpl extends ServiceImpl<CesRoomLayoutMapper, C
         queryWrapper.orderByDesc(CesRoomLayout.CREATEAT);
         queryWrapper.eq(CesRoomLayout.INVALID, false);
 
-        IPage<CesRoomLayout> dataPage = cesRoomLayoutMapper.selectPage(new Page<>(searchDto.getPageNum().intValue(),searchDto.getPageSize().intValue()),queryWrapper);
+        IPage<CesRoomLayout> dataPage = cesRoomLayoutMapper.selectPage(new Page<>(searchDto.getPageNo().intValue(),searchDto.getPageSize().intValue()),queryWrapper);
         List<CesRoomLayoutVo> voList = new ArrayList<>();
-        List<CesRoomLayout> data = dataPage.getRecords();
 
+        List<CesRoomLayout> data = dataPage.getRecords();
+        List<String> hotelIds = data.stream().map(v -> v.getHotelId()).collect(Collectors.toList());
+        List<BusHotel> hotels = busHotelService.findHotelsByIds(hotelIds);
+        data.forEach( v -> {
+            CesRoomLayoutVo vo = new CesRoomLayoutVo();
+            BeanUtil.copyProperties(v,vo);
+            Optional<BusHotel> busHotelOptional = hotels.stream().filter(c -> c.getId().equals(v.getHotelId())).findFirst();
+            if(busHotelOptional.isPresent()){
+                vo.setHotelName(busHotelOptional.get().getName());
+            }
+            voList.add(vo);
+        });
         Map<String,Object> map = new HashMap<>();
-        map.put("list",dataPage.getRecords());
+        map.put("recoreds",voList);
         map.put("total",dataPage.getTotal());
         return Result.OK(map);
     }