Browse Source

修改课表展示接口。添加系统用户,自定义用户删除锁用户接口,修改计算订单金额接口

liu 1 year ago
parent
commit
be3ef59b0e

+ 6 - 11
src/main/java/com/template/controller/ClassScheduleController.java

@@ -6,7 +6,6 @@ import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.read.listener.PageReadListener;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -18,10 +17,7 @@ import com.template.model.vo.ClassScheduleExportVo;
 import com.template.model.vo.ScheduleVo;
 import com.template.services.ClassScheduleService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
@@ -30,7 +26,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.TextStyle;
 import java.time.temporal.ChronoUnit;
@@ -244,22 +239,22 @@ public class ClassScheduleController implements ClassScheduleAPI {
      */
     public Map<String, String> getDjz(String dateTime) {
         //    2023-9-4开始上课
-        LocalDate localDate = LocalDate.of(2023, 9, 4);
+//        LocalDate localDate = LocalDate.of(2023, 9, 4);
 
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDate date = LocalDate.parse(dateTime, dateTimeFormatter);
 
 //        将此日期与指定日期进行比较,传进来的日期不能小于开学日期
-        int i = date.compareTo(localDate);
+       /* int i = date.compareTo(localDate);
         if (i < 0) {
             return null;
-        }
+        }*/
         Map<String, String> map = new HashMap<>();
 //        计算2个时间的天数差
-        long until = date.until(localDate, ChronoUnit.DAYS);
+//        long until = date.until(localDate, ChronoUnit.DAYS);
         //        需要加1才是第几周
-        int weeks = (int) until / 7;
-        map.put("weeks", (weeks + 1) + "");
+//        int weeks = (int) until / 7;
+//        map.put("weeks", (weeks + 1) + "");
 
 //        周几
         String chineseDayOfWeek = date.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINA);

+ 1 - 1
src/main/java/com/template/controller/HouseNumberController.java

@@ -291,7 +291,7 @@ public class HouseNumberController implements HouseNumberControllerAPI {
         }
 //      判断该用户是否拥有权限
         String hydropowerManagement = permissionSetting.getHydropowerManagement();
-        if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("4")) {
+        if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("5")) {
             return CommonResult.fail("此账号暂无该权限");
         }
 

+ 121 - 4
src/main/java/com/template/controller/HouseOrderController.java

@@ -62,6 +62,7 @@ import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.template.common.utils.StrUtils.getUUIDBits;
 import static com.wechat.pay.java.service.payments.model.Transaction.TradeStateEnum.NOTPAY;
@@ -1424,8 +1425,8 @@ public class HouseOrderController implements HouseOrderAPI {
         }
 
 //      判断该用户是否拥有权限
