瀏覽代碼

登录失败登录失败

chengxr 1 年之前
父節點
當前提交
c366bf8998

+ 41 - 0
QFD/dbService/ClassSet.cpp

@@ -1,5 +1,11 @@
 #include "ClassSet.h"
 
+#include "DBServiceSet.h"
+
+#include <QCryptographicHash>
+
+#include <QDebug>
+
 QList<NodeMatrixInfo *> ClassSet::datas;
 
 ClassSet::ClassSet()
@@ -104,3 +110,38 @@ ClassSet::ClassSet()
     testData11->ordinate       = "B2";
     datas.append(testData11);
 }
+
+static QFUser m_currentUser;
+
+QFUser::QFUser() { }
+
+QFUser::QFUser(const QString userId, const QString password) : userNo(userId), password(password) { }
+
+QFUser QFUser::currentUser()
+{
+    return m_currentUser;
+}
+
+int QFUser::login()
+{
+    if (!DBServiceSet().QueryUserByNo(this, userNo)) {
+        return QF_CODE_USER_NOT_EXISTS;
+    }
+
+    QCryptographicHash ch(QCryptographicHash::Md5);
+    QString md5str;
+    QByteArray md5bytes = QCryptographicHash::hash(password.toLatin1(), QCryptographicHash::Md5);
+    md5str.prepend(md5bytes.toHex());
+
+    if (!DBServiceSet().QueryUserByNoAndPassword(this, userNo, md5str)) {
+        return QF_CODE_WRONG_PASSWORD;
+    }
+
+    m_currentUser = *this;
+    return QF_CODE_COMPLETED;
+}
+
+int QFUser::logout()
+{
+    return QF_CODE_COMPLETED;
+}

+ 16 - 1
QFD/dbService/ClassSet.h

@@ -5,6 +5,11 @@
 
 #include <QDate>
 
+const int QF_CODE_COMPLETED       = 1000;
+const int QF_CODE_FAILED          = 2000;
+const int QF_CODE_USER_NOT_EXISTS = 2001;
+const int QF_CODE_WRONG_PASSWORD  = 2002;
+
 /**
  * @projectName   QFD
  * @author        cyh
@@ -61,7 +66,7 @@ public:
  * @date          2021-05-12
  * @desc          用户信息
  */
-class UserInfo
+class QFUser
 {
 public:
     enum Role
@@ -84,6 +89,16 @@ public:
     QString remark;           //注释信息
     QString projectId;        //工程编号
     QString writeTime;        //填写时间
+
+    QFUser();
+
+    QFUser(const QString userId, const QString password);
+
+    static QFUser currentUser();
+
+    int login();
+
+    int logout();
 };
 
 /**

+ 25 - 25
QFD/dbService/DBServiceSet.cpp

@@ -1712,7 +1712,7 @@ bool DBServiceSet::DeleteEngineerNotInId(int id, QString dbPath)
 //////////////////////工程信息表-end////////////////////
 
 //////////////////////用户信息表-start////////////////////
-int DBServiceSet::AddUserInfo(const UserInfo &userInfo)
+int DBServiceSet::AddUserInfo(const QFUser &userInfo)
 {
     int returnId = -1;
     try {
@@ -1736,7 +1736,7 @@ int DBServiceSet::AddUserInfo(const UserInfo &userInfo)
     return returnId;
 }
 /*暂时用id修改*/
-bool DBServiceSet::UpdateUserInfo(const UserInfo &userInfo)
+bool DBServiceSet::UpdateUserInfo(const QFUser &userInfo)
 {
     bool ret = false;
     try {
@@ -1790,7 +1790,7 @@ bool DBServiceSet::UpdateUserById(QString userNo, QString password, int id)
     return ret;
 }
 
-bool DBServiceSet::QueryUserInfoById(UserInfo *userInfo, int userId)
+bool DBServiceSet::QueryUserInfoById(QFUser *userInfo, int userId)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -1807,7 +1807,7 @@ bool DBServiceSet::QueryUserInfoById(UserInfo *userInfo, int userId)
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -1825,7 +1825,7 @@ bool DBServiceSet::QueryUserInfoById(UserInfo *userInfo, int userId)
     return ret;
 }
 
