From bc2cda03481cd62a1b04959d2653678053e60b18 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期五, 31 五月 2024 18:23:35 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit --- server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java | 137 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 107 insertions(+), 30 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 7e56c59..5c94572 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 @@ -27,9 +27,11 @@ import com.doumee.dao.system.dto.UserStatisticsDTO; import com.doumee.dao.system.join.NoticesJoinMapper; import com.doumee.dao.system.model.*; +import com.doumee.dao.system.vo.UserResponse; import com.doumee.dao.system.vo.UserStatisticsVo; import com.doumee.dao.web.request.BookingsRequest; import com.doumee.dao.web.request.MeetingPageRequest; +import com.doumee.dao.web.request.UserPageRequest; import com.doumee.dao.web.response.*; import com.doumee.service.business.BookingsService; import com.doumee.service.business.DevicesService; @@ -46,6 +48,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; @@ -71,6 +74,7 @@ private SystemUserMapper systemUserMapper; @Autowired private RoomRecordMapper roomRecordMapper; + @Autowired private BookingsJoinMapper bookingsJoinMapper; @@ -120,7 +124,7 @@ @Override @Transactional(rollbackFor = {BusinessException.class, Exception.class}) public Integer create(Bookings bookings) { - LoginUserInfo user = new LoginUserInfo(); + LoginUserInfo user = bookings.getLoginUserInfo(); user.setId(bookings.getCreator()); isCreateParamValid(bookings, user); bookings.setCreateDate(new Date()); @@ -299,8 +303,7 @@ } @Override - public void deleteById(Integer id) { - LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + public void deleteById(Integer id,LoginUserInfo user) { Bookings bookings = new Bookings(); bookings.setId(id); bookings.setIsdeleted(MeetConstants.ONE); @@ -310,14 +313,13 @@ } @Override - public void delete(Bookings bookings) { + public void delete(Bookings bookings,LoginUserInfo user) { UpdateWrapper<Bookings> deleteWrapper = new UpdateWrapper<>(bookings); bookingsMapper.delete(deleteWrapper); } @Override - public void deleteByIdInBatch(List<Integer> ids) { - LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + public void deleteByIdInBatch(List<Integer> ids,LoginUserInfo user) { if (CollectionUtils.isEmpty(ids)) { return; } @@ -349,8 +351,7 @@ if(dbBookings.getStatus().equals(MeetConstants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏈鎿嶄綔澶辫触,棰勭害鐘舵�佸凡娴佽浆"); } - LoginUserInfo user = new LoginUserInfo(); - user.setId(bookings.getCreator()); + LoginUserInfo user = bookings.getLoginUserInfo(); isCreateParamValid(bookings, user); bookings.setEditDate(new Date()); bookings.setEditor(user.getId()); @@ -385,6 +386,9 @@ @Override public void cancelById(Bookings bs) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(user == null){ + user = bs.getLoginUserInfo(); + } /* if(Objects.isNull(bookings)||bookings.getId()==null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); @@ -452,14 +456,11 @@ queryWrapper.selectAll(Bookings.class); queryWrapper.selectAs(Rooms::getName, Bookings::getRoomName); queryWrapper.selectAs(SystemUser::getRealname, Bookings::getRealName); - queryWrapper.selectAs(SystemDepartment::getName, Bookings::getDepartmentName); + queryWrapper.selectAs(Company::getName, Bookings::getDepartmentName); queryWrapper.leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId); queryWrapper.leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator); - - queryWrapper.leftJoin(SystemDepartmentUser.class, SystemDepartmentUser::getUserId, Bookings::getCreator); - queryWrapper.leftJoin(SystemDepartment.class, SystemDepartment::getId, SystemDepartmentUser::getDepartmentId); - + queryWrapper.leftJoin(Company.class,Company::getId,SystemUser::getCompanyId); queryWrapper.orderByDesc(Bookings::getCreateDate); queryWrapper.eq(Bookings::getIsdeleted, MeetConstants.ZERO); @@ -467,7 +468,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, SystemDepartment::getId, pageWrap.getModel().getDepartmentId()); + queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, SystemUser::getId, pageWrap.getModel().getDepartmentId()); if (pageWrap.getModel().getStartTime() != null) { queryWrapper.ge(Bookings::getStartTime, pageWrap.getModel().getStartTime()); @@ -490,7 +491,7 @@ List<Multifile> filelist = multifileJoinMapper.selectList(bookquery); filelist.stream().forEach(a -> { if (StringUtils.isNotBlank(a.getFileurl())) { - a.setFileFullUrl(path + a.getFileurl()); + a.setFileurlFull(path + a.getFileurl()); } }); s.setFileList(filelist); @@ -513,7 +514,7 @@ prquery.selectAll(ProjectRel.class); prquery.eq(ProjectRel::getIsdeleted, MeetConstants.ZERO); prquery.eq(ProjectRel::getObjId, s.getId()); - prquery.select("(select p.name from projects p where t.PROJECT_ID = p.id and p.ISDELETED = 0 ) as projectName"); + prquery.select("(select p.name from meeting_projects p where t.PROJECT_ID = p.id and p.ISDELETED = 0 ) as projectName"); List<ProjectRel> prList = projectRelJoinMapper.selectJoinList(ProjectRel.class, prquery); s.setProjectList(prList); @@ -533,11 +534,10 @@ queryWrapper.selectAll(Bookings.class); queryWrapper.selectAs(Rooms::getName, Bookings::getRoomName); queryWrapper.selectAs(SystemUser::getRealname, Bookings::getRealName); - queryWrapper.selectAs(SystemDepartment::getName, Bookings::getDepartmentName); + queryWrapper.selectAs(Company::getName, Bookings::getDepartmentName); queryWrapper.leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId); queryWrapper.leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator); - queryWrapper.leftJoin(SystemDepartmentUser.class, SystemDepartmentUser::getUserId, Bookings::getCreator); - queryWrapper.leftJoin(SystemDepartment.class, SystemDepartment::getId, SystemDepartmentUser::getDepartmentId); + queryWrapper.leftJoin(Company.class,Company::getId,SystemUser::getCompanyId); queryWrapper.eq(Bookings::getIsdeleted, MeetConstants.ZERO); queryWrapper.eq(queryParam.getId() != null, Bookings::getId, queryParam.getId()); queryWrapper.eq(queryParam.getRoomId() != null, Bookings::getRoomId, queryParam.getRoomId()); @@ -561,7 +561,7 @@ List<Multifile> filelist = multifileJoinMapper.selectList(bookquery); filelist.stream().forEach(a -> { if (StringUtils.isNotBlank(a.getFileurl())) { - a.setFileFullUrl(path + a.getFileurl()); + a.setFileurlFull(path + a.getFileurl()); } }); result.setFileList(filelist); @@ -744,7 +744,7 @@ @Override public List<Bookings> getMyBookings(Integer userId, String dateMsg) { return bookingsMapper.selectList(new QueryWrapper<Bookings>() - .apply(" id in ( select u.OBJ_ID from user_rel u where u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 1 ) ") + .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) // .eq("STATUS",MeetConstants.ZERO) .apply(" ROOM_ID in ( select r.id from rooms r where r.ISDELETED = 0 and r.STATUS = 0 )") @@ -765,7 +765,7 @@ 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 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 ") .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()) @@ -782,9 +782,49 @@ 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()){ + i.setMeetingStatus(4); + } + } + + } + }); return page; } + + + @Override + public MeetingDetailResponse getMeetingDetailByDate(Bookings bean){ + try { + if(Objects.isNull(bean) + || Objects.isNull(bean.getRoomId()) + || Objects.isNull(bean.getStartTime()) + || Objects.isNull(bean.getEndTime())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Bookings bookings = bookingsMapper.selectOne(new QueryWrapper<Bookings>().lambda() + .eq(Bookings::getRoomId,bean.getRoomId()) + .ge(Bookings::getEndTime,DateUtil.getPlusTime(bean.getEndTime())) + .le(Bookings::getStartTime,DateUtil.getPlusTime(bean.getStartTime())) + ); + if(Objects.isNull(bookings)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + return getMeetingDetail(bookings.getId()); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + + /** * 浼氳璇︽儏 @@ -807,9 +847,10 @@ )); //鍙備細浜哄憳鍒楄〃 - SystemUser param = new SystemUser(); - List<SystemUser> userResponseList = systemUserService.findList(param); - String avatarPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.MEMBER_IMG).getCode(); + + 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(); userResponseList.forEach(i -> { if(StringUtils.isNotBlank(i.getAvatar())){ i.setAvatar(avatarPath+i.getAvatar()); @@ -817,7 +858,8 @@ }); meetingDetailResponse.setUserResponseList(userResponseList); //鏈嶅姟椤� - String projectsPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); + String projectsPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); List<ProjectsResponse> projectsResponseList = projectsService.getProjectsList(id, MeetConstants.ONE); projectsResponseList.forEach(i -> { i.setPrefixUrl(projectsPath); @@ -828,7 +870,7 @@ .eq("OBJ_TYPE", MeetConstants.ZERO) ); multiFileList.forEach(i -> { - i.setFileFullUrl(projectsPath); + i.setFileurlFull(projectsPath); }); //闄勪欢淇℃伅 meetingDetailResponse.setMultiFileList(multiFileList); @@ -893,6 +935,7 @@ * @param userId */ @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void reservationCancel(Integer id, Integer userId) { Bookings bookings = bookingsMapper.selectById(id); if (Objects.isNull(bookings)) { @@ -996,7 +1039,7 @@ lambdaWrapper.selectAll(Bookings.class) .selectAs(SystemUser::getRealname, Bookings::getRealName) - .selectAs(SystemDepartment::getName, Bookings::getDepartmentName) + .selectAs(Company::getName, Bookings::getDepartmentName) .selectAs(Rooms::getName, Bookings::getRoomName) .select("CASE DAYOFWEEK(t.START_TIME)\n" + "\tWHEN 1 THEN \t\"鏄熸湡鏃" \tWHEN 2 THEN \"鏄熸湡涓�\"\n" + @@ -1010,8 +1053,7 @@ // .leftJoin(RoomTime.class, RoomTime::getId, BookingTime::getTimeId) .leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator) .leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId) - .leftJoin(SystemDepartmentUser.class, SystemDepartmentUser::getUserId, Bookings::getCreator) - .leftJoin(SystemDepartment.class, SystemDepartment::getId, SystemDepartmentUser::getDepartmentId) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) .eq(Objects.nonNull(roomId), Bookings::getRoomId, roomId) .eq(Bookings::getIsdeleted, MeetConstants.ZERO) .eq(Bookings::getStatus, MeetConstants.ZERO) @@ -1082,5 +1124,40 @@ return PageData.from(userStatistics); } + /** + * 鏌ヨ鍙備細浜哄憳鍒嗛〉 + * @param pageWrap + * @return + */ + @Override + public IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap) { + IPage<UserResponse> page = systemUserMapper.getUserPage(pageWrap.toPage(),new QueryWrapper<UserResponse>() + .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()), i -> i.like("c.realName", pageWrap.getModel().getKeyword()) + .or().like("e.name", pageWrap.getModel().getKeyword()) + ) + .eq("c.DELETED",0) + .eq("c.status",0) + .orderByAsc("c.id") + ); + String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + //鏌ヨ鏄惁澶勪簬浼氳涓� + page.getRecords().forEach(j->{ + j.setPrefixUrl(path); + if(bookingsMapper.selectCount(new QueryWrapper<Bookings>() + .exists(" select 1 from meeting_user_rel u where u.OBJ_ID = bookings.id and u.USER_ID = '"+j.getId()+"' and u.OBJ_TYPE = 1 ") + .and(i -> i.between("START_TIME", pageWrap.getModel().getStartTime()+":00",pageWrap.getModel().getEndTime()+":00") + .or().between("END_TIME", pageWrap.getModel().getStartTime()+":00",pageWrap.getModel().getEndTime()+":00") + ) + )>Constants.ZERO){ + j.setStatus(Constants.ONE); + }else{ + j.setStatus(Constants.ZERO); + } + }); + return page; + } + + } -- Gitblit v1.9.3