From 95c7577e799e7975c759e28d9a33a0515f8662cd Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 20 九月 2024 14:21:56 +0800
Subject: [PATCH] 代码初始化

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index dd0a9bb..a973cf6 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -464,7 +464,7 @@
         queryWrapper.selectAs(Rooms::getName, Bookings::getRoomName);
         queryWrapper.selectAs(SystemUser::getRealname, Bookings::getRealName);
         queryWrapper.selectAs(Company::getName, Bookings::getDepartmentName);
-        queryWrapper.select(" CASE WHEN t.START_TIME > now() AND t.`STATUS` = 0 THEN 1  WHEN ( (t.END_TIME < now()  AND t.`STATUS` = 0 ) or t.`STATUS` = 2 ) THEN 3 WHEN t.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ");
+        queryWrapper.select(" CASE WHEN t.START_TIME_REAL IS NULL AND t.`STATUS` = 0 THEN 1  WHEN ( ( t.END_TIME < now()  AND t.`STATUS` = 0 ) or t.`STATUS` = 2 ) THEN 3 WHEN t.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ");
         queryWrapper.leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId);
         queryWrapper.leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator);
         queryWrapper.leftJoin(Company.class,Company::getId,SystemUser::getCompanyId);
@@ -476,7 +476,6 @@
         queryWrapper.eq(pageWrap.getModel().getStatus() != null, Bookings::getStatus, pageWrap.getModel().getStatus());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getRealName()), SystemUser::getRealname, pageWrap.getModel().getRealName());
         queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, Company::getId, pageWrap.getModel().getDepartmentId());
-
 
         queryWrapper.apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                         &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE),
@@ -1124,9 +1123,33 @@
             if(DateUtil.afterMinutesDate(bookings.getStartTime(),-beforeMinutes).getTime()>System.currentTimeMillis()){
                 throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼氳浠呭彲浠ユ彁鍓�"+beforeMinutes+"鍒嗛挓寮�濮�");
             }
+            //鏌ヨ鏄惁瀛樺湪鍏朵粬鏈紑濮嬬殑浼氳 闃叉棰楃矑搴︿笌鎻愬墠寮�濮嬬殑闂
+
+            if(bookingsMapper.selectCount(new QueryWrapper<Bookings>()
+                    .lambda()
+                    .apply(" now() < START_TIME and   END_TIME <=  '" + DateUtil.DateToStr(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") +"'" )
+                    .isNull(Bookings::getStartTimeReal)
+                    .isNull(Bookings::getDoneDate)
+                    .eq(Bookings::getStatus,Constants.ZERO)
+                    .eq(Bookings::getRoomId,bookings.getRoomId())
+                    .ne(Bookings::getId,bookings.getId())
+            )>Constants.ZERO){
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏈紑鍚細璁紝鏃犳硶杩涜寮�濮嬩細璁�");
+            };
+
+            if(bookingsMapper.selectCount(new QueryWrapper<Bookings>()
+                    .lambda() 
+                    .apply(" END_TIME > now() and START_TIME < now() ")
+                    .isNotNull(Bookings::getStartTimeReal)
+                    .isNull(Bookings::getDoneDate)
+                    .eq(Bookings::getStatus,Constants.ZERO)
+                    .eq(Bookings::getRoomId,bookings.getRoomId())
+            )>Constants.ZERO){
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠寮�鍚椂闂翠笌鍏朵粬浼氳瀛樺湪鍐茬獊锛屾棤娉曡繘琛屽紑濮嬩細璁�");
+            };
         }else{
             if(bookings.getStartTime().getTime() > System.currentTimeMillis()){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶杩涜寮�鍚�");
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶杩涜寮�濮�");
             }
         }
         bookings.setStartTimeReal(new Date());
@@ -1138,7 +1161,8 @@
                 .lambda()
                 .set(Bookings::getStatus,Constants.TWO)
                 .set(Bookings::getDoneDate,new Date())
-                .apply(" END_TIME < now() ")
+                .set(Bookings::getDoneInfo,"鍏朵粬浼氳寮�濮嬶紝鑷姩鍏抽棴")
+                .apply(" ( END_TIME < now() or ( END_TIME > now() and START_TIME < now() and START_TIME_REAL is null  ) )")
                 .eq(Bookings::getStatus,Constants.ZERO)
                 .eq(Bookings::getRoomId,bookings.getRoomId())
         );

--
Gitblit v1.9.3