-bool DBServiceSet::QueryUserInfoByUnserInfo(const UserInfo &paramInfo, UserInfo &queryInfo)
+bool DBServiceSet::QueryUserInfoByUnserInfo(const QFUser &paramInfo, QFUser &queryInfo)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -1876,7 +1876,7 @@ bool DBServiceSet::QueryUserInfoByUnserInfo(const UserInfo &paramInfo, UserInfo
     return ret;
 }
 /*获取到用户列表*/
-bool DBServiceSet::QueryUserListByEngineerId(QList<UserInfo *> *userInfoList, int engineerId)
+bool DBServiceSet::QueryUserListByEngineerId(QList<QFUser *> *userInfoList, int engineerId)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -1892,12 +1892,12 @@ bool DBServiceSet::QueryUserListByEngineerId(QList<UserInfo *> *userInfoList, in
     if (query.exec(selectSql)) {
         while (query.next()) {
             if (query.isNull(0) == false) {
-                UserInfo *userInfo        = new UserInfo();
+                QFUser *userInfo        = new QFUser();
                 userInfo->id              = query.value(0).toInt();
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -1916,7 +1916,7 @@ bool DBServiceSet::QueryUserListByEngineerId(QList<UserInfo *> *userInfoList, in
     return ret;
 }
 
-bool DBServiceSet::QueryUserListByColumnAndColumnValue(QList<UserInfo *> *userInfoList, QString columnName,
+bool DBServiceSet::QueryUserListByColumnAndColumnValue(QList<QFUser *> *userInfoList, QString columnName,
                                                        QString columnValue)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
@@ -1933,12 +1933,12 @@ bool DBServiceSet::QueryUserListByColumnAndColumnValue(QList<UserInfo *> *userIn
     if (query.exec(selectSql)) {
         while (query.next()) {
             if (query.isNull(0) == false) {
-                UserInfo *userInfo        = new UserInfo();
+                QFUser *userInfo        = new QFUser();
                 userInfo->id              = query.value(0).toInt();
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -1956,7 +1956,7 @@ bool DBServiceSet::QueryUserListByColumnAndColumnValue(QList<UserInfo *> *userIn
     }
     return ret;
 }
-bool DBServiceSet::QueryUserList(QList<UserInfo *> *userInfoList)
+bool DBServiceSet::QueryUserList(QList<QFUser *> *userInfoList)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -1967,12 +1967,12 @@ bool DBServiceSet::QueryUserList(QList<UserInfo *> *userInfoList)
     if (query.exec(selectSql)) {
         while (query.next()) {
             if (query.isNull(0) == false) {
-                UserInfo *userInfo        = new UserInfo();
+                QFUser *userInfo        = new QFUser();
                 userInfo->id              = query.value(0).toInt();
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -1991,7 +1991,7 @@ bool DBServiceSet::QueryUserList(QList<UserInfo *> *userInfoList)
     return ret;
 }
 
-bool DBServiceSet::QueryUserListNotAdmin(QList<UserInfo *> *userInfoList)
+bool DBServiceSet::QueryUserListNotAdmin(QList<QFUser *> *userInfoList)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -2003,12 +2003,12 @@ bool DBServiceSet::QueryUserListNotAdmin(QList<UserInfo *> *userInfoList)
         if (query.exec(selectSql)) {
             while (query.next()) {
                 if (query.isNull(0) == false) {
-                    UserInfo *userInfo        = new UserInfo();
+                    QFUser *userInfo        = new QFUser();
                     userInfo->id              = query.value(0).toInt();
                     userInfo->userName        = query.value(1).toString();
                     userInfo->userNo          = query.value(2).toString();
                     userInfo->password        = query.value(3).toString();
-                    userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                    userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                     userInfo->post            = query.value(5).toString();
                     userInfo->major           = query.value(6).toString();
                     userInfo->workPosition    = query.value(7).toString();
@@ -2061,7 +2061,7 @@ bool DBServiceSet::DeleteUserByRole(int roleType)
     return ret;
 }
 
-bool DBServiceSet::QueryUserByNoAndPassword(UserInfo *userInfo, QString userNo, QString password)
+bool DBServiceSet::QueryUserByNoAndPassword(QFUser *userInfo, QString userNo, QString password)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -2080,7 +2080,7 @@ bool DBServiceSet::QueryUserByNoAndPassword(UserInfo *userInfo, QString userNo,
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -2098,7 +2098,7 @@ bool DBServiceSet::QueryUserByNoAndPassword(UserInfo *userInfo, QString userNo,
     return ret;
 }
 
-bool DBServiceSet::QueryUserByNo(UserInfo *userInfo, QString userNo)
+bool DBServiceSet::QueryUserByNo(QFUser *userInfo, QString userNo)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();
     QSqlQuery query(db);
@@ -2116,7 +2116,7 @@ bool DBServiceSet::QueryUserByNo(UserInfo *userInfo, QString userNo)
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -2134,7 +2134,7 @@ bool DBServiceSet::QueryUserByNo(UserInfo *userInfo, QString userNo)
     return ret;
 }
 
-bool DBServiceSet::QueryUserInfoById2(UserInfo *userInfo, int userId)
+bool DBServiceSet::QueryUserInfoById2(QFUser *userInfo, int userId)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase2();
     QSqlQuery query(db);
@@ -2152,7 +2152,7 @@ bool DBServiceSet::QueryUserInfoById2(UserInfo *userInfo, int userId)
                 userInfo->userName        = query.value(1).toString();
                 userInfo->userNo          = query.value(2).toString();
                 userInfo->password        = query.value(3).toString();
-                userInfo->role            = static_cast<UserInfo::Role>(query.value(4).toInt());
+                userInfo->role            = static_cast<QFUser::Role>(query.value(4).toInt());
                 userInfo->post            = query.value(5).toString();
                 userInfo->major           = query.value(6).toString();
                 userInfo->workPosition    = query.value(7).toString();
@@ -2170,7 +2170,7 @@ bool DBServiceSet::QueryUserInfoById2(UserInfo *userInfo, int userId)
     return ret;
 }
 
-bool DBServiceSet::UpdateUserInfo2(const UserInfo &userInfo)
+bool DBServiceSet::UpdateUserInfo2(const QFUser &userInfo)
 {
     bool ret = false;
     try {
@@ -2196,7 +2196,7 @@ bool DBServiceSet::UpdateUserInfo2(const UserInfo &userInfo)
     return ret;
 }
 
-int DBServiceSet::AddUserInfo2(const UserInfo &userInfo)
+int DBServiceSet::AddUserInfo2(const QFUser &userInfo)
 {
     int returnId = -1;
     try {

+ 13 - 13
QFD/dbService/DBServiceSet.h

@@ -182,35 +182,35 @@ public:
 
     //////////////////////用户信息表-start////////////////////
     //添加信息
-    int AddUserInfo(const UserInfo &userInfo);
+    int AddUserInfo(const QFUser &userInfo);
     /*修改用户信息*/
-    bool UpdateUserInfo(const UserInfo &userInfo);
+    bool UpdateUserInfo(const QFUser &userInfo);
     bool UpdateUserPassword(QString userNo, QString password);
     bool UpdateUserById(QString userNo, QString password, int id);
     /*根据用户id查询用户信息*/
-    bool QueryUserInfoById(UserInfo *userInfo, int userId);
-    bool QueryUserInfoByUnserInfo(const UserInfo &paramInfo, UserInfo &queryInfo);
+    bool QueryUserInfoById(QFUser *userInfo, int userId);
+    bool QueryUserInfoByUnserInfo(const QFUser &paramInfo, QFUser &queryInfo);
     // int QueryUserInfoByUserNoAndPhone(QString);
     /*根据列名称和列值模糊查询用户信息,列名称为实体类中的属性名称*/
-    bool QueryUserListByColumnAndColumnValue(QList<UserInfo *> *userInfoList, QString columnName, QString columnValue);
-    bool QueryUserList(QList<UserInfo *> *userInfoList);
-    bool QueryUserListNotAdmin(QList<UserInfo *> *userInfoList);
+    bool QueryUserListByColumnAndColumnValue(QList<QFUser *> *userInfoList, QString columnName, QString columnValue);
+    bool QueryUserList(QList<QFUser *> *userInfoList);
+    bool QueryUserListNotAdmin(QList<QFUser *> *userInfoList);
     /*根据用户编号删除用户信息*/
     bool DeleteUserById(int Id);
-    bool QueryUserByNoAndPassword(UserInfo *userInfo, QString userNo, QString password);
-    bool QueryUserByNo(UserInfo *userInfo, QString userNo);
+    bool QueryUserByNoAndPassword(QFUser *userInfo, QString userNo, QString password);
+    bool QueryUserByNo(QFUser *userInfo, QString userNo);
     /*获取工程用户列表*/
-    bool QueryUserListByEngineerId(QList<UserInfo *> *userInfoList, int engineerId);
+    bool QueryUserListByEngineerId(QList<QFUser *> *userInfoList, int engineerId);
 
     //删除除管理管外的所有用户
     bool DeleteUserByRole(int roleType);
 
     //专家本地库查询信息
-    bool QueryUserInfoById2(UserInfo *userInfo, int userId);
+    bool QueryUserInfoById2(QFUser *userInfo, int userId);
 
-    bool UpdateUserInfo2(const UserInfo &userInfo);
+    bool UpdateUserInfo2(const QFUser &userInfo);
 
-    int AddUserInfo2(const UserInfo &userInfo);
+    int AddUserInfo2(const QFUser &userInfo);
 
     //////////////////////用户信息表-end////////////////////
 

+ 2 - 2
QFD/shemeTable/GroupPanelWidget.cpp

@@ -186,14 +186,14 @@ void GroupPanelWidget::initPlainWidget(int engineerId)
     GroupTableWidget *table = new GroupTableWidget;
     connect(table, &GroupTableWidget::returnModel, this, &GroupPanelWidget::getTableModel);
     //获取专家
-    QList<UserInfo *> userInfoList;
+    QList<QFUser *> userInfoList;
     if (!DBServiceSet().QueryUserListByEngineerId(&userInfoList, engineerId)) {
         // QMessageBox::critical(this, "异常", "数据库访问异常!");
         return;
     }
     //获取技术措施指标权重
     for (int i = 0; i < userInfoList.size(); i++) {
-        const UserInfo *user = userInfoList.at(i);
+        const QFUser *user = userInfoList.at(i);
         QString str          = "专家" + QString::number(i + 1) + "-" + user->userName;
         UserConfig userConfig;
         DBServiceSet().QueryUserConfigListInfoByUserIdAndEngineerId(&userConfig, user->id, engineerId);

+ 6 - 6
QFD/shemeTable/ProfessionInfo.cpp

@@ -103,7 +103,7 @@ void ProfessionalInfo::setCompleteIt(bool complete)
     }
 }
 
-void ProfessionalInfo::setPerson(const UserInfo &person)
+void ProfessionalInfo::setPerson(const QFUser &person)
 {
     m_userId = person.id;
     ui->noEdit->setText(person.userNo);
@@ -143,7 +143,7 @@ void ProfessionalInfo::on_saveBtn_clicked()
         return;
     }
 
-    UserInfo user;
+    QFUser user;
     user.userNo = ui->noEdit->text().trimmed();
     if (user.userNo.isEmpty()) {
         ui->errorMsglabel->setText("账号不能为空");
@@ -166,7 +166,7 @@ void ProfessionalInfo::on_saveBtn_clicked()
         ui->errorMsglabel->setText("请选择用户权限");
         return;
     }
-    user.role = static_cast<UserInfo::Role>(ui->roleCombx->currentIndex());
+    user.role = static_cast<QFUser::Role>(ui->roleCombx->currentIndex());
 
     user.userName = ui->nameEdit->text().trimmed();
     if (user.userName.isEmpty()) {
@@ -294,7 +294,7 @@ void ProfessionalInfo::on_sureButton_clicked()
         return;
     }
 
-    UserInfo user;
+    QFUser user;
     user.userNo = ui->noEdit->text().trimmed();
     if (user.userNo.isEmpty()) {
         ui->errorMsglabel->setText("账号不能为空");
@@ -317,7 +317,7 @@ void ProfessionalInfo::on_sureButton_clicked()
         ui->errorMsglabel->setText("请选择用户权限");
         return;
     }
-    user.role = static_cast<UserInfo::Role>(ui->roleCombx->currentIndex());
+    user.role = static_cast<QFUser::Role>(ui->roleCombx->currentIndex());
 
     user.userName = ui->nameEdit->text().trimmed();
     if (user.userName.isEmpty()) {
@@ -352,7 +352,7 @@ void ProfessionalInfo::on_sureButton_clicked()
     ui->errorMsglabel->setText("");
     user.id = m_userId;
 
-    UserInfo info;
+    QFUser info;
     if (DBServiceSet().QueryUserInfoById2(&info, user.id)) {
         if (!DBServiceSet().UpdateUserInfo2(user)) {
             ui->errorMsglabel->setText("更新用户信息出错!");

+ 2 - 2
QFD/shemeTable/ProfessionInfo.h

@@ -4,7 +4,7 @@
 #include <QDialog>
 #include <QDateTime>
 
-class UserInfo;
+class QFUser;
 namespace Ui {
 class ProfessionalInfo;
 }
@@ -19,7 +19,7 @@ public:
 
     bool completeIt();
     void setCompleteIt(bool complete);
-    void setPerson(const UserInfo &person);
+    void setPerson(const QFUser &person);
     void setSureButtonVisible();
     void setDetailButtonVisible();
 

+ 3 - 3
QFD/shemeTable/UserConfigDlg.cpp

@@ -35,7 +35,7 @@ UserConfigDlg::~UserConfigDlg()
 void UserConfigDlg::userItemClicked(QListWidgetItem *item)
 {
     int id = item->data(Qt::UserRole).toInt();
-    UserInfo user;
+    QFUser user;
     if (!DBServiceSet().QueryUserInfoById(&user, id)) {
         qDebug() << "用户 " << item->text() << " " << id << " 数据库查询失败!";
         return;
@@ -331,14 +331,14 @@ void UserConfigDlg::init()
 
 void UserConfigDlg::refreshUserList()
 {
-    QList<UserInfo *> users;
+    QList<QFUser *> users;
     if (!DBServiceSet().QueryUserList(&users)) {
         qDebug() << "用户数据库查询失败!";
         return;
     }
     int row = 0;
     for (auto user : users) {
-        if (user->role == UserInfo::Expert) {
+        if (user->role == QFUser::Expert) {
             QListWidgetItem *newItem = new QListWidgetItem;
             newItem->setText(QString("%1 [%2]").arg(user->userName).arg(user->userNo));
             newItem->setData(Qt::UserRole, user->id);

+ 17 - 5
QFD/view/LoginView.cpp

@@ -3,6 +3,10 @@
 #include "LoginWidget.h"
 #include "RegisterWidget.h"
 
+#include <dbService/ClassSet.h>
+
+#include <Widgets/InfoBar.h>
+
 #include <QPainter>
 #include <QBoxLayout>
 #include <QStackedWidget>
@@ -66,21 +70,29 @@ bool LoginView::verifyLoginInfo() const
     if (m_loginWidget->account().isEmpty()) {
         valid = false;
         msg   = "账号不能为空";
-    }
-
-    if (m_loginWidget->password().isEmpty()) {
+    } else if (m_loginWidget->password().isEmpty()) {
         valid = false;
         msg   = "密码不能为空";
     }
 
+    if (!valid && !msg.isEmpty()) {
+        InfoBar::warning("提示", msg, Qt::Horizontal, false, 2000, InfoBarPosition::TOP_RIGHT, topLevelWidget());
+    }
+
     return valid;
 }
 
 void LoginView::slotLogin()
 {
     if (verifyLoginInfo()) {
-        setStackIndex(m_stackedWidget->currentIndex() + 1);
-        emit signalLogin();
+
+        QFUser *user = new QFUser(m_loginWidget->account(), m_loginWidget->password());
+        int code     = user->login();
+        qDebug() << __FUNCTION__ << m_loginWidget->account() << m_loginWidget->password() << __LINE__ << code;
+        delete user;
+
+        //        setStackIndex(m_stackedWidget->currentIndex() + 1);
+        //        emit signalLogin();
     }
 }
 

+ 8 - 0
bin/config.ini

@@ -0,0 +1,8 @@
+[USERCONFIG]
+UserName=admin
+Password=123456
+RememberPassword=true
+Project=无人平台能力层次分析法统计
+RoleType=0
+DbPath=/data
+TechMessaureConfig=9, 5, 4, 3, 1

二進制
bin/data/data.db


二進制
bin/data/qfd.db


二進制
bin/nodeData/node.db