From 8bd6e0f1c84f2bc5bf2b9555d1c5fb388565db6c Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期三, 11 十二月 2024 19:17:12 +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 | 226 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 195 insertions(+), 31 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 44ca327..16e2bcb 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,11 @@ 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); return bookings.getId(); } @@ -371,7 +384,11 @@ 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.getUserId()); + this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO); } @Override @@ -435,10 +452,14 @@ bookings.setEditDate(new Date()); bookings.setEditor(user.getId()); bookingsMapper.updateById(bookings); + SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator()); + + bookings.setManagerInfo(systemUser.getRealname()); //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡 - 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); + } + this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE); } @@ -464,19 +485,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), @@ -863,7 +903,7 @@ if(Objects.isNull(bookings)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - return getMeetingDetail(bookings.getId()); + return getMeetingDetail(bookings.getId(),null); }catch (Exception e){ e.printStackTrace(); } @@ -880,7 +920,7 @@ * @return */ @Override - public MeetingDetailResponse getMeetingDetail(Integer id) { + public MeetingDetailResponse getMeetingDetail(Integer id,Integer sysUserId) { MeetingDetailResponse meetingDetailResponse = bookingsMapper.meetingDetail(id); if (Objects.isNull(meetingDetailResponse)) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌浼氳璇︽儏"); @@ -897,8 +937,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); @@ -925,9 +967,18 @@ .eq("OBJ_ID", meetingDetailResponse.getRoomId()) .eq("OBJ_TYPE",MeetConstants.ZERO) ); + if(Constants.equalsInteger(sysUserId,meetingDetailResponse.getBookingUserId())){ + meetingDetailResponse.setIsAdmin(Constants.ONE); + } if (!Objects.isNull(userRelList) && userRelList.size() > 0) { meetingDetailResponse.setRoomUser(systemUserService.findById(userRelList.get(MeetConstants.ZERO).getUserId())); + if( Objects.nonNull(sysUserId) && + userRelList.stream().filter(i->Constants.equalsInteger(i.getUserId(),sysUserId)).collect(Collectors.toList()).size()>Constants.ZERO + ){ + meetingDetailResponse.setIsAdmin(Constants.ONE); + } } + return meetingDetailResponse; } @@ -986,7 +1037,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)){ @@ -998,11 +1049,18 @@ 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); } @@ -1022,13 +1080,13 @@ 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::getObjType,Constants.ZERO) .eq(UserRel::getUserId,businessOverDTO.getUserId())); 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()) { @@ -1093,7 +1151,7 @@ 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::getObjType,Constants.ZERO) .eq(UserRel::getUserId,businessOverDTO.getUserId())); if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) { @@ -1115,9 +1173,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()); @@ -1129,7 +1210,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()) ); @@ -1157,9 +1239,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); } @@ -1172,7 +1258,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); @@ -1220,8 +1308,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())); } } @@ -1236,22 +1325,56 @@ //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.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); + } } } //缁欏弬浼氫汉鍛樻彃鍏� @@ -1260,6 +1383,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{ + wxPlatNotice.sendMeetingBookCancelTemplateNotice(systemDictDataBiz,bookings,"CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8", + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds); + } + } + }catch (Exception e){ + + } + + } -- Gitblit v1.9.3