| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- namespace Admin.NET.Plugin.AiDOP.Universal;
- /// <summary>
- /// 通用客户选择服务 🏢
- /// 路由前缀:/api/Universal
- /// </summary>
- [ApiDescriptionSettings(Order = 280, Description = "通用-客户选择")]
- [Route("api/Universal")]
- [AllowAnonymous]
- [NonUnify]
- public class UniversalCustomerService : IDynamicApiController, ITransient
- {
- private readonly SqlSugarRepository<CustMaster> _custRep;
- public UniversalCustomerService(SqlSugarRepository<CustMaster> custRep)
- {
- _custRep = custRep;
- }
- /// <summary>获取客户选择分页列表 🏢</summary>
- [DisplayName("获取客户选择列表")]
- [HttpGet("customer/page")]
- public async Task<object> 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 };
- }
- }
|