提交 75836625 作者: 洪东保

debug

父级 6a8a2b6c
......@@ -173,7 +173,9 @@ public class MeetingInfoController {
dataModel.putAll(participantsMap);
MeetingRecordTemplate meetingRecordTemplate = meetingRecordTemplateMapper.selectById(2);
String fileName = String.format(meetingInfo.getSubject() + "_会议纪要_%s.docx", DateUtil.today());
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMdd");
String fileName = String.format(meetingInfo.getSubject() + "会议纪要_%s.docx", fmt.format(meetingInfo.getStartTime()));
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf8"));
......
......@@ -197,6 +197,6 @@ public class RecordTemplateController {
@RequestParam(value = "meetingInstId",required = false) Integer meetingInstId,
@RequestParam("id") Integer id,
HttpServletResponse response) {
recordTemplatePermissionService.testMinutesExport(recordJson,meetingInstId,id,response);
recordTemplatePermissionService.testMinutesExport(recordJson, meetingInstId, id, response);
}
}
......@@ -104,9 +104,10 @@ public class EmailPushTask {
//邮件推送
List<EmailPush.Attachment> attachments = new ArrayList<>();
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMdd");
try(InputStream is = new FileInputStream(dataNetworkMinutesPath)){
byte[] meetingMinutesBytes = IOUtils.toByteArray(is);
EmailPush.Attachment attachment = EmailPush.Attachment.builder().name(meetingInfo.getSubject()+"会议纪要_" + meetingRecordTemplate.getName()).bytes(meetingMinutesBytes).build();
EmailPush.Attachment attachment = EmailPush.Attachment.builder().name(meetingInfo.getSubject() + "会议纪要_" + fmt.format(meetingInfo.getStartTime())).bytes(meetingMinutesBytes).build();
attachments.add(attachment);
}catch (Exception e){
throw new RuntimeException(e);
......
......@@ -234,9 +234,10 @@ public class FileProcessTask {
String processedResult = processWithClaude(recordTextBuffer.toString(), meetingDate, participantNames, template.getPrompt());
String minutesPath = saveResult(processedResult, recordTextBuffer.toString().getBytes(StandardCharsets.UTF_8), meetingInfo, toUserCode, template);
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMdd");
try (InputStream is = new FileInputStream(minutesPath)) {
byte[] meetingMinutesBytes = IOUtils.toByteArray(is);
EmailPush.Attachment attachment = EmailPush.Attachment.builder().name(meetingInfo.getSubject() + "会议纪要_" + template.getName()).bytes(meetingMinutesBytes).build();
EmailPush.Attachment attachment = EmailPush.Attachment.builder().name(meetingInfo.getSubject() + "会议纪要_" + fmt.format(meetingInfo.getStartTime())).bytes(meetingMinutesBytes).build();
attachments.add(attachment);
} catch (Exception e) {
throw new RuntimeException(e);
......
package com.cmeeting;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.cmeeting.pojo.MeetingInfo;
import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.util.TencentMeetingApiUtil;
import com.tencentcloudapi.wemeet.Client;
import com.tencentcloudapi.wemeet.core.authenticator.JWTAuthenticator;
import com.tencentcloudapi.wemeet.core.exception.ClientException;
import com.tencentcloudapi.wemeet.core.exception.ServiceException;
import com.tencentcloudapi.wemeet.service.records.api.RecordsApi;
import com.tencentcloudapi.wemeet.service.records.model.V1AddressesRecordFileIdGet200Response;
import com.tencentcloudapi.wemeet.service.records.model.V1AddressesRecordFileIdGet200ResponseAiMeetingTranscriptsInner;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.List;
@SpringBootTest
public class MeetingApiTest {
public static void main(String[] args) throws ServiceException, ClientException {
// 根据recordFileId下载源文件
String tencentAppId = "210468336";
String tencentSdkId = "28790143843";
String tencentSecretId = "0ks7u8cgQ8DGVtlYZeRA9TxZCjvUT3oL";
String tencentSecretKey = "gQU09rkJjiQfiGcUYdhiKq5Ol6LebXg4w7F7Ol0rwvvdv3Xy";
String tencentAdminUserId = "woaJARCQAAftcvU6GGoOn66rdSZ4IrOA";
String recordFileId = "1946007693784055809";
Client client = new Client.Builder()
.withAppId(tencentAppId).withSdkId(tencentSdkId)
.withSecret(tencentSecretId,tencentSecretKey)
.build();
RecordsApi.ApiV1AddressesRecordFileIdGetRequest addressRequest =
new RecordsApi.ApiV1AddressesRecordFileIdGetRequest.Builder(recordFileId)
.operatorId(tencentAdminUserId)
.operatorIdType("1")
.build();
RecordsApi.ApiV1AddressesRecordFileIdGetResponse addressResponse =
client.records().v1AddressesRecordFileIdGet(addressRequest,
new JWTAuthenticator.Builder().nonce(BigInteger.valueOf(Math.abs((new SecureRandom()).nextInt())))
.timestamp(String.valueOf(System.currentTimeMillis() / 1000L)));
// 处理响应
if (addressResponse != null && addressResponse.getData() != null) {
V1AddressesRecordFileIdGet200Response addressData = addressResponse.getData();
// 获取AI会议转录文件
List<V1AddressesRecordFileIdGet200ResponseAiMeetingTranscriptsInner> transcripts =
addressData.getAiMeetingTranscripts();
if (transcripts != null && !transcripts.isEmpty()) {
// 处理每个转录文件
for (V1AddressesRecordFileIdGet200ResponseAiMeetingTranscriptsInner transcript : transcripts) {
String fileType = transcript.getFileType();
if (fileType.equalsIgnoreCase("txt")) {
String downloadUrl = transcript.getDownloadAddress();
System.out.println("downloadUrl: " + downloadUrl);
byte[] fileData = downloadFile(downloadUrl);
// 2. 将二进制文件转换为文本
String recordTextContent = new String(fileData, StandardCharsets.UTF_8);
System.out.println(recordTextContent);
File file = new File("D:/desktop/a.txt");
FileUtil.writeString(recordTextContent, file, StandardCharsets.UTF_8);
}
}
}
}
}
private static byte[] downloadFile(String url) {
// 实现文件下载逻辑
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
try {
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
return response.body().bytes();
}catch (Exception e){
throw new RuntimeException("下载文件失败", e);
}
}
@Test
public void test(){
......@@ -104,4 +19,14 @@ public class MeetingApiTest {
System.out.println(info.getStartTime());
System.out.println(info.getEndTime());
}
@Resource
private MeetingRecordTemplateService meetingRecordTemplateService;
@Test
public void test2(){
String userId = "";
Long templateType = 0L;
MeetingRecordTemplate enabledRecordTemplate = meetingRecordTemplateService.getEnabledRecordTemplate(templateType, userId);
System.out.println(enabledRecordTemplate.getName());
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论