Browse Source

修改房价方案、

许智捷 2 years ago
parent
commit
bd89384ea7
12 changed files with 140 additions and 94 deletions
  1. 89 64
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusHousePriceSchemeLayoutController.java
  2. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomBookingOrdersController.java
  3. 2 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomBookingOrders.java
  4. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomsLivingOrder.java
  5. 1 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/enums/CustomerTypeEnum.java
  6. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusOrderFeeService.java
  7. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusRoomBookingOrdersService.java
  8. 4 6
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusOrderFeeServiceImpl.java
  9. 4 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java
  10. 5 5
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesHousePriceSchemeController.java
  11. 9 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesHousePriceScheme.java
  12. 18 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesHousePriceSchemeServiceImpl.java

+ 89 - 64
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusHousePriceSchemeLayoutController.java

@@ -1,58 +1,46 @@
 package org.jeecg.modules.business.controller;
 
-import java.sql.Time;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import org.apache.commons.lang.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.api.vo.Result;
-import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.CommonUtils;
 import org.jeecg.common.util.TokenUtils;
-import org.jeecg.common.util.oConvertUtils;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.entity.BusHousePriceSchemeLayout;
+import org.jeecg.modules.business.entity.BusSchemeLayoutDailyPrice;
 import org.jeecg.modules.business.service.IBusHousePriceSchemeLayoutService;
 import org.jeecg.modules.business.service.IBusSchemeLayoutDailyPriceService;
 import org.jeecg.modules.rooms.entity.CesHousePriceScheme;
 import org.jeecg.modules.rooms.entity.CesRoomLayout;
 import org.jeecg.modules.rooms.service.CesHousePriceSchemeServiceImpl;
 import org.jeecg.modules.rooms.service.CesRoomLayoutServiceImpl;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.base.controller.JeecgController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 
- /**
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
  * @Description: 房价方案-房型关联表
  * @Author: jeecg-boot
  * @Date:   2023-04-07
@@ -67,19 +55,13 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 	private IBusHousePriceSchemeLayoutService busHousePriceSchemeLayoutService;
 
 	@Resource
-	IBusSchemeLayoutDailyPriceService schemeLayoutDailyPriceService;
+	 private IBusSchemeLayoutDailyPriceService schemeLayoutDailyPriceService;
 	 @Resource
 	 private CesRoomLayoutServiceImpl cesRoomLayoutService;
 	 @Resource
 	 private CesHousePriceSchemeServiceImpl housePriceSchemeService;
 	/**
 	 * 分页列表查询
-	 *
-	 * @param busHousePriceSchemeLayout
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
 	 */
 	//@AutoLog(value = "房价方案-房型关联表-分页列表查询")
 	@ApiOperation(value="房价方案-房型关联表-分页列表查询", notes="房价方案-房型关联表-分页列表查询")
@@ -90,7 +72,7 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
 		if (type != null){
-			CesHousePriceScheme housePriceScheme = housePriceSchemeService.getOne(Wrappers.<CesHousePriceScheme>lambdaQuery().eq(CesHousePriceScheme::getType,type).last("limit 1"));
+			CesHousePriceScheme housePriceScheme = housePriceSchemeService.getOne(Wrappers.<CesHousePriceScheme>lambdaQuery().eq(CesHousePriceScheme::getSchemeType,type).last("limit 1"));
 			busHousePriceSchemeLayout.setSchemeId(housePriceScheme.getId());
 		}
 		QueryWrapper<BusHousePriceSchemeLayout> queryWrapper = QueryGenerator.initQueryWrapper(busHousePriceSchemeLayout, req.getParameterMap());
@@ -107,15 +89,25 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 	}
 
 
+	 /**
+	  * 重置每日房价
+	  */
+	 //@AutoLog(value = "房价方案-房型关联表-分页列表查询")
+	 @ApiOperation(value="重置每日房价", notes="重置每日房价")
+	 @GetMapping(value = "/resetDailyPrice")
+	 public Result<Boolean> resetDailyPrice(String priceSchemeLayoutId) {
+		 BusHousePriceSchemeLayout priceSchemeLayout = service.getById(priceSchemeLayoutId);
+		 if (priceSchemeLayout == null){
+			 return Result.error("未找到对应的 房价方案与房型关联");
+		 }
+		 schemeLayoutDailyPriceService.remove(Wrappers.<BusSchemeLayoutDailyPrice>lambdaQuery()
+				 .eq(BusSchemeLayoutDailyPrice::getSchemeLayoutId, priceSchemeLayout.getId()));
+		 return Result.OK("重置成功");
+	 }
+
 
 	 /**
 	  * 分页列表查询
-	  *
-	  * @param busHousePriceSchemeLayout
-	  * @param pageNo
-	  * @param pageSize
-	  * @param req
-	  * @return
 	  */
 	 //@AutoLog(value = "房价方案-房型关联表-分页列表查询")
 	 @ApiOperation(value="房价方案-房型关联表-分页列表查询", notes="房价方案-房型关联表-分页列表查询")
