|
@@ -10,10 +10,14 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReservePageReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReserveSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
|
|
|
+import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.room.OaMeetingRoomDO;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.mysql.meeting.reserve.OaMeetingReserveMapper;
|
|
|
import cn.iocoder.yudao.module.bpm.enums.MeetingReserveStatusEnum;
|
|
|
+import cn.iocoder.yudao.module.bpm.service.meeting.room.OaMeetingRoomService;
|
|
|
+import cn.iocoder.yudao.module.bpm.util.OANotifyContentUtil;
|
|
|
import cn.iocoder.yudao.module.employee.api.EmployeeApi;
|
|
|
import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
|
|
|
+import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -50,6 +54,12 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
|
|
|
@Resource
|
|
|
private EmployeeApi employeeApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private NotifyMessageSendApi notifyMessageSendApi;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private OaMeetingRoomService oaMeetingRoomService;
|
|
|
+
|
|
|
@Override
|
|
|
public Long createOaMeetingReserve(OaMeetingReserveSaveReqVO createReqVO) {
|
|
|
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
|
|
@@ -100,6 +110,32 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
|
|
|
}
|
|
|
oaMeetingReserve.setStatus(MeetingReserveStatusEnum.WAITING.getStatus());
|
|
|
oaMeetingReserveMapper.insert(oaMeetingReserve);
|
|
|
+
|
|
|
+ // 预定成功发送站内信
|
|
|
+ Long assignId = loginEmployee.getId();
|
|
|
+ String assigneeName = loginEmployee.getName();
|
|
|
+ Long roomId = oaMeetingReserve.getRoomId();
|
|
|
+ String meetingRoomName = "";
|
|
|
+ if (roomId != null) {
|
|
|
+ OaMeetingRoomDO oaMeetingRoom = oaMeetingRoomService.getOaMeetingRoom(roomId);
|
|
|
+ if (oaMeetingRoom != null) {
|
|
|
+ meetingRoomName = oaMeetingRoom.getName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String meetingName = oaMeetingReserve.getMeetingName();
|
|
|
+ // 给申请人发送
|
|
|
+ StringBuilder content = OANotifyContentUtil.buildContentSendToMeetingReserve(assigneeName, meetingRoomName, startTime, endTime);
|
|
|
+ notifyMessageSendApi.sendSingleMessageToMemberForOA(assignId, content.toString());
|
|
|
+
|
|
|
+ // 给参会人发送
|
|
|
+ if (CollUtil.isNotEmpty(participantsIdList)) {
|
|
|
+ List<EmployeeRespDTO> employeeParticipants = employeeApi.getEmployeeListByIds(participantsIdList);
|
|
|
+ for (EmployeeRespDTO employeeParticipant : employeeParticipants) {
|
|
|
+ StringBuilder contentParticipant = OANotifyContentUtil.buildContentSendToMeetingParticipant(employeeParticipant.getName(), startTime, endTime, meetingRoomName, meetingName);
|
|
|
+ notifyMessageSendApi.sendSingleMessageToMemberForOA(employeeParticipant.getId(), contentParticipant.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 返回
|
|
|
return oaMeetingReserve.getId();
|
|
|
}
|
|
@@ -169,6 +205,31 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
|
|
|
updateObj.setNumber("0");
|
|
|
}
|
|
|
oaMeetingReserveMapper.updateById(updateObj);
|
|
|
+
|
|
|
+ // 预定成功发送站内信
|
|
|
+ Long assignId = loginEmployee.getId();
|
|
|
+ String assigneeName = loginEmployee.getName();
|
|
|
+ Long roomId = updateObj.getRoomId();
|
|
|
+ String meetingRoomName = "";
|
|
|
+ if (roomId != null) {
|
|
|
+ OaMeetingRoomDO oaMeetingRoom = oaMeetingRoomService.getOaMeetingRoom(roomId);
|
|
|
+ if (oaMeetingRoom != null) {
|
|
|
+ meetingRoomName = oaMeetingRoom.getName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String meetingName = updateObj.getMeetingName();
|
|
|
+ // 给申请人发送
|
|
|
+ StringBuilder content = OANotifyContentUtil.buildContentSendToMeetingReserve(assigneeName, meetingRoomName, startTime, endTime);
|
|
|
+ notifyMessageSendApi.sendSingleMessageToMemberForOA(assignId, content.toString());
|
|
|
+
|
|
|
+ // 给参会人发送
|
|
|
+ if (CollUtil.isNotEmpty(participantsIdList)) {
|
|
|
+ List<EmployeeRespDTO> employeeParticipants = employeeApi.getEmployeeListByIds(participantsIdList);
|
|
|
+ for (EmployeeRespDTO employeeParticipant : employeeParticipants) {
|
|
|
+ StringBuilder contentParticipant = OANotifyContentUtil.buildContentSendToMeetingParticipant(employeeParticipant.getName(), startTime, endTime, meetingRoomName, meetingName);
|
|
|
+ notifyMessageSendApi.sendSingleMessageToMemberForOA(employeeParticipant.getId(), contentParticipant.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void validateOperator(Long loginUserId, Long creator) {
|