From 4df9fdf92a0a3461d53a08d797a63145af48e0c6 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 19 九月 2024 14:08:15 +0800
Subject: [PATCH] 代码初始化

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java |  152 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 137 insertions(+), 15 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 7a3ccc1..44ca327 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
@@ -841,19 +841,7 @@
                 .orderByAsc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.ONE),"a.START_TIME");
 
         IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), queryWrapper);
-        String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
-        page.getRecords().forEach(i -> {
-            i.setPrefixUrl(path);
-            if(i.getMeetingStatus().equals(Constants.ZERO)){
-                if(i.getMeetingStatus()==Constants.ONE){
-                    //寮�濮嬪墠120鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮�
-                    if(DateUtil.afterMinutesDate(i.getStartTime(),-120).getTime()>System.currentTimeMillis()){
-                        i.setMeetingStatus(4);
-                    }
-                }
-            }
-
-        });
+        this.dealMeetingStatus(page.getRecords());
         return page;
     }
 
@@ -904,9 +892,7 @@
                 .eq("BOOKING_ID", id)
                 .eq("ISDELETED", MeetConstants.ZERO)
         ));
-
         //鍙備細浜哄憳鍒楄〃
-
         List<UserResponse> userResponseList = systemUserService.getUserList(id);
         String avatarPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                 +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
@@ -1074,9 +1060,145 @@
                 bookingTimeJoinMapper.updateById(bookingTime);
             }
         }
+    }
+
+    /**
+     * 姝e父寮�濮�
+     * @param businessOverDTO
+     */
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void start(BusinessOverDTO businessOverDTO) {
+        this.startEarly(businessOverDTO);
+    }
+
+    /**
+     * 鎻愬墠寮�濮�
+     * @param businessOverDTO
+     */
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void startEarly(BusinessOverDTO businessOverDTO) {
+        if(Objects.isNull(businessOverDTO)
+                || Objects.isNull(businessOverDTO.getUserId())
+                || Objects.isNull(businessOverDTO.getStartType())
+                || Objects.isNull(businessOverDTO.getId())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Bookings bookings = bookingsMapper.selectById(businessOverDTO.getId());
+        if (Objects.isNull(bookings)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌棰勭害璁板綍");
+        }
+        Long userRelList = userRelMapper.selectCount(new QueryWrapper<UserRel>().lambda()
+                .eq(UserRel::getIsdeleted,Constants.ZERO)
+                .eq(UserRel::getObjId,bookings.getRoomId())
+                .eq(UserRel::getObjType,Constants.ONE)
+                .eq(UserRel::getUserId,businessOverDTO.getUserId()));
+
+        if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜璇ユ搷浣�");
+        }
+        if(!Constants.equalsInteger(bookings.getStatus(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔");
+        }
+        if(Objects.nonNull(bookings.getStartTimeReal())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸插紑濮嬶紝璇峰嬁閲嶅鎿嶄綔");
+        }
+        if (System.currentTimeMillis() > bookings.getEndTime().getTime()) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸茬粨鏉燂紝鏃犳硶杩涜璇ユ搷浣�");
+        }
+        if(Constants.equalsInteger(businessOverDTO.getStartType(),Constants.ZERO)){
+            //鏍规嵁閰嶇疆鑾峰彇鎻愬墠寮�濮嬬殑鍒嗛挓鏁伴噺
+            String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.EARLY_START).getCode();
+            Integer beforeMinutes = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120;
+            if(DateUtil.afterMinutesDate(bookings.getStartTime(),-beforeMinutes).getTime()>System.currentTimeMillis()){
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼氳浠呭彲浠ユ彁鍓�"+beforeMinutes+"鍒嗛挓寮�濮�");
+            }
+        }else{
+            if(bookings.getStartTime().getTime() > System.currentTimeMillis()){
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶杩涜寮�鍚�");
+            }
+        }
+        bookings.setStartTimeReal(new Date());
+        bookings.setEditDate(new Date());
+        bookings.setEditor(businessOverDTO.getUserId());
+        bookingsMapper.updateById(bookings);
+        //鏇存柊宸茬粨鏉熶絾鏈粨鏉熺殑浼氳淇℃伅涓哄凡缁撴潫
+        bookingsMapper.update(null,new UpdateWrapper<Bookings>()
+                .lambda()
+                .set(Bookings::getStatus,Constants.TWO)
+                .set(Bookings::getDoneDate,new Date())
+                .apply(" END_TIME < now() ")
+                .eq(Bookings::getStatus,Constants.ZERO)
+                .eq(Bookings::getRoomId,bookings.getRoomId())
+        );
 
     }
 
+
+    @Override
+    public RoomDetailResponse getRoomDetail(Integer roomId){
+        Rooms rooms =  roomsMapper.selectById(roomId);
+        if(Objects.isNull(rooms) ||  !Constants.equalsInteger(rooms.getIsdeleted(),Constants.ZERO)
+         || !Constants.equalsInteger(rooms.getStatus(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼氳瀹や俊鎭棤鏁堬紝璇疯仈绯荤鐞嗗憳");
+        }
+        RoomDetailResponse response = new RoomDetailResponse();
+        response.setRoomName(rooms.getName());
+        response.setFileType(rooms.getFileType());
+
+        List<Multifile> multifileList = multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId,roomId)
+                .eq(Multifile::getObjType,Constants.FOUR)
+        );
+
+        String prefix = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.MEET_CODE_PREFIX).getCode() ;
+        response.setPrefix(prefix);
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+            String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
+            for (Multifile multifile:multifileList) {
+                multifile.setFileurlFull(path + multifile.getFileurl());
+            }
+            response.setMultifileList(multifileList);
+        }
+
+        //鏌ヨ浼氳鍒楄〃
+        List<MeetingListResponse> meetingList = bookingsMapper.meetingList(
+                new QueryWrapper<Bookings>()
+                .eq( "b.id", rooms.getId())
+                .eq("b.ISDELETED",MeetConstants.ZERO)
+                .eq("b.STATUS",MeetConstants.ZERO)
+                .eq("a.ISDELETED",MeetConstants.ZERO)
+                .eq("a.status",Constants.ZERO)
+                .like("a.start_time",DateUtil.getCurrDate())
+                .orderByAsc("a.start_time")
+        );
+        this.dealMeetingStatus(meetingList);
+        response.setMeetingListResponseList(meetingList);
+        return response;
+    }
+
+
+    public void dealMeetingStatus(List<MeetingListResponse> meetingResponseList){
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(meetingResponseList)){
+            String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
+            String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.SOON_START).getCode();
+            Integer minute = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120;
+            for (MeetingListResponse m:meetingResponseList) {
+                if(Constants.equalsInteger(m.getStatus(),Constants.ZERO)&&Constants.equalsInteger(m.getMeetingStatus(),Constants.ONE)){
+                    //寮�濮嬪墠120鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮�
+                    if(DateUtil.afterMinutesDate(m.getStartTime(),-minute).getTime()>System.currentTimeMillis()){
+                        m.setMeetingStatus(4);
+                    }
+                }
+                m.setPrefixUrl(path);
+            }
+        }
+    }
+
+
     /**
      * 瀹氭椂鍙戦�佷細璁� 鍗冲皢寮�濮嬮�氱煡
      */

--
Gitblit v1.9.3