@@ -125,7 +117,7 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 																   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 																   HttpServletRequest req) {
 		 QueryWrapper<BusHousePriceSchemeLayout> queryWrapper = QueryGenerator.initQueryWrapper(busHousePriceSchemeLayout, req.getParameterMap());
-		 Page<BusHousePriceSchemeLayout> page = new Page<BusHousePriceSchemeLayout>(pageNo, pageSize);
+		 Page<BusHousePriceSchemeLayout> page = new Page<>(pageNo, pageSize);
 		 IPage<BusHousePriceSchemeLayout> pageList = busHousePriceSchemeLayoutService.page(page, queryWrapper);
 		 pageList.getRecords().forEach(item->{
 			 CesRoomLayout layout = cesRoomLayoutService.getById(item.getLayoutId());
@@ -141,10 +133,6 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 
 	 /**
 	  * 列表查询
-	  *
-	  * @param busHousePriceSchemeLayout
-	  * @param req
-	  * @return
 	  */
 	 //@AutoLog(value = "房价方案-房型关联表-列表查询")
 	 @ApiOperation(value="房价方案-房型关联表-列表查询", notes="房价方案-房型关联表-列表查询")
@@ -160,11 +148,54 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 		 return Result.OK(list);
 	 }
 
+	 /**
+	  * 分页列表查询
+	  */
+	 //@AutoLog(value = "房价方案-房型关联表-分页列表查询")
+	 @ApiOperation(value="房价方案-房型关联表-分页列表查询", notes="房价方案-房型关联表-分页列表查询")
+	 @PostMapping(value = "/getSchemeLayoutByLayoutId")
+	 public Result<List<CesHousePriceScheme>> getSchemeLayoutByLayoutId(@RequestBody List<String> layoutIds,String hotelId) {
+		 if (CollUtil.isEmpty(layoutIds)){
+			 return null;
+		 }
+		 // 房价方案
+		 LambdaQueryWrapper<CesHousePriceScheme> queryWrapper = new LambdaQueryWrapper<>();
+		 queryWrapper.eq(CesHousePriceScheme::getHotelId,hotelId);
+		 queryWrapper.eq(CesHousePriceScheme::getInvalid,false);
+		 queryWrapper.eq(CesHousePriceScheme::getOpen,1);
+		 queryWrapper.and(e -> e.le(CesHousePriceScheme::getValidStartTime, LocalDate.now())
+				 .ge(CesHousePriceScheme::getValidEndTime, LocalDate.now()).or().eq(CesHousePriceScheme::getValidTime, 0));
+		 queryWrapper.and(e -> e.le(CesHousePriceScheme::getStartTime, LocalTime.now())
+				 .ge(CesHousePriceScheme::getEndTime, LocalTime.now()).or().eq(CesHousePriceScheme::getCheckInTime, 0));
+		 List<CesHousePriceScheme> cesHousePriceSchemes = housePriceSchemeService.list(queryWrapper);
+		 List<String> priceSchemeIds = cesHousePriceSchemes.stream().map(CesHousePriceScheme::getId).collect(Collectors.toList());
+		 if (CollUtil.isEmpty(priceSchemeIds)){
+			 throw new JeecgBootException("未找到方案");
+		 }
+		 // 房价方案房型
+		 List<BusHousePriceSchemeLayout> schemeLayouts = busHousePriceSchemeLayoutService.list(Wrappers.<BusHousePriceSchemeLayout>lambdaQuery()
+				 .eq(BusHousePriceSchemeLayout::getDelFlag, 0).in(BusHousePriceSchemeLayout::getLayoutId, layoutIds));
+		 List<String> ids = schemeLayouts.stream().map(BusHousePriceSchemeLayout::getId).collect(Collectors.toList());
+		 if (CollUtil.isEmpty(ids)){
+			 return null;
+		 }
+		 // 房价方案房型 自定义的每天价格
+		 List<BusSchemeLayoutDailyPrice> dailyPrices = schemeLayoutDailyPriceService.list(Wrappers
+				 .<BusSchemeLayoutDailyPrice>lambdaQuery().in(BusSchemeLayoutDailyPrice::getSchemeLayoutId, ids));
+		 schemeLayouts.forEach(e -> {
+			 List<BusSchemeLayoutDailyPrice> layoutDailyPrices = dailyPrices.stream().filter(ele ->
+					 StrUtil.equals(e.getId(), ele.getSchemeLayoutId())).collect(Collectors.toList());
+			 e.setSchemeLayoutDailyPriceList(layoutDailyPrices);
+		 });
+		 cesHousePriceSchemes.forEach(e -> {
+			 List<BusHousePriceSchemeLayout> findSchemeLayouts = schemeLayouts.stream().filter(ele -> StrUtil.equals(e.getId(), ele.getSchemeId())).collect(Collectors.toList());
+			 e.setSchemeLayouts(findSchemeLayouts);
+		 });
+		 return Result.OK(cesHousePriceSchemes);
+	 }
+
 	/**
 	 *   添加
-	 *
-	 * @param busHousePriceSchemeLayout
-	 * @return
 	 */
 	@AutoLog(value = "房价方案-房型关联表-添加")
 	@ApiOperation(value="房价方案-房型关联表-添加", notes="房价方案-房型关联表-添加")
@@ -177,9 +208,6 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 
 	/**
 	 *  编辑
-	 *
-	 * @param busHousePriceSchemeLayout
-	 * @return
 	 */
 	@AutoLog(value = "房价方案-房型关联表-编辑")
 	@ApiOperation(value="房价方案-房型关联表-编辑", notes="房价方案-房型关联表-编辑")
@@ -192,9 +220,6 @@ public class BusHousePriceSchemeLayoutController extends JeecgController<BusHous
 
 	 /**
 	  *  编辑
-	  *
-	  * @param busHousePriceSchemeLayout
-	  * @return
 	  */
 	 @AutoLog(value = "房价方案-房型关联表-编辑")
 	 @ApiOperation(value="房价方案-房型关联表-编辑", notes="房价方案-房型关联表-编辑")

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomBookingOrdersController.java

@@ -246,7 +246,7 @@ public class BusRoomBookingOrdersController extends JeecgController<BusRoomBooki
 	 @ApiOperation(value="酒店预定订单-预约房间入住", notes="酒店预定订单-预约房间入住")
 	 @RequestMapping(value = "booking-to-live",method = RequestMethod.POST)
 	 public  Result<String> bookingRoomToLive(String bookingRoomId, @RequestBody List<BusLivingCustomer> customers,String hotelId) {
-		 return Result.OK("入住成功",service.bookingToLive(bookingRoomId, customers,hotelId,true,null,null));
+		 return Result.OK("入住成功",service.bookingToLive(bookingRoomId, customers,hotelId,true,null,null,null));
 	 }
 
 	 /**

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

@@ -209,5 +209,7 @@ public class BusRoomBookingOrders implements Serializable {
     private Integer settleType;
     @TableField(exist = false)
     private String teamTag;
+    @TableField(exist = false)
+    private String longSchemeId;
 
 }

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

@@ -90,6 +90,10 @@ public class BusRoomsLivingOrder implements Serializable {
 	@Excel(name = "房价方案ID", width = 15)
     @ApiModelProperty(value = "房价方案ID")
     private String roomPriceSlnId;
+    /**房价方案ID*/
+	@Excel(name = "长租房房价方案ID", width = 15)
+    @ApiModelProperty(value = "长租房房价方案ID")
+    private String longSchemeId;
 	/**中介名称*/
 	@Excel(name = "中介名称", width = 15)
     @ApiModelProperty(value = "中介名称")

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

@@ -7,6 +7,7 @@ import java.util.List;
 
 public enum CustomerTypeEnum {
 
+//    All(null,"所有"),
     NORMAL(1,"散客"),
     VIP(2,"会员"),
     PROTOCOL(3,"协议单位"),

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusOrderFeeService.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.business.service;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.business.entity.BusLivingLayoutDayPrice;
 import org.jeecg.modules.business.entity.BusOrderFee;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
@@ -29,5 +30,5 @@ public interface IBusOrderFeeService extends IService<BusOrderFee> {
     IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page, String roomName, Integer preferentialStatus,String bookingOrderId, DateTime startTime, DateTime endTime);
 
 
-    void addBillFee(BusRoomsLivingOrder livingOrder, CesRooms room, CesHouseLongRentScheme longRentScheme);
+    void addBillFee(BusRoomsLivingOrder livingOrder, CesRooms room, CesHouseLongRentScheme longRentScheme,List<BusLivingLayoutDayPrice> livingRoomDayPrices);
 }

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

@@ -45,7 +45,7 @@ public interface IBusRoomBookingOrdersService extends IService<BusRoomBookingOrd
     String batchOrderSave(BatchOrderSavaDto item);
 
     Boolean setBatchOrderStatus(BusBookingBatch batchOrder);
-    String bookingToLive(String bookingRoomId, List<BusLivingCustomer> customers, String hotelId,Boolean bookingLiving, BusRoomBookingOrders livingRoomOrderInfo, CesHouseLongRentScheme longRentScheme);
+    String bookingToLive(String bookingRoomId, List<BusLivingCustomer> customers, String hotelId,Boolean bookingLiving, BusRoomBookingOrders livingRoomOrderInfo, CesHouseLongRentScheme longRentScheme,List<BusLivingLayoutDayPrice> livingRoomDayPrices);
 
     String customerLiving(BookingOrderSaveDto livingData, Boolean isTeam, String hotelId);
 

+ 4 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusOrderFeeServiceImpl.java

@@ -331,19 +331,17 @@ public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOr
     }
 
     @Override
-    public void addBillFee(BusRoomsLivingOrder livingOrder, CesRooms room, CesHouseLongRentScheme longRentScheme) {
+    public void addBillFee(BusRoomsLivingOrder livingOrder, CesRooms room, CesHouseLongRentScheme longRentScheme,List<BusLivingLayoutDayPrice> livingRoomDayPrices) {
         if (livingOrder.getLivingType() != 5){
             BigDecimal money = new BigDecimal(0);
-            BusLivingLayoutDayPrice price = livingLayoutDayPriceService.getOne(Wrappers.<BusLivingLayoutDayPrice>query()
-                    .eq("living_order_id", livingOrder.getId()).eq("day_time", DateUtils.formatDate(new Date())+" 00:00:00"));
-            if(price != null) {
-                money = price.getPrice();
+            Optional<BusLivingLayoutDayPrice> dayPrice = livingRoomDayPrices.stream().filter(e -> room.getId().equals(e.getRoomId()) && (DateUtils.formatDate(new Date())).equals(DateUtils.formatDate(e.getDayTime()))).findFirst();
+            if (dayPrice.isPresent()){
+                money = dayPrice.get().getPrice();
             } else {
                 CesRoomLayout layout = layoutService.getById(room.getLayoutId());
                 if(layout == null) throw new JeecgBootException("房价不存在");
                 money = layout.getMarketPrice();
             }
-
             BusOrderFee dayOrderFee = new BusOrderFee();
             dayOrderFee.setDayTime(new Date());
             dayOrderFee.setCreateTime(new Date());

+ 4 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -1029,7 +1029,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String bookingToLive(String bookingRoomId, List<BusLivingCustomer> customers, String hotelId, Boolean bookingLiving,
-                                BusRoomBookingOrders livingRoomOrderInfo, CesHouseLongRentScheme longRentScheme) {
+                                BusRoomBookingOrders livingRoomOrderInfo, CesHouseLongRentScheme longRentScheme, List<BusLivingLayoutDayPrice> livingRoomDayPrices) {
         BusBookingRooms bkRoom = bookingRoomsService.getById(bookingRoomId);
         if(bkRoom == null) throw  new JeecgBootException("关联房间不存在");
         BusRoomBookingOrders bookingOrders = getById(bkRoom.getBookingOrdersId());
@@ -1069,7 +1069,6 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             livingOrder.setContactId(customers.get(0).getCustomerId());
         } else throw new JeecgBootException("请添加入住人信息");
         roomsLivingOrderService.save(livingOrder);
-
         // 添加查房记录 start
         FwRoomExamine examine = new FwRoomExamine();
         examine.setHotelId(hotelId);
@@ -1129,7 +1128,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         //<editor-fold desc="todo:账单相关">
 //        if(bookingLiving != null && bookingLiving) {
 
-        feeService.addBillFee(livingOrder, room,longRentScheme);
+        feeService.addBillFee(livingOrder, room,longRentScheme,livingRoomDayPrices);
 
 //        }
 
@@ -2365,7 +2364,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         livingCustomer.setId(null);
         livingCustomer.setLivingOrderId(null);
         customers.add(livingCustomer);
-        String livingOrderId = bookingToLive(bookingRooms.getId(), customers,hotelId,null,null, null);
+        String livingOrderId = bookingToLive(bookingRooms.getId(), customers,hotelId,null,null, null,null);
 
         return true;
     }
@@ -3157,8 +3156,6 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     }
     private Map<String,String> bookingRoomToLiving(BookingOrderSaveDto livingData, List<ExtendBusBookingRoomsVo> roomIds, BookingOrderEditVo bookingOrderVo,String hotelId) {
         Map<String,String> results = new HashMap<>();
-        List<BusRoomPayType> payTypes = payTypeService.list(Wrappers.<BusRoomPayType>query().eq("hotel_id",hotelId));
-        LoginUser user = TokenUtils.getAuthUser();
         roomIds.forEach(bkRoom-> {
             if(livingData.getRoomIds().stream().filter(s->s.getRoomId().equals(bkRoom.getRoomId())).count() == 0)
                 throw new JeecgBootException("房间信息未找到");
@@ -3167,7 +3164,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             if(customers == null || customers.isEmpty()) throw new JeecgBootException("请添加客户信息");
 
             // 保存入住单,修改房间状态
-            String livingOrderId = bookingToLive(bkRoom.getId(), customers,hotelId,null, bkRoomItem.getRoomOrderInfo(),bkRoomItem.getLongRentScheme());
+            String livingOrderId = bookingToLive(bkRoom.getId(), customers,hotelId,null, bkRoomItem.getRoomOrderInfo(),bkRoomItem.getLongRentScheme(), livingData.getLivingRoomDayPrices());
             // 将预约时交的押金,放到主房
             if (bkRoom.getIsMain()){
                 LambdaUpdateWrapper<BusOrderFee> updateWrapper = new LambdaUpdateWrapper<>();

+ 5 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesHousePriceSchemeController.java

@@ -79,7 +79,7 @@ public class CesHousePriceSchemeController extends JeecgController<CesHousePrice
             return Result.error("参数异常");
         }
         CesHousePriceScheme scheme = cesHousePriceSchemeService.getOne(Wrappers.<CesHousePriceScheme>lambdaQuery()
-                .eq(CesHousePriceScheme::getType, type).eq(CesHousePriceScheme::getHotelId, hotelId).last("limit 1"));
+                .eq(CesHousePriceScheme::getSchemeType, type).eq(CesHousePriceScheme::getHotelId, hotelId).last("limit 1"));
         if (scheme == null){
             return Result.error("参数异常");
         }
@@ -203,9 +203,9 @@ public class CesHousePriceSchemeController extends JeecgController<CesHousePrice
 //        if (null==dto.getGuestSource()){
 //            return Result.error(ResultCode.PARAM_MISS);
 //        }
-        if (null==dto.getGuestType()){
-            return Result.error(ResultCode.PARAM_MISS);
-        }
+//        if (null==dto.getGuestType()){
+//            return Result.error(ResultCode.PARAM_MISS);
+//        }
         if (null==dto.getCheckInTime()){
             return Result.error(ResultCode.PARAM_MISS);
         }else{
@@ -230,7 +230,7 @@ public class CesHousePriceSchemeController extends JeecgController<CesHousePrice
 //        if (dto.getType() == 3 && (null==dto.getSort()||1>dto.getSort().intValue())){
 //            return Result.error("排序不能为空且不能小于1!");
 //        }
-        if(dto.getType() == 3 && CustomerTypeEnum.val(dto.getGuestType()) == null){
+        if(dto.getGuestType() != null && CustomerTypeEnum.val(dto.getGuestType()) == null){
             throw new JeecgBootException("客人类型不正确");
         }
         try{

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

@@ -7,11 +7,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.modules.business.entity.BusHousePriceSchemeLayout;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.List;
 
 /**
  * <p>
@@ -133,7 +135,7 @@ public class CesHousePriceScheme extends Model<CesHousePriceScheme> {
     /**
      * 类型 1 周末 2节假日 3 特殊
      */
-    private Integer type;
+    private Integer schemeType;
 
     /**
      * 创建时间
@@ -151,6 +153,11 @@ public class CesHousePriceScheme extends Model<CesHousePriceScheme> {
      * 逻辑删除字段
      */
     private Boolean invalid;
+    /**
+     * 逻辑删除字段
+     */
+    @TableField(exist = false)
+    private List<BusHousePriceSchemeLayout> schemeLayouts;
 
 
     public static final String ID = "id";
@@ -199,7 +206,7 @@ public class CesHousePriceScheme extends Model<CesHousePriceScheme> {
 
     public static final String INVALID = "invalid";
 
-    public static final String TYPE = "type";
+    public static final String SCHEME_TYPE = "scheme_type";
 
     @Override
     public Serializable pkVal() {

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

@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -78,7 +79,7 @@ public class CesHousePriceSchemeServiceImpl extends ServiceImpl<CesHousePriceSch
                     .or()
                     .like(CesHousePriceScheme.NUMBER, CommonUtils.escapeChar(dto.getParamName())));
         }
-        queryWrapper.eq(CesHousePriceScheme.TYPE,3);
+        queryWrapper.eq(CesHousePriceScheme.SCHEME_TYPE,3);
         queryWrapper.eq(CesHousePriceScheme.INVALID,false);
         queryWrapper.orderByAsc(CesHousePriceScheme.SORT);
         IPage<CesHousePriceScheme> dataPage = cesHousePriceSchemeMapper.selectPage(new Page<>(dto.getPageNo().intValue(),dto.getPageSize().intValue()),queryWrapper);
@@ -89,7 +90,7 @@ public class CesHousePriceSchemeServiceImpl extends ServiceImpl<CesHousePriceSch
             CesHousePriceSchemeVo vo = new CesHousePriceSchemeVo();
             BeanUtil.copyProperties(v, vo);
 
-            vo.setGuestTypeName(CustomerTypeEnum.val(vo.getGuestType()).getTitle());
+            vo.setGuestTypeName(vo.getGuestType() == null ? "全部" : CustomerTypeEnum.val(vo.getGuestType()).getTitle());
 
             DateFormat startDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
@@ -115,10 +116,13 @@ public class CesHousePriceSchemeServiceImpl extends ServiceImpl<CesHousePriceSch
         QueryWrapper<CesHousePriceScheme> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(CesHousePriceScheme.HOTEL_ID,dto.getHotelId());
         queryWrapper.eq(CesHousePriceScheme.INVALID,false);
-        queryWrapper.eq(CesHousePriceScheme.TYPE,3);
-        queryWrapper.and(e -> e.ge(CesHousePriceScheme.VALID_START_TIME, LocalDate.now())
-                .le(CesHousePriceScheme.VALID_END_TIME, LocalDate.now()).or().eq(CesHousePriceScheme.VALID_TIME, 0));
-        queryWrapper.orderByAsc(CesHousePriceScheme.SORT);
+        queryWrapper.eq(CesHousePriceScheme.SCHEME_TYPE,3);
+        queryWrapper.eq(CesHousePriceScheme.OPEN,1);
+        queryWrapper.and(e -> e.le(CesHousePriceScheme.VALID_START_TIME, LocalDate.now())
+                .ge(CesHousePriceScheme.VALID_END_TIME, LocalDate.now()).or().eq(CesHousePriceScheme.VALID_TIME, 0));
+        queryWrapper.and(e -> e.le(CesHousePriceScheme.START_TIME, LocalTime.now())
+                .ge(CesHousePriceScheme.END_TIME, LocalTime.now()).or().eq(CesHousePriceScheme.CHECK_IN_TIME, 0));
+//        queryWrapper.orderByAsc(CesHousePriceScheme.SORT);
         List<CesHousePriceScheme> cesHousePriceSchemes = cesHousePriceSchemeMapper.selectList(queryWrapper);
         List<String> idList = cesHousePriceSchemes.stream().map(CesHousePriceScheme :: getId).collect(Collectors.toList());
         List<CesHousePriceSchemeVo> cesHousePriceSchemeVoList = new ArrayList<>();
@@ -204,7 +208,14 @@ public class CesHousePriceSchemeServiceImpl extends ServiceImpl<CesHousePriceSch
         //忽略空值 不然会覆盖
         BeanUtil.copyProperties(dto,model, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
         model.setUpdateAt(LocalDateTime.now());
-        cesHousePriceSchemeMapper.updateById(model);
+//        model.setGuestType(dto.getGuestType());
+//        cesHousePriceSchemeMapper.updateById(model);
+        LambdaUpdateWrapper<CesHousePriceScheme> wrapper = new LambdaUpdateWrapper<>();
+        if (dto.getGuestType() == null){
+            wrapper.set(CesHousePriceScheme::getGuestType, null);
+        }
+        wrapper.eq(CesHousePriceScheme::getId, model.getId());
+        cesHousePriceSchemeMapper.update(model,wrapper);
         return Result.ok("修改成功!");
     }