| | |
| | | /// <param name="query"></param> |
| | | /// <returns></returns> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | /// <summary> |
| | | /// 分页查询缺陷代码列表数据 |
| | | /// </summary> |
| | | /// <param name="query">分页查询参数对象(包含页码、每页条数、排序、查询条件等)</param> |
| | | /// <returns>包含分页数据的返回结果(数据列表、总条数等)</returns> |
| | | public ReturnDto<PageList<MesDefectCode>> GetListPage(PageQuery query) |
| | | { |
| | | // 初始化分页结果对象(默认空列表,后续会填充数据) |
| | | var pageList = new PageList<MesDefectCode>(); |
| | | try |
| | | { |
| | | // 1. 构建查询条件(WHERE子句) |
| | | // "1=1" 是万能条件(避免后续拼接条件时需要判断是否加AND),拼接查询参数中的自定义条件(query.keyWhere) |
| | | var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere); |
| | | var _sbBy = |
| | | new StringBuilder(query.sortName + " " + query.sortOrder); |
| | | var totalCount = 0; |
| | | var itemsList = Db.Queryable<MesDefectCode>("a") |
| | | .Where(_sbWhere.ToString()) |
| | | .OrderBy(_sbBy.ToString()) |
| | | .ToPageList(query.currentPage, query.everyPageSize, |
| | | ref totalCount); |
| | | |
| | | pageList = new PageList<MesDefectCode>(itemsList, totalCount, |
| | | query.everyPageSize); |
| | | return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, |
| | | ReturnCode.Success, "读取成功"); |
| | | // 2. 构建排序条件(ORDER BY子句) |
| | | // 拼接排序字段(query.sortName)和排序方向(query.sortOrder,如"ASC"升序、"DESC"降序) |
| | | var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder); |
| | | |
| | | // 3. 声明总记录数变量(用于接收查询结果的总条数) |
| | | var totalCount = 0; |
| | | |
| | | // 4. 执行分页查询 |
| | | // 使用数据库访问工具(Db.Queryable)查询MesDefectCode表(别名"a") |
| | | var itemsList = Db.Queryable<MesDefectCode>("a") |
| | | .Where(_sbWhere.ToString()) // 应用WHERE条件 |
| | | .OrderBy(_sbBy.ToString()) // 应用排序条件 |
| | | // 分页查询:当前页码(query.currentPage)、每页条数(query.everyPageSize),总条数通过ref参数返回 |
| | | .ToPageList(query.currentPage, query.everyPageSize, ref totalCount); |
| | | |
| | | // 5. 组装分页结果对象 |
| | | // 包含当前页数据(itemsList)、总条数(totalCount)、每页条数(query.everyPageSize) |
| | | pageList = new PageList<MesDefectCode>(itemsList, totalCount, query.everyPageSize); |
| | | |
| | | // 6. 返回成功结果:包含分页数据、成功状态码、提示信息 |
| | | return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, ReturnCode.Success, "读取成功"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, |
| | | ReturnCode.Default, ex.Message); |
| | | // 捕获异常时,返回空分页结果、默认错误码、异常信息 |
| | | return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, ReturnCode.Default, ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取 |
| | | /// </summary> |