From f63d3a3be83fea258e7920efccd2567b6a511bb3 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 16 一月 2025 16:52:46 +0800 Subject: [PATCH] 最新版本541200007 --- server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java | 95 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 82 insertions(+), 13 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 fb8804e..abe4c42 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 @@ -49,6 +49,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.awt.print.Book; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; @@ -853,15 +854,21 @@ * @return */ @Override - public List<Bookings> getMyBookings(Integer userId, String dateMsg) { - return bookingsMapper.selectList(new QueryWrapper<Bookings>() - .apply(" id in ( select u.OBJ_ID from meeting_user_rel u where u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 1 ) ") - .eq("ISDELETED",MeetConstants.ZERO) + public List<Bookings> getMyBookings(Integer userId, String dateMsg,Integer queryType) { + if(queryType==null ){ + queryType =1; + } + return bookingsMapper.selectJoinList(Bookings.class,new MPJLambdaWrapper<Bookings>() + .selectAll(Bookings.class) + .leftJoin(Rooms.class,Rooms::getId,Bookings::getRoomId) + .exists(queryType!=3,"( select u.OBJ_ID from meeting_user_rel u where u.OBJ_ID =t.id and u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 1 ) ") + .exists(queryType==3,"( select u.OBJ_ID from meeting_user_rel u where u.OBJ_ID =t1.id and u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 0 ) ") + .eq(Bookings::getIsdeleted,MeetConstants.ZERO) + .eq(Rooms::getIsdeleted,MeetConstants.ZERO) + .eq(Rooms::getStatus,MeetConstants.ZERO) // .eq("STATUS",MeetConstants.ZERO) - .apply(" ROOM_ID in ( select r.id from meeting_rooms r where r.ISDELETED = 0 and r.STATUS = 0 )") - .like(StringUtils.isNotBlank(dateMsg), "START_TIME", dateMsg)); + .like(StringUtils.isNotBlank(dateMsg), Bookings::getStartTime, dateMsg)); } - /** * 鎴戠殑棰勭害/鎴戠殑浼氳 @@ -869,20 +876,81 @@ * @param pageWrap * @return */ + public IPage<Bookings> getMyMeetingPageNew(PageWrap<Bookings> pageWrap) { + IPage<Bookings> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + MPJLambdaWrapper<Bookings> queryWrapper = new MPJLambdaWrapper<>(); + Utils.MP.blankToNull(pageWrap.getModel()); + + queryWrapper.selectAll(Bookings.class); + 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_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); + queryWrapper.orderByDesc(Bookings::getCreateDate); + queryWrapper.eq(Bookings::getIsdeleted, MeetConstants.ZERO); + queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getRoomsName()), + j -> j.like(Bookings::getName,pageWrap.getModel().getRoomsName()).or().like(Rooms::getName, pageWrap.getModel().getRoomsName())) + .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.ONE) && !Objects.isNull(pageWrap.getModel().getUserId()), + " select u.id from meeting_user_rel u where t.id = u.OBJ_ID and u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and u.OBJ_TYPE = 1 ") + .eq(pageWrap.getModel().getQueryType().equals(MeetConstants.TWO) + && !Objects.isNull(pageWrap.getModel().getUserId()), Bookings::getCreator, pageWrap.getModel().getUserId()) + .like(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()), Bookings::getStartTime, pageWrap.getModel().getQueryDate()) + .eq(!Objects.isNull(pageWrap.getModel().getRoomsId()), Bookings::getRoomId, pageWrap.getModel().getRoomsId()) + .apply(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.ONE), + " now() < t.END_TIME and t.STATUS = 0 ") + .and(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.TWO), + j -> j.apply("now() >= t.END_TIME ").or() + .eq(" t.STATUS", MeetConstants.ONE)) + .eq(Rooms::getIsdeleted,MeetConstants.ZERO) + .eq(Rooms::getStatus,MeetConstants.ZERO) + .eq(Bookings::getIsdeleted,MeetConstants.ZERO) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE), + " ( now() < t.START_TIME and t.status = 0 ) " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.TWO), + " ( now() >= t.START_TIME and t.END_TIME >= now() and t.status = 0 ) " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.THREE), + " ( ( now() >t.END_TIME and t.`STATUS` = 0 ) or t.`STATUS` = 2 ) " + ) + .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FOUR), + " now() < t.START_TIME AND SUBDATE( t.START_TIME, INTERVAL 120 MINUTE ) < NOW() " + ) + .eq(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) + &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FIVE), + Bookings::getStatus,MeetConstants.ONE + ) + .orderByDesc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.TWO),Bookings::getCreateDate) + .orderByAsc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.ONE),Bookings::getStartTime); + + IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper); + return result; + } @Override public IPage<MeetingListResponse> getMyMeetingPage(PageWrap<MeetingPageRequest> pageWrap) { 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())) + 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 ") + " 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 ") + .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.THREE) && !Objects.isNull(pageWrap.getModel().getUserId()), + " select 1 from meeting_user_rel u where b.id = u.OBJ_ID and u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 0 ")//绠$悊鍛樻煡鐪� .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), + .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) @@ -911,7 +979,8 @@ // .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"); + .orderByAsc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.ONE) + || Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.THREE),"a.START_TIME"); IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), queryWrapper); this.dealMeetingStatus(page.getRecords()); -- Gitblit v1.9.3