Platform upgrade: login auth fix, OCR/OSS upload, system menus and dicts, weather dashboard, weighing and invoice modules
This commit is contained in:
@@ -45,7 +45,10 @@ public class UploadsController(
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
|
||||
var result = await ocr.RecognizeAsync(ms, side, file.FileName);
|
||||
// 反面仅存档至 OSS,不调用 OCR(OCR 只识别正面)
|
||||
IdCardOcrResult? result = null;
|
||||
if (side == "front")
|
||||
result = await ocr.RecognizeAsync(ms, side, file.FileName, saved.Key);
|
||||
return Ok(new { url = saved.Url, key = saved.Key, side, ocr = result });
|
||||
}
|
||||
|
||||
@@ -120,7 +123,7 @@ public class UploadsController(
|
||||
try
|
||||
{
|
||||
session.Front = await storage.SaveAsync("idcard", ms, front.FileName, front.ContentType);
|
||||
session.FrontOcr = await ocr.RecognizeAsync(ms, "front", front.FileName);
|
||||
session.FrontOcr = await ocr.RecognizeAsync(ms, "front", front.FileName, session.Front.Key);
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
{
|
||||
@@ -135,8 +138,9 @@ public class UploadsController(
|
||||
ms.Position = 0;
|
||||
try
|
||||
{
|
||||
// 反面仅存档,不调用 OCR
|
||||
session.Back = await storage.SaveAsync("idcard", ms, back.FileName, back.ContentType);
|
||||
session.BackOcr = await ocr.RecognizeAsync(ms, "back", back.FileName);
|
||||
session.BackOcr = null;
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
{
|
||||
@@ -159,7 +163,7 @@ public class UploadsController(
|
||||
if (!session.Done)
|
||||
return Ok(new { done = false });
|
||||
|
||||
var ocr = MergeOcr(session.FrontOcr, session.BackOcr);
|
||||
// 反面不再识别,仅返回正面 OCR 结果(可能为 null)
|
||||
return Ok(new
|
||||
{
|
||||
done = true,
|
||||
@@ -167,20 +171,10 @@ public class UploadsController(
|
||||
frontKey = session.Front?.Key,
|
||||
backUrl = session.Back?.Url,
|
||||
backKey = session.Back?.Key,
|
||||
ocr
|
||||
ocr = session.FrontOcr
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>合并正反面 OCR 结果(正面的姓名/证件号/性别/住址为主)</summary>
|
||||
private static IdCardOcrResult MergeOcr(IdCardOcrResult? front, IdCardOcrResult? back)
|
||||
{
|
||||
var any = front is { Success: true } || back is { Success: true };
|
||||
var f = front ?? new IdCardOcrResult();
|
||||
return new IdCardOcrResult(
|
||||
f.Name, f.IdCard, f.Gender, f.Address, f.BankName, f.BankAccount,
|
||||
any, any ? "识别完成" : (f.Message ?? "未配置 OCR 服务"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取本机局域网 IP,供手机扫码访问。
|
||||
/// 优先选择物理网卡(排除 VMware/VirtualBox/Hyper-V/WSL/VPN 等虚拟网卡),
|
||||
|
||||
Reference in New Issue
Block a user