แก้ total
This commit is contained in:
parent
5c0f183ba2
commit
0d2ca8889f
1 changed files with 13 additions and 19 deletions
|
|
@ -2015,6 +2015,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|||
|
||||
var data = new List<dynamic>();
|
||||
var p_Id = new MySqlParameter("@id", id);
|
||||
int total = 0;
|
||||
|
||||
// ---------------------------
|
||||
// 1️. ดึงรายละเอียดสอบ (exam_info)
|
||||
|
|
@ -2022,15 +2023,15 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|||
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||
{
|
||||
cmd.CommandTimeout = 0;
|
||||
var sb = new StringBuilder();
|
||||
|
||||
// ปรับ SELECT * → SELECT เฉพาะ field ที่ C# ใช้
|
||||
var sb = new StringBuilder();
|
||||
sb.Append(@"
|
||||
SELECT
|
||||
examID, profileID, prefix, fullName, dateofbirth, gender, degree, major, majorgroup,
|
||||
certificateno, certificateIssueDate, score, result, examAttribute, remark, isspecial,
|
||||
applydate, university, position_name, hddPosition, typeTest, position_level, position_type,
|
||||
exam_name, exam_order, score_year
|
||||
exam_name, exam_order, score_year,
|
||||
COUNT(*) OVER() AS total_count
|
||||
FROM exam_info
|
||||
WHERE disable_import_id = @id
|
||||
");
|
||||
|
|
@ -2038,20 +2039,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|||
cmd.Parameters.Clear();
|
||||
cmd.Parameters.Add(p_Id);
|
||||
|
||||
//// เพิ่ม dynamic filter
|
||||
//if (!string.IsNullOrWhiteSpace(req.ExamAttribute))
|
||||
//{
|
||||
// sb.Append(" AND examAttribute = @a ");
|
||||
// cmd.Parameters.Add(new MySqlParameter("@a", req.ExamAttribute));
|
||||
//}
|
||||
|
||||
//if (!string.IsNullOrWhiteSpace(req.ExamResult))
|
||||
//{
|
||||
// sb.Append(" AND result = @r ");
|
||||
// cmd.Parameters.Add(new MySqlParameter("@r", req.ExamResult));
|
||||
//}
|
||||
|
||||
var keywordParam = req.keyword?.Trim(); // Keyword จาก FE
|
||||
var keywordParam = req.keyword?.Trim();
|
||||
if (!string.IsNullOrWhiteSpace(keywordParam))
|
||||
{
|
||||
sb.Append(@"
|
||||
|
|
@ -2067,7 +2055,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|||
cmd.Parameters.Add(new MySqlParameter("@kw", $"%{keywordParam}%"));
|
||||
}
|
||||
|
||||
// Paging และ sorting
|
||||
// ---------------------------
|
||||
// Paging + Sorting
|
||||
// ---------------------------
|
||||
sb.Append(" ORDER BY examID ");
|
||||
sb.Append(" LIMIT @PageSize OFFSET @Offset ");
|
||||
cmd.Parameters.Add(new MySqlParameter("@PageSize", req.PageSize));
|
||||
|
|
@ -2078,12 +2068,15 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|||
_context.Database.OpenConnection();
|
||||
|
||||
// ---------------------------
|
||||
// 2️. ใช้ DbDataReader แทน DataTable → ประหยัด memory และเร็วขึ้น
|
||||
// ดึงข้อมูล + total
|
||||
// ---------------------------
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
while (reader.Read())
|
||||
{
|
||||
if (total == 0)
|
||||
total = Convert.ToInt32(reader["total_count"]);
|
||||
|
||||
data.Add(new
|
||||
{
|
||||
examID = reader["examID"].ToString(),
|
||||
|
|
@ -2165,6 +2158,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|||
return Success(new
|
||||
{
|
||||
data = data,
|
||||
total = total,
|
||||
header = header,
|
||||
round = periodExam.Round,
|
||||
year = periodExam.Year
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue