From ca133ed72b297141f906810f81413e15d3d66333 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 03 七月 2024 18:24:37 +0800 Subject: [PATCH] 代码初始化 --- server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java | 176 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 131 insertions(+), 45 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 d9f45e3..4baca41 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 @@ -16,6 +16,7 @@ import com.doumee.core.utils.Utils; import com.doumee.core.wx.MeetConstants; import com.doumee.core.wx.SendWxMessage; +import com.doumee.dao.admin.request.BusinessOverDTO; import com.doumee.dao.admin.request.QrOpenDoorDto; import com.doumee.dao.admin.response.DevWgResponseParam; import com.doumee.dao.business.*; @@ -188,6 +189,7 @@ bookquery.selectAs(BookingTime::getTimeId, Bookings::getRoomTimeId); bookquery.selectAs(BookingTime::getId, Bookings::getBookingTimeId); bookquery.eq(Bookings::getIsdeleted, MeetConstants.ZERO); + bookquery.eq(BookingTime::getIsdeleted, MeetConstants.ZERO); bookquery.eq(Bookings::getRoomId, bookings.getRoomId()); bookquery.eq(Bookings::getStatus, MeetConstants.ZERO); //bookquery.ge(Bookings::getStartTime, bookings.getStartTime()); @@ -251,14 +253,13 @@ bookings.getBookingTimeList().stream().forEach(s -> { + s.setId(null); s.setCreator(user.getId()); s.setCreateDate(new Date()); s.setIsdeleted(MeetConstants.ZERO); s.setBookingId(bookings.getId()); bookingTimeJoinMapper.insert(s); }); - - } public void updateManager(Bookings bookings, LoginUserInfo user) { @@ -271,16 +272,18 @@ userRel.setIsdeleted(MeetConstants.ONE); userRelJoinMapper.update(userRel, updateWrapper); } - bookings.getSysList().stream().forEach(s -> { - s.setIsdeleted(MeetConstants.ZERO); - s.setCreateDate(new Date()); - s.setCreator(user.getId()); - s.setUserId(s.getUserId()); - s.setObjId(bookings.getId()); - s.setObjType(MeetConstants.ONE); - userRelJoinMapper.insert(s); - }); - + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(bookings.getSysList())){ + bookings.getSysList().stream().forEach(s -> { + s.setId(null); + s.setIsdeleted(MeetConstants.ZERO); + s.setCreateDate(new Date()); + s.setCreator(user.getId()); + s.setUserId(s.getUserId()); + s.setObjId(bookings.getId()); + s.setObjType(MeetConstants.ONE); + userRelJoinMapper.insert(s); + }); + } } public void updateProjectRel(Bookings rooms, LoginUserInfo user) { @@ -294,7 +297,7 @@ projectRelJoinMapper.update(projectRel, updateWrapper); rooms.getProjectList().stream().forEach(s -> { - + s.setId(null); s.setIsdeleted(MeetConstants.ZERO); s.setCreateDate(new Date()); s.setCreator(user.getId()); @@ -472,7 +475,7 @@ queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()), Bookings::getName, pageWrap.getModel().getName()); 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, SystemUser::getId, pageWrap.getModel().getDepartmentId()); + queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, Company::getId, pageWrap.getModel().getDepartmentId()); if (pageWrap.getModel().getStartTime() != null) { queryWrapper.ge(Bookings::getStartTime, pageWrap.getModel().getStartTime()); @@ -489,6 +492,13 @@ SimpleDateFormat format1 = new SimpleDateFormat("HH:mm"); IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper); result.getRecords().stream().forEach(s -> { + if(s.getStartTime().getTime()>System.currentTimeMillis()&&s.getStatus().equals(Constants.ZERO)){ + s.setMeetingStatus(Constants.ONE); + }else if(s.getEndTime().getTime()<System.currentTimeMillis()||Constants.equalsInteger(s.getStatus(),Constants.ONE) || Constants.equalsInteger(s.getStatus(),Constants.TWO) ){ + s.setMeetingStatus(Constants.THREE); + }else{ + s.setMeetingStatus(Constants.TWO); + } MPJLambdaWrapper<Multifile> bookquery = new MPJLambdaWrapper<>(); bookquery.eq(Multifile::getIsdeleted, MeetConstants.ZERO); bookquery.eq(Multifile::getObjId, s.getId()); @@ -764,38 +774,59 @@ */ @Override public IPage<MeetingListResponse> getMyMeetingPage(PageWrap<MeetingPageRequest> pageWrap) { - IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), new QueryWrapper<MeetingListResponse>() + + QueryWrapper queryWrapper = new QueryWrapper<MeetingListResponse>() .and(StringUtils.isNotBlank(pageWrap.getModel().getRoomsName()), j -> j.like("a.NAME",pageWrap.getModel().getRoomsName()).or() .like(" b.NAME", pageWrap.getModel().getRoomsName())) - .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.ONE) && !Objects.isNull(pageWrap.getModel().getUserId()), - " select 1 from meeting_user_rel u where a.id = u.OBJ_ID and u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 1 ") - .eq(pageWrap.getModel().getQueryType().equals(MeetConstants.TWO) && !Objects.isNull(pageWrap.getModel().getUserId()), "a.CREATOR", pageWrap.getModel().getUserId()) - .like(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()), "a.START_TIME", pageWrap.getModel().getQueryDate()) - .eq(!Objects.isNull(pageWrap.getModel().getRoomsId()), "b.id", pageWrap.getModel().getRoomsId()) - .apply(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.ONE), " now() < a.END_TIME and a.STATUS = 0 ") - .and(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.TWO), - j -> j.apply("now() >= a.END_TIME ").or() - .eq(" a.STATUS", MeetConstants.ONE)) - .eq("b.ISDELETED",MeetConstants.ZERO) - .eq("b.STATUS",MeetConstants.ZERO) - .eq("a.ISDELETED",MeetConstants.ZERO) - .orderByDesc(!Objects.isNull(pageWrap.getModel().getStatus())&&pageWrap.getModel().getStatus().equals(MeetConstants.TWO),"a.START_TIME") - .orderByAsc(Objects.isNull(pageWrap.getModel().getStatus())||pageWrap.getModel().getStatus().equals(MeetConstants.ONE),"a.START_TIME") - ); + .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.ONE) && !Objects.isNull(pageWrap.getModel().getUserId()), + " select 1 from meeting_user_rel u where a.id = u.OBJ_ID and u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 1 ") + .eq(pageWrap.getModel().getQueryType().equals(MeetConstants.TWO) && !Objects.isNull(pageWrap.getModel().getUserId()), "a.CREATOR", pageWrap.getModel().getUserId()) + .like(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()), "a.START_TIME", pageWrap.getModel().getQueryDate()) + .eq(!Objects.isNull(pageWrap.getModel().getRoomsId()), "b.id", pageWrap.getModel().getRoomsId()) + .apply(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.ONE), " now() < a.END_TIME and a.STATUS = 0 ") + .and(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.TWO), + j -> j.apply("now() >= a.END_TIME ").or() + .eq(" a.STATUS", MeetConstants.ONE)) + .eq("b.ISDELETED",MeetConstants.ZERO) + .eq("b.STATUS",MeetConstants.ZERO) + .eq("a.ISDELETED",MeetConstants.ZERO) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE), + " now() > a.START_TIME and a.status = 0 " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.TWO), + " now() >= a.START_TIME and a.END_TIME >= now() " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.THREE), + " now() > a.END_TIME or a.status = 2 " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FOUR), + " now() > a.START_TIME and SUBDATE(NOW(), INTERVAL 120 MINUTE) > a.START_TIME " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FIVE), + " a.STATUS = 1 " + ) +// .orderByDesc(!Objects.isNull(pageWrap.getModel().getStatus())&&pageWrap.getModel().getStatus().equals(MeetConstants.TWO),"a.START_TIME") +// .orderByAsc(Objects.isNull(pageWrap.getModel().getStatus())||pageWrap.getModel().getStatus().equals(MeetConstants.ONE),"a.START_TIME") + .orderByDesc( Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.TWO),"a.CREATE_DATE") + .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.getStatus()==Constants.ONE){ - i.setMeetingStatus(5); - }else{ - //寮�濮嬪墠5鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮� - if(DateUtil.afterMinutesDate(i.getStartTime(),-5).getTime()>System.currentTimeMillis()){ + if(i.getMeetingStatus()==Constants.ONE){ + //寮�濮嬪墠120鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮� + if(DateUtil.afterMinutesDate(i.getStartTime(),-120).getTime()>System.currentTimeMillis()){ i.setMeetingStatus(4); } } - } }); @@ -934,18 +965,15 @@ /** * 浼氳棰勭害璁板綍鍙栨秷 - * - * @param id - * @param userId */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public void reservationCancel(Integer id, Integer userId) { - Bookings bookings = bookingsMapper.selectById(id); + public void reservationCancel(BusinessOverDTO businessOverDTO) { + Bookings bookings = bookingsMapper.selectById(businessOverDTO.getId()); if (Objects.isNull(bookings)) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌棰勭害璁板綍"); } - if (!bookings.getCreator().equals(userId)) { + if (!bookings.getCreator().equals(businessOverDTO.getUserId())) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜鍙栨秷"); } if (System.currentTimeMillis() > bookings.getStartTime().getTime()) { @@ -955,10 +983,11 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏈鎿嶄綔澶辫触,棰勭害鐘舵�佸凡娴佽浆"); } bookings.setCancelTime(new Date()); - bookings.setCancelUser(userId); + bookings.setCancelUser(businessOverDTO.getUserId()); + bookings.setCancelInfo(businessOverDTO.getBusinessRemark()); bookings.setStatus(MeetConstants.ONE); bookings.setEditDate(new Date()); - bookings.setEditor(userId); + bookings.setEditor(businessOverDTO.getUserId()); bookingsMapper.updateById(bookings); //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡 this.sendNotice(bookings, 3); @@ -966,6 +995,63 @@ sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); } + + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public void reservationOver(BusinessOverDTO businessOverDTO) { + if(Objects.isNull(businessOverDTO) + || Objects.isNull(businessOverDTO.getUserId()) + || 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 (System.currentTimeMillis() < bookings.getStartTime().getTime()) { + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳鏈紑濮�,鏃犳硶杩涜缁撴潫锛屽闇�璇ユ搷浣滆浣跨敤鍙栨秷鍔熻兘"); + } + if (System.currentTimeMillis() > bookings.getEndTime().getTime()) { + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸茬粨鏉燂紝鏃犳硶杩涜璇ユ搷浣�"); + } + if(!bookings.getStatus().equals(MeetConstants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏈鎿嶄綔澶辫触,浼氳鐘舵�佸凡娴佽浆"); + } + bookings.setDoneDate(new Date()); + bookings.setDoneUserId(businessOverDTO.getUserId()); + bookings.setStatus(MeetConstants.TWO); + bookings.setEditDate(new Date()); + bookings.setEditor(businessOverDTO.getUserId()); + bookingsMapper.updateById(bookings); + + //鏌ヨ鎵�鏈夌殑棰勭害鏃堕棿 + List<BookingTime> bookingTimeList = bookingTimeJoinMapper.selectJoinList(BookingTime.class, + new MPJLambdaWrapper<BookingTime>() + .selectAll(BookingTime.class) + .selectAs(RoomTime::getEndTime,BookingTime::getEndTime) + .leftJoin(RoomTime.class,RoomTime::getId,BookingTime::getTimeId) + .eq(BookingTime::getBookingId,bookings.getId())); + //鑾峰彇褰撳ぉ 鍙湁褰撳ぉ鏃ユ湡鍐呭彲浠ュ鐞� + String today = DateUtil.dateToString(new Date(),"yyyy-mm-dd"); + //寰幆鏍囪鏁版嵁涓哄凡鍒犻櫎 涓嶅啀鍗犵敤 + for (BookingTime bookingTime:bookingTimeList) { + if(DateUtil.getDateFromString(today + " " + bookingTime.getEndTime() +":00").getTime()>System.currentTimeMillis()){ + bookingTime.setIsdeleted(Constants.ZERO); + bookingTimeJoinMapper.updateById(bookingTime); + } + } + + } /** * 瀹氭椂鍙戦�佷細璁� 鍗冲皢寮�濮嬮�氱煡 @@ -1026,7 +1112,7 @@ Notices notices = new Notices(noticeObjectType,bookings.getId(),noticeObjectType.getInfo(),bookings.getCreator(), Constants.ZERO); noticeList.add(notices); if(noticeList.size()>0){ - noticesMapper.insertBatchSomeColumn(noticeList); + noticesMapper.insert(noticeList); } } -- Gitblit v1.9.3