using FoodLabeling.Application.Contracts.Dtos.Common; using FoodLabeling.Application.Contracts.Dtos.Partner; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; namespace FoodLabeling.Application.Contracts.IServices; /// /// 合作伙伴管理接口(fl_partner) /// public interface IPartnerAppService : IApplicationService { /// /// 合作伙伴分页列表(与导出使用相同筛选条件) /// /// 分页与筛选;SkipCount 为页码(从 1 起) /// 分页数据 /// 成功 /// 参数错误 /// 服务器错误 Task> GetListAsync(PartnerGetListInputVo input); /// /// 合作伙伴详情 /// /// 主键 Id /// 详情 /// 成功 /// Id 无效 /// 服务器错误 Task GetAsync(string id); /// /// 新增合作伙伴 /// /// 名称、邮箱、电话、启用状态 /// 新建后的详情 /// /// 示例请求: /// ```json /// { /// "partnerName": "Global Foods Inc.", /// "contactEmail": "admin@globalfoods.com", /// "phoneNumber": "+1 (555) 100-2000", /// "state": true /// } /// ``` /// /// 成功 /// 校验失败 /// 服务器错误 Task CreateAsync(PartnerCreateInputVo input); /// /// 编辑合作伙伴 /// /// 主键 Id /// 名称、邮箱、电话、启用状态 /// 更新后的详情 /// 成功 /// 校验失败或记录不存在 /// 服务器错误 Task UpdateAsync(string id, PartnerUpdateInputVo input); /// /// 删除合作伙伴(逻辑删除) /// /// 主键 Id /// 成功 /// Id 无效或记录不存在 /// 服务器错误 Task DeleteAsync(string id); /// /// 按当前列表筛选条件批量导出合作伙伴为 PDF(Account Management「Company」页签;不分页,上限 5000 条) /// /// 与列表相同的 Keyword、State;分页字段忽略 /// PDF 文件流 /// /// 筛选条件需与 一致,便于统计与导出数据对齐。 /// /// 成功返回 application/pdf /// 参数错误 /// 服务器错误 Task ExportPdfAsync(PartnerGetListInputVo input); }