Ver Fonte

dev: set current login user

Yao há 4 dias atrás
pai
commit
92dc1a0551

+ 14 - 3
blastopepage.cpp

@@ -57,6 +57,11 @@ void BlastOpePage::InitFace() {
     QWebEnginePage *page = view->page();
 
     QJsonObject metaInfo = getMetaInfo();
+    if (metaInfo["certName"] == "" || metaInfo["certNo"] == "") {
+        QMessageBox::information(nullptr, "获取用户信息错误",
+                                 "未获得用户的身份证信息,请联系管理员");
+        return;
+    }
 
     QObject::connect(page, &QWebEnginePage::featurePermissionRequested,
                      [this, page](const QUrl &securityOrigin, QWebEnginePage::Feature feature) {
@@ -67,6 +72,14 @@ void BlastOpePage::InitFace() {
     QUrl postUrl(apiBackendUrl.resolved(QUrl("h-face-verify/pc")));
     QJsonObject response = sendPostRequest(postUrl, metaInfo);
     QString certifyUrl;
+    if (response["code"] != 200) {
+        Logger::getInstance().error(
+            QString("创建人脸识别请求服务器返回错误: userName: %1. response: %2")
+                .arg(metaInfo["certName"].toString(),
+                     QString::fromUtf8(QJsonDocument(response).toJson())));
+        QMessageBox::critical(nullptr, "错误", "无法创建人脸识别,请确认后台录入的身份信息正确");
+        return;
+    }
     if (response.contains("data") && response["data"].isObject()) {
         LoadingWidget::showLoading(this, "正在打开人脸识别界面...");
         QJsonObject dataObject = response["data"].toObject();
@@ -224,7 +237,7 @@ QJsonObject BlastOpePage::getMetaInfo() {
     QString certNo;
 
     // TODO: 获取登录用户信息
-    QProcessEnvironment env = QProcessEnvironment::systemEnvironment();  //  获取系统环境变量
+    // QProcessEnvironment env = QProcessEnvironment::systemEnvironment();  //  获取系统环境变量
     // if (env.contains("certName") && env.contains("certNo")) {
     //     certName = env.value("certName", "");  // 第二个参数为默认值
     //     certNo = env.value("certNo", "");
@@ -234,10 +247,8 @@ QJsonObject BlastOpePage::getMetaInfo() {
     QMap<QString, QString> userInfo = RegistryManager::instance()->getCurentLoginUser();
     certName = userInfo.value("certName", "");
     certNo = userInfo.value("identity", "");
-    //}
     metaInfo["certName"] = certName;
     metaInfo["certNo"] = certNo;
-    qDebug() << certName << certNo << "<certInfo";
     return metaInfo;
 }
 

+ 1 - 0
login/loginwindow.cpp

@@ -103,6 +103,7 @@ void LoginWindow::on_btnLogin_clicked() {
                                 QString certName = userObj["nickName"].toString();
                                 RegistryManager::instance()->saveUserInfo(
                                     userIdStr, username, password, identity, certName);
+                                RegistryManager::instance()->setCurentLoginUserId(userIdStr);
                                 QString Authority = responseObj["currentAuthority"].toString();
                                 globalAuthority = "Bearer " + Authority;
                                 this->close();

+ 4 - 3
registryManager/registrymanager.cpp

@@ -97,11 +97,10 @@ QMap<QString, QPair<QString, QString>> RegistryManager::getAllUserInfos() {
 }
 
 QMap<QString, QString> RegistryManager::getCurentLoginUser() {
-    QString userId = getAllUserIds().first();
     QMap<QString, QString> currentUserInfo;
 
     QSettings settings(organizationName, applicationName);
-    settings.beginGroup(userId);
+    settings.beginGroup(currentLoginUserId);
     settings.value("Username").toString();
     currentUserInfo["username"] = settings.value("Username").toString();
     currentUserInfo["certName"] = settings.value("CertName").toString();
@@ -110,4 +109,6 @@ QMap<QString, QString> RegistryManager::getCurentLoginUser() {
     settings.endGroup();
 
     return currentUserInfo;
-}
+}
+
+void RegistryManager::setCurentLoginUserId(const QString &userId) { currentLoginUserId = userId; }

+ 2 - 0
registryManager/registrymanager.h

@@ -17,6 +17,7 @@ class RegistryManager : public QObject {
     QString getPasswordByUsername(const QString &username);
     QMap<QString, QPair<QString, QString>> getAllUserInfos();
     QMap<QString, QString> getCurentLoginUser();
+    void setCurentLoginUserId(const QString &username);
 
    private:
     explicit RegistryManager(QObject *parent = nullptr);
@@ -25,4 +26,5 @@ class RegistryManager : public QObject {
     static RegistryManager *s_instance;
     const QString organizationName = "HXGC";
     const QString applicationName = "Smart Mine";
+    QString currentLoginUserId;
 };