Browse Source

Merge branch 'master' of https://e.coding.net/chuanghaikeji/smarCampus/iHotel_student_houtai into develop-wxl

# Conflicts:
#	src/main/java/com/template/mapper/ApplicationProcedureTemporaryMapper.java
#	src/main/java/com/template/services/ApplicationProcedureTemporaryService.java
wanxl 1 year ago
parent
commit
b60c9762ca
34 changed files with 751 additions and 199 deletions
  1. 3 1
      src/main/java/com/template/api/ApplicationProcedureSettingControllerApi.java
  2. 14 1
      src/main/java/com/template/api/BlacklistControllerAPI.java
  3. 1 1
      src/main/java/com/template/api/BlacklistOrderControllerAPI.java
  4. 5 1
      src/main/java/com/template/api/HouseOrderAPI.java
  5. 22 6
      src/main/java/com/template/controller/AdminController.java
  6. 4 4
      src/main/java/com/template/controller/ApplicationProcedureController.java
  7. 7 0
      src/main/java/com/template/controller/ApplicationProcedureSettingController.java
  8. 90 1
      src/main/java/com/template/controller/BlacklistController.java
  9. 51 10
      src/main/java/com/template/controller/BlacklistOrderController.java
  10. 18 7
      src/main/java/com/template/controller/BlacklistSettingController.java
  11. 2 2
      src/main/java/com/template/controller/ClassScheduleController.java
  12. 299 14
      src/main/java/com/template/controller/HouseOrderController.java
  13. 9 0
      src/main/java/com/template/controller/LoginController.java
  14. 1 1
      src/main/java/com/template/controller/UnlockingAdminController.java
  15. 55 9
      src/main/java/com/template/controller/UnlockingCustomController.java
  16. 4 0
      src/main/java/com/template/mapper/ApplicationProcedureTemporaryMapper.java
  17. 1 1
      src/main/java/com/template/mapper/ClassScheduleMapper.java
  18. 1 1
      src/main/java/com/template/mapper/HouseOrderMapper.java
  19. 10 0
      src/main/java/com/template/model/dto/BlacklistDeleteDto.java
  20. 12 12
      src/main/java/com/template/model/dto/EstablishOrderDto.java
  21. 3 0
      src/main/java/com/template/model/pojo/Blacklist.java
  22. 8 22
      src/main/java/com/template/model/pojo/BlacklistOrder.java
  23. 3 0
      src/main/java/com/template/model/pojo/HouseOrder.java
  24. 10 0
      src/main/java/com/template/model/vo/RemainFreeVo.java
  25. 4 0
      src/main/java/com/template/services/ApplicationProcedureTemporaryService.java
  26. 2 1
      src/main/java/com/template/services/ClassScheduleService.java
  27. 2 1
      src/main/java/com/template/services/HouseOrderService.java
  28. 6 0
      src/main/java/com/template/services/impl/ApplicationProcedureTemporaryServiceImpl.java
  29. 4 3
      src/main/java/com/template/services/impl/ClassScheduleServiceImpl.java
  30. 84 98
      src/main/java/com/template/services/impl/HouseOrderServiceImpl.java
  31. 11 0
      src/main/resources/mapper/template/ApplicationProcedureTemporaryMapper.xml
  32. 2 2
      src/main/resources/mapper/template/BlacklistOrderMapper.xml
  33. 1 0
      src/main/resources/mapper/template/ClassScheduleMapper.xml
  34. 2 0
      src/main/resources/mapper/template/HouseOrderMapper.xml

+ 3 - 1
src/main/java/com/template/api/ApplicationProcedureSettingControllerApi.java

@@ -19,5 +19,7 @@ public interface ApplicationProcedureSettingControllerApi {
     @ApiOperation(value = "规则设置", notes = "规则设置", httpMethod = "GET")
     CommonResult list(Integer permissionSettingId);
 
-
+    @GetMapping("/get")
+    @ApiOperation(value = "规则设置", notes = "规则设置", httpMethod = "GET")
+    CommonResult get();
 }

+ 14 - 1
src/main/java/com/template/api/BlacklistControllerAPI.java

@@ -1,7 +1,20 @@
 package com.template.api;
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.template.model.dto.BlacklistDeleteDto;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
 
 @RequestMapping("/auto/blacklist")
 public interface BlacklistControllerAPI {
+
+    @GetMapping("/list")
+    @ApiOperation(value = "黑名单查询", notes = "黑名单查询", httpMethod = "GET")
+    CommonResult list(@RequestParam Integer page, @RequestParam Integer size, String reserveName, String phone, String cardNumber,String startTime,String endTime);
+
+
+    @PostMapping("/delete")
+    @ApiOperation(value = "黑名单订单移除", notes = "黑名单订单移除", httpMethod = "POST")
+    CommonResult delete(@RequestBody BlacklistDeleteDto dto);
+
 }

+ 1 - 1
src/main/java/com/template/api/BlacklistOrderControllerAPI.java

@@ -10,7 +10,7 @@ public interface BlacklistOrderControllerAPI {
 
     @GetMapping("/list")
     @ApiOperation(value = "黑名单订单查询", notes = "黑名单订单查询", httpMethod = "GET")
-    CommonResult list(@RequestParam Integer page,@RequestParam Integer size, String reserveName, String phone, String cardNumber, String liveName, String idCard);
+    CommonResult list(@RequestParam Integer page,@RequestParam Integer size, String reserveName, String phone, String cardNumber,String startTime,String endTime);
 
 
     @PostMapping("/delete")

+ 5 - 1
src/main/java/com/template/api/HouseOrderAPI.java

@@ -16,7 +16,7 @@ public interface HouseOrderAPI {
 
     @GetMapping("/houseOrderPrice")
     @ApiOperation(value = "订单金额", notes = "订单金额", httpMethod = "GET")
-    CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime);
+    CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime,Integer source);
 
 
     @PostMapping("/establishOrder")
@@ -144,5 +144,9 @@ public interface HouseOrderAPI {
     @ApiOperation(value = "订单管理-已支付未入住", notes = "订单管理-已支付未入住", httpMethod = "POST")
     CommonResult payNotCheckIn(@RequestBody CancelDto cancelDto);
 
+    @GetMapping("/remainFree")
+    @ApiOperation(value = "免费订单数量", notes = "免费订单数量", httpMethod = "GET")
+    CommonResult remainFree(@RequestParam String userId,@RequestParam String liveTime,@RequestParam String leaveTime);
+
 }
 

+ 22 - 6
src/main/java/com/template/controller/AdminController.java

@@ -1,7 +1,6 @@
 package com.template.controller;
 
 
-import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -12,15 +11,11 @@ import com.template.config.MySecurity;
 import com.template.model.dto.SaveAdminDto;
 import com.template.model.dto.UpdateAdminDto;
 import com.template.model.dto.UsersPageDto;
-import com.template.model.pojo.Admin;
-import com.template.model.pojo.AdminMenu;
-import com.template.model.pojo.PermissionSetting;
-import com.template.model.pojo.Users;
+import com.template.model.pojo.*;
 import com.template.model.result.CommonResult;
 import com.template.model.vo.AdminVo;
 import com.template.model.vo.UsersVo;
 import com.template.services.*;
-import com.template.model.pojo.Organization;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
@@ -157,6 +152,15 @@ public class AdminController implements AdminAPI {
             return CommonResult.fail("暂无该用户");
         }
 
+//        通过用户id找管理端用户,如果有就不能在绑定
+        LambdaQueryWrapper<Admin> wrapperA=new LambdaQueryWrapper<>();
+        wrapperA.eq(Admin::getUsersId,users.getId());
+        Admin one = adminService.getOne(wrapperA);
+        if (ObjectUtils.isNotEmpty(one)) {
+            return CommonResult.fail("该用户已绑定,请更换绑定用户");
+        }
+
+
 //  密码加密
         String passWord = saveAdminDto.getPassWord();
         try {
@@ -216,6 +220,18 @@ public class AdminController implements AdminAPI {
             }
         }
 
