You've already forked FrameTour-BE
refactor(printer): 简化人脸二维码生成逻辑
- 移除原有的复杂二维码生成和文件操作代码 - 使用 pcFaceService.bindWxaCode 方法替代 - 直接重定向到生成的二维码 URL - 消除临时文件创建和删除操作 - 简化 HTTP 响应处理流程
This commit is contained in:
@@ -120,46 +120,8 @@ public class PrinterTvController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/face/{faceId}/qrcode")
|
@GetMapping("/face/{faceId}/qrcode")
|
||||||
public void getFaceQrcode(@PathVariable("faceId") Long faceId, HttpServletResponse response) throws Exception {
|
public void getFaceQrcode(@PathVariable("faceId") Long faceId, HttpServletResponse response) throws Exception {
|
||||||
File qrcode = new File("qrcode_face_" + faceId + ".jpg");
|
String url = pcFaceService.bindWxaCode(faceId);
|
||||||
try {
|
response.sendRedirect(url);
|
||||||
FaceEntity face = faceRepository.getFace(faceId);
|
|
||||||
if (face == null) {
|
|
||||||
response.setStatus(404);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
MpConfigEntity scenicMpConfig = scenicRepository.getScenicMpConfig(face.getScenicId());
|
|
||||||
if (scenicMpConfig == null) {
|
|
||||||
response.setStatus(500);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
WxMpUtil.generateUnlimitedWXAQRCode(
|
|
||||||
scenicMpConfig.getAppId(),
|
|
||||||
scenicMpConfig.getAppSecret(),
|
|
||||||
"pages/videoSynthesis/bind_face",
|
|
||||||
faceId.toString(),
|
|
||||||
qrcode
|
|
||||||
);
|
|
||||||
|
|
||||||
// 设置响应头
|
|
||||||
response.setContentType("image/jpeg");
|
|
||||||
response.setHeader("Content-Disposition", "inline; filename=\"" + qrcode.getName() + "\"");
|
|
||||||
|
|
||||||
// 将二维码文件写入响应输出流
|
|
||||||
try (FileInputStream fis = new FileInputStream(qrcode);
|
|
||||||
OutputStream os = response.getOutputStream()) {
|
|
||||||
byte[] buffer = new byte[1024];
|
|
||||||
int bytesRead;
|
|
||||||
while ((bytesRead = fis.read(buffer)) != -1) {
|
|
||||||
os.write(buffer, 0, bytesRead);
|
|
||||||
}
|
|
||||||
os.flush();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
// 删除临时文件
|
|
||||||
if (qrcode.exists()) {
|
|
||||||
qrcode.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user