namespace Admin.NET.Plugin.AiDOP.Universal; /// /// 通用客户选择服务 🏢 /// 路由前缀:/api/Universal /// [ApiDescriptionSettings(Order = 280, Description = "通用-客户选择")] [Route("api/Universal")] [AllowAnonymous] [NonUnify] public class UniversalCustomerService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _custRep; public UniversalCustomerService(SqlSugarRepository custRep) { _custRep = custRep; } /// 获取客户选择分页列表 🏢 [DisplayName("获取客户选择列表")] [HttpGet("customer/page")] public async Task GetCustomerPage([FromQuery] UniversalCustomerPageInput input) { var query = _custRep.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(input.CustNo), u => u.Cust!.Contains(input.CustNo!.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.SortName), u => u.SortName!.Contains(input.SortName!.Trim())); bool isDesc = string.Equals(input.SortOrder, "desc", StringComparison.OrdinalIgnoreCase); query = (input.SortField?.ToLower()) switch { "sortname" => isDesc ? query.OrderByDescending(u => u.SortName) : query.OrderBy(u => u.SortName), _ => isDesc ? query.OrderByDescending(u => u.Cust) : query.OrderBy(u => u.Cust), }; var paged = await query .Select(u => new UniversalCustomerOutput { Cust = u.Cust, SortName = u.SortName, Id = u.RecID.ToString(), }) .ToPagedListAsync(input.Page, input.PageSize); return new { total = paged.Total, page = input.Page, pageSize = input.PageSize, list = paged.Items }; } }