|
@@ -58,9 +58,12 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.security.Signature;
|
|
import java.security.Signature;
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
import java.time.ZoneId;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
+import java.time.format.TextStyle;
|
|
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
@@ -146,8 +149,20 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
ApartmentSettingService apartmentSettingService;
|
|
ApartmentSettingService apartmentSettingService;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ BlacklistOrderService blacklistOrderService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ BlacklistService blacklistService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ BlacklistSettingService blacklistSettingService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ ApplicationProcedureTemporaryService applicationProcedureTemporaryService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@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) {
|
|
if (ObjectUtils.isEmpty(userId) && ObjectUtils.isEmpty(houseId) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(houseOrderNumber) && houseOrderNumber <= 0) {
|
|
|
return CommonResult.fail();
|
|
return CommonResult.fail();
|
|
|
}
|
|
}
|
|
@@ -165,7 +180,7 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
// establishOrderDto.setReserveLiveTime(reserveLeaveTime);
|
|
// 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);
|
|
return CommonResult.ok(totalPrice);
|
|
|
|
|
|
|
@@ -178,10 +193,14 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
if (ObjectUtils.isEmpty(establishOrderDto)) {
|
|
if (ObjectUtils.isEmpty(establishOrderDto)) {
|
|
|
return CommonResult.fail();
|
|
return CommonResult.fail();
|
|
|
}
|
|
}
|
|
|
|
|
+ // 判断传过来的时间和当前时间比较
|
|
|
|
|
+ DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
// 需判断当前用户是能定这时间段的房
|
|
// 需判断当前用户是能定这时间段的房
|
|
|
String reserveLiveTime = establishOrderDto.getReserveLiveTime();
|
|
String reserveLiveTime = establishOrderDto.getReserveLiveTime();
|
|
|
String reserveLeaveTime = establishOrderDto.getReserveLeaveTime();
|
|
String reserveLeaveTime = establishOrderDto.getReserveLeaveTime();
|
|
|
|
|
+ Integer source = establishOrderDto.getSource();
|
|
|
|
|
+
|
|
|
|
|
|
|
|
// 判断课表,临时人员
|
|
// 判断课表,临时人员
|
|
|
|
|
|
|
@@ -195,6 +214,33 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
return CommonResult.fail("无此房间,请重新查询");
|
|
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())) {
|
|
// if (house.getNumber() < Func.parseInt(establishOrderDto.getHouseOrderNumber())) {
|
|
|
// return CommonResult.fail("超出限定房间数量");
|
|
// return CommonResult.fail("超出限定房间数量");
|
|
@@ -217,11 +263,9 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
ids = ids + "," + id;
|
|
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 now = LocalDateTime.now();
|
|
|
LocalDateTime date = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
|
|
LocalDateTime date = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
|
|
|
if (now.isAfter(date)) {
|
|
if (now.isAfter(date)) {
|
|
@@ -248,8 +292,8 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
|
|
|
|
|
HouseOrder houseOrder = new HouseOrder();
|
|
HouseOrder houseOrder = new HouseOrder();
|
|
|
|
|
|
|
|
-// 计算总金额
|
|
|
|
|
- BigDecimal totalPrice = houseOrderService.getHouseOrderPrice(establishOrderDto.getHouseOrderNumber(), userId, houseId, establishOrderDto.getReserveLiveTime(), establishOrderDto.getReserveLeaveTime());
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
BigDecimal payPrice = establishOrderDto.getPayPrice();
|
|
BigDecimal payPrice = establishOrderDto.getPayPrice();
|
|
|
// 返回的结果是int类型,-1表示小于,0是等于,1是大于。
|
|
// 返回的结果是int类型,-1表示小于,0是等于,1是大于。
|
|
@@ -283,7 +327,7 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
HouseNumberState houseNumberState = new HouseNumberState();
|
|
HouseNumberState houseNumberState = new HouseNumberState();
|
|
|
houseNumberState.setHouseNumberId(id);
|
|
houseNumberState.setHouseNumberId(id);
|
|
|
houseNumberState.setStatus(3);
|
|
houseNumberState.setStatus(3);
|
|
|
- Integer roomType = house.getRoomType();
|
|
|
|
|
|
|
+// Integer roomType = house.getRoomType();
|
|
|
if (1 == roomType) {
|
|
if (1 == roomType) {
|
|
|
// DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
// DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
// LocalDateTime start = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
|
|
// LocalDateTime start = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
|
|
@@ -319,9 +363,11 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
String timeOut = now.plusMinutes(15).format(dateTimeFormatter1);
|
|
String timeOut = now.plusMinutes(15).format(dateTimeFormatter1);
|
|
|
houseOrder.setTimeOut(timeOut);
|
|
houseOrder.setTimeOut(timeOut);
|
|
|
|
|
|
|
|
|
|
+ houseOrder.setSource(source);
|
|
|
|
|
+
|
|
|
// 单价 全日房 价格单价=总价/房间数/天数
|
|
// 单价 全日房 价格单价=总价/房间数/天数
|
|
|
// 钟点房 价格单价=总价/房间数
|
|
// 钟点房 价格单价=总价/房间数
|
|
|
- Integer roomType = house.getRoomType();
|
|
|
|
|
|
|
+// Integer roomType = house.getRoomType();
|
|
|
BigDecimal price;
|
|
BigDecimal price;
|
|
|
if (roomType == 1) {
|
|
if (roomType == 1) {
|
|
|
price = payPrice.divide(new BigDecimal(houseOrderNumber), 2, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(establishOrderDto.getLiveDay()), 2, BigDecimal.ROUND_HALF_UP);
|
|
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
|
|
@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);
|
|
// PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
|
|
|
// if (ObjectUtils.isEmpty(permissionSetting)) {
|
|
// if (ObjectUtils.isEmpty(permissionSetting)) {
|
|
|
// return CommonResult.fail("非法进入");
|
|
// return CommonResult.fail("非法进入");
|
|
@@ -633,7 +679,7 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
size = 10;
|
|
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();
|
|
List<HouseOrderPageListVo> list = pageList.getList();
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
HouseOrderPageListVo houseOrderPageListVo = list.get(i);
|
|
HouseOrderPageListVo houseOrderPageListVo = list.get(i);
|
|
@@ -1475,7 +1521,7 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@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);
|
|
// PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
|
|
|
// if (ObjectUtils.isEmpty(permissionSetting)) {
|
|
// if (ObjectUtils.isEmpty(permissionSetting)) {
|
|
|
// return CommonResult.fail("非法进入");
|
|
// return CommonResult.fail("非法进入");
|
|
@@ -1486,7 +1532,7 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
// return CommonResult.fail("此账号暂无该权限");
|
|
// 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();
|
|
Workbook workbook = new XSSFWorkbook();
|
|
@@ -3271,6 +3317,7 @@ public class HouseOrderController implements HouseOrderAPI {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public CommonResult payNotCheckIn(CancelDto cancelDto) {
|
|
public CommonResult payNotCheckIn(CancelDto cancelDto) {
|
|
|
int adminId = cancelDto.getAdminId();
|
|
int adminId = cancelDto.getAdminId();
|
|
|
PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
|
|
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 {
|
|
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();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|