| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.dao.MemberMapper; |
| | | import com.doumee.dao.business.dao.UserActionMapper; |
| | | import com.doumee.service.business.third.model.LoginUserInfo; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.core.utils.*; |
| | | import com.doumee.core.wx.MeetConstants; |
| | | import com.doumee.core.wx.SendWxMessage; |
| | |
| | | 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}") |
| | |
| | | |
| | | @Autowired |
| | | private RoomsMapper roomsMapper; |
| | | @Autowired |
| | | private UserActionMapper userActionMapper; |
| | | @Autowired |
| | | private ProjectRelJoinMapper projectRelJoinMapper; |
| | | @Autowired |
| | |
| | | this.sendNotice(bookings, MeetConstants.TWO); |
| | | SystemUser systemUser = systemUserMapper.selectById(user.getId()); |
| | | this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO); |
| | | //创建会议即将到期与会议即将结束的通知 |
| | | if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){ |
| | | WxPlatNotice wxPlatNotice = new WxPlatNotice(); |
| | | wxPlatNotice.createBeginWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid()); |
| | | wxPlatNotice.createEndWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid()); |
| | | } |
| | | } |
| | | |
| | | return bookings.getId(); |
| | |
| | | |
| | | @Override |
| | | public void deleteById(Integer id,LoginUserInfo user) { |
| | | Bookings model = bookingsMapper.selectById(id); |
| | | if(model==null ||Constants.equalsInteger(Constants.ONE,model.getIsdeleted())) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | |
| | | Date date = new Date(); |
| | | Bookings bookings = new Bookings(); |
| | | bookings.setId(id); |
| | | bookings.setIsdeleted(MeetConstants.ONE); |
| | | bookings.setEditDate(new Date()); |
| | | bookings.setEditDate(date); |
| | | bookings.setEditor(user.getId()); |
| | | bookingsMapper.updateById(bookings); |
| | | |
| | | String[] params = new String[3]; |
| | | params[0] = user.getRealname(); |
| | | params[1]=DateUtil.getPlusTime2(date); |
| | | params[2]=model.getName()+"-【会议室:"+model.getRoomName()+" 】-【时间:"+DateUtil.getPlusTime2(model.getStartTime())+"-"+DateUtil.getPlusTime2(model.getEndTime())+"】"; |
| | | String info = Constants.UserActionType.MEET_BOOK_DEL.getInfo(); |
| | | if(params!=null){ |
| | | for (int i = 0; i < params.length; i++) { |
| | | info = info.replace("${param"+(i+1)+"}",params[i]); |
| | | } |
| | | } |
| | | UserAction userAction=new UserAction(); |
| | | userAction.setIsdeleted(Constants.ZERO); |
| | | userAction.setCreateDate(date); |
| | | userAction.setCreator(user.getId()); |
| | | userAction.setBeforeStatus(Constants.ZERO); |
| | | userAction.setType( Constants.UserActionType.MEET_BOOK_DEL.getKey()); |
| | | userAction.setContent(JSONObject.toJSONString(model)); |
| | | userAction.setRemark(info); |
| | | userAction.setMemberId(id+""); |
| | | userActionMapper.insert(userAction); |
| | | } |
| | | |
| | | @Override |
| | |
| | | this.sendNotice(bookings, MeetConstants.TWO); |
| | | SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator()); |
| | | this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO); |
| | | if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){ |
| | | WxPlatNotice wxPlatNotice = new WxPlatNotice(); |
| | | wxPlatNotice.createBeginWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid()); |
| | | wxPlatNotice.createEndWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid()); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | 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.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); |
| | |
| | | SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); |
| | | SimpleDateFormat format1 = new SimpleDateFormat("HH:mm"); |
| | | IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper); |
| | | Integer minute =getNearStartMinut(); |
| | | result.getRecords().stream().forEach(s -> { |
| | | |
| | | if(s.getMeetingStatus().equals(Constants.ZERO)){ |
| | | if(s.getMeetingStatus()==Constants.ONE){ |
| | | //开始前120分钟 大于当前时间 则显示即将开始 |
| | | if(DateUtil.afterMinutesDate(s.getStartTime(),-120).getTime()>System.currentTimeMillis()){ |
| | | s.setMeetingStatus(4); |
| | | } |
| | | } |
| | | } |
| | | dealMeetingStatusByModel(s,minute); |
| | | MPJLambdaWrapper<Multifile> bookquery = new MPJLambdaWrapper<>(); |
| | | bookquery.eq(Multifile::getIsdeleted, MeetConstants.ZERO); |
| | | bookquery.eq(Multifile::getObjId, s.getId()); |
| | |
| | | //参会人员列表 |
| | | 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已结束 |
| | | if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){ |
| | | //已撤销 |
| | | s.setMeetingStatus(Constants.FIVE); |
| | | }else if(Constants.equalsInteger(s.getStatus(),Constants.TWO)){ |
| | | //已结束 |
| | | s.setMeetingStatus(Constants.THREE); |
| | | }else if(Constants.equalsInteger(s.getStatus(),Constants.ZERO)){ |
| | | //0已预约 |
| | | if(s.getStartTimeReal() ==null){ |
| | | //如果未开始 |
| | | s.setMeetingStatus(Constants.ONE); |
| | | //开始前120分钟 大于当前时间 则显示即将开始 |
| | | if(DateUtil.afterMinutesDate(s.getStartTime(),-minute).getTime()<=System.currentTimeMillis() ){ |
| | | s.setMeetingStatus(Constants.FOUR);//则显示即将开始 |
| | | } |
| | | }else{ |
| | | //会议中 |
| | | s.setMeetingStatus(Constants.TWO); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | * @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)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 我的预约/我的会议 |
| | |
| | | * @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) |
| | |
| | | // .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()); |
| | |
| | | if (System.currentTimeMillis() < bookings.getStartTimeReal().getTime()) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "会议未开始,无法进行结束,如需该操作请使用取消功能"); |
| | | } |
| | | if (System.currentTimeMillis() > bookings.getEndTime().getTime()) { |
| | | /*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(), "本次操作失败,会议状态已流转"); |
| | | } |
| | |
| | | .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) |
| | |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public RoomDetailResponse getRoomDetail(Integer roomId){ |
| | |
| | | String prefix = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.MEET_CODE_PREFIX).getCode() ; |
| | | response.setPrefix(prefix); |
| | | |
| | | String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH) |
| | | .getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); |
| | | 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(); |
| | | String localPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_LOCAL_RESOURCE_PATH) |
| | | .getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); |
| | | for (Multifile multifile:multifileList) { |
| | |
| | | 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) |
| | | .selectAs(Rooms::getImgurl, Bookings::getImgurl) |
| | | .selectAs(Rooms::getFileType, Bookings::getFileType) |
| | | .selectAs(SystemUser::getRealname, Bookings::getRealName) |
| | | .leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId) |
| | | .leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator) |
| | | .eq(Bookings::getIsdeleted, MeetConstants.ZERO) |
| | | .eq(Bookings::getStatus, MeetConstants.ZERO) |
| | | .eq(Rooms::getId, rooms.getId()) |
| | | .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){ |
| | | log.error(JSONObject.toJSONString(meetingList)); |
| | | for(Bookings s : meetingList){ |
| | | dealMeetingStatusByModel(s,minute); |
| | | MeetingListResponse d = new MeetingListResponse(); |
| | | d.setId(s.getId()); |
| | | d.setRoomName(s.getRoomName()); |
| | | d.setBookingUser(s.getRealName()); |
| | | d.setMeetingStatus(s.getMeetingStatus()); |
| | | d.setPrefixUrl(path); |
| | | d.setImgUrl(s.getImgurl()); |
| | | d.setFileType(s.getFileType()); |
| | | d.setMeetingDate(DateUtil.getShortTime(s.getStartTime()));// |
| | | //CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime |
| | | d.setMeetingTime(DateUtil.formatDate(s.getStartTime(),"HH:mm")+"~"+DateUtil.formatDate(s.getEndTime(),"HH:mm")); |
| | | d.setMeetingName(s.getName()); |
| | | d.setRemark(s.getRemark()); |
| | | d.setStartTime(s.getStartTime()); |
| | | rList.add(d); |
| | | } |
| | | } |
| | | response.setMeetingListResponseList(rList); |
| | | return response; |
| | | } |
| | | |
| | | private Integer getNearStartMinut() { |
| | | String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.EARLY_START).getCode(); |
| | | try { |
| | | return StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | return 120; |
| | | } |
| | | |
| | | |
| | |
| | | smsEmail.setStatus(Constants.TWO);// |
| | | smsEmail.setIsdeleted(Constants.ZERO); |
| | | smsEmail.setType(Constants.ZERO); |
| | | smsEmail.setObjType(Constants.FIVE.toString()); |
| | | smsEmail.setObjId(bookings.getId()); |
| | | smsEmail.setCreateDate(new Date()); |
| | | smsEmail.setTitle("会议室申请参会通知"); |