From 98250a7cff913563152ae8b313c7f45cc27545ba Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期四, 27 二月 2025 09:13:50 +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 | 151 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 118 insertions(+), 33 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 abe4c42..15bcc39 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 @@ -1,5 +1,6 @@ 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; @@ -7,6 +8,8 @@ import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; +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; @@ -85,6 +88,8 @@ @Autowired private RoomsMapper roomsMapper; + @Autowired + private UserActionMapper userActionMapper; @Autowired private ProjectRelJoinMapper projectRelJoinMapper; @Autowired @@ -334,12 +339,39 @@ @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 @@ -506,7 +538,7 @@ 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); @@ -574,29 +606,9 @@ SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); SimpleDateFormat format1 = new SimpleDateFormat("HH:mm"); IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper); - - String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.EARLY_START).getCode(); - Integer minute = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120; + Integer minute =getNearStartMinut(); result.getRecords().stream().forEach(s -> { - - if(Constants.equalsInteger(s.getStatus(),Constants.ZERO)&&Constants.equalsInteger(s.getMeetingStatus(),Constants.ONE)){ - //寮�濮嬪墠120鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮� - if( - DateUtil.afterMinutesDate(s.getStartTime(),-minute).getTime()<=System.currentTimeMillis() - ){ - s.setMeetingStatus(4); - } - } - - - 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()); @@ -637,6 +649,32 @@ }); return PageData.from(result); + } + + 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 @@ -1192,9 +1230,9 @@ 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(), "鏈鎿嶄綔澶辫触,浼氳鐘舵�佸凡娴佽浆"); } @@ -1308,7 +1346,7 @@ bookings.setEditDate(new Date()); bookings.setEditor(businessOverDTO.getUserId()); bookingsMapper.updateById(bookings); - //鏇存柊宸茬粨鏉熶絾鏈粨鏉熺殑浼氳淇℃伅涓哄凡缁撴潫 + /* //鏇存柊宸茬粨鏉熶絾鏈粨鏉熺殑浼氳淇℃伅涓哄凡缁撴潫 bookingsMapper.update(null,new UpdateWrapper<Bookings>() .lambda() .set(Bookings::getStatus,Constants.TWO) @@ -1317,10 +1355,9 @@ .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()) - ); + );*/ } - @Override public RoomDetailResponse getRoomDetail(Integer roomId){ @@ -1341,9 +1378,9 @@ 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) { @@ -1353,7 +1390,8 @@ response.setMultifileList(multifileList); } - //鏌ヨ浼氳鍒楄〃 + +/* //鏌ヨ浼氳鍒楄〃 List<MeetingListResponse> meetingList = bookingsMapper.meetingList( new QueryWrapper<Bookings>() .eq( "b.id", rooms.getId()) @@ -1367,10 +1405,57 @@ .orderByAsc("a.start_time") ); this.dealMeetingStatus(meetingList); - response.setMeetingListResponseList(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::getId, MeetConstants.ZERO) + .eq(Rooms::getId, rooms.getId()) + .apply("to_days(t.start_time) = to_days(now())")//瀛愭煡璇㈠綋澶╃殑 + .orderByDesc(Bookings::getStartTime); + Integer minute =getNearStartMinut(); + List<Bookings> meetingList =bookingsMapper.selectJoinList(Bookings.class,queryWrapper); + if(meetingList!=null){ + response.setMeetingListResponseList(new ArrayList<>()); + 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()); + response.getMeetingListResponseList().add(d); + } + } 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; + } + public void dealMeetingStatus(List<MeetingListResponse> meetingResponseList){ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(meetingResponseList)){ -- Gitblit v1.9.3