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