loginform.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #include "loginform.h"
  2. #include "ui_loginform.h"
  3. #include <QMessageBox>
  4. #include <pqQtlib/utils/pqfileutils.h>
  5. #include <QJsonDocument>
  6. using namespace PQ;
  7. LoginForm::LoginForm(QWidget *parent) :
  8. QWidget(parent),
  9. ui(new Ui::LoginForm),_request(nullptr)
  10. {
  11. ui->setupUi(this);
  12. connect(this,&LoginForm::loginFinish,this,&LoginForm::clear);
  13. connect(glo,&GlobalInfo::doInited,this,&LoginForm::login);
  14. ui->status->setVisible(false);
  15. this->setEnabled(true);
  16. ui->linePass->setEchoMode(QLineEdit::Password);
  17. auto dt = PQ::CacheFile::readFile("userpass.cache");
  18. auto list = QString::fromUtf8(dt).split("[,]");
  19. if(list.size() == 2){
  20. ui->lineUser->setText(list.at(0));
  21. ui->linePass->setText(list.at(1));
  22. }
  23. }
  24. LoginForm::~LoginForm()
  25. {
  26. delete ui;
  27. }
  28. void LoginForm::on_pushLogin_clicked()
  29. {
  30. // QFileInfo fileInfo(QCoreApplication::applicationDirPath() + "/Config.ini");
  31. // if(!fileInfo.exists()){
  32. // qDebug()<<"配置文件不存在";
  33. // QMessageBox::information(this,"注意","请设置配置");
  34. // return;
  35. // }
  36. auto glo = GlobalInfo::this_();
  37. auto uname = this->ui->lineUser->text();
  38. auto upass = this->ui->linePass->text();
  39. auto url = glo->config()->baseUrl+"/v1/signin";
  40. QMap<QString,QString> params;
  41. params.insert("password",upass);
  42. params.insert("username",uname);
  43. request()->post(url,params);
  44. ui->status->setVisible(true);
  45. this->setEnabled(false);
  46. }
  47. void LoginForm::clear(){
  48. if(_request){
  49. _request->deleteLater();
  50. _request = nullptr;
  51. }
  52. }
  53. HttpRequest * LoginForm::request()
  54. {
  55. if(!_request){
  56. _request = new HttpRequest(this);
  57. connect(_request,&HttpRequest::result,this,&LoginForm::result);
  58. }
  59. return _request;
  60. }
  61. void LoginForm::result(int code, const QJsonObject & body)
  62. {
  63. qDebug()<<body;
  64. ui->status->setVisible(false);
  65. this->setEnabled(true);
  66. QString message = body["message"].toString();
  67. if(body.value("code").toInt(404) != 200){
  68. QMessageBox msg(QMessageBox::Information, "错误", " 网络异常", QMessageBox::Ok, this);
  69. msg.exec();
  70. // ui->username->clear();
  71. // ui->password->clear();
  72. return;
  73. }
  74. QStringList list;
  75. list << ui->lineUser->text() << ui->linePass->text();
  76. CacheFile::writeFile("userpass.cache",list.join("[,]").toUtf8());
  77. CacheFile::writeFile("userlogin.cache",QJsonDocument(body).toJson());
  78. auto data = body.value("data").toObject();
  79. if(data.isEmpty()){
  80. QMessageBox msg(QMessageBox::Information, "错误", "用户名或密码错误", QMessageBox::Ok, this);
  81. msg.exec();
  82. return;
  83. }
  84. UserInfo user;
  85. user.accountId = data["account_id"].toInt();
  86. user.userId = data["user_id"].toInt();
  87. user.userName = data["name"].toString();
  88. user.headPortrait = data["head_portrait"].toString();
  89. user.isVip = data["is_vip"].toInt(-1) == 1 ? true : false;
  90. user.acessToken = data["access_token"].toString();
  91. // GlobalInfo::this_()->setUser(user);
  92. GlobalInfo::this_()->start(user,false);
  93. // emit loginFinish();
  94. }
  95. void LoginForm::on_pushButton_2_clicked()
  96. {
  97. emit SettingsClicked();
  98. }
  99. void LoginForm::on_pushButton_clicked()
  100. {
  101. CacheFile cf;
  102. auto dt = cf.readFile("userlogin.cache");
  103. UserInfo user;
  104. QJsonObject obj = QJsonDocument::fromJson(dt).object();
  105. if(!obj.isEmpty()){
  106. auto data = obj.value("data").toObject();
  107. user.accountId = data["account_id"].toInt();
  108. user.userId = data["user_id"].toInt();
  109. user.userName = data["name"].toString();
  110. user.headPortrait = data["head_portrait"].toString();
  111. user.isVip = data["is_vip"].toInt(-1) == 1 ? true : false;
  112. user.acessToken = data["access_token"].toString();
  113. } else {
  114. QMessageBox::warning(this,tr("请先成功登陆一次!"),tr("请先成功登陆一次!"));
  115. return;
  116. }
  117. // GlobalInfo::this_()->isNoLine = true;
  118. // GlobalInfo::this_()->setUser(user);
  119. GlobalInfo::this_()->start(user,true);
  120. emit loginFinish();
  121. }
  122. void LoginForm::login()
  123. {
  124. emit loginFinish();
  125. }