feat(prompt): QT新增接口

dev_na
chenhao 2026-08-03 16:30:31 +08:00
parent 7dcf4f0646
commit 44a27dadcb
3 changed files with 46 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import com.imeeting.dto.android.AndroidAuthContext;
import com.imeeting.dto.android.AndroidOfflineMeetingCreateCommand; import com.imeeting.dto.android.AndroidOfflineMeetingCreateCommand;
import com.imeeting.dto.android.AndroidMeetingCreateResponse; import com.imeeting.dto.android.AndroidMeetingCreateResponse;
import com.imeeting.dto.android.AndroidMeetingConfigVo; import com.imeeting.dto.android.AndroidMeetingConfigVo;
import com.imeeting.dto.android.QtMeetingUpdateCommand;
import com.imeeting.dto.android.AndroidMeetingListItemVO; import com.imeeting.dto.android.AndroidMeetingListItemVO;
import com.imeeting.dto.android.AndroidOfflineMeetingConflictVO; import com.imeeting.dto.android.AndroidOfflineMeetingConflictVO;
import com.imeeting.dto.android.AndroidOfflineMeetingFinishRequest; import com.imeeting.dto.android.AndroidOfflineMeetingFinishRequest;
@ -51,6 +52,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -292,7 +294,7 @@ public class AndroidMeetingController {
loginUser.getTenantId(), loginUser.getTenantId(),
loginUser.getUserId(), loginUser.getUserId(),
AndroidLoginUserSupport.resolveDisplayName(authContext), AndroidLoginUserSupport.resolveDisplayName(authContext),
"all", "created",
null, null,
AndroidLoginUserSupport.isAdmin(authContext) AndroidLoginUserSupport.isAdmin(authContext)
); );
@ -408,6 +410,28 @@ public class AndroidMeetingController {
return ApiResponse.ok(password); return ApiResponse.ok(password);
} }
@Operation(summary = "QT更新会议信息")
@ApiResponses({
@io.swagger.v3.oas.annotations.responses.ApiResponse(
responseCode = "200",
description = "更新会议标题、参会人和总结内容",
content = @Content(schema = @Schema(implementation = Boolean.class))
)
})
@PutMapping("/{meetingId}/info")
@Log(value = "QT修改会议信息", type = "Android会议管理")
public ApiResponse<Boolean> updateMeetingForQt(HttpServletRequest request,
@PathVariable Long meetingId,
@Valid @RequestBody QtMeetingUpdateCommand command) {
AndroidRequestLogHelper.logRequest(log, "QT会议", "修改会议信息接口", "meetingId", meetingId);
AndroidAuthContext authContext = androidAuthService.authenticateHttp(request);
LoginUser loginUser = AndroidLoginUserSupport.requireLoginUser(authContext);
Meeting meeting = meetingAccessService.requireMeeting(meetingId);
meetingAccessService.assertCanEditMeeting(meeting, loginUser);
meetingCommandService.updateMeetingForQt(meetingId, command);
return ApiResponse.ok(true);
}
@Operation(summary = "删除Android会议") @Operation(summary = "删除Android会议")
@ApiResponses({ @ApiResponses({
@io.swagger.v3.oas.annotations.responses.ApiResponse( @io.swagger.v3.oas.annotations.responses.ApiResponse(

View File

@ -12,6 +12,7 @@ import com.imeeting.dto.biz.PublicDeviceMeetingCreateCommand;
import com.imeeting.dto.biz.RealtimeTranscriptItemDTO; import com.imeeting.dto.biz.RealtimeTranscriptItemDTO;
import com.imeeting.dto.biz.UpdateMeetingBasicCommand; import com.imeeting.dto.biz.UpdateMeetingBasicCommand;
import com.imeeting.dto.biz.UpdateMeetingTranscriptCommand; import com.imeeting.dto.biz.UpdateMeetingTranscriptCommand;
import com.imeeting.dto.android.QtMeetingUpdateCommand;
import java.util.List; import java.util.List;
@ -54,6 +55,8 @@ public interface MeetingCommandService {
void updateSummaryContent(Long meetingId, String summaryContent); void updateSummaryContent(Long meetingId, String summaryContent);
void updateMeetingForQt(Long meetingId, QtMeetingUpdateCommand command);
void reSummary(Long meetingId, Long summaryModelId, Long chapterModelId, Long promptId, String userPrompt, String summaryDetailLevel); void reSummary(Long meetingId, Long summaryModelId, Long chapterModelId, Long promptId, String userPrompt, String summaryDetailLevel);
void retryTranscription(Long meetingId); void retryTranscription(Long meetingId);

View File

@ -25,6 +25,7 @@ import com.imeeting.dto.biz.RealtimeMeetingSessionStatusVO;
import com.imeeting.dto.biz.RealtimeTranscriptItemDTO; import com.imeeting.dto.biz.RealtimeTranscriptItemDTO;
import com.imeeting.dto.biz.UpdateMeetingBasicCommand; import com.imeeting.dto.biz.UpdateMeetingBasicCommand;
import com.imeeting.dto.biz.UpdateMeetingTranscriptCommand; import com.imeeting.dto.biz.UpdateMeetingTranscriptCommand;
import com.imeeting.dto.android.QtMeetingUpdateCommand;
import com.imeeting.entity.biz.AiTask; import com.imeeting.entity.biz.AiTask;
import com.imeeting.entity.biz.HotWord; import com.imeeting.entity.biz.HotWord;
import com.imeeting.entity.biz.Meeting; import com.imeeting.entity.biz.Meeting;
@ -767,6 +768,23 @@ public class MeetingCommandServiceImpl implements MeetingCommandService {
meetingSummaryFileService.updateSummaryContent(meeting, summaryContent); meetingSummaryFileService.updateSummaryContent(meeting, summaryContent);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void updateMeetingForQt(Long meetingId, QtMeetingUpdateCommand command) {
Meeting meeting = meetingService.getById(meetingId);
if (meeting == null) {
throw new RuntimeException("会议不存在");
}
meetingService.update(new LambdaUpdateWrapper<Meeting>()
.eq(Meeting::getId, meetingId)
.set(Meeting::getTitle, command.getTitle().trim())
.set(Meeting::getParticipants, command.getParticipantIds().stream()
.filter(Objects::nonNull)
.map(String::valueOf)
.collect(Collectors.joining(","))));
meetingSummaryFileService.updateSummaryContent(meeting, command.getSummaryContent());
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public MeetingTranscriptChapterImportResultVO importTranscriptChapters(MeetingTranscriptChapterImportDTO command) { public MeetingTranscriptChapterImportResultVO importTranscriptChapters(MeetingTranscriptChapterImportDTO command) {