From 0843f9b1526b7680f5cd419cf1f2d2fff44562ee Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 25 十二月 2024 18:39:39 +0800 Subject: [PATCH] 代码初始化 --- server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 254 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 dd0a9bb..91afe23 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 @@ -10,16 +10,16 @@ import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; -import com.doumee.core.utils.Constants; -import com.doumee.core.utils.DESUtil; -import com.doumee.core.utils.DateUtil; -import com.doumee.core.utils.Utils; +import com.doumee.core.utils.*; import com.doumee.core.wx.MeetConstants; import com.doumee.core.wx.SendWxMessage; +import com.doumee.core.wx.WxPlatNotice; import com.doumee.dao.admin.request.BusinessOverDTO; import com.doumee.dao.admin.request.QrOpenDoorDto; import com.doumee.dao.admin.response.DevWgResponseParam; import com.doumee.dao.business.*; +import com.doumee.dao.business.dao.SmsConfigMapper; +import com.doumee.dao.business.dao.SmsEmailMapper; import com.doumee.dao.business.join.*; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.RoomStatisticsVo; @@ -56,6 +56,7 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.*; +import java.util.Date; import java.util.stream.Collectors; /** @@ -71,6 +72,8 @@ private String desPwd; @Autowired private BookingsMapper bookingsMapper; + @Autowired + private SmsConfigMapper smsConfigMapper; @Autowired private SystemUserMapper systemUserMapper; @Autowired @@ -109,6 +112,8 @@ @Autowired private NoticesJoinMapper noticesMapper; + @Autowired + private SmsEmailMapper smsEmailMapper; @Autowired private UserRelMapper userRelMapper; @@ -126,12 +131,18 @@ @Transactional(rollbackFor = {BusinessException.class, Exception.class}) public Integer create(Bookings bookings) { LoginUserInfo user = bookings.getLoginUserInfo(); + Rooms rooms = roomsMapper.selectById(bookings.getRoomId()); + if(rooms==null ){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ細璁鏆傛椂鏃犳硶棰勭害"); + } + bookings.setRoomName(rooms.getName()); isCreateParamValid(bookings, user); bookings.setCreateDate(new Date()); bookings.setCreator(user.getId()); bookings.setIsdeleted(MeetConstants.ZERO); bookings.setStatus(MeetConstants.ZERO); bookingsMapper.insert(bookings); + bookings.setManagerInfo(user.getRealname()); //鏇存柊浼氳瀹ら瀹氭椂闂存 updateBookingTimes(bookings, user); //娣诲姞绠$悊浜哄憳 @@ -140,9 +151,21 @@ updateProjectRel(bookings, user); handleFile(bookings, user); //鍙戦�佷細璁绾︽垚鍔熼�氱煡 - this.sendNotice(bookings, MeetConstants.TWO); - //鍙戦�佸井淇¤闃呴�氱煡 - sendWxMessage.bookingsReservation(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); + if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ + 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(); } @@ -177,6 +200,10 @@ /* ||org.apache.commons.collections4.CollectionUtils.isEmpty(bookings.getSysList())*/ ) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); + } + + if(Objects.nonNull(bookings.getId())){ + return; } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -358,11 +385,18 @@ if(dbBookings.getStatus().equals(MeetConstants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏈鎿嶄綔澶辫触,棰勭害鐘舵�佸凡娴佽浆"); } + Rooms rooms = roomsMapper.selectById(dbBookings.getRoomId()); + if(rooms==null ){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ細璁鏆傛椂鏃犳硶棰勭害"); + } + bookings.setRoomName(rooms.getName()); LoginUserInfo user = bookings.getLoginUserInfo(); isCreateParamValid(bookings, user); bookings.setEditDate(new Date()); bookings.setEditor(user.getId()); bookingsMapper.updateById(bookings); + bookings.setManagerInfo(user.getRealname()); + bookings.setCreator(dbBookings.getCreator()); //鏇存柊浼氳瀹ら瀹氭椂闂存 updateBookingTimes(bookings, user); //娣诲姞绠$悊浜哄憳 @@ -371,7 +405,16 @@ updateProjectRel(bookings, user); handleFile(bookings, user); //鍙戦�佷細璁�氱煡 - this.sendNotice(bookings, MeetConstants.TWO); + if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ + 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()); + } + } } @Override @@ -435,11 +478,14 @@ bookings.setEditDate(new Date()); bookings.setEditor(user.getId()); bookingsMapper.updateById(bookings); - //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡 - this.sendNotice(bookings, 3); - //鍙戦�佸井淇¤闃呴�氱煡 - sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); + SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator()); + bookings.setManagerInfo(systemUser.getRealname()); + //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡 + if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ + this.sendNotice(bookings, 3); + this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE); + } } @Override @@ -464,19 +510,38 @@ 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 > now() 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); queryWrapper.orderByDesc(Bookings::getCreateDate); queryWrapper.eq(Bookings::getIsdeleted, MeetConstants.ZERO); + //鏁版嵁鏉冮檺寮�濮�--------------------start---------------- + LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); + if(userInfo!=null && userInfo.getCompanyIdList()!=null){ + if( userInfo.getCompanyIdList().size() ==0){ + //鍙湅鑷繁 + queryWrapper.and(wrapper ->{ + wrapper.eq(Bookings::getCreator,userInfo.getId()) + .or().exists("select rel.id from meeting_user_rel rel where rel.OBJ_TYPE=0 and rel.obj_id=t.id and rel.isdeleted=0 and rel.user_id="+userInfo.getId()); + }); + queryWrapper.eq(Bookings::getCreator,userInfo.getId()); + }else{ + //鏉冮檺鑼冨洿鍐� + queryWrapper.and(wrapper ->{ + wrapper.in(SystemUser::getCompanyId ,userInfo.getCompanyIdList()) + .or().exists("select rel.id from meeting_user_rel rel where rel.OBJ_TYPE=0 and rel.obj_id=t.id and rel.isdeleted=0 and rel.user_id="+userInfo.getId()); + }); + } + } + //鏁版嵁鏉冮檺寮�濮�--------------------end---------------- + queryWrapper.eq(pageWrap.getModel().getRoomId() != null, Bookings::getRoomId, pageWrap.getModel().getRoomId()); 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, Company::getId, pageWrap.getModel().getDepartmentId()); - queryWrapper.apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus()) &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE), @@ -513,7 +578,20 @@ 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; 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){ @@ -897,8 +975,10 @@ 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())){ + if(StringUtils.isNotBlank(i.getAvatar()) && !i.getAvatar().startsWith("HKIMG") ){ i.setAvatar(avatarPath+i.getAvatar()); + }else{ + i.setAvatar(null); } }); meetingDetailResponse.setUserResponseList(userResponseList); @@ -995,7 +1075,7 @@ if (!bookings.getCreator().equals(businessOverDTO.getUserId())) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜鍙栨秷"); } - if (System.currentTimeMillis() > bookings.getStartTime().getTime()) { + if (Objects.nonNull(bookings.getStartTimeReal()) && System.currentTimeMillis() > bookings.getStartTimeReal().getTime()) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸插紑濮�,鏃犳硶杩涜鍙栨秷"); } if(bookings.getStatus().equals(MeetConstants.ONE)){ @@ -1007,11 +1087,19 @@ bookings.setStatus(MeetConstants.ONE); bookings.setEditDate(new Date()); bookings.setEditor(businessOverDTO.getUserId()); + Rooms rooms = roomsMapper.selectById(bookings.getRoomId()); + if(Objects.nonNull(rooms)){ + bookings.setRoomName(rooms.getName()); + } bookingsMapper.updateById(bookings); //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡 - this.sendNotice(bookings, 3); - //鍙戦�佸井淇¤闃呴�氱煡 - sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); + if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ +// this.sendNotice(bookings, 3); + SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator()); + bookings.setManagerInfo(systemUser.getRealname()); + this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE); + + } } @@ -1037,7 +1125,7 @@ if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜璇ユ搷浣�"); } - if (System.currentTimeMillis() < bookings.getStartTime().getTime()) { + if (System.currentTimeMillis() < bookings.getStartTimeReal().getTime()) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳鏈紑濮�,鏃犳硶杩涜缁撴潫锛屽闇�璇ユ搷浣滆浣跨敤鍙栨秷鍔熻兘"); } if (System.currentTimeMillis() > bookings.getEndTime().getTime()) { @@ -1124,9 +1212,32 @@ if(DateUtil.afterMinutesDate(bookings.getStartTime(),-beforeMinutes).getTime()>System.currentTimeMillis()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼氳浠呭彲浠ユ彁鍓�"+beforeMinutes+"鍒嗛挓寮�濮�"); } + //鏌ヨ鏄惁瀛樺湪鍏朵粬鏈紑濮嬬殑浼氳 闃叉棰楃矑搴︿笌鎻愬墠寮�濮嬬殑闂 + if(bookingsMapper.selectCount(new QueryWrapper<Bookings>() + .lambda() + .apply(" now() < START_TIME and END_TIME <= '" + DateUtil.DateToStr(bookings.getStartTime(),"yyyy-MM-dd HH:mm:ss") +"'" ) + .isNull(Bookings::getStartTimeReal) + .isNull(Bookings::getDoneDate) + .eq(Bookings::getStatus,Constants.ZERO) + .eq(Bookings::getRoomId,bookings.getRoomId()) + .ne(Bookings::getId,bookings.getId()) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏈紑鍚細璁紝鏃犳硶寮�濮嬩細璁�"); + }; + + if(bookingsMapper.selectCount(new QueryWrapper<Bookings>() + .lambda() + .apply(" ( ( END_TIME > now() and START_TIME < now() ) or ( END_TIME > now() and START_TIME_REAL < now() ) ) ") + .isNotNull(Bookings::getStartTimeReal) + .isNull(Bookings::getDoneDate) + .eq(Bookings::getStatus,Constants.ZERO) + .eq(Bookings::getRoomId,bookings.getRoomId()) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠寮�鍚椂闂翠笌鍏朵粬浼氳瀛樺湪鍐茬獊锛屾棤娉曞紑濮嬩細璁�"); + }; }else{ if(bookings.getStartTime().getTime() > System.currentTimeMillis()){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶杩涜寮�鍚�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶寮�濮�"); } } bookings.setStartTimeReal(new Date()); @@ -1138,7 +1249,8 @@ .lambda() .set(Bookings::getStatus,Constants.TWO) .set(Bookings::getDoneDate,new Date()) - .apply(" END_TIME < now() ") + .set(Bookings::getDoneInfo,"鍏朵粬浼氳寮�濮嬶紝鑷姩鍏抽棴") + .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()) ); @@ -1166,9 +1278,13 @@ 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(); + 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) { multifile.setFileurlFull(path + multifile.getFileurl()); + multifile.setLocalFileurlFull(localPath + multifile.getFileurl()); } response.setMultifileList(multifileList); } @@ -1181,7 +1297,9 @@ .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); @@ -1193,12 +1311,14 @@ 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(); + String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.EARLY_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()){ + if( + DateUtil.afterMinutesDate(m.getStartTime(),-minute).getTime()<=System.currentTimeMillis() + ){ m.setMeetingStatus(4); } } @@ -1229,8 +1349,9 @@ bookings.setEditDate(new Date()); bookingsMapper.updateById(bookings); this.sendNotice(bookings, MeetConstants.ONE); + //鍙戦�佸井淇¢�氱煡 - sendWxMessage.bookingsStart(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); +// sendWxMessage.bookingsStart(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); } } @@ -1245,22 +1366,83 @@ //1銆佸弬涓庝細璁細鍙備笌浼氳鍗冲皢寮�濮� 缁欐瘡涓弬浼氫汉鍛樺彂閫佷細璁�氱煡骞朵笖缁欎細璁绾︿汉鍙戦�侀瀹氱殑浼氳鍗冲皢寮�濮� 濡傛灉棰勮浜轰篃鍙備笌浼氳锛屽垯浼氭湁2鏉′細璁�氱煡 //2銆佷細璁瀹氭垚鍔燂紝缁欐墍鏈夊弬浼氫汉鍛樹笌棰勭害浜洪兘鍙戦�� //3銆佷細璁彇娑� 浼氳鍙栨秷锛岀粰鎵�鏈夊弬浼氫汉鍛橀兘鍙戦�� - List<UserRel> userRelList = userRelMapper.selectList(new QueryWrapper<UserRel>() - .eq("OBJ_TYPE", MeetConstants.ONE) - .eq("OBJ_ID", bookings.getId()) - .eq("ISDELETED", MeetConstants.ZERO) + List<UserRel> userRelList = userRelMapper.selectJoinList(UserRel.class,new MPJLambdaWrapper<UserRel>() + .selectAll(UserRel.class) + .selectAs(SystemUser::getRealname,UserRel::getRealName) + .selectAs(SystemUser::getMobile,UserRel::getUserPhone) + .leftJoin(SystemUser.class,SystemUser::getId,UserRel::getUserId) + .eq(UserRel::getObjType, MeetConstants.ONE) + .eq(UserRel::getObjId, bookings.getId()) + .eq(UserRel::getIsdeleted, MeetConstants.ZERO) ); + List<SmsEmail> smsEmailList = new ArrayList<>(); List<Notices> noticeList = new ArrayList<>(); + SmsConfig smsConfig = null; Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.MEETING_START; if (sendType.equals(MeetConstants.THREE)){ noticeObjectType = Constants.NoticeObjectType.MEETING_CACEL; + smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, + SmsConstants.meetingContent.meetingBookCancel) + .eq(SmsConfig::getIsdeleted,Constants.ZERO) + .last(" limit 1 ")); }else if (sendType.equals(MeetConstants.TWO)){ noticeObjectType = Constants.NoticeObjectType.MEETING_BOOK_SUCCESS; + smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, + SmsConstants.meetingContent.meetingBookJoinUser) + .eq(SmsConfig::getIsdeleted,Constants.ZERO) + .last(" limit 1 ")); } if(userRelList!=null && userRelList.size()>0){ for (UserRel i : userRelList) { Notices notices = new Notices(noticeObjectType,i.getId(),noticeObjectType.getInfo(), i.getUserId(), Constants.ZERO); noticeList.add(notices); + if (smsConfig!=null && Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ + SmsEmail smsEmail = new SmsEmail(); + //{鍙備細浜哄憳濮撳悕}锛屾偍濂斤紒鎮ㄦ湁涓�涓柊鐨勪細璁紝浼氳涓婚锛歿浼氳涓婚}锛屼細璁湴鐐癸細{浼氳瀹ゅ悕绉皚锛屼細璁椂闂达細{浼氳鏃堕棿娈祡锛岃鎸夋椂鍙傚姞 + String timeInfo =DateUtil.getFomartDate( bookings.getStartTime(),"MM/dd HH:mm")+"-" + +DateUtil.getFomartDate( bookings.getEndTime(),"HH:mm"); + smsEmail.setPhone(i.getUserPhone()); + smsEmail.setRemark("绛夊緟鍙戦��"); + 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("浼氳瀹ょ敵璇峰弬浼氶�氱煡"); + smsEmail.setContent(StringUtils.defaultString(smsConfig.getContent(),"") + .replace("{鍙備細浜哄憳濮撳悕}",StringUtils.defaultString(i.getRealName(),"")) + .replace("{浼氳涓婚}",StringUtils.defaultString(bookings.getName(),"")) + .replace("{浼氳瀹ゅ悕绉皚",StringUtils.defaultString(bookings.getRoomName(),"")) + .replace("{浼氳鏃堕棿娈祡",StringUtils.defaultString(timeInfo,""))); + smsEmailList.add(smsEmail); + } + } + } + //缁欏垱寤轰汉鍙戦�佺煭淇′俊鎭� + SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator()); + if(Objects.nonNull(systemUser)){ + if(userRelList.stream().filter(i->Constants.equalsInteger(i.getUserId(),systemUser.getId())).collect(Collectors.toList()).size()==Constants.ZERO){ + if (smsConfig!=null && Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ + SmsEmail smsEmail = new SmsEmail(); + //{鍙備細浜哄憳濮撳悕}锛屾偍濂斤紒鎮ㄦ湁涓�涓柊鐨勪細璁紝浼氳涓婚锛歿浼氳涓婚}锛屼細璁湴鐐癸細{浼氳瀹ゅ悕绉皚锛屼細璁椂闂达細{浼氳鏃堕棿娈祡锛岃鎸夋椂鍙傚姞 + String timeInfo =DateUtil.getFomartDate( bookings.getStartTime(),"MM/dd HH:mm")+"-" + +DateUtil.getFomartDate( bookings.getEndTime(),"HH:mm"); + smsEmail.setPhone(systemUser.getMobile()); + smsEmail.setRemark("绛夊緟鍙戦��"); + smsEmail.setStatus(Constants.TWO);// + smsEmail.setIsdeleted(Constants.ZERO); + smsEmail.setType(Constants.ZERO); + smsEmail.setObjId(bookings.getId()); + smsEmail.setCreateDate(new Date()); + smsEmail.setTitle("浼氳瀹ょ敵璇峰弬浼氶�氱煡"); + smsEmail.setContent(StringUtils.defaultString(smsConfig.getContent(),"") + .replace("{鍙備細浜哄憳濮撳悕}",StringUtils.defaultString(systemUser.getRealname(),"")) + .replace("{浼氳涓婚}",StringUtils.defaultString(bookings.getName(),"")) + .replace("{浼氳瀹ゅ悕绉皚",StringUtils.defaultString(bookings.getRoomName(),"")) + .replace("{浼氳鏃堕棿娈祡",StringUtils.defaultString(timeInfo,""))); + smsEmailList.add(smsEmail); + } } } //缁欏弬浼氫汉鍛樻彃鍏� @@ -1269,6 +1451,47 @@ if(noticeList.size()>0){ noticesMapper.insert(noticeList); } + if(smsEmailList.size()>0){ + smsEmailMapper.insert(smsEmailList);//寰呭彂鐭俊鏁版嵁 + } + } + + + @Async + public void sendWxNotice(Bookings bookings,String openid, Integer sendType) { + try{ + List<UserRel> userRelList = userRelMapper.selectJoinList(UserRel.class,new MPJLambdaWrapper<UserRel>() + .selectAll(UserRel.class) + .selectAs(SystemUser::getRealname,UserRel::getRealName) + .selectAs(SystemUser::getMobile,UserRel::getUserPhone) + .selectAs(SystemUser::getOpenid,UserRel::getOpenid) + .leftJoin(SystemUser.class,SystemUser::getId,UserRel::getUserId) + .eq(UserRel::getObjType, MeetConstants.ONE) + .eq(UserRel::getObjId, bookings.getId()) + .eq(UserRel::getIsdeleted, MeetConstants.ZERO) + .isNotNull(SystemUser::getOpenid) + ); + List<String> openIdList = userRelList.stream().map(i->i.getOpenid()).collect(Collectors.toList()); + openIdList.add(openid); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(openIdList)){ + return; + } + Set<String> openIds = new HashSet<String>(openIdList); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(openIds)){ + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + if(Constants.equalsInteger(sendType,Constants.ZERO)){ + wxPlatNotice.sendMeetingBookTemplateNotice(systemDictDataBiz,bookings,"CuoDoxOl6SFwi4NhNgOQgKSJVjDD4VCIaPYlnbv_zdY", + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds); + }else if(Constants.equalsInteger(sendType,Constants.ONE)){ + wxPlatNotice.sendMeetingBookCancelTemplateNotice(systemDictDataBiz,bookings,"CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8", + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds); + } + } + }catch (Exception e){ + + } + + } @@ -1382,6 +1605,7 @@ ) .eq("c.DELETED",0) .eq("c.status",0) + .eq("m.WORK_STATUS",0) .orderByAsc("c.id") ); String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() -- Gitblit v1.9.3