From c5a0ff2661fe362dddbe88c6a28d19c48c24c39b Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 21 十月 2024 20:39:32 +0800
Subject: [PATCH] 最新版本541200007

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java |   41 +++++++++++++++++++++++++++++++----------
 1 files changed, 31 insertions(+), 10 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 a973cf6..19d048f 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
@@ -142,7 +142,7 @@
         //鍙戦�佷細璁绾︽垚鍔熼�氱煡
         this.sendNotice(bookings, MeetConstants.TWO);
         //鍙戦�佸井淇¤闃呴�氱煡
-        sendWxMessage.bookingsReservation(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+//        sendWxMessage.bookingsReservation(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
 
         return bookings.getId();
     }
@@ -470,6 +470,26 @@
         queryWrapper.leftJoin(Company.class,Company::getId,SystemUser::getCompanyId);
         queryWrapper.orderByDesc(Bookings::getCreateDate);
         queryWrapper.eq(Bookings::getIsdeleted, MeetConstants.ZERO);
+
+        //鏁版嵁鏉冮檺寮�濮�--------------------start----------------
+        LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo();
+        if(userInfo!=null && userInfo.getCompanyIdList()!=null){
+            if(  userInfo.getCompanyIdList().size() ==0){
+                //鍙湅鑷繁
+                queryWrapper.and(wrapper ->{
+                    wrapper.eq(Bookings::getCreator,userInfo.getId())
+                            .or().exists("select rel.id from meeting_user_rel rel where rel.OBJ_TYPE=0 and rel.obj_id=t.id and rel.isdeleted=0 and rel.user_id="+userInfo.getId());
+                });
+                queryWrapper.eq(Bookings::getCreator,userInfo.getId());
+            }else{
+                //鏉冮檺鑼冨洿鍐�
+                queryWrapper.and(wrapper ->{
+                    wrapper.in(SystemUser::getCompanyId ,userInfo.getCompanyIdList())
+                            .or().exists("select rel.id from meeting_user_rel rel where rel.OBJ_TYPE=0 and rel.obj_id=t.id and rel.isdeleted=0 and rel.user_id="+userInfo.getId());
+                });
+            }
+        }
+        //鏁版嵁鏉冮檺寮�濮�--------------------end----------------
 
         queryWrapper.eq(pageWrap.getModel().getRoomId() != null, Bookings::getRoomId, pageWrap.getModel().getRoomId());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()), Bookings::getName, pageWrap.getModel().getName());
@@ -994,7 +1014,7 @@
         if (!bookings.getCreator().equals(businessOverDTO.getUserId())) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜鍙栨秷");
         }
-        if (System.currentTimeMillis() > bookings.getStartTime().getTime()) {
+        if (Objects.nonNull(bookings.getStartTimeReal()) && System.currentTimeMillis() > bookings.getStartTimeReal().getTime()) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸插紑濮�,鏃犳硶杩涜鍙栨秷");
         }
         if(bookings.getStatus().equals(MeetConstants.ONE)){
@@ -1010,7 +1030,7 @@
         //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡
         this.sendNotice(bookings, 3);
         //鍙戦�佸井淇¤闃呴�氱煡
-        sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+//        sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
     }
 
 
@@ -1036,7 +1056,7 @@
         if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜璇ユ搷浣�");
         }
-        if (System.currentTimeMillis() < bookings.getStartTime().getTime()) {
+        if (System.currentTimeMillis() < bookings.getStartTimeReal().getTime()) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳鏈紑濮�,鏃犳硶杩涜缁撴潫锛屽闇�璇ユ搷浣滆浣跨敤鍙栨秷鍔熻兘");
         }
         if (System.currentTimeMillis() > bookings.getEndTime().getTime()) {
@@ -1124,7 +1144,6 @@
                 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") +"'" )
@@ -1134,22 +1153,22 @@
                     .eq(Bookings::getRoomId,bookings.getRoomId())
                     .ne(Bookings::getId,bookings.getId())
             )>Constants.ZERO){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏈紑鍚細璁紝鏃犳硶杩涜寮�濮嬩細璁�");
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏈紑鍚細璁紝鏃犳硶寮�濮嬩細璁�");
             };
 
             if(bookingsMapper.selectCount(new QueryWrapper<Bookings>()
                     .lambda() 
-                    .apply(" END_TIME > now() and START_TIME < now() ")
+                    .apply(" ( (  END_TIME > now() and START_TIME < now() ) or  ( END_TIME > now() and  START_TIME_REAL < 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(),"褰撳墠寮�鍚椂闂翠笌鍏朵粬浼氳瀛樺湪鍐茬獊锛屾棤娉曡繘琛屽紑濮嬩細璁�");
+                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());
@@ -1205,7 +1224,9 @@
                 .eq("b.STATUS",MeetConstants.ZERO)
                 .eq("a.ISDELETED",MeetConstants.ZERO)
                 .eq("a.status",Constants.ZERO)
+                .ne("a.status",Constants.TWO)
                 .like("a.start_time",DateUtil.getCurrDate())
+                .apply(" not exists ( select 1  from  meeting_book mb where mb.END_TIME < now() and  mb.id = a.id and START_TIME_REAL is null  )   ")
                 .orderByAsc("a.start_time")
         );
         this.dealMeetingStatus(meetingList);
@@ -1254,7 +1275,7 @@
             bookingsMapper.updateById(bookings);
             this.sendNotice(bookings, MeetConstants.ONE);
             //鍙戦�佸井淇¢�氱煡
-            sendWxMessage.bookingsStart(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+//            sendWxMessage.bookingsStart(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
         }
     }
 

--
Gitblit v1.9.3