loginform.cpp 4.1 KB

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