feat(): 消防报警记录详情接口增加会议信息支持APP重新入会
parent
892c736ea9
commit
a0531bdebe
|
|
@ -137,7 +137,7 @@ public class AlarmRecordServiceImpl extends FireAlarmServiceSupport implements A
|
||||||
}
|
}
|
||||||
fireAlarmMeetingAccountService.ensureAppMeetingAccount(appUserId, record.getAlarmUserName(), record.getAlarmPhone());
|
fireAlarmMeetingAccountService.ensureAppMeetingAccount(appUserId, record.getAlarmUserName(), record.getAlarmPhone());
|
||||||
}
|
}
|
||||||
return SingleResponse.of(buildCO(record));
|
return SingleResponse.of(buildDetailCO(record));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -146,7 +146,7 @@ public class AlarmRecordServiceImpl extends FireAlarmServiceSupport implements A
|
||||||
if (record == null) {
|
if (record == null) {
|
||||||
throw new BizException("消防报警记录不存在");
|
throw new BizException("消防报警记录不存在");
|
||||||
}
|
}
|
||||||
return buildCO(record);
|
return buildDetailCO(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -237,6 +237,12 @@ public class AlarmRecordServiceImpl extends FireAlarmServiceSupport implements A
|
||||||
return co;
|
return co;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AlarmRecordCO buildDetailCO(FireAlarmInfoDO record) {
|
||||||
|
AlarmRecordCO co = buildCO(record);
|
||||||
|
co.setMeeting(fireAlarmMeetingAccountService.buildAppMeetingInfo(record));
|
||||||
|
return co;
|
||||||
|
}
|
||||||
|
|
||||||
private String toPhotoJson(List<String> photos) {
|
private String toPhotoJson(List<String> photos) {
|
||||||
if (photos == null || photos.isEmpty()) {
|
if (photos == null || photos.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo;
|
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo;
|
||||||
|
import com.zcloud.zcGbsServicer.dto.clientobject.AlarmRecordMeetingCO;
|
||||||
|
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
|
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingRoomDO;
|
||||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
|
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingUserDO;
|
||||||
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingRoomRepository;
|
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingRoomRepository;
|
||||||
|
|
@ -13,6 +15,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
|
@ -28,6 +31,8 @@ import java.util.UUID;
|
||||||
public class FireAlarmMeetingAccountService extends FireAlarmServiceSupport {
|
public class FireAlarmMeetingAccountService extends FireAlarmServiceSupport {
|
||||||
|
|
||||||
private static final int MEETING_USER_TYPE_APP = 2;
|
private static final int MEETING_USER_TYPE_APP = 2;
|
||||||
|
private static final int ALARM_MODE_APP = 2;
|
||||||
|
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
private final FireAlarmMeetingUserRepository fireAlarmMeetingUserRepository;
|
private final FireAlarmMeetingUserRepository fireAlarmMeetingUserRepository;
|
||||||
private final FireAlarmMeetingRoomRepository fireAlarmMeetingRoomRepository;
|
private final FireAlarmMeetingRoomRepository fireAlarmMeetingRoomRepository;
|
||||||
|
|
@ -35,6 +40,51 @@ public class FireAlarmMeetingAccountService extends FireAlarmServiceSupport {
|
||||||
private final HstVideoPlatformClient hstVideoPlatformClient;
|
private final HstVideoPlatformClient hstVideoPlatformClient;
|
||||||
private final FireAlarmUserResolver fireAlarmUserResolver;
|
private final FireAlarmUserResolver fireAlarmUserResolver;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建 APP 报警记录的会议入会参数,供详情页重新入会。
|
||||||
|
*/
|
||||||
|
public AlarmRecordMeetingCO buildAppMeetingInfo(FireAlarmInfoDO record) {
|
||||||
|
if (record == null || !Integer.valueOf(ALARM_MODE_APP).equals(record.getAlarmMode())) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Long localUserId = record.getAlarmUserId();
|
||||||
|
if (localUserId == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
FireAlarmMeetingRoomDO room = fireAlarmMeetingRoomRepository
|
||||||
|
.getByRoomCode(hstVideoPlatformProperties.getDefaultRoomCode());
|
||||||
|
Long userTenantId = fireAlarmUserResolver.resolveUserTenantId(localUserId);
|
||||||
|
FireAlarmMeetingUserDO meetingUser = fireAlarmMeetingUserRepository.getByLocalUserId(localUserId, userTenantId);
|
||||||
|
|
||||||
|
AlarmRecordMeetingCO co = new AlarmRecordMeetingCO();
|
||||||
|
co.setAlarmId(record.getId());
|
||||||
|
co.setLocalUserId(localUserId);
|
||||||
|
co.setRoomCode(hstVideoPlatformProperties.getDefaultRoomCode());
|
||||||
|
co.setRoomId(selectText(record.getMeetingRoomId(),
|
||||||
|
room == null ? hstVideoPlatformProperties.getDefaultRoomNo()
|
||||||
|
: selectText(room.getThirdRoomId(), room.getThirdRoomNo())));
|
||||||
|
co.setRoomNo(room == null ? hstVideoPlatformProperties.getDefaultRoomNo() : room.getThirdRoomNo());
|
||||||
|
co.setMeetingName(selectText(record.getMeetingRoomName(),
|
||||||
|
room == null ? "消防报警固定会议室" : room.getRoomName()));
|
||||||
|
co.setPassword(room == null ? null : room.getRoomPasswordCipher());
|
||||||
|
co.setThirdUserName(selectText(record.getMeetingApplyThirdUserName(),
|
||||||
|
meetingUser == null ? null : meetingUser.getThirdUserName()));
|
||||||
|
co.setUserPass(hstVideoPlatformProperties.getDefaultUserPassword());
|
||||||
|
co.setGrantType("password");
|
||||||
|
co.setCesAddr(hstVideoPlatformProperties.getWebBaseUrl());
|
||||||
|
co.setWebUrl(hstVideoPlatformProperties.getWebBaseUrl());
|
||||||
|
co.setLoginUrl(hstVideoPlatformProperties.getWebBaseUrl());
|
||||||
|
co.setClientId(hstVideoPlatformProperties.getClientId());
|
||||||
|
co.setClientSecret(hstVideoPlatformProperties.getClientSecret());
|
||||||
|
co.setJoinStatus(record.getMeetingJoinStatus());
|
||||||
|
co.setJoinTime(formatTime(record.getMeetingJoinTime()));
|
||||||
|
co.setLeaveTime(formatTime(record.getMeetingLeaveTime()));
|
||||||
|
co.setAuthStatus(record.getMeetingAuthStatus());
|
||||||
|
co.setResultMsg(record.getMeetingResultMsg());
|
||||||
|
return co;
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void ensureAppMeetingAccount(Long localUserId, String localUserName, String localPhone) {
|
public void ensureAppMeetingAccount(Long localUserId, String localUserName, String localPhone) {
|
||||||
if (localUserId == null) {
|
if (localUserId == null) {
|
||||||
|
|
@ -188,6 +238,10 @@ public class FireAlarmMeetingAccountService extends FireAlarmServiceSupport {
|
||||||
return StrUtil.isNotBlank(preferred) ? preferred : fallback;
|
return StrUtil.isNotBlank(preferred) ? preferred : fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String formatTime(LocalDateTime time) {
|
||||||
|
return time == null ? null : TIME_FORMATTER.format(time);
|
||||||
|
}
|
||||||
|
|
||||||
private long nextId() {
|
private long nextId() {
|
||||||
return IdUtil.getSnowflake(1, 1).nextId();
|
return IdUtil.getSnowflake(1, 1).nextId();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,4 +59,7 @@ public class AlarmRecordCO extends ClientObject {
|
||||||
private String clearReason;
|
private String clearReason;
|
||||||
|
|
||||||
private List<String> photos;
|
private List<String> photos;
|
||||||
|
|
||||||
|
/** APP 报警会议信息,用于重新入会;非 APP 报警或无会议账号时为 null */
|
||||||
|
private AlarmRecordMeetingCO meeting;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.zcloud.zcGbsServicer.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 消防报警记录关联的会议信息,供 APP 重新入会使用。
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AlarmRecordMeetingCO extends ClientObject {
|
||||||
|
|
||||||
|
private Long alarmId;
|
||||||
|
private Long localUserId;
|
||||||
|
|
||||||
|
private String roomCode;
|
||||||
|
private String roomId;
|
||||||
|
private String roomNo;
|
||||||
|
private String meetingName;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
private String thirdUserName;
|
||||||
|
private String userPass;
|
||||||
|
private String grantType;
|
||||||
|
private String cesAddr;
|
||||||
|
private String webUrl;
|
||||||
|
private String loginUrl;
|
||||||
|
private String clientId;
|
||||||
|
private String clientSecret;
|
||||||
|
|
||||||
|
private Integer joinStatus;
|
||||||
|
private String joinTime;
|
||||||
|
private String leaveTime;
|
||||||
|
private Integer authStatus;
|
||||||
|
private String resultMsg;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue