| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- #include "dialoglogin.h"
- #include "ui_dialoglogin.h"
- #include "dialogregister.h"
- #include <QTime>
- #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()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"SNCUser.DialogLogin Destroyed.";
- }
- void DialogLogin::on_pushButtonLogin_clicked()
- {
- if(ui->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;row<rows;row++)
- {
- QString usercode = m_list.values("usercode").at(row);
- // QString password = m_list.values("password").at(row);
- // QString password = m_list.values("password").at(row);
- // QString password = m_list.values("password").at(row);
- ui->comboBoxUserCode->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;row<rows;row++)
- {
- QString usercode = m_list.values("usercode").at(row);
- if(usercode==arg1)
- {
- QString password = m_list.values("password").at(row);
- QString isauto = m_list.values("isauto").at(row);
- QString isremember = m_list.values("isremember").at(row);
- if(isremember=="1")
- {
- ui->checkBoxRememberPassword->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);
- }
- }
|