-        String houseTypeManagement = permissionSetting.getDoorLockManagement();
-        if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("14")) {
+        String reportManagement = permissionSetting.getReportManagement();
+        if (!"0".equals(reportManagement) && !reportManagement.contains("1")) {
             return CommonResult.fail("此账号暂无该权限");
         }
 
@@ -1455,8 +1456,8 @@ public class HouseOrderController implements HouseOrderAPI {
         }
 
 //      判断该用户是否拥有权限
-        String houseTypeManagement = permissionSetting.getDoorLockManagement();
-        if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("14")) {
+        String reportManagement = permissionSetting.getReportManagement();
+        if (!"0".equals(reportManagement) && !reportManagement.contains("2")) {
             return CommonResult.fail("此账号暂无该权限");
         }
 
@@ -2955,5 +2956,121 @@ public class HouseOrderController implements HouseOrderAPI {
 
     }
 
+
+    //    计算一个月内每个人的免费入住所消费的水电
+    public void payHouseOrder() {
+//        获取免费的额度
+        SubsidySetup subsidySetup = subsidySetupService.list(new LambdaQueryWrapper<>()).get(0);
+
+        BigDecimal water = subsidySetup.getFreeQuotaOfWater();
+        BigDecimal electric = subsidySetup.getFreeQuotaOfElectric();
+
+        //水:2.1元/吨,电:0.62元/度
+        BigDecimal waterPrice = new BigDecimal(2.1);
+        BigDecimal electricPrice = new BigDecimal(0.62);
+
+        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+//        计算上个免费的订单
+        LocalDateTime end = LocalDateTime.now().withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0);
+        LocalDateTime start = end.minusMonths(1);
+
+        LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.between(HouseOrder::getLeaveTime, start, end)
+                .eq(HouseOrder::getPayPrice, 0);
+        List<HouseOrder> list = houseOrderService.list(wrapper);
+
+
+//       获取上个月哪些人有免费订单
+        List<String> userList = houseOrderService.payHouseOrderUser(start, end);
+
+        ArrayList<HouseOrder> houseOrders = new ArrayList<>();
+        for (String user : userList) {
+            List<HouseOrder> ownerClasses = list.stream().filter(e -> e.getReserveUserId().equals(user)).collect(Collectors.toList());
+
+//            总能耗
+            BigDecimal waterTotal = new BigDecimal(0);
+//            总金额
+            BigDecimal waterCostTotal = new BigDecimal(0);
+            BigDecimal electricTotal = new BigDecimal(0);
+            BigDecimal electricCostTotal = new BigDecimal(0);
+
+            for (HouseOrder ownerClass : ownerClasses) {
+//                金额
+                BigDecimal electricCost = ownerClass.getElectricCost();
+                electricCostTotal=electricCostTotal.add(electricCost);
+//                能耗
+                BigDecimal electricConsume = ownerClass.getElectricConsume();
+                electricTotal=electricTotal.add(electricConsume);
+
+                BigDecimal waterCost = ownerClass.getWaterCost();
+                waterCostTotal=waterCostTotal.add(waterCost);
+
+                BigDecimal waterConsume = ownerClass.getWaterConsume();
+                waterTotal=waterTotal.add(waterConsume);
+
+            }
+
+//            需支付金额
+            BigDecimal payPrice = new BigDecimal(0);
+//            总额度大于免费额度
+            if (waterTotal.subtract(water).doubleValue()>0) {
+                BigDecimal totalWaterPrice=(waterTotal.subtract(water)).multiply(waterPrice);
+                payPrice=payPrice.add(totalWaterPrice);
+            }
+
+            if (electricTotal.subtract(electric).doubleValue()>0) {
+                BigDecimal totalElectricPrice=(electricTotal.subtract(electric)).multiply(electricPrice);
+                payPrice=payPrice.add(totalElectricPrice);
+            }
+            if (payPrice.doubleValue()>0) {
+                HouseOrder houseOrder = new HouseOrder();
+                //        订单号
+                String orderNumber = UUID.randomUUID().toString();
+                orderNumber = orderNumber.replace("-", "");
+                houseOrder.setOrderNumber(orderNumber);
+//                订单状态
+                houseOrder.setOrderStatus("5");
+
+                Users users = usersService.getById(user);
+//                入住人
+                houseOrder.setLiveName(users.getUserName());
+//                预定人
+                houseOrder.setReserveName(users.getUserName());
+//                预定人电话
+                houseOrder.setReservePhone(users.getPhone());
+//                预定人id
+                houseOrder.setReserveUserId(user);
+//                入住人id
+                houseOrder.setLiveUsersId(user);
+
+//                渠道
+                houseOrder.setOrderChannel("1");
+//                订单金额
+                houseOrder.setPayPrice(payPrice);
+
+                houseOrder.setElectricCost(electricCostTotal);
+                houseOrder.setElectricConsume(electricTotal);
+                houseOrder.setWaterCost(waterCostTotal);
+                houseOrder.setWaterConsume(waterTotal);
+
+                houseOrder.setReserveLiveTime(start.format(dateTimeFormatter1));
+                houseOrder.setReserveLeaveTime(end.format(dateTimeFormatter1));
+                houseOrder.setLiveTime(Date.from(start.atZone(ZoneId.systemDefault()).toInstant()));
+                houseOrder.setLeaveTime(Date.from(end.atZone(ZoneId.systemDefault()).toInstant()));
+
+                houseOrders.add(houseOrder);
+            }
+
+            houseOrderService.saveBatch(houseOrders);
+
+
+
+        }
+
+
+    }
+
+
 }
 

+ 24 - 5
src/main/java/com/template/controller/HousePriceController.java

