Browse Source

'工程分页模糊查询'

zsf 1 year ago
parent
commit
5c718335b0
2 changed files with 55 additions and 1 deletions
  1. 52 1
      QFD/dbService/ProjectService.cpp
  2. 3 0
      QFD/dbService/ProjectService.h

+ 52 - 1
QFD/dbService/ProjectService.cpp

@@ -158,7 +158,7 @@ bool ProjectService::QueryAll(QList<ProjectInfo *> *projectInfoList)
     QString selectSql =
             QString("SELECT id, project_name, remark,task_name,estimate_time,estimate_objective,estimate_dept,"
                     "estimate_person,positional_titles,create_time,update_time,estimate_type FROM "
-                    "t_project_info");
+                    "t_project_info order by create_time desc");
     if (query.exec(selectSql)) {
         while (query.next()) {
             if (query.isNull(0) == false) {
@@ -201,3 +201,54 @@ bool ProjectService::DeleteById(int id)
     }
     return ret;
 }
+
+bool ProjectService::SelectAllByPage(QList<ProjectInfo *> *projectInfoList, int &totalPages, int page, int pageSize,
+                                     QString name)
+{
+
+    int offset = (page - 1) * pageSize;
+    name       = "%" + name + "%";
+
+    QSqlDatabase db = SqlDBHelper::getDatabase();
+    QSqlQuery query(db);
+    bool ret = false;
+    QString selectSql =
+            QString("SELECT id, project_name, remark,task_name,estimate_time,estimate_objective,estimate_dept,"
+                    "estimate_person,positional_titles,create_time,update_time,estimate_type FROM "
+                    "t_project_info where name like %1 order by create_time desc LIMIT %2 OFFSET %3")
+                    .arg(name)
+                    .arg(pageSize)
+                    .arg(offset);
+
+    if (query.exec(selectSql)) {
+        while (query.next()) {
+            if (query.isNull(0) == false) {
+                ProjectInfo *projectInfo       = new ProjectInfo();
+                projectInfo->id                = query.value(0).toInt();
+                projectInfo->projectName       = query.value(1).toString();
+                projectInfo->remark            = query.value(2).toString();
+                projectInfo->taskName          = query.value(3).toString();
+                projectInfo->estimateTime      = query.value(4).toString();
+                projectInfo->estimateObjective = query.value(5).toString();
+                projectInfo->estimateDept      = query.value(6).toString();
+                projectInfo->estimatePerson    = query.value(7).toString();
+                projectInfo->positionalTitles  = query.value(8).toString();
+                projectInfo->createTime        = query.value(9).toString();
+                projectInfo->updateTime        = query.value(10).toString();
+                projectInfo->estimateType      = query.value(11).toString();
+                projectInfoList->append(projectInfo);
+            }
+            ret = true;
+        }
+    } else {
+        qDebug() << query.lastError();
+    }
+    QString selectSqlAll = QString("SELECT * FROM t_project_info where name like %1 ").arg(name);
+    if (query.exec(selectSqlAll)) {
+        query.next();
+        int totalCount = query.value(0).toInt();
+        totalPages     = totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1);
+    }
+
+    return ret;
+}

+ 3 - 0
QFD/dbService/ProjectService.h

@@ -26,6 +26,9 @@ public:
 
     //根据id删除
     bool DeleteById(int id);
+
+    //分页查询
+    bool SelectAllByPage(QList<ProjectInfo *> *projectInfoList, int &totalPages, int page, int pageSize, QString name);
 };
 
 #endif  // PROJECTSERVICE_H