#include "dialoglogin.h" #include "ui_dialoglogin.h" #include "dialogregister.h" #include #include "respssologin.h" #include "sncdatabase.h" DialogLogin::DialogLogin(QWidget *parent) : QDialog(parent), ui(new Ui::DialogLogin) { ui->setupUi(this); m_label = new XValidateLabel(this); movie = new QMovie(":/loading.gif"); movie->start(); ui->labelProgress->setMovie(movie); ui->labelProgress->setVisible(false); ui->labelAppName->setText(""); ui->frameBg->setProperty("class","loginbg"); ui->labelAppName->setProperty("class","xxxl-white"); //ui->label1->setProperty("class","xxl-white"); //ui->label2->setProperty("class","xxl-white"); //ui->label3->setProperty("class","xxl-white"); ui->checkBoxAutoLogin->setProperty("class","xxl-white"); ui->checkBoxRememberPassword->setProperty("class","xxl-white"); m_label->setProperty("class","xl-white"); ui->pushButtonForgetPassword->setProperty("class","link-newcolor"); ui->pushButtonReg->setProperty("class","link-newcolor"); ui->pushButtonRefresh->setProperty("class","link-newcolor"); ui->pushButtonCancel->setVisible(false); ui->horizontalLayout_2->addWidget(m_label); ui->comboBoxCorp->insertItem(0,"瞬时第三代智能号码检测","shunshi"); //ui->comboBoxCorp->insertItem(1,"信源第三代智能号码检测","xinyuan"); QString corp = SNCDataBase::getDefaultNumchkCorp(); if(corp=="shunshi" || corp.isEmpty()) { ui->comboBoxCorp->setCurrentIndex(0); } else { ui->comboBoxCorp->setCurrentIndex(1); } m_ws = new WSSSO(); genValidateCode(); m_usercancel = false; setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint); setMaximumSize(300,260); setMinimumSize(300,260); fetchLoginHistory(); } DialogLogin::~DialogLogin() { delete ui; delete movie; delete m_ws; delete m_label; qDebug()<comboBoxUserCode->currentText().isEmpty() || ui->lineEditUserPwd->text().isEmpty()) { QMessageBox::critical(this,"提示","用户名和密码不能为空!",QMessageBox::Ok); return ; } if(ui->lineEditValidateCode->text()!=m_label->text()) { QMessageBox::critical(this,"提示","验证码不正确!",QMessageBox::Ok); genValidateCode(); return ; } ui->pushButtonLogin->setVisible(false); ui->pushButtonCancel->setVisible(true); m_usercancel = false; //WSSSO sso; QString userCode = ui->comboBoxUserCode->currentText(); QString userPwd = ui->lineEditUserPwd->text(); QString src = "mf-" + SNCDataBase::getAppVersion(); this->ui->labelProgress->setVisible(true); movie->stop(); movie->start(); QString apphash = SNCDataBase::getAppHash(); QString json = m_ws->userLogin(userCode,userPwd,src,apphash); bool loginok = false; if(json.isEmpty()){ if(!m_usercancel) QMessageBox::critical(NULL,"极速号码魔方","网络连接失败!",QMessageBox::Ok); } else { RespSSOLogin response(json); if(response.getRtnCode() == 1) { accountInfo.clear(); accountInfo.insert("userid",response.getUserID()); accountInfo.insert("usercode",response.getUserCode()); accountInfo.insert("ssohash",response.getUserHash()); accountInfo.insert("username",response.getUserName()); accountInfo.insert("starttime",response.getUserStartTime()); accountInfo.insert("endtime",response.getUserEndTime()); accountInfo.insert("lastloginip",response.getUserLastLoginIP()); accountInfo.insert("lastlogintime",response.getUserLastLoginTime()); accountInfo.insert("remainmoney",response.getUserRemainMoney()); accountInfo.insert("gifmoney",response.getUserGiftMoney()); accountInfo.insert("summoney",response.getUserSumMoney()); accountInfo.insert("sumgiftmoney",response.getUserSumGiftMoney()); updateLocalLoginInfo(userCode,userPwd); loginok = true; emit ssoLoginSucceed(accountInfo); } else { QMessageBox::critical(NULL,"极速号码魔方",response.getRtnMemo(),QMessageBox::Ok); } } if(loginok) { this->close(); } genValidateCode(); ui->pushButtonLogin->setVisible(true); this->ui->labelProgress->setVisible(false); ui->pushButtonCancel->setVisible(false); } void DialogLogin::genValidateCode() { m_label->refresh(); } void DialogLogin::updateLocalLoginInfo(QString usercode,QString password) { QString isauto = ""; QString isrememberpasword = ""; if(ui->checkBoxAutoLogin->isChecked()) isauto = "1"; else isauto = "2"; if(ui->checkBoxRememberPassword->isChecked()) { isrememberpasword = "1"; } else { isrememberpasword = "2"; password = ""; } QString lastLoginTime =QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz "); //设置显示格式 SNCDataBase::updateLoginInfo(usercode,password,isauto,isrememberpasword,lastLoginTime); //add byxxw on 2015-3-23 瞬时和信源整合 QString corp ; if(ui->comboBoxCorp->currentIndex()==0) { corp = "shunshi"; } else { corp = "xinyuan"; } SNCDataBase::updateDefaultNumchkCorp(corp); } void DialogLogin::fetchLoginHistory() { m_list = SNCDataBase::getDefaultLoginInfo(); int cols = m_list.uniqueKeys().size(); int rows = 0; if(cols!=0) rows = m_list.size()/cols; for(int row=0;rowcomboBoxUserCode->addItem(usercode,""); } } void DialogLogin::on_pushButtonReg_clicked() { DialogRegister dialogUserReg(this); dialogUserReg.exec(); } void DialogLogin::on_pushButtonForgetPassword_clicked() { QMessageBox::information(NULL,"极速号码魔方","请联系客服(QQ:4000079360),找回密码!",QMessageBox::Ok); } void DialogLogin::on_pushButtonCancel_clicked() { m_usercancel = true; m_ws->abort(); } void DialogLogin::on_pushButtonRefresh_clicked() { m_label->refresh(); } void DialogLogin::on_comboBoxUserCode_currentIndexChanged(const QString &arg1) { int cols = m_list.uniqueKeys().size(); int rows = 0; if(cols!=0) rows = m_list.size()/cols; for(int row=0;rowcheckBoxRememberPassword->setChecked(true); ui->lineEditUserPwd->setText(password); } else { ui->checkBoxRememberPassword->setChecked(false); ui->lineEditUserPwd->setText(""); } if(isauto=="1") { ui->checkBoxAutoLogin->setChecked(true); } else { ui->checkBoxAutoLogin->setChecked(false); } break; } } } void DialogLogin::on_checkBoxAutoLogin_clicked() { if(ui->checkBoxAutoLogin->isChecked()) { ui->checkBoxRememberPassword->setChecked(true); } } void DialogLogin::on_checkBoxRememberPassword_clicked() { if(!ui->checkBoxRememberPassword->isChecked()) { ui->checkBoxAutoLogin->setChecked(false); } }