@@ -108,6 +108,9 @@ public class HousePriceController implements HousePriceAPI {
 
 //    获取改价内容
         List<AlterDto> list = alterPriceDto.getAlterDtoList();
+        if (ObjectUtils.isEmpty(list)||list.size()<=0) {
+            return CommonResult.fail("改价内容不能为空");
+        }
         for (AlterDto alterDto : list) {
             int type = alterDto.getType();
             String name = alterDto.getName();
@@ -116,7 +119,21 @@ public class HousePriceController implements HousePriceAPI {
                     .eq(House::getRoomName, name);
 
             House house = houseService.getOne(wrapper);
+            if (ObjectUtils.isEmpty(house)) {
+                return CommonResult.fail("不存在"+name+"房型");
+            }
             if (ObjectUtils.isNotEmpty(house)) {
+
+                //                判断该房型是否已存在该
+//                String date = alterDto.getDate();
+//                String[] split = date.split(",");
+//                String startTime = split[0];
+//                String endTime = split[1];
+//                List<HousePrice> hp=housePriceService.getHousePrice(startTime, endTime, house.getId());
+//                if (ObjectUtils.isNotEmpty(hp)) {
+//                    return CommonResult.fail("该"+date+"改价时间已包含");
+//                }
+
                 BigDecimal roomPrice = house.getRoomPrice();
                 HousePrice housePrice = new HousePrice();
                 BigDecimal price = alterDto.getPrice();
@@ -129,6 +146,8 @@ public class HousePriceController implements HousePriceAPI {
 //              设置日期
                 housePrice.setSetDate(alterDto.getDate());
 
+                housePriceService.save(housePrice);
+
                 housePrices.add(housePrice);
 
             }
@@ -140,7 +159,7 @@ public class HousePriceController implements HousePriceAPI {
             return CommonResult.ok();
         }
 
-        return CommonResult.fail();
+        return CommonResult.ok();
     }
 
     @Override
@@ -295,7 +314,7 @@ public class HousePriceController implements HousePriceAPI {
 
     @Override
     public void queryExport(HttpServletResponse response, String type, String houseName, String operatingTime, String priceTime, String operatingName) {
-        String fileName = "改价记录.xls";
+
         List<AlterPriceRecordVo> vos = housePriceService.queryExport(type, houseName, operatingTime, priceTime, operatingName);
         //        导出
         Workbook workbook = new XSSFWorkbook();
@@ -316,8 +335,8 @@ public class HousePriceController implements HousePriceAPI {
                 dataRow1.createCell(0).setCellValue(vo.getHouseType());
                 dataRow1.createCell(1).setCellValue(vo.getHouseName());
                 dataRow1.createCell(2).setCellValue(vo.getSetDate());
-                dataRow1.createCell(3).setCellValue(vo.getAlterPrice().toString());
-                dataRow1.createCell(4).setCellValue(vo.getOriginalPrice().toString());
+                dataRow1.createCell(3).setCellValue(vo.getAlterPrice().doubleValue());
+                dataRow1.createCell(4).setCellValue(vo.getOriginalPrice().doubleValue());
                 dataRow1.createCell(5).setCellValue(vo.getName());
                 dataRow1.createCell(6).setCellValue(vo.getDate());
             }
@@ -325,9 +344,9 @@ public class HousePriceController implements HousePriceAPI {
         // 将工作簿写入文件
         ExcelUtils2.excelDownload(workbook, "改价记录表.xlsx", response);
 
-
     }
 
 
+
 }
 

+ 22 - 0
src/main/java/com/template/controller/LoginController.java

@@ -83,6 +83,28 @@ public class LoginController implements LoginControllerAPI {
             wrapper.eq(PermissionSetting::getAdminMenuId,adminMenuId);
             PermissionSetting one = permissionSettingService.getOne(wrapper);
 
+//            JSONObject jsonObject = new JSONObject();
+////            房态
+//            String houseStatusManagement = one.getHouseStatusManagement();
+//            if (ObjectUtils.isEmpty(houseStatusManagement)) {
+//                jsonObject.put("houseStatusManagement",0);
+//            }else {
+//                jsonObject.put("houseStatusManagement",1);
+//            }
+////            房型
+//            String houseTypeManagement = one.getHouseTypeManagement();
+//
+//            if (ObjectUtils.isEmpty(houseTypeManagement)) {
+//                jsonObject.put("houseTypeManagement",0);
+//            }else {
+//                if (houseTypeManagement.contains("0")) {
+//
+//                    houseType.put("houseType",1);
+//                    houseType.put("housePrice",1);
+//                    jsonObject.put("houseTypeManagement",houseType);
+//                }
+//            }
+
 
             String token = JWTUtil.getAdminToken(result);
             LoginVO login = new LoginVO();

+ 2 - 0
src/main/java/com/template/mapper/HouseOrderMapper.java

@@ -8,6 +8,7 @@ import com.template.model.pojo.HouseOrder;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -32,4 +33,5 @@ public interface HouseOrderMapper extends BaseMapper<HouseOrder> {
 
     List<ReportStatisticsExportVo> reportStatisticsExport(@Param("s") String s,@Param("keyWord") String keyWord,@Param("startTime") String startTime,@Param("endTime") String endTime);
 
+    List<String> payHouseOrderUser(@Param("start") LocalDateTime start,@Param("end") LocalDateTime end);
 }

+ 4 - 1
src/main/java/com/template/mapper/HousePriceMapper.java

@@ -1,8 +1,8 @@
 package com.template.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.template.model.pojo.HousePrice;
 import com.template.model.vo.AlterPriceRecordVo;
 import org.apache.ibatis.annotations.Mapper;
@@ -30,4 +30,7 @@ public interface HousePriceMapper extends BaseMapper<HousePrice> {
     List<AlterPriceRecordVo> queryExport(@Param("type") String type,@Param("houseName") String houseName,@Param("operatingTime") String operatingTime,@Param("priceTime") String priceTime,@Param("operatingName") String operatingName);
 
 
+    List<HousePrice> getHousePrice(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("id") Integer id);
+
+    List<HousePrice> getDatePrice(@Param("localDate1") LocalDate localDate1,@Param("houseId") String houseId);
 }

+ 4 - 0
src/main/java/com/template/services/HouseOrderService.java

@@ -6,6 +6,7 @@ import com.template.model.pojo.HouseOrder;
 import com.template.model.result.PageUtils;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -48,4 +49,7 @@ public interface HouseOrderService extends IService<HouseOrder> {
     PageUtils<ReportStatisticsVo> reportStatisticsPage(String s, String keyWord, String startTime, String endTime, int page, int size);
 
     List<ReportStatisticsExportVo> reportStatisticsExport(String s, String keyWord, String startTime, String endTime);
+
+    List<String> payHouseOrderUser(LocalDateTime start, LocalDateTime end);
+
 }

+ 3 - 0
src/main/java/com/template/services/HousePriceService.java

@@ -26,4 +26,7 @@ public interface HousePriceService extends IService<HousePrice> {
     List<AlterPriceRecordVo> queryExport(String type, String houseName, String operatingTime, String priceTime, String operatingName);
 
 
+    List<HousePrice> getHousePrice(String startTime, String endTime, Integer id);
+
+    List<HousePrice> getDatePrice(LocalDate localDate1, String houseId);
 }

+ 4 - 0
src/main/java/com/template/services/impl/HouseNumberStateServiceImpl.java

@@ -51,4 +51,8 @@ public class HouseNumberStateServiceImpl extends ServiceImpl<HouseNumberStateMap
     public HouseNumberState getMaintainHouseNumberState(String houseNumberId, LocalDateTime date) {
         return houseNumberStateMapper.getMaintainHouseNumberState(houseNumberId,date);
     }
+
+
+
+
 }

+ 60 - 40
src/main/java/com/template/services/impl/HouseOrderServiceImpl.java

@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.common.utils.DateUtil;
 import com.template.mapper.HouseOrderMapper;
-import com.template.model.vo.*;
 import com.template.model.pojo.*;
 import com.template.model.result.PageUtils;
+import com.template.model.vo.*;
 import com.template.services.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -60,11 +60,12 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
 
         DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        LocalDate state = LocalDateTime.parse(liveTime, dateTimeFormatter1).toLocalDate();
-        LocalDate end = LocalDateTime.parse(leaveTime, dateTimeFormatter1).toLocalDate();
-        LocalDateTime stateTime = LocalDateTime.parse(liveTime, dateTimeFormatter1);
-        LocalDateTime endTime = LocalDateTime.parse(leaveTime, dateTimeFormatter1);
 
+        LocalDateTime stateTime = LocalDateTime.parse(liveTime,dateTimeFormatter1);
+        LocalDateTime endTime = LocalDateTime.parse(leaveTime,dateTimeFormatter1);
+
+        LocalDate state = stateTime.toLocalDate();
+        LocalDate end = endTime.toLocalDate();
 //        获取这段时间内的所有改价记录
         List<HousePrice> housePrices = housePriceService.housePrice(stateTime, endTime, houseId);
 
@@ -112,50 +113,64 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
         BigDecimal totalPrice = new BigDecimal(0);
         for (int i = 0; i < until; i++) {
             LocalDate localDate1 = state.plusDays(i);
+            List<HousePrice> housePrices1=housePriceService.getDatePrice(localDate1,houseId);
+//            LocalDate localDate2 = state.plusDays(i+1);
+//            List<HousePrice> housePrices = housePriceService.housePrice(localDate1, localDate2, houseId);
             if (ObjectUtils.isNotEmpty(scheduleList)) {
                 for (ClassSchedule classSchedule : scheduleList) {
                     String dateTime = classSchedule.getDateTime();
                     LocalDate parse = LocalDate.parse(dateTime, dateTimeFormatter2);
                     if (!localDate1.equals(parse)) {
-                        if (ObjectUtils.isNotEmpty(housePrices)) {
-                            for (HousePrice housePrice : housePrices) {
-                                String setDate = housePrice.getSetDate();
-                                String[] split = setDate.split(",");
-                                Date startDate = DateUtil.parseDateOnly(split[0]);
-                                Date endDate = DateUtil.parseDateOnly(split[1]);
-                                Date date1 = Date.from(localDate1.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
-                                //      判断当前时间是否在[startTime, endTime]区间
-                                assert startDate != null;
-                                boolean effectiveDate = DateUtil.isEffectiveDate(date1, startDate, endDate);
-                                if (effectiveDate) {
-                                    BigDecimal price = housePrice.getPrice();
-                                    totalPrice = totalPrice.add(price);
-                                } else {
-                                    totalPrice = totalPrice.add(roomPrice);
-                                }
-                            }
-
-                        }
-                    }
-                }
-            } else {
-                if (ObjectUtils.isNotEmpty(housePrices)) {
-                    for (HousePrice housePrice : housePrices) {
-                        String setDate = housePrice.getSetDate();
-                        String[] split = setDate.split(",");
-                        Date startDate = DateUtil.parseDateOnly(split[0]);
-                        Date endDate = DateUtil.parseDateOnly(split[1]);
-                        Date date1 = Date.from(localDate1.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
-                        //      判断当前时间是否在[startTime, endTime]区间
-                        assert startDate != null;
-                        boolean effectiveDate = DateUtil.isEffectiveDate(date1, startDate, endDate);
-                        if (effectiveDate) {
+                        if (ObjectUtils.isNotEmpty(housePrices1)) {
+                            HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
                             BigDecimal price = housePrice.getPrice();
                             totalPrice = totalPrice.add(price);
-                        } else {
+                        }else {
                             totalPrice = totalPrice.add(roomPrice);
                         }
+//                            for (HousePrice housePrice : housePrices1) {
+//                                String setDate = housePrice.getSetDate();
+//                                String[] split = setDate.split(",");
+//                                Date startDate = DateUtil.parseDateOnly(split[0]);
+//                                Date endDate = DateUtil.parseDateOnly(split[1]);
+//                                Date date1 = Date.from(localDate1.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+//                                //      判断当前时间是否在[startTime, endTime]区间
+//                                assert startDate != null;
+//                                boolean effectiveDate = DateUtil.isEffectiveDate(date1, startDate, endDate);
+//                                if (effectiveDate) {
+//                                    BigDecimal price = housePrice.getPrice();
+//                                    totalPrice = totalPrice.add(price);
+//                                } else {
+//                                    totalPrice = totalPrice.add(roomPrice);
+//                                }
+//                            }
+
+
                     }
+                }
+            } else {
+                if (ObjectUtils.isNotEmpty(housePrices1)) {
+                    if (ObjectUtils.isNotEmpty(housePrices1)) {
+                        HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
+                        BigDecimal price = housePrice.getPrice();
+                        totalPrice = totalPrice.add(price);
+                    }
+//                    for (HousePrice housePrice : housePrices1) {
+//                        String setDate = housePrice.getSetDate();
+//                        String[] split = setDate.split(",");
+//                        Date startDate = DateUtil.parseDateOnly(split[0]);
+//                        Date endDate = DateUtil.parseDateOnly(split[1]);
+//                        Date date1 = Date.from(localDate1.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+//                        //      判断当前时间是否在[startTime, endTime]区间
+//                        assert startDate != null;
+//                        boolean effectiveDate = DateUtil.isEffectiveDate(date1, startDate, endDate);
+//                        if (effectiveDate) {
+//                            BigDecimal price = housePrice.getPrice();
+//                            totalPrice = totalPrice.add(price);
+//                        } else {
+//                            totalPrice = totalPrice.add(roomPrice);
+//                        }
+//                    }
                 } else {
                     totalPrice = totalPrice.add(roomPrice);
                 }
@@ -322,4 +337,9 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
     public List<ReportStatisticsExportVo> reportStatisticsExport(String s, String keyWord, String startTime, String endTime) {
         return houseOrderMapper.reportStatisticsExport(s,keyWord,startTime,endTime);
     }
+
+    @Override
+    public List<String> payHouseOrderUser(LocalDateTime start, LocalDateTime end) {
+        return houseOrderMapper.payHouseOrderUser(start,end);
+    }
 }

+ 11 - 1
src/main/java/com/template/services/impl/HousePriceServiceImpl.java

@@ -2,12 +2,12 @@ package com.template.services.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.mapper.HousePriceMapper;
 import com.template.model.pojo.HousePrice;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.AlterPriceRecordVo;
 import com.template.services.HousePriceService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -44,4 +44,14 @@ public class HousePriceServiceImpl extends ServiceImpl<HousePriceMapper, HousePr
     public List<AlterPriceRecordVo> queryExport(String type, String houseName, String operatingTime, String priceTime, String operatingName) {
         return housePriceMapper.queryExport(type,houseName,operatingTime,priceTime,operatingName);
     }
+
+    @Override
+    public List<HousePrice> getHousePrice(String startTime, String endTime, Integer id) {
+        return housePriceMapper.getHousePrice(startTime,endTime,id);
+    }
+
+    @Override
+    public List<HousePrice> getDatePrice(LocalDate localDate1, String houseId) {
+        return housePriceMapper.getDatePrice(localDate1,houseId);
+    }
 }

+ 11 - 0
src/main/resources/mapper/template/HouseOrderMapper.xml

@@ -242,4 +242,15 @@
 
     </select>
 
+    <select id="payHouseOrderUser" resultType="java.lang.String">
+        SELECT
+            reserve_user_id
+        FROM
+            `house_order`
+        WHERE deleted=0
+          AND  leave_time> #{start}
+          AND  #{end}> leave_time
+        GROUP BY reserve_user_id
+    </select>
+
 </mapper>

+ 27 - 0
src/main/resources/mapper/template/HousePriceMapper.xml

@@ -105,4 +105,31 @@
         GROUP BY t1.id
         ORDER BY t1.create_time DESC
     </select>
+    <select id="getHousePrice" resultType="com.template.model.pojo.HousePrice">
+        SELECT *
+        FROM `house_price`
+        WHERE (
+                    #{startTime} >= substring_index(set_date, ',', 1)
+                and substring_index(set_date, ',', -1) >= #{startTime}
+                and deleted = 0
+                and house_id = #{id}
+            )
+           or (
+                    #{endTime} >= substring_index(set_date, ',', 1)
+                and substring_index(set_date, ',', -1) >= #{endTime}
+                and deleted = 0
+                and house_id = #{id}
+            )
+
+
+    </select>
+
+    <select id="getDatePrice" resultType="com.template.model.pojo.HousePrice">
+        SELECT *
+        FROM `house_price`
+        WHERE #{localDate1} >= substring_index(set_date, ',', 1)
+          and substring_index(set_date, ',', -1) >= #{localDate1}
+          and house_id = #{houseId}
+          and deleted = 0
+    </select>
 </mapper>