| | |
| | | import com.doumee.dao.web.response.MeetingDetailResponse; |
| | | import com.doumee.dao.web.response.MeetingListResponse; |
| | | import com.doumee.dao.web.response.MonthDataResponse; |
| | | import com.doumee.dao.web.response.RoomDetailResponse; |
| | | import com.doumee.service.business.BookingsService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | |
| | | @PostMapping("/reservationCancel") |
| | | public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()) ; |
| | | businessOverDTO.setUserId(user.getId()); |
| | | bookingsService.reservationCancel(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("æåå¼å§ä¼è®®") |
| | | @PostMapping("/startEarly") |
| | | public ApiResponse startEarly(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ZERO); |
| | | bookingsService.startEarly(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("å¼å§ä¼è®®") |
| | | @PostMapping("/start") |
| | | public ApiResponse start(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ONE); |
| | | bookingsService.start(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.config.annotation.LoginNoRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | |
| | | import com.doumee.dao.web.response.MeetingDetailResponse; |
| | | import com.doumee.dao.web.response.MeetingListResponse; |
| | | import com.doumee.dao.web.response.MonthDataResponse; |
| | | import com.doumee.dao.web.response.RoomDetailResponse; |
| | | import com.doumee.service.business.BookingsService; |
| | | import com.doumee.service.system.SystemUserService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("æåå¼å§ä¼è®®") |
| | | @PostMapping("/startEarly") |
| | | public ApiResponse startEarly(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ZERO); |
| | | bookingsService.startEarly(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("å¼å§ä¼è®®") |
| | | @PostMapping("/start") |
| | | public ApiResponse start(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ONE); |
| | | bookingsService.start(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginNoRequired |
| | | @ApiOperation("ä¼è®®å±ä¿¡æ¯") |
| | | @GetMapping("/meetScreenData") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "roomId", value = "ä¼è®®å®¤ä¸»é®", required = true), |
| | | }) |
| | | public ApiResponse<RoomDetailResponse> meetScreenData(@RequestParam Integer roomId) { |
| | | return ApiResponse.success("æ¥è¯¢æå",bookingsService.getRoomDetail(roomId)); |
| | | } |
| | | |
| | | } |
| | |
| | | //åéä¼è®®å¼å§ 宿¶æåå¤å°åéåé |
| | | public static final String NOTICE_TIME = "NOTICE_TIME"; |
| | | public static final String SYSTEM ="SYSTEM"; |
| | | public static final String EARLY_START = "EARLY_START"; |
| | | public static final String SOON_START = "SOON_START"; |
| | | public static final String MEET_CODE_PREFIX = "MEET_CODE_PREFIX"; |
| | | |
| | | |
| | | |
| | |
| | | private String businessRemark; |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®",required = true) |
| | | private Integer userId ; |
| | | @ApiModelProperty(value = "å¼å§ç±»å 0 æåå¼å§ 1 æ£å¸¸å¼å§",required = true) |
| | | private Integer startType ; |
| | | |
| | | } |
| | |
| | | |
| | | @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," + |
| | | " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime, c.REALNAME as bookingUser ," + |
| | | " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " b.IMGURL as imgUrl ," + |
| | | " a.remark " + |
| | | " from meeting_book a inner join meeting_rooms b on a.ROOM_ID = b.ID " + |
| | |
| | | " ${ew.customSqlSegment} ") |
| | | IPage<MeetingListResponse> myMeetingPage(IPage<MeetingListResponse> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | |
| | | @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," + |
| | | " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime, c.REALNAME as bookingUser ," + |
| | | //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " b.IMGURL as imgUrl ," + |
| | | " a.remark " + |
| | | " from meeting_book a inner join meeting_rooms b on a.ROOM_ID = b.ID " + |
| | | " inner join system_user c on a.CREATOR = c.id " + |
| | | " ${ew.customSqlSegment} ") |
| | | List<MeetingListResponse> meetingList(@Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | @Select(" select a.id , a.START_TIME , a.END_TIME , b.id as roomId, b.`NAME` as roomName , a.`NAME` as meetingName ,date_format(a.START_TIME,'%Yå¹´%mæ%dæ¥') as meetingDate ," + |
| | | " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime, c.REALNAME as bookingUserName ," + |
| | | " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN a.END_TIME < now() AND a.`STATUS` = 0 THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN a.END_TIME < now() AND a.`STATUS` = 0 THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 WHEN a.END_TIME < now() AND a.`STATUS` = 0 THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " a.CONTENT as meetingContent, c.MOBILE as bookingUserMobile , e.`NAME` as bookingUserDepartment , a.CREATOR as bookingUserId , a.remark " + |
| | | " from meeting_book a inner join meeting_rooms b on a.ROOM_ID = b.ID " + |
| | | " left join system_user c on a.CREATOR = c.id " + |
| | |
| | | @ApiModelProperty(value = "忶夿³¨") |
| | | private String doneInfo; |
| | | |
| | | @ApiModelProperty(value = "æåå¼å§æ¶é´") |
| | | private Date startTimeReal; |
| | | |
| | | @ApiModelProperty(value = "é¢çº¦äºº") |
| | | @TableField(exist = false) |
| | | private String realName ; |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import cn.hutool.core.img.Img; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.model.LoginUserModel; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ExcelColumn(name="容纳人æ°") |
| | | private Integer limitNum; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶ç±»åï¼0=å¾çï¼å¤å¾ï¼ï¼1=è§é¢ï¼2=æ ") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤å¾ç") |
| | | @ExcelColumn(name="ä¼è®®å®¤å¾ç") |
| | | private String imgurl; |
| | |
| | | @TableField(exist = false) |
| | | private String imgFullUrl; |
| | | |
| | | |
| | | @ApiModelProperty(value = "éä»¶æä»¶") |
| | | @TableField(exist = false) |
| | | private List<Multifile> multifileList; |
| | | |
| | | |
| | | } |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | @ApiModelProperty(value = "ä¼è®®å¼å§æ¶é´",hidden = true) |
| | | private Date startTime; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å·²é¢çº¦ 1å·²æ¤é ",hidden = true) |
| | | @ApiModelProperty(value = "ç¶æ 0å·²é¢çº¦ 1å·²æ¤é 2å·²ç»æ",hidden = true) |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®é¢çº¦äºº") |
| | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤å¾ç") |
| | | private String imgUrl; |
| | | |
| | | @ApiModelProperty(value = "æä»¶ç±»å") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤éä»¶ä¿¡æ¯") |
| | | private List<Multifile> multifileList; |
| | | |
| | | @ApiModelProperty(value = "åç¼") |
| | | private String prefixUrl; |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:25 |
| | | */ |
| | | @Data |
| | | @ApiModel("ä¼è®®å®¤å±ä¿¡æ¯è¿åç±»") |
| | | public class RoomDetailResponse { |
| | | |
| | | @ApiModelProperty(value = "主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤åç§°") |
| | | private String roomName; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶ç±»åï¼0=å¾çï¼å¤å¾ï¼ï¼1=è§é¢ï¼2=æ ") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "äºç»´ç åç¼") |
| | | private String prefix; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶") |
| | | private List<Multifile> multifileList; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å表") |
| | | private List<MeetingListResponse> meetingListResponseList; |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.business.model.ProjectRel; |
| | | import com.doumee.dao.business.model.RoomTime; |
| | | import com.doumee.dao.business.model.UserRel; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ApiModelProperty(value = "使ç¨é¡»ç¥") |
| | | private String tips; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶ç±»åï¼0=å¾çï¼å¤å¾ï¼ï¼1=è§é¢ï¼2=æ ") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "åä¼äººå") |
| | | @TableField(exist = false) |
| | | private List<UserRel> sysList; |
| | |
| | | @ApiModelProperty(value = "æå¡é¡¹ç®") |
| | | @TableField(exist = false) |
| | | private List<ProjectRel> projectList; |
| | | |
| | | @ApiModelProperty(value = "éä»¶æä»¶") |
| | | private List<Multifile> multifileList; |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.web.response.DateTimeResourceDate; |
| | | import com.doumee.dao.web.response.MeetingDetailResponse; |
| | | import com.doumee.dao.web.response.MeetingListResponse; |
| | | import com.doumee.dao.web.response.RoomDetailResponse; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDateTime; |
| | |
| | | |
| | | /** |
| | | * ä¼è®®é¢çº¦è®°å½åæ¶ |
| | | * @param id |
| | | * @param userId |
| | | */ |
| | | void reservationCancel(BusinessOverDTO businessOverDTO); |
| | | |
| | |
| | | IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap); |
| | | |
| | | void reservationOver(BusinessOverDTO businessOverDTO); |
| | | |
| | | void start(BusinessOverDTO businessOverDTO); |
| | | |
| | | void startEarly(BusinessOverDTO businessOverDTO); |
| | | |
| | | RoomDetailResponse getRoomDetail(Integer roomId); |
| | | } |
| | |
| | | .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.getMeetingStatus()==Constants.ONE){ |
| | | //å¼å§å120åé 大äºå½åæ¶é´ åæ¾ç¤ºå³å°å¼å§ |
| | | if(DateUtil.afterMinutesDate(i.getStartTime(),-120).getTime()>System.currentTimeMillis()){ |
| | | i.setMeetingStatus(4); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }); |
| | | this.dealMeetingStatus(page.getRecords()); |
| | | return page; |
| | | } |
| | | |
| | |
| | | .eq("BOOKING_ID", id) |
| | | .eq("ISDELETED", MeetConstants.ZERO) |
| | | )); |
| | | |
| | | //åä¼äººåå表 |
| | | |
| | | 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(); |
| | |
| | | bookingTimeJoinMapper.updateById(bookingTime); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ£å¸¸å¼å§ |
| | | * @param businessOverDTO |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void start(BusinessOverDTO businessOverDTO) { |
| | | this.startEarly(businessOverDTO); |
| | | } |
| | | |
| | | /** |
| | | * æåå¼å§ |
| | | * @param businessOverDTO |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void startEarly(BusinessOverDTO businessOverDTO) { |
| | | if(Objects.isNull(businessOverDTO) |
| | | || Objects.isNull(businessOverDTO.getUserId()) |
| | | || Objects.isNull(businessOverDTO.getStartType()) |
| | | || 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(!Constants.equalsInteger(bookings.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ä¼è®®ç¶æå·²æµè½¬ï¼æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | if(Objects.nonNull(bookings.getStartTimeReal())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ä¼è®®å·²å¼å§ï¼è¯·å¿é夿ä½"); |
| | | } |
| | | if (System.currentTimeMillis() > bookings.getEndTime().getTime()) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ä¼è®®å·²ç»æï¼æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | if(Constants.equalsInteger(businessOverDTO.getStartType(),Constants.ZERO)){ |
| | | //æ ¹æ®é
ç½®è·åæåå¼å§çåéæ°é |
| | | String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.EARLY_START).getCode(); |
| | | Integer beforeMinutes = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120; |
| | | if(DateUtil.afterMinutesDate(bookings.getStartTime(),-beforeMinutes).getTime()>System.currentTimeMillis()){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼è®®ä»
å¯ä»¥æå"+beforeMinutes+"åéå¼å§"); |
| | | } |
| | | }else{ |
| | | if(bookings.getStartTime().getTime() > System.currentTimeMillis()){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªå°ä¼è®®ç³è¯·å¼å§æ¶é´ï¼æ æ³è¿è¡å¼å¯"); |
| | | } |
| | | } |
| | | bookings.setStartTimeReal(new Date()); |
| | | bookings.setEditDate(new Date()); |
| | | bookings.setEditor(businessOverDTO.getUserId()); |
| | | bookingsMapper.updateById(bookings); |
| | | //æ´æ°å·²ç»æä½æªç»æçä¼è®®ä¿¡æ¯ä¸ºå·²ç»æ |
| | | bookingsMapper.update(null,new UpdateWrapper<Bookings>() |
| | | .lambda() |
| | | .set(Bookings::getStatus,Constants.TWO) |
| | | .set(Bookings::getDoneDate,new Date()) |
| | | .apply(" END_TIME < now() ") |
| | | .eq(Bookings::getStatus,Constants.ZERO) |
| | | .eq(Bookings::getRoomId,bookings.getRoomId()) |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public RoomDetailResponse getRoomDetail(Integer roomId){ |
| | | Rooms rooms = roomsMapper.selectById(roomId); |
| | | if(Objects.isNull(rooms) || !Constants.equalsInteger(rooms.getIsdeleted(),Constants.ZERO) |
| | | || !Constants.equalsInteger(rooms.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼è®®å®¤ä¿¡æ¯æ æï¼è¯·è系管çå"); |
| | | } |
| | | RoomDetailResponse response = new RoomDetailResponse(); |
| | | response.setRoomName(rooms.getName()); |
| | | response.setFileType(rooms.getFileType()); |
| | | |
| | | List<Multifile> multifileList = multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,roomId) |
| | | .eq(Multifile::getObjType,Constants.FOUR) |
| | | ); |
| | | |
| | | String prefix = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.MEET_CODE_PREFIX).getCode() ; |
| | | response.setPrefix(prefix); |
| | | |
| | | 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(); |
| | | for (Multifile multifile:multifileList) { |
| | | multifile.setFileurlFull(path + multifile.getFileurl()); |
| | | } |
| | | 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) |
| | | .like("a.start_time",DateUtil.getCurrDate()) |
| | | .orderByAsc("a.start_time") |
| | | ); |
| | | this.dealMeetingStatus(meetingList); |
| | | response.setMeetingListResponseList(meetingList); |
| | | return response; |
| | | } |
| | | |
| | | |
| | | public void dealMeetingStatus(List<MeetingListResponse> meetingResponseList){ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(meetingResponseList)){ |
| | | String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); |
| | | String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.SOON_START).getCode(); |
| | | Integer minute = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120; |
| | | for (MeetingListResponse m:meetingResponseList) { |
| | | if(Constants.equalsInteger(m.getStatus(),Constants.ZERO)&&Constants.equalsInteger(m.getMeetingStatus(),Constants.ONE)){ |
| | | //å¼å§å120åé 大äºå½åæ¶é´ åæ¾ç¤ºå³å°å¼å§ |
| | | if(DateUtil.afterMinutesDate(m.getStartTime(),-minute).getTime()>System.currentTimeMillis()){ |
| | | m.setMeetingStatus(4); |
| | | } |
| | | } |
| | | m.setPrefixUrl(path); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 宿¶åéä¼è®® å³å°å¼å§éç¥ |
| | | */ |
| | |
| | | import com.doumee.dao.business.RoomsMapper; |
| | | import com.doumee.dao.business.join.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.request.MeetingPageRequest; |
| | | import com.doumee.dao.web.request.RoomsRequest; |
| | |
| | | private RoomsMapper roomsMapper; |
| | | @Autowired |
| | | private RoomsJoinMapper roomsJoinMapper; |
| | | @Autowired |
| | | private MultifileJoinMapper multifileJoinMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private RoomTimeJoinMapper roomTimeJoinMapper; |
| | |
| | | if (starttime.after(endtime) || starttime.equals(endtime)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æ¥æåºé´é误"); |
| | | } |
| | | |
| | | if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)&&CollectionUtils.isEmpty(rooms.getMultifileList())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æªä¸ä¼ æä»¶å¾ç"); |
| | | } |
| | | |
| | | rooms.setCreateDate(new Date()); |
| | | rooms.setIsdeleted(Constants.ZERO); |
| | |
| | | rooms.setStatus(Constants.ZERO); |
| | | rooms.setEditDate(rooms.getCreateDate()); |
| | | roomsMapper.insert(rooms); |
| | | |
| | | if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)){ |
| | | List<Multifile> multifileList = rooms.getMultifileList(); |
| | | for (Multifile multifile:multifileList) { |
| | | if(Objects.isNull(multifile) |
| | | || StringUtils.isBlank(multifile.getFileurl())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶åæ°é误"); |
| | | } |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setObjId(rooms.getId()); |
| | | multifile.setObjType(Constants.FOUR); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setCreator(user.getId()); |
| | | } |
| | | multifileJoinMapper.insert(multifileList); |
| | | } |
| | | rooms.setStartTime(rooms.getStartTime()+":00"); |
| | | rooms.setEndTime(rooms.getEndTime()+":00"); |
| | | rooms.setStartTime(DateUtil.formatDate(starttime.getTime(), "yyyy-MM-dd HH:mm:ss")); |
| | |
| | | if (StringUtils.isBlank(rooms.getName()) || |
| | | StringUtils.isBlank(rooms.getStartTime()) || |
| | | StringUtils.isBlank(rooms.getEndTime()) || |
| | | Objects.isNull(rooms.getFileType()) || |
| | | rooms.getIntervalTime() == null |
| | | ) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); |
| | |
| | | rooms.setIntervalTime(null); |
| | | } |
| | | |
| | | |
| | | rooms.setEditDate(new Date()); |
| | | rooms.setEditor(user.getId()); |
| | | |
| | | // if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)&&StringUtils.isBlank(rooms.getImgurl())){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æªä¸ä¼ æä»¶å¾ç"); |
| | | // } |
| | | // if(Constants.equalsInteger(rooms.getFileType(),Constants.TWO)){ |
| | | // rooms.setImgurl(null); |
| | | // } |
| | | |
| | | roomsMapper.update(rooms, Wrappers.<Rooms>lambdaUpdate() |
| | | .set(Rooms::getFileType, rooms.getFileType()) |
| | | .set(Rooms::getLimitNum, rooms.getLimitNum()) |
| | | .set(Rooms::getTips, rooms.getTips()) |
| | | .set(Rooms::getImgurl, rooms.getImgurl()) |
| | | .eq(Rooms::getId, rooms.getId())); |
| | | |
| | | multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,rooms.getId()) |
| | | .eq(Multifile::getObjType,Constants.FOUR) |
| | | ); |
| | | |
| | | if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)){ |
| | | List<Multifile> multifileList = rooms.getMultifileList(); |
| | | for (Multifile multifile:multifileList) { |
| | | if(Objects.isNull(multifile) |
| | | || StringUtils.isBlank(multifile.getFileurl())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶åæ°é误"); |
| | | } |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setObjId(rooms.getId()); |
| | | multifile.setObjType(Constants.FOUR); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setCreator(user.getId()); |
| | | } |
| | | multifileJoinMapper.insert(multifileList); |
| | | } |
| | | |
| | | rooms.setStartTime(rooms.getStartTime()+":00"); |
| | | rooms.setEndTime(rooms.getEndTime()+":00"); |
| | |
| | | findpr.leftJoin(Projects.class,Projects::getId,ProjectRel::getProjectId); |
| | | List<ProjectRel> projectLisr= projectRelJoinMapper.selectJoinList(ProjectRel.class,findpr); |
| | | s.setProjectList(projectLisr); |
| | | |
| | | if(!Constants.equalsInteger(s.getFileType(),Constants.TWO)){ |
| | | List<Multifile > multifileList = multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,s.getId()) |
| | | .eq(Multifile::getObjType,Constants.FOUR) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | | multifile.setFileurlFull(path + multifile.getFileurl()); |
| | | } |
| | | s.setMultifileList(multifileList); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return PageData.from(result); |
| | |
| | | List<ProjectRel> projectList= projectRelJoinMapper.selectJoinList(ProjectRel.class,findProjectRel); |
| | | |
| | | roomsResponse.setProjectList(projectList); |
| | | if(Objects.nonNull(roomsResponse.getFileType()) && !Constants.equalsInteger(roomsResponse.getFileType(),Constants.TWO)){ |
| | | roomsResponse.setMultifileList( |
| | | multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,roomsResponse.getId()) |
| | | .eq(Multifile::getObjType,Constants.FOUR)) |
| | | ); |
| | | } |
| | | |
| | | |
| | | return roomsResponse; |
| | | } |
| | |
| | | @ExcelColumn(name="ç±»å0å¾ç 1è§é¢ 2å
¶ä»") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "å
³è对象类å 0ä¼è®®å®¤é¢å®éä»¶", example = "1") |
| | | @ExcelColumn(name="å
³è对象类å 0ä¼è®®å®¤é¢å®éä»¶") |
| | | @ApiModelProperty(value = "å
³è对象类å 0鿣ç°åºæ
åµ 1鿣å¤çåæ
åµ 2鿣å¤çåæ
åµ 3鿣éå说æ 4ä¼è®®å®¤æä»¶", example = "1") |
| | | @ExcelColumn(name="å
³è对象类å 0鿣ç°åºæ
åµ 1鿣å¤çåæ
åµ 2鿣å¤çåæ
åµ 3鿣éå说æ 4ä¼è®®å®¤æä»¶") |
| | | private Integer objType; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°å") |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.admin.response; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/2/26 11:02 |
| | | */ |
| | | @Data |
| | | @ApiModel("å·¥ä½å°ç¸å
³æ¹æ°æ®") |
| | | public class InterestedListVO { |
| | | |
| | | @ApiModelProperty(value = "人æ°") |
| | | private Long userNum; |
| | | |
| | | @ApiModelProperty(value = "åç§°") |
| | | private String interestedName; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "åºå车次") |
| | | private Long todayOutCarNum; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç¸å
³æ¹æ°æ®") |
| | | private List<InterestedListVO> interestedListVOList; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private HiddenDangerMapper hiddenDangerMapper; |
| | | |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | |
| | | .set(Notices::getReaded,Constants.ONE) |
| | | .set(Notices::getStatus,Constants.ONE) |
| | | .set(Notices::getParam2,hiddenDanger.getStatus()) |
| | | .set(Notices::getParam4,hiddenDanger.getLoginUserInfo().getMemberId()) |
| | | .eq(Notices::getObjId,hiddenDanger.getId()) |
| | | .eq(Notices::getObjType,Constants.THREE) |
| | | .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId()) |