+//        用户不能重复绑定
+        String usersId = admin.getUsersId();
+        String usersId1 = byId.getUsersId();
+        if (!usersId.equals(usersId1)) {
+            LambdaQueryWrapper<Admin> wrapperA=new LambdaQueryWrapper<>();
+            wrapperA.eq(Admin::getUsersId,users.getId());
+            Admin one = adminService.getOne(wrapperA);
+            if (ObjectUtils.isNotEmpty(one)) {
+                return CommonResult.fail("该用户已绑定,请更换绑定用户");
+            }
+        }
+
         try {
             String passWord = admin.getPassWord();
             String encrypt = RSAUtils.encrypt(passWord, RSAUtils.getPublicKey(mySecurity.publicKey));

+ 4 - 4
src/main/java/com/template/controller/ApplicationProcedureController.java

@@ -435,10 +435,10 @@ public class ApplicationProcedureController implements ApplicationProcedureContr
     @Override
     public CommonResult appletDetail(Integer department, Integer id) {
         if (department==4) {
-            ApplicationProcedureVo byId = applicationProcedureService.appletDetail(id);
-            return CommonResult.ok(byId);
-
-        }else if (department==7){
+//            ApplicationProcedureVo byId = applicationProcedureService.appletDetail(id);
+//            return CommonResult.ok(byId);
+//
+//        }else if (department==4){
 //          临时人员
             ApplicationProcedureTemporaryVo byId = applicationProcedureTemporaryService.appletDetail(id);
             return CommonResult.ok(byId);

+ 7 - 0
src/main/java/com/template/controller/ApplicationProcedureSettingController.java

@@ -78,5 +78,12 @@ public class ApplicationProcedureSettingController implements ApplicationProcedu
         ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
         return CommonResult.ok(applicationProcedureSetting);
     }
+
+    @Override
+    public CommonResult get() {
+        List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
+        ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
+        return CommonResult.ok(applicationProcedureSetting);
+    }
 }
 

+ 90 - 1
src/main/java/com/template/controller/BlacklistController.java

@@ -1,12 +1,28 @@
 package com.template.controller;
 
 
+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.template.api.BlacklistControllerAPI;
+import com.template.model.dto.BlacklistDeleteDto;
+import com.template.model.pojo.Blacklist;
+import com.template.model.pojo.BlacklistOrder;
+import com.template.model.result.CommonResult;
+import com.template.services.BlacklistOrderService;
+import com.template.services.BlacklistService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author ceshi
@@ -15,5 +31,78 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class BlacklistController implements BlacklistControllerAPI {
 
+    @Autowired
+    BlacklistService blacklistService;
+
+    @Autowired
+    BlacklistOrderService blacklistOrderService;
+
+
+    @Override
+    public CommonResult list(Integer page, Integer size, String reserveName, String phone, String cardNumber, String startTime, String endTime) {
+
+        LambdaQueryWrapper<Blacklist> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ObjectUtils.isNotEmpty(reserveName), Blacklist::getReserveName, reserveName)
+                .eq(ObjectUtils.isNotEmpty(phone), Blacklist::getPhone, phone)
+                .eq(ObjectUtils.isNotEmpty(cardNumber), Blacklist::getCardNumber, cardNumber)
+                .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), Blacklist::getCreateTime, startTime, endTime)
+                .orderByDesc(Blacklist::getCreateTime);
+
+        IPage<Blacklist> iPage = blacklistService.page(new Page<>(page, size), wrapper);
+
+        return CommonResult.ok(iPage);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public CommonResult delete(BlacklistDeleteDto dto) {
+        List<Integer> ids = dto.getIds();
+        if (ObjectUtils.isEmpty(ids)) {
+            return CommonResult.fail("参数异常");
+        }
+
+        LambdaQueryWrapper<Blacklist> wrapperB = new LambdaQueryWrapper<>();
+        wrapperB.in(Blacklist::getId, ids);
+        List<Blacklist> blacklists = blacklistService.list(wrapperB);
+
+        try {
+
+            for (Blacklist blacklist : blacklists) {
+                Integer reserveUserId = blacklist.getReserveUserId();
+
+                LambdaQueryWrapper<BlacklistOrder> wrapperBO = new LambdaQueryWrapper<>();
+                wrapperBO.eq(BlacklistOrder::getReserveUserId, reserveUserId);
+                List<BlacklistOrder> list = blacklistOrderService.list(wrapperBO);
+
+                if (ObjectUtils.isNotEmpty(list)) {
+                    ArrayList<Integer> blacklistOrders = new ArrayList<>();
+                    for (BlacklistOrder blacklistOrder : list) {
+                        blacklistOrders.add(blacklistOrder.getId());
+                    }
+                    blacklistOrderService.removeByIds(blacklistOrders);
+                }
+
+            }
+
+            blacklistService.removeByIds(ids);
+            return CommonResult.ok();
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return CommonResult.fail();
+    }
+
+
+    //    每月定期清空黑名单表
+    @Scheduled(cron = "0 0 2 1 * ? ")
+//    @Scheduled(cron = "0 0/1 * * * ?")
+    public void deleteBlacklist(){
+//        先删除黑名单订单
+        blacklistOrderService.remove(new LambdaQueryWrapper<>());
+//        删除黑名单
+        blacklistService.remove(new LambdaQueryWrapper<>());
+
+    }
+
 }
 

+ 51 - 10
src/main/java/com/template/controller/BlacklistOrderController.java

@@ -7,17 +7,22 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.api.BlacklistOrderControllerAPI;
 import com.template.model.dto.BlacklistOrderDeleteDto;
+import com.template.model.pojo.Blacklist;
 import com.template.model.pojo.BlacklistOrder;
+import com.template.model.pojo.BlacklistSetting;
 import com.template.model.result.CommonResult;
 import com.template.services.BlacklistOrderService;
+import com.template.services.BlacklistService;
+import com.template.services.BlacklistSettingService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author ceshi
@@ -29,16 +34,22 @@ public class BlacklistOrderController implements BlacklistOrderControllerAPI {
     @Autowired
     BlacklistOrderService blacklistOrderService;
 
+    @Autowired
+    BlacklistService blacklistService;
+
+    @Autowired
+    BlacklistSettingService blacklistSettingService;
+
+
     @Override
-    public CommonResult list(Integer page, Integer size, String reserveName, String phone, String cardNumber, String liveName, String idCard) {
+    public CommonResult list(Integer page, Integer size, String reserveName, String phone, String cardNumber,String startTime,String endTime) {
 
 
-        LambdaQueryWrapper<BlacklistOrder> wrapper=new LambdaQueryWrapper<>();
-        wrapper.eq(ObjectUtils.isNotEmpty(reserveName),BlacklistOrder::getReserveName,reserveName)
-                        .eq(ObjectUtils.isNotEmpty(phone),BlacklistOrder::getReservePhone,phone)
-                .eq(ObjectUtils.isNotEmpty(cardNumber),BlacklistOrder::getCardNumber,cardNumber)
-                .eq(ObjectUtils.isNotEmpty(liveName),BlacklistOrder::getLiveName,liveName)
-                .eq(ObjectUtils.isNotEmpty(idCard),BlacklistOrder::getLiveIdCard,idCard)
+        LambdaQueryWrapper<BlacklistOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ObjectUtils.isNotEmpty(reserveName), BlacklistOrder::getReserveName, reserveName)
+                .eq(ObjectUtils.isNotEmpty(phone), BlacklistOrder::getReservePhone, phone)
+                .eq(ObjectUtils.isNotEmpty(cardNumber), BlacklistOrder::getCardNumber, cardNumber)
+                .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), BlacklistOrder::getCreateTime, startTime, endTime)
                 .orderByDesc(BlacklistOrder::getCreateTime);
         IPage<BlacklistOrder> page1 = blacklistOrderService.page(new Page<>(page, size), wrapper);
 
@@ -47,15 +58,45 @@ public class BlacklistOrderController implements BlacklistOrderControllerAPI {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public CommonResult delete(BlacklistOrderDeleteDto dto) {
 
         List<Integer> ids = dto.getIds();
         if (ObjectUtils.isEmpty(ids)) {
             return CommonResult.fail();
         }
-        blacklistOrderService.removeByIds(ids);
 
-        return CommonResult.ok();
+        BlacklistSetting blacklistSetting = blacklistSettingService.list(new LambdaQueryWrapper<>()).get(0);
+        Integer count = blacklistSetting.getCount();
+
+        LambdaQueryWrapper<BlacklistOrder> wrapperBO = new LambdaQueryWrapper<>();
+        wrapperBO.in(BlacklistOrder::getId, ids);
+        List<BlacklistOrder> blacklistOrders = blacklistOrderService.list(wrapperBO);
+
+        try {
+
+            for (BlacklistOrder blacklistOrder : blacklistOrders) {
+                LambdaQueryWrapper<Blacklist> wrapperB = new LambdaQueryWrapper<>();
+                wrapperB.eq(Blacklist::getReserveUserId, blacklistOrder.getReserveUserId());
+                Blacklist blacklist = blacklistService.getOne(wrapperB);
+                if (ObjectUtils.isNotEmpty(blacklist)) {
+                    Integer count1 = blacklist.getCount();
+                    if (count1 - 1 >= count) {
+                        blacklist.setCount(count1 - 1);
+                        blacklistService.updateById(blacklist);
+                    } else {
+                        blacklistService.removeById(blacklist.getId());
+                    }
+                }
+
+            }
+            blacklistOrderService.removeByIds(ids);
+            return CommonResult.ok();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return CommonResult.fail();
     }
 }
 

+ 18 - 7
src/main/java/com/template/controller/BlacklistSettingController.java

@@ -92,14 +92,25 @@ public class BlacklistSettingController implements BlacklistSettingControllerAPI
                     for (BlacklistVo vo : vos) {
                         Integer id1 = vo.getId();
                         Users users = usersService.getById(id1);
-                        if (ObjectUtils.isNotEmpty(users)) {
-                            Blacklist blacklist = new Blacklist();
-                            blacklist.setReserveUserId(id1);
-                            blacklist.setPhone(users.getPhone());
-                            blacklist.setCardNumber(users.getCardNumber());
-                            blacklist.setCount(vo.getCount());
-                            blacklists.add(blacklist);
+//                        通过预定id找到对应的黑名单预定人id
+                        LambdaQueryWrapper<Blacklist> wrapperB=new LambdaQueryWrapper<>();
+                        wrapperB.eq(Blacklist::getReserveUserId,id1);
+                        Blacklist one = blacklistService.getOne(wrapperB);
+                        if (ObjectUtils.isNotEmpty(one)) {
+                            one.setCount(vo.getCount());
+                            blacklists.add(one);
+                        }else {
+                            if (ObjectUtils.isNotEmpty(users)) {
+                                Blacklist blacklist = new Blacklist();
+                                blacklist.setReserveUserId(id1);
+                                blacklist.setReserveName(users.getUserName());
+                                blacklist.setPhone(users.getPhone());
+                                blacklist.setCardNumber(users.getCardNumber());
+                                blacklist.setCount(vo.getCount());
+                                blacklists.add(blacklist);
+                            }
                         }
+
                     }
                     if (blacklists.size() > 0) {
                         blacklistService.saveOrUpdateBatch(blacklists);

+ 2 - 2
src/main/java/com/template/controller/ClassScheduleController.java

@@ -336,8 +336,8 @@ public class ClassScheduleController implements ClassScheduleAPI {
         LocalDate date = LocalDate.now();
         String chineseDayOfWeek = date.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINA);
         String week = "";
-        if (chineseDayOfWeek.equals("星期")) {
-            week = "5";
+        if (chineseDayOfWeek.equals("星期")) {
+            week = "3";
         }
         DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDate localDate = date.minusDays(Integer.valueOf(week) - 1);

+ 299 - 14
src/main/java/com/template/controller/HouseOrderController.java

@@ -58,9 +58,12 @@ import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.security.Signature;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
+import java.time.format.TextStyle;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -146,8 +149,20 @@ public class HouseOrderController implements HouseOrderAPI {
     @Autowired
     ApartmentSettingService apartmentSettingService;
 
+    @Autowired
+    BlacklistOrderService blacklistOrderService;
+
+    @Autowired
+    BlacklistService blacklistService;
+
+    @Autowired
+    BlacklistSettingService blacklistSettingService;
+
+    @Autowired
+    ApplicationProcedureTemporaryService applicationProcedureTemporaryService;
+
     @Override
-    public CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime) {
+    public CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime,Integer source) {
         if (ObjectUtils.isEmpty(userId) && ObjectUtils.isEmpty(houseId) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(houseOrderNumber) && houseOrderNumber <= 0) {
             return CommonResult.fail();
         }
@@ -165,7 +180,7 @@ public class HouseOrderController implements HouseOrderAPI {
 //            establishOrderDto.setReserveLiveTime(reserveLeaveTime);
         }
 //        计算总金额
-        BigDecimal totalPrice = houseOrderService.getHouseOrderPrice(houseOrderNumber, userId, houseId, liveTime, leaveTime);
+        BigDecimal totalPrice = houseOrderService.getHouseOrderPrice(houseOrderNumber, userId, houseId, liveTime, leaveTime,source);
 
         return CommonResult.ok(totalPrice);
 
@@ -178,10 +193,14 @@ public class HouseOrderController implements HouseOrderAPI {
         if (ObjectUtils.isEmpty(establishOrderDto)) {
             return CommonResult.fail();
         }
+        //        判断传过来的时间和当前时间比较
+        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
 //        需判断当前用户是能定这时间段的房
         String reserveLiveTime = establishOrderDto.getReserveLiveTime();
         String reserveLeaveTime = establishOrderDto.getReserveLeaveTime();
+        Integer source = establishOrderDto.getSource();
+
 
 //        判断课表,临时人员
 
@@ -195,6 +214,33 @@ public class HouseOrderController implements HouseOrderAPI {
             return CommonResult.fail("无此房间,请重新查询");
         }
 
+//        计算总金额
+        BigDecimal totalPrice = houseOrderService.getHouseOrderPrice(establishOrderDto.getHouseOrderNumber(), userId, houseId, establishOrderDto.getReserveLiveTime(), establishOrderDto.getReserveLeaveTime(),source);
+        double v = totalPrice.doubleValue();
+        Integer roomType = house.getRoomType();
+//        当金额不是0时,则判断时间是否为当天
+        if (roomType==1) {
+
+            if (v > 0) {
+//                判断是否到12点了
+                LocalDateTime now = LocalDateTime.now();
+                LocalDateTime localDateTime = now.withHour(12).withMinute(0).withSecond(0);
+                if (now.isBefore(localDateTime)) {
+                    return CommonResult.fail("未到预定时间");
+                }
+
+                LocalDateTime start =now.withHour(0).withMinute(0).withSecond(0);
+                LocalDateTime end = start.plusDays(1);
+                LocalDateTime end2 = start.plusDays(2);
+//            预定时间在start和end之前,离店时间在
+                LocalDateTime time = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
+                LocalDateTime time2 = LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1);
+
+                if (!(time.isAfter(start)&&time.isBefore(end)&&time2.isAfter(end)&&time2.isBefore(end2))) {
+                    return CommonResult.fail("不支持跨天预定");
+                }
+            }
+        }
 
 //        if (house.getNumber() < Func.parseInt(establishOrderDto.getHouseOrderNumber())) {
 //            return CommonResult.fail("超出限定房间数量");
@@ -217,11 +263,9 @@ public class HouseOrderController implements HouseOrderAPI {
                 ids = ids + "," + id;
             }
         }
-//        String reserveLiveTime = establishOrderDto.getReserveLiveTime();
-//        String reserveLeaveTime = establishOrderDto.getReserveLeaveTime();
 
-        //        判断传过来的时间和当前时间比较
-        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+
         LocalDateTime now = LocalDateTime.now();
         LocalDateTime date = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
         if (now.isAfter(date)) {
@@ -248,8 +292,8 @@ public class HouseOrderController implements HouseOrderAPI {
 
         HouseOrder houseOrder = new HouseOrder();
 
-//        计算总金额
-        BigDecimal totalPrice = houseOrderService.getHouseOrderPrice(establishOrderDto.getHouseOrderNumber(), userId, houseId, establishOrderDto.getReserveLiveTime(), establishOrderDto.getReserveLeaveTime());
+
+
 
         BigDecimal payPrice = establishOrderDto.getPayPrice();
 //        返回的结果是int类型,-1表示小于,0是等于,1是大于。
@@ -283,7 +327,7 @@ public class HouseOrderController implements HouseOrderAPI {
             HouseNumberState houseNumberState = new HouseNumberState();
             houseNumberState.setHouseNumberId(id);
             houseNumberState.setStatus(3);
-            Integer roomType = house.getRoomType();
+//            Integer roomType = house.getRoomType();
             if (1 == roomType) {
 //                DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 //                LocalDateTime start = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
@@ -319,9 +363,11 @@ public class HouseOrderController implements HouseOrderAPI {
         String timeOut = now.plusMinutes(15).format(dateTimeFormatter1);
         houseOrder.setTimeOut(timeOut);
 
+        houseOrder.setSource(source);
+
 //    单价   全日房  价格单价=总价/房间数/天数
 //       钟点房  价格单价=总价/房间数
-        Integer roomType = house.getRoomType();
+//        Integer roomType = house.getRoomType();
         BigDecimal price;
         if (roomType == 1) {
             price = payPrice.divide(new BigDecimal(houseOrderNumber), 2, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(establishOrderDto.getLiveDay()), 2, BigDecimal.ROUND_HALF_UP);
@@ -614,7 +660,7 @@ public class HouseOrderController implements HouseOrderAPI {
     }
 
     @Override
-    public CommonResult pageList(int adminId, int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId) {
+    public CommonResult pageList(int adminId, int page, int size, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime, String houseId, Integer keyType, Integer giveBack, Integer buildingId, Integer orgId) {
 //        PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
 //        if (ObjectUtils.isEmpty(permissionSetting)) {
 //            return CommonResult.fail("非法进入");
@@ -633,7 +679,7 @@ public class HouseOrderController implements HouseOrderAPI {
             size = 10;
         }
 
-        PageUtils<HouseOrderPageListVo> pageList = houseOrderService.pageList(page, size, keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, liveStartTime, liveEndTime, leaveStartTime, leaveEndTime,houseId,keyType,giveBack,buildingId,orgId);
+        PageUtils<HouseOrderPageListVo> pageList = houseOrderService.pageList(page, size, keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, liveStartTime, liveEndTime, leaveStartTime, leaveEndTime, houseId, keyType, giveBack, buildingId, orgId);
         List<HouseOrderPageListVo> list = pageList.getList();
         for (int i = 0; i < list.size(); i++) {
             HouseOrderPageListVo houseOrderPageListVo = list.get(i);
@@ -1475,7 +1521,7 @@ public class HouseOrderController implements HouseOrderAPI {
     }
 
     @Override
-    public void queryExport(HttpServletResponse response, int adminId, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime,String houseId,Integer keyType,Integer giveBack,Integer buildingId,Integer orgId) {
+    public void queryExport(HttpServletResponse response, int adminId, String keyWord, String houseType, String orderStatus, String payPriceStartTime, String payPriceEndTime, String refundStartTime, String refundEndTime, String cancelStartTime, String cancelEndTime, String liveStartTime, String liveEndTime, String leaveStartTime, String leaveEndTime, String houseId, Integer keyType, Integer giveBack, Integer buildingId, Integer orgId) {
 //        PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
 //        if (ObjectUtils.isEmpty(permissionSetting)) {
 //            return CommonResult.fail("非法进入");
@@ -1486,7 +1532,7 @@ public class HouseOrderController implements HouseOrderAPI {
 //            return CommonResult.fail("此账号暂无该权限");
 //        }
 
-        List<QueryExportVo> vos = houseOrderService.queryExport(keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, liveStartTime, liveEndTime, leaveStartTime, leaveEndTime,houseId,keyType,giveBack,buildingId,orgId);
+        List<QueryExportVo> vos = houseOrderService.queryExport(keyWord, houseType, orderStatus, payPriceStartTime, payPriceEndTime, refundStartTime, refundEndTime, cancelStartTime, cancelEndTime, liveStartTime, liveEndTime, leaveStartTime, leaveEndTime, houseId, keyType, giveBack, buildingId, orgId);
 
         //        导出
         Workbook workbook = new XSSFWorkbook();
@@ -3271,6 +3317,7 @@ public class HouseOrderController implements HouseOrderAPI {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public CommonResult payNotCheckIn(CancelDto cancelDto) {
         int adminId = cancelDto.getAdminId();
         PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
@@ -3313,6 +3360,159 @@ public class HouseOrderController implements HouseOrderAPI {
         }
     }
 
+    @Override
+    public CommonResult remainFree(String userId, String liveTime, String leaveTime) {
+
+        Users users = usersService.getById(userId);
+        if (ObjectUtils.isEmpty(users)) {
+            return CommonResult.fail("参数异常");
+        }
+        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        LocalDateTime stateTime = LocalDateTime.parse(liveTime, dateTimeFormatter1);
+        LocalDateTime endTime = LocalDateTime.parse(leaveTime, dateTimeFormatter1);
+        long day = stateTime.until(endTime, ChronoUnit.DAYS);
+
+        if (day>2) {
+            return CommonResult.fail("超过限制的时间段");
+        }
+
+
+        ArrayList<RemainFreeVo> vos = new ArrayList<>();
+        RemainFreeVo vo = new RemainFreeVo();
+        vo.setName("课表值班预定");
+        vo.setSource(1);
+        RemainFreeVo vo1 = new RemainFreeVo();
+        vo1.setName("流程预定");
+        vo1.setSource(2);
+
+        //        先判断是否在黑名单中
+        LambdaQueryWrapper<Blacklist> wrapperB=new LambdaQueryWrapper<>();
+        wrapperB.eq(Blacklist::getReserveUserId,userId);
+        Blacklist one = blacklistService.getOne(wrapperB);
+        if (ObjectUtils.isNotEmpty(one)) {
+            vo.setCount(0);
+            vos.add(vo);
+            vo1.setCount(0);
+            vos.add(vo1);
+            return CommonResult.fail("您本月预订成功后未入住次数已达到上限,已被加入黑名单,无法免费入住。");
+        }
+
+
+//        获取课表
+
+
+        LocalDate state = stateTime.toLocalDate();
+        LocalDate end = endTime.toLocalDate();
+
+
+
+        //        获取预定时间的开始星期和结束星期
+        String chineseDayOfWeek = state.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINA);
+        Integer week = 0;
+        if ("星期一".equals(chineseDayOfWeek)) {
+            week = 1;
+        } else if ("星期二".equals(chineseDayOfWeek)) {
+            week = 2;
+        } else if ("星期三".equals(chineseDayOfWeek)) {
+            week = 3;
+        } else if ("星期四".equals(chineseDayOfWeek)) {
+            week = 4;
+        } else if ("星期五".equals(chineseDayOfWeek)) {
+            week = 5;
+        } else if ("星期六".equals(chineseDayOfWeek)) {
+            week = 6;
+        } else {
+            week = 7;
+        }
+        DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate localDate = state.minusDays(week - 1);
+        String stateTimeXq = localDate.format(dateTimeFormatter2);
+        LocalDate localEnd = localDate.plusDays(6);
+        String endTimeXq = localEnd.format(dateTimeFormatter2);
+//        查询该星期是否满足有2天的订单
+        LambdaQueryWrapper<HouseOrder> wrapperHO = new LambdaQueryWrapper<>();
+        wrapperHO.between(HouseOrder::getReserveLiveTime, stateTimeXq, endTimeXq)
+                .eq(HouseOrder::getReserveUserId, userId)
+                .eq(HouseOrder::getSource, 1)
+                .eq(HouseOrder::getPayPrice, 0)
+                .in(HouseOrder::getOrderStatus, "1,2,3,4,8");
+        List<HouseOrder> orderList = houseOrderService.list(wrapperHO);
+
+        long dayDiff = 0;
+
+        for (HouseOrder houseOrder : orderList) {
+            String reserveLiveTime = houseOrder.getReserveLiveTime();
+            String reserveLeaveTime = houseOrder.getReserveLeaveTime();
+            LocalDateTime stateTime2 = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
+            LocalDateTime endTime2 = LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1);
+            //   计算2个时间差
+            long until = stateTime2.until(endTime2, ChronoUnit.DAYS);
+            dayDiff = dayDiff + until;
+        }
+
+        //   计算2个时间差
+        long until = state.until(end, ChronoUnit.DAYS);
+
+        Integer count = 1;
+        if (dayDiff + until >= 2) {
+            count=0;
+        } else {
+            for (int i = 0; i < until; i++) {
+                LocalDateTime dateTime1 = stateTime.plusDays(i);
+                LocalDateTime startS = dateTime1.withHour(0).withMinute(0).withSecond(0);
+                LocalDateTime endS = dateTime1.withHour(23).withMinute(59).withSecond(59);
+                LambdaQueryWrapper<ClassSchedule> wrapperCS = new LambdaQueryWrapper<>();
+                wrapperCS.eq(ClassSchedule::getJsgh, users.getCardNumber())
+                        .between(ClassSchedule::getDateTime, startS, endS);
+                List<ClassSchedule> scheduleList = classScheduleService.list(wrapperCS);
+
+//            只要有一天是空的就不是免费
+                if (ObjectUtils.isEmpty(scheduleList)) {
+                    count = 0;
+                    break;
+                } else {
+                    //        有课表就查询是否已经有该订单了
+                    List<HouseOrder> list = houseOrderService.getDate(dateTime1, userId, 1);
+                    if (ObjectUtils.isNotEmpty(list)) {
+                        count = 0;
+                        break;
+                    }
+                }
+
+            }
+        }
+        vo.setCount(count);
+
+        vos.add(vo);
+
+//        获取流程
+        List<ApplicationProcedureTemporary> aptList=applicationProcedureTemporaryService.getApt(state,end,userId);
+        if (ObjectUtils.isEmpty(aptList)) {
+            vo1.setCount(0);
+        }else {
+            ApplicationProcedureTemporary applicationProcedureTemporary = aptList.get(0);
+            String houseCount = applicationProcedureTemporary.getHouseCount();
+            String startTime = applicationProcedureTemporary.getStartTime();
+            String endTime1 = applicationProcedureTemporary.getEndTime();
+//            计算开始到结束时间有多少订单
+            LambdaQueryWrapper<HouseOrder> wrapper=new LambdaQueryWrapper<>();
+            wrapper.eq(HouseOrder::getReserveUserId,userId)
+                            .eq(HouseOrder::getSource,2)
+                    .between(HouseOrder::getReserveLiveTime,startTime,endTime1)
+                    .eq(HouseOrder::getPayPrice, 0)
+                    .in(HouseOrder::getOrderStatus, "1,2,3,4,8");
+            List<HouseOrder> list = houseOrderService.list(wrapper);
+            Integer count2 = Integer.valueOf(houseCount);
+            count2=count2-list.size();
+            vo1.setCount(count2);
+
+        }
+        vos.add(vo1);
+
+        return CommonResult.ok(vos);
+    }
+
 
     public static void main(String[] args) throws Exception {
 //        获取签名
@@ -3592,6 +3792,91 @@ public class HouseOrderController implements HouseOrderAPI {
 
     }
 
+    /**
+     * 每天13点
+     * 计算当天当前时间超过待入住.已支付订单的预离时间
+     */
+    @Scheduled(cron = "0 0 13 * * ? ")
+//    @Scheduled(cron = "0 0/1 * * * ?")
+    @Transactional(rollbackFor = Exception.class)
+    public void getBlacklist() {
+//        获取预离时间是当天的待入住,已支付订单
+        LocalDateTime startTime = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
+        LocalDateTime endTime = startTime.withHour(23).withMinute(59).withSecond(59);
+
+        LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(HouseOrder::getOrderStatus, 2, 3)
+                .between(HouseOrder::getReserveLeaveTime, startTime, endTime)
+                .eq(HouseOrder::getPayPrice, 0);
+        List<HouseOrder> list = houseOrderService.list(wrapper);
+
+        if (list.size() > .0) {
+            ArrayList<BlacklistOrder> blacklistOrders = new ArrayList<>();
+
+            for (HouseOrder houseOrder : list) {
+                BlacklistOrder blacklistOrder = new BlacklistOrder();
+
+                blacklistOrder.setHouseOrderId(houseOrder.getId());
+                blacklistOrder.setOrderNumber(houseOrder.getOrderNumber());
+                blacklistOrder.setOrderStatus(houseOrder.getOrderStatus());
+                blacklistOrder.setReserveUserId(houseOrder.getReserveUserId());
+                blacklistOrder.setReserveName(houseOrder.getReserveName());
+                blacklistOrder.setReservePhone(houseOrder.getReservePhone());
+
+                Users users = usersService.getById(houseOrder.getReserveUserId());
+                if (ObjectUtils.isNotEmpty(users)) {
+                    blacklistOrder.setCardNumber(users.getCardNumber());
+                }
+
+                blacklistOrder.setReserveLiveTime(houseOrder.getReserveLiveTime());
+                blacklistOrder.setReserveLeaveTime(houseOrder.getReserveLeaveTime());
+                blacklistOrders.add(blacklistOrder);
+            }
+
+            try {
+
+                blacklistOrderService.saveBatch(blacklistOrders);
+
+                BlacklistSetting blacklistSetting = blacklistSettingService.list(new LambdaQueryWrapper<>()).get(0);
+                Integer count = blacklistSetting.getCount();
+
+                List<BlacklistVo> vos = blacklistOrderService.getBlacklist(count);
+                if (vos.size() > 0) {
+                    ArrayList<Blacklist> blacklists = new ArrayList<>();
+                    for (BlacklistVo vo : vos) {
+                        Integer id1 = vo.getId();
+                        Users users = usersService.getById(id1);
+//                        通过预定id找到对应的黑名单预定人id
+                        LambdaQueryWrapper<Blacklist> wrapperB = new LambdaQueryWrapper<>();
+                        wrapperB.eq(Blacklist::getReserveUserId, id1);
+                        Blacklist one = blacklistService.getOne(wrapperB);
+                        if (ObjectUtils.isNotEmpty(one)) {
+                            one.setCount(vo.getCount());
+                            blacklists.add(one);
+                        } else {
+                            if (ObjectUtils.isNotEmpty(users)) {
+                                Blacklist blacklist = new Blacklist();
+                                blacklist.setReserveUserId(id1);
+                                blacklist.setReserveName(users.getUserName());
+                                blacklist.setPhone(users.getPhone());
+                                blacklist.setCardNumber(users.getCardNumber());
+                                blacklist.setCount(vo.getCount());
+                                blacklists.add(blacklist);
+                            }
+                        }
+                    }
+                    if (blacklists.size() > 0) {
+                        blacklistService.saveOrUpdateBatch(blacklists);
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+        }
+
+
+    }
 
 }
 

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

@@ -1264,6 +1264,11 @@ public class LoginController implements LoginControllerAPI {
                 functionPointVo6.setStatus(1);
                 vos13.add(functionPointVo6);
 
+                FunctionPointVo functionPointVo7 = new FunctionPointVo();
+                functionPointVo7.setFunctionPoint("黑名单设施设置");
+                functionPointVo7.setStatus(1);
+                vos13.add(functionPointVo7);
+
             } else {
                 FunctionPointVo functionPointVo1 = ifContains(systemManagement, "1");
                 functionPointVo1.setFunctionPoint("退房设置");
@@ -1288,6 +1293,10 @@ public class LoginController implements LoginControllerAPI {
                 FunctionPointVo functionPointVo6 = ifContains(systemManagement, "6");
                 functionPointVo6.setFunctionPoint("查看界面");
                 vos13.add(functionPointVo6);
+
+                FunctionPointVo functionPointVo7 = ifContains(systemManagement, "7");
+                functionPointVo7.setFunctionPoint("黑名单设施设置");
+                vos13.add(functionPointVo7);
             }
             menuBarVo13.setFunctionPoints(vos13);
             menuBarVos.add(menuBarVo13);

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

@@ -105,7 +105,7 @@ public class UnlockingAdminController implements UnlockingAdminControllerAPI {
 
             unlockingAdmin = passwordIssController.savePassWord(keyPassWordDto);
             if (ObjectUtils.isEmpty(unlockingAdmin)) {
-                return CommonResult.fail("该密码已存在,请更换");
+                return CommonResult.fail("参数异常");
             }
 
             unlockingAdmin.setName(byId.getName());

+ 55 - 9
src/main/java/com/template/controller/UnlockingCustomController.java

@@ -1,6 +1,7 @@
 package com.template.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.api.UnlockingCustomControllerAPI;
 import com.template.common.utils.PasswordChecker;
@@ -12,14 +13,18 @@ import com.template.model.pojo.*;
 import com.template.model.result.CommonResult;
 import com.template.services.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author ceshi
@@ -46,6 +51,9 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
     @Autowired
     OperatingRecordService operatingRecordService;
 
+    @Autowired
+    UnlockingEmployeeService unlockingEmployeeService;
+
     @Override
     public CommonResult saveCustomPassWord(CustomKeyPassWordDto dto) {
         String permissionSettingId = dto.getPermissionSettingId();
@@ -104,10 +112,10 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
             unlockingCustomService.save(unlockingAdmin);
             operatingRecordService.save(operatingRecord);
             return CommonResult.ok();
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
 //            删除锁
-            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
+            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(), unlockingAdmin.getLockUserId());
             return CommonResult.fail();
         }
 
@@ -161,10 +169,10 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
             operatingRecordService.save(operatingRecord);
             return CommonResult.ok();
 
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
 //            删除锁
-            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
+            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(), unlockingAdmin.getLockUserId());
             return CommonResult.fail();
         }
     }
@@ -216,10 +224,10 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
             operatingRecordService.save(operatingRecord);
             return CommonResult.ok();
 
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
 //            删除锁
-            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
+            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(), unlockingAdmin.getLockUserId());
             return CommonResult.fail();
         }
     }
@@ -234,7 +242,7 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
         String lockUserId = byId.getLockUserId();
         String luid = byId.getLuid();
 
-        passwordIssController.deleteLockUser(luid,lockUserId);
+        passwordIssController.deleteLockUser(luid, lockUserId);
 
         unlockingCustomService.removeById(unlockingAdminId);
 
@@ -257,7 +265,7 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
         String startTime = updateLockDto.getStartTime();
         String endTime = updateLockDto.getEndTime();
 
-        passwordIssController.updateLock(lockUserId,luid,startTime,endTime);
+        passwordIssController.updateLock(lockUserId, luid, startTime, endTime);
 
         byId.setStartTime(startTime);
         byId.setEndTime(endTime);
@@ -267,5 +275,43 @@ public class UnlockingCustomController implements UnlockingCustomControllerAPI {
         return CommonResult.ok();
     }
 
+    //    定时删除过期用户
+    @Scheduled(cron = "0 0 0/2 * * ? ")
+//    @Scheduled(cron = "0 0/1 * * * ?")
+    public void deleteUnlocking() {
+//        先查询已过期的自定义的锁
+        LambdaQueryWrapper<UnlockingCustom> wrapperUC = new LambdaQueryWrapper<>();
+        wrapperUC.le(UnlockingCustom::getEndTime, new Date());
+        List<UnlockingCustom> list = unlockingCustomService.list(wrapperUC);
+        if (list.size() > 0) {
+            ArrayList<Integer> idUCs = new ArrayList<>();
+            for (UnlockingCustom unlockingCustom : list) {
+                String luid = unlockingCustom.getLuid();
+                String lockUserId = unlockingCustom.getLockUserId();
+                passwordIssController.deleteLockUser(luid, lockUserId);
+                idUCs.add(unlockingCustom.getId());
+            }
+            unlockingCustomService.removeByIds(idUCs);
+        }
+
+
+//        查询员工已过期的锁
+        LambdaQueryWrapper<UnlockingEmployee> wrapperUE = new LambdaQueryWrapper<>();
+        wrapperUE.le(UnlockingEmployee::getEndTime, new Date());
+        List<UnlockingEmployee> list2 = unlockingEmployeeService.list(wrapperUE);
+        if (list2.size() > 0) {
+            ArrayList<Integer> idUEs = new ArrayList<>();
+            for (UnlockingEmployee unlockingEmployee : list2) {
+                String luid = unlockingEmployee.getLuid();
+                String lockUserId = unlockingEmployee.getLockUserId();
+                passwordIssController.deleteLockUser(luid, lockUserId);
+                idUEs.add(unlockingEmployee.getId());
+            }
+            unlockingEmployeeService.removeByIds(idUEs);
+        }
+
+    }
+
+
 }
 

+ 4 - 0
src/main/java/com/template/mapper/ApplicationProcedureTemporaryMapper.java

@@ -9,6 +9,7 @@ import com.template.model.vo.ApplicationProcedureTemporaryVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -37,4 +38,7 @@ public interface ApplicationProcedureTemporaryMapper extends BaseMapper<Applicat
     IPage<ApplicationProcedureTemporaryVo> pageAppletList(Page<ApplicationProcedureTemporaryVo> pageVo,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("status") String status,@Param("orgList")List<String> orgList);
 
     IPage<ApplicationProcedureTemporaryVo> parentAppletPageList(Page<ApplicationProcedureTemporaryVo> pageVo, @Param("startTime") String startTime,@Param("endTime") String endTime,@Param("status") String status,@Param("orgList")List<String> orgList);
+    IPage<ApplicationProcedureTemporaryVo> parentAppletPageList(Page<ApplicationProcedureTemporaryVo> pageVo, @Param("startTime") String startTime,@Param("endTime") String endTime,@Param("status") String status);
+
+    List<ApplicationProcedureTemporary> getApt(@Param("state") LocalDate state,@Param("end") LocalDate end,@Param("userId") String userId);
 }

+ 1 - 1
src/main/java/com/template/mapper/ClassScheduleMapper.java

@@ -8,7 +8,6 @@ import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
 import java.time.LocalDate;
-import java.util.List;
 
 /**
  * <p>
@@ -26,4 +25,5 @@ public interface ClassScheduleMapper extends BaseMapper<ClassSchedule> {
 
     @Delete("delete from class_schedule where  remark =#{remark} ")
     int removeByRemark(String remark);
+
 }

+ 1 - 1
src/main/java/com/template/mapper/HouseOrderMapper.java

@@ -42,5 +42,5 @@ public interface HouseOrderMapper extends BaseMapper<HouseOrder> {
 
     List<String> payHouseOrderUser(@Param("start") LocalDateTime start,@Param("end") LocalDateTime end);
 
-    List<HouseOrder> getDate(@Param("dateTime") LocalDateTime dateTime, @Param("userId") String userId);
+    List<HouseOrder> getDate(@Param("dateTime") LocalDateTime dateTime, @Param("userId") String userId,@Param("source") Integer source);
 }

+ 10 - 0
src/main/java/com/template/model/dto/BlacklistDeleteDto.java

@@ -0,0 +1,10 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BlacklistDeleteDto {
+    private List<Integer> ids;
+}

+ 12 - 12
src/main/java/com/template/model/dto/EstablishOrderDto.java

@@ -1,31 +1,31 @@
 package com.template.model.dto;
 
-import com.template.model.pojo.HouseOrder;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.util.Date;
 
 @Data
 public class EstablishOrderDto {
-//    用户id
+    //    用户id
     private String userId;
-//     房型id
+    //     房型id
     private String houseId;
-//   需付金额
+    //   需付金额
     private BigDecimal payPrice;
-//     所需房间数
+    //     所需房间数
     private int houseOrderNumber;
-//      住宿时长
+    //      住宿时长
     private String liveDay;
-//    预定入住时间
+    //    预定入住时间
     private String reserveLiveTime;
-//    预定离开时间
+    //    预定离开时间
     private String reserveLeaveTime;
-//  预定人电话
+    //  预定人电话
     private String reservePhone;
-//    预定人姓名
+    //    预定人姓名
     private String reserveName;
+    //   免费订单来源
+    private Integer source;
+
 
 }

+ 3 - 0
src/main/java/com/template/model/pojo/Blacklist.java

@@ -32,6 +32,9 @@ public class Blacklist implements Serializable {
     @ApiModelProperty(value = "预定人id")
     private Integer reserveUserId;
 
+    @ApiModelProperty(value = "预定人姓名")
+    private String reserveName;
+
     @ApiModelProperty(value = "手机号")
     private String phone;
 

+ 8 - 22
src/main/java/com/template/model/pojo/BlacklistOrder.java

@@ -1,19 +1,14 @@
 package com.template.model.pojo;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.Version;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * <p>
  * 
@@ -53,30 +48,21 @@ public class BlacklistOrder implements Serializable {
     private String reservePhone;
 
     @ApiModelProperty(value = "微校卡号")
-    private Integer cardNumber;
-
-    @ApiModelProperty(value = "入住人id")
-    private Integer liveUsersId;
-
-    @ApiModelProperty(value = "入住人姓名")
-    private String liveName;
-
-    @ApiModelProperty(value = "入住人身份证")
-    private String liveIdCard;
+    private String cardNumber;
 
     @ApiModelProperty(value = "预定入住时间")
-    private Date reserveLiveTime;
+    private String reserveLiveTime;
 
     @ApiModelProperty(value = "预定离开时间")
-    private Date reserveLeaveTime;
+    private String reserveLeaveTime;
 
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
-    private Date createTime;
+    private String createTime;
 
     @ApiModelProperty(value = "更新时间")
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateTime;
+    private String updateTime;
 
     @ApiModelProperty(value = "创建人员")
     @TableField(fill = FieldFill.INSERT)

+ 3 - 0
src/main/java/com/template/model/pojo/HouseOrder.java

@@ -130,6 +130,9 @@ public class HouseOrder implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ApiModelProperty(value = "免费订单来源,1.课表,2.流程管理")
+    private Integer source;
+
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
     private String createTime;

+ 10 - 0
src/main/java/com/template/model/vo/RemainFreeVo.java

@@ -0,0 +1,10 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class RemainFreeVo {
+    private String name;
+    private Integer count;
+    private Integer source;
+}

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

@@ -6,6 +6,7 @@ import com.template.model.result.PageUtils;
 import com.template.model.vo.ApplicationProcedureTemporaryRecordVo;
 import com.template.model.vo.ApplicationProcedureTemporaryVo;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -33,4 +34,7 @@ public interface ApplicationProcedureTemporaryService extends IService<Applicati
     PageUtils<ApplicationProcedureTemporaryVo> pageAppletList(String startTime, String endTime, String status, int page, int size,List<String> orgList);
 
     PageUtils<ApplicationProcedureTemporaryVo> parentAppletPageList(String startTime, String endTime, String status, int page, int size,List<String> orgList);
+    PageUtils<ApplicationProcedureTemporaryVo> parentAppletPageList(String startTime, String endTime, String status, int page, int size);
+
+    List<ApplicationProcedureTemporary> getApt(LocalDate state, LocalDate end, String userId);
 }

+ 2 - 1
src/main/java/com/template/services/ClassScheduleService.java

@@ -5,7 +5,6 @@ import com.template.model.pojo.ClassSchedule;
 import com.template.model.vo.ClassListVo;
 
 import java.time.LocalDate;
-import java.util.List;
 
 /**
  * <p>
@@ -20,4 +19,6 @@ public interface ClassScheduleService extends IService<ClassSchedule> {
     ClassListVo  classList(LocalDate localDate, String teacherName);
 
     int removeByRemark(String remark);
+
+
 }

+ 2 - 1
src/main/java/com/template/services/HouseOrderService.java

@@ -27,7 +27,7 @@ public interface HouseOrderService extends IService<HouseOrder> {
      * @param leaveTime
      * @return
      */
-    BigDecimal getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime);
+    BigDecimal getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime,Integer source);
 
     /**
      * 管理端计算总金额
@@ -52,4 +52,5 @@ public interface HouseOrderService extends IService<HouseOrder> {
 
     List<String> payHouseOrderUser(LocalDateTime start, LocalDateTime end);
 
+    List<HouseOrder> getDate(LocalDateTime dateTime1, String userId,Integer source);
 }

+ 6 - 0
src/main/java/com/template/services/impl/ApplicationProcedureTemporaryServiceImpl.java

@@ -12,6 +12,7 @@ import com.template.services.ApplicationProcedureTemporaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -74,5 +75,10 @@ public class ApplicationProcedureTemporaryServiceImpl extends ServiceImpl<Applic
         return new PageUtils(result);
     }
 
+    @Override
+    public List<ApplicationProcedureTemporary> getApt(LocalDate state, LocalDate end, String userId) {
+        return applicationProcedureTemporaryMapper.getApt(state,end,userId);
+    }
+
 
 }

+ 4 - 3
src/main/java/com/template/services/impl/ClassScheduleServiceImpl.java

@@ -2,12 +2,11 @@ package com.template.services.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.mapper.ClassScheduleMapper;
-import com.template.model.pojo.HouseNumberState;
+import com.template.model.pojo.ClassSchedule;
 import com.template.model.vo.ClassListVo;
 import com.template.services.ClassScheduleService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.template.model.pojo.ClassSchedule;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -49,4 +48,6 @@ public class ClassScheduleServiceImpl extends ServiceImpl<ClassScheduleMapper, C
 
         return classScheduleMapper.removeByRemark(remark);
     }
+
+
 }

+ 84 - 98
src/main/java/com/template/services/impl/HouseOrderServiceImpl.java

@@ -33,7 +33,7 @@ import java.util.List;
  * @since 2023-11-21
  */
 @Service
-public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOrder> implements HouseOrderService {
+public class HouseOrderServziceImpl extends ServiceImpl<HouseOrderMapper, HouseOrder> implements HouseOrderService {
 
     @Autowired
     HouseService houseService;
@@ -54,7 +54,7 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
     ApplicationProcedureTemporaryService apts;
 
     @Override
-    public BigDecimal getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime) {
+    public BigDecimal getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime,Integer source) {
 
         House house = houseService.getById(houseId);
 
@@ -102,6 +102,9 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
             BigDecimal totalPrice = roomPrice.multiply(new BigDecimal(houseOrderNumber));
             return totalPrice;
         }
+
+
+
         //   计算2个时间差
         long until = state.until(end, ChronoUnit.DAYS);
 
@@ -113,122 +116,100 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
 
 
         BigDecimal totalPrice = new BigDecimal(0);
+
+        if (ObjectUtils.isNotEmpty(source)) {
+            if (source==1) {
+                return totalPrice;
+            }else if (source==2){
+                return totalPrice;
+            }
+        }
+
+
         for (int i = 0; i < until; i++) {
             LocalDate localDate1 = state.plusDays(i);
 
             LocalDateTime dateTime1 = stateTime.plusDays(i);
             List<HousePrice> housePrices1 = housePriceService.getDatePrice(localDate1, houseId);
 
-            if ("4".equals(department)) {
-                LocalDateTime startS = dateTime1.withHour(0).withMinute(0).withSecond(0);
-                LocalDateTime endS = dateTime1.withHour(23).withMinute(59).withSecond(59);
-                LambdaQueryWrapper<ClassSchedule> wrapperCS = new LambdaQueryWrapper<>();
-                wrapperCS.eq(ClassSchedule::getJsgh, users.getCardNumber())
-                        .between(ClassSchedule::getDateTime, startS, endS);
-                List<ClassSchedule> scheduleList = classScheduleService.list(wrapperCS);
-
-                if (ObjectUtils.isEmpty(scheduleList)) {
-                    if (ObjectUtils.isNotEmpty(housePrices1)) {
-                        HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
-                        BigDecimal price = housePrice.getPrice();
-                        totalPrice = totalPrice.add(price);
-                    } else {
-                        totalPrice = totalPrice.add(roomPrice);
-                    }
-                }else {
-//                    需要先判断当前时间是否已经有过订单,有的话则不免费
-//                        dateTime1
-                    List<HouseOrder> list = houseOrderMapper.getDate(dateTime1, userId);
-                    if (list.size() > 0) {
-                        if (ObjectUtils.isNotEmpty(housePrices1)) {
-                            HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
-                            BigDecimal price = housePrice.getPrice();
-                            totalPrice = totalPrice.add(price);
-                        } 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 ("7".equals(department)) {
-            List<ApplicationProcedureTemporary> list = apts.getDate(dateTime1, userId);
-            if (ObjectUtils.isNotEmpty(list)) {
-//                    当有临时表时需要判断是否已经有订单,有的话则原价
-                List<HouseOrder> list2 = houseOrderMapper.getDate(dateTime1, userId);
-                if (ObjectUtils.isNotEmpty(list2)) {
-                    if (ObjectUtils.isNotEmpty(housePrices1)) {
-                        HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
-                        BigDecimal price = housePrice.getPrice();
-                        totalPrice = totalPrice.add(price);
-                    } else {
-                        totalPrice = totalPrice.add(roomPrice);
-                    }
-                }
-            } else {
-                if (ObjectUtils.isNotEmpty(housePrices1)) {
-                    HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
-                    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) {
+//            if ("4".equals(department)) {
+//
+//                LocalDateTime startS = dateTime1.withHour(0).withMinute(0).withSecond(0);
+//                LocalDateTime endS = dateTime1.withHour(23).withMinute(59).withSecond(59);
+//                LambdaQueryWrapper<ClassSchedule> wrapperCS = new LambdaQueryWrapper<>();
+//                wrapperCS.eq(ClassSchedule::getJsgh, users.getCardNumber())
+//                        .between(ClassSchedule::getDateTime, startS, endS);
+//                List<ClassSchedule> scheduleList = classScheduleService.list(wrapperCS);
+//
+//                if (ObjectUtils.isEmpty(scheduleList)) {
+//                    if (ObjectUtils.isNotEmpty(housePrices1)) {
+//                        HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
+//                        BigDecimal price = housePrice.getPrice();
+//                        totalPrice = totalPrice.add(price);
+//                    } else {
+//                        totalPrice = totalPrice.add(roomPrice);
+//                    }
+//                }else {
+////                    需要先判断当前时间是否已经有过订单,有的话则不免费
+////                        dateTime1
+//                    List<HouseOrder> list = houseOrderMapper.getDate(dateTime1, userId,1);
+//                    if (list.size() > 0) {
+//                        if (ObjectUtils.isNotEmpty(housePrices1)) {
+//                            HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
 //                            BigDecimal price = housePrice.getPrice();
 //                            totalPrice = totalPrice.add(price);
 //                        } else {
 //                            totalPrice = totalPrice.add(roomPrice);
 //                        }
 //                    }
+//                }
+//
+//
+//
+//        }else if ("7".equals(department)) {
+//            List<ApplicationProcedureTemporary> list = apts.getDate(dateTime1, userId);
+//            if (ObjectUtils.isNotEmpty(list)) {
+////                    当有临时表时需要判断是否已经有订单,有的话则原价
+//                List<HouseOrder> list2 = houseOrderMapper.getDate(dateTime1, userId,2);
+//                if (ObjectUtils.isNotEmpty(list2)) {
+//                    if (ObjectUtils.isNotEmpty(housePrices1)) {
+//                        HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
+//                        BigDecimal price = housePrice.getPrice();
+//                        totalPrice = totalPrice.add(price);
+//                    } else {
+//                        totalPrice = totalPrice.add(roomPrice);
+//                    }
+//                }
+//            } else {
+//                if (ObjectUtils.isNotEmpty(housePrices1)) {
+//                    HousePrice housePrice = housePrices1.get(housePrices1.size() - 1);
+//                    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);
+                }
             } else {
                 totalPrice = totalPrice.add(roomPrice);
             }
-        }
 
 
-    }
 
+    }
 
-        return totalPrice.multiply(new
 
-    BigDecimal(houseOrderNumber));
+        return totalPrice.multiply(new BigDecimal(houseOrderNumber));
 }
 
     @Override
@@ -402,4 +383,9 @@ public class HouseOrderServiceImpl extends ServiceImpl<HouseOrderMapper, HouseOr
     public List<String> payHouseOrderUser(LocalDateTime start, LocalDateTime end) {
         return houseOrderMapper.payHouseOrderUser(start, end);
     }
+
+    @Override
+    public List<HouseOrder> getDate(LocalDateTime dateTime1, String userId,Integer source) {
+        return houseOrderMapper.getDate(dateTime1, userId,source);
+    }
 }

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

@@ -321,5 +321,16 @@
         and FIND_IN_SET(ap.status,#{status})
         ORDER BY ap.submission_time DESC
     </select>
+    <select id="getApt" resultType="com.template.model.pojo.ApplicationProcedureTemporary">
+        SELECT
+            *
+        FROM
+            `application_procedure_temporary`
+        WHERE deleted=0
+          AND #{state} >= start_time
+          AND end_time >= #{end}
+          AND `status` =3
+          AND users_id=#{userId}
+    </select>
 
 </mapper>

+ 2 - 2
src/main/resources/mapper/template/BlacklistOrderMapper.xml

@@ -7,10 +7,10 @@
         FROM (SELECT reserve_user_id as id,
                      COUNT(reserve_user_id) AS count
               FROM
-                  `blacklist`
+                  `blacklist_order`
               WHERE deleted=0
               GROUP BY
                   reserve_user_id) a
-        WHERE a.count > #{count}
+        WHERE a.count >= #{count}
     </select>
 </mapper>

+ 1 - 0
src/main/resources/mapper/template/ClassScheduleMapper.xml

@@ -17,4 +17,5 @@
         </where>
         GROUP BY date_time
     </select>
+
 </mapper>

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

@@ -341,6 +341,8 @@
           AND reserve_user_id=#{userId}
           AND #{dateTime} >= reserve_live_time
           AND reserve_leave_time >= #{dateTime}
+          AND source=#{source}
+          AND pay_price=0
     </select>
 
 </mapper>