Files
IOT_API/Service/Interface/Asset/IQrCodeService.cs
T

36 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Model;
using Model.Dto.Asset;
using SqlSugar;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Service.Interface
{
/// <summary>
/// 设备二维码 服务接口
/// 编码内容为扫码直达 URL{baseUrl}/asset/ledger/equipment?id={equipmentId}
/// baseUrl 由 Controller 从 HTTP 请求构造(scheme://host)后传入,保持 Service 层框架无关
/// 生成时把 URL 写入 EquipmentEntity.QrCodeUrl;打印返回 HTML 页面(含 base64 二维码图)
/// </summary>
public interface IQrCodeService
{
/// <summary>生成二维码 URL 并写入设备(baseUrl 形如 http://host:port</summary>
Task<Result<QrCodeDto>> GenerateAsync(long equipmentId, string baseUrl);
/// <summary>生成二维码 PNG 图片字节(同时确保 URL 已写库)</summary>
Task<Result<byte[]>> GenerateImageAsync(long equipmentId, string baseUrl);
/// <summary>批量生成二维码 URL(逐个写库,单条失败不影响其它)</summary>
Task<Result<List<QrCodeBatchResultDto>>> BatchGenerateAsync(long[] equipmentIds, string baseUrl);
/// <summary>设备二维码列表(分页,关键字匹配 Code/NameqrOnly=1 仅看已生成)</summary>
Task<Result<List<QrCodeDto>>> GetListPagedAsync(int pageIndex, int pageSize, RefAsync<int> total, string? keyword = null, bool qrOnly = false);
/// <summary>获取打印用 HTML 页面(含二维码 base64 图 + 设备信息,浏览器 Ctrl+P 打印)</summary>
Task<Result<string>> GetPrintHtmlAsync(long equipmentId, string baseUrl);
/// <summary>绑定 RFID 编号到设备(覆盖式写入 RfidCode</summary>
Task<Result> BindRfidAsync(long equipmentId, string rfidCode);
}
}