| | |
| | | import com.doumee.service.business.ProjectsService; |
| | | import com.doumee.service.system.SystemUserService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | * @date 2023/05/04 18:18 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class BookingsServiceImpl implements BookingsService { |
| | | |
| | | @Value("${des_pwd}") |
| | |
| | | //参会人员列表 |
| | | MPJLambdaWrapper<UserRel> urquery = new MPJLambdaWrapper<>(); |
| | | urquery.selectAll(UserRel.class); |
| | | urquery.eq(UserRel::getObjType, MeetConstants.ONE); |
| | | urquery.eq(UserRel::getIsdeleted, MeetConstants.ZERO); |
| | | urquery.eq(UserRel::getObjId, s.getId()); |
| | | urquery.select("(select REALNAME from system_user s where t.USER_ID = s.id and s.DELETED = 0 ) as realName"); |
| | | List<UserRel> userrelList = userRelJoinMapper.selectJoinList(UserRel.class, urquery); |
| | | s.setSysList(userrelList); |
| | | //会议室管理员 |
| | | MPJLambdaWrapper<UserRel> param = new MPJLambdaWrapper<>(); |
| | | urquery.selectAll(UserRel.class); |
| | | urquery.eq(UserRel::getObjType, MeetConstants.ZERO); |
| | | urquery.eq(UserRel::getIsdeleted, MeetConstants.ZERO); |
| | | urquery.eq(UserRel::getObjId, s.getRoomId()); |
| | | List<UserRel> adminList = userRelJoinMapper.selectJoinList(UserRel.class, urquery); |
| | | s.setAdminList(adminList); |
| | | |
| | | //服务项 |
| | | //查询是否有权限 |
| | | s.setHasRole(getHasRoleByParam(s,userInfo,adminList)); |
| | | /* //服务项 |
| | | MPJLambdaWrapper<ProjectRel> prquery = new MPJLambdaWrapper<>(); |
| | | prquery.selectAll(ProjectRel.class); |
| | | prquery.eq(ProjectRel::getIsdeleted, MeetConstants.ZERO); |
| | | prquery.eq(ProjectRel::getObjId, s.getId()); |
| | | 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); |
| | | s.setProjectList(prList);*/ |
| | | |
| | | s.setFlag(MeetConstants.ZERO); |
| | | if (System.currentTimeMillis() > s.getStartTime().getTime()) { |
| | |
| | | }); |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | public int getHasRoleByParam(Bookings s,LoginUserInfo userInfo,List<UserRel> adminList){ |
| | | if(Constants.equalsInteger(userInfo.getId(),s.getCreator()) ){ |
| | | return 1; |
| | | } |
| | | if(adminList!=null){ |
| | | for(UserRel u : adminList){ |
| | | if(Constants.equalsInteger(userInfo.getId(),u.getUserId()) ){ |
| | | return 1; |
| | | } |
| | | } |
| | | } |
| | | return 0; |
| | | } |
| | | private void dealMeetingStatusByModel(Bookings s,Integer minute) { |
| | | //会议状态: 1=未开始;2=进行中;3=已结束 ; 4=即将开始; 5=已撤销 |
| | | //status状态 0已预约 1已撤销 2已结束 |
| | |
| | | .eq(UserRel::getObjType,Constants.ZERO) |
| | | .eq(UserRel::getUserId,businessOverDTO.getUserId())); |
| | | |
| | | if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) { |
| | | if (!Constants.equalsInteger(bookings.getCreator(),businessOverDTO.getUserId()) && userRelList <= 0) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "非你的预约记录,无法进行该操作"); |
| | | } |
| | | if(!Constants.equalsInteger(bookings.getStatus(),Constants.ZERO)){ |
| | |
| | | bookings.setEditDate(new Date()); |
| | | bookings.setEditor(businessOverDTO.getUserId()); |
| | | bookingsMapper.updateById(bookings); |
| | | /* //更新已结束但未结束的会议信息为已结束 |
| | | //更新已结束但未结束的会议信息为已结束 |
| | | bookingsMapper.update(null,new UpdateWrapper<Bookings>() |
| | | .lambda() |
| | | .set(Bookings::getStatus,Constants.TWO) |
| | |
| | | .apply(" ( END_TIME < now() or ( END_TIME > now() and START_TIME < now() and START_TIME_REAL is null ) )") |
| | | .eq(Bookings::getStatus,Constants.ZERO) |
| | | .eq(Bookings::getRoomId,bookings.getRoomId()) |
| | | );*/ |
| | | ); |
| | | |
| | | } |
| | | |
| | |
| | | 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) |
| | | .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); |
| | | response.setMeetingListResponseList(meetingList);*/ |
| | | |
| | | MPJLambdaWrapper<Bookings> queryWrapper = new MPJLambdaWrapper<Bookings>() |
| | | .selectAll(Bookings.class) |
| | | .selectAs(Rooms::getName, Bookings::getRoomName) |
| | |
| | | .leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId) |
| | | .leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator) |
| | | .eq(Bookings::getIsdeleted, MeetConstants.ZERO) |
| | | .eq(Bookings::getId, MeetConstants.ZERO) |
| | | .eq(Bookings::getStatus, MeetConstants.ZERO) |
| | | .eq(Rooms::getId, rooms.getId()) |
| | | .apply("to_days(t.start_time) = to_days(now())")//子查询当天的 |
| | | .orderByDesc(Bookings::getStartTime); |
| | | .apply("to_days(t.start_time) = to_days(now()) and t.end_time > now()")//子查询当天的 |
| | | .orderByAsc(Bookings::getStartTime); |
| | | Integer minute =getNearStartMinut(); |
| | | List<Bookings> meetingList =bookingsMapper.selectJoinList(Bookings.class,queryWrapper); |
| | | List<MeetingListResponse> rList= new ArrayList<>(); |
| | | if(meetingList!=null){ |
| | | response.setMeetingListResponseList(new ArrayList<>()); |
| | | log.error(JSONObject.toJSONString(meetingList)); |
| | | for(Bookings s : meetingList){ |
| | | dealMeetingStatusByModel(s,minute); |
| | | MeetingListResponse d = new MeetingListResponse(); |
| | |
| | | d.setMeetingName(s.getName()); |
| | | d.setRemark(s.getRemark()); |
| | | d.setStartTime(s.getStartTime()); |
| | | response.getMeetingListResponseList().add(d); |
| | | rList.add(d); |
| | | } |
| | | } |
| | | response.setMeetingListResponseList(rList); |
| | | return response; |
| | | } |
| | | |