loginform.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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+"/api/v1/signin";
  41. auto url = glo->config()->baseUrl+"/v1/signin";
  42. // QMap<QString,QString> params;
  43. // params.insert("password",upass);
  44. // params.insert("username",uname);
  45. if(uname.size() <= 0 || uname.size() <= 0) {
  46. QMessageBox::information(this,"注意","请输入正确的账号密码");
  47. return;
  48. }
  49. QJsonObject obj;
  50. obj.insert("password",upass);
  51. obj.insert("username",uname);
  52. obj.insert("platform",2);
  53. qDebug() << url << obj.toVariantMap();
  54. request()->post(url,obj);
  55. ui->status->setVisible(true);
  56. this->setEnabled(false);
  57. }
  58. void LoginForm::clear(){
  59. if(_request){
  60. _request->deleteLater();
  61. _request = nullptr;
  62. }
  63. }
  64. HttpRequest *LoginForm::request()
  65. {
  66. if(!_request){
  67. _request = new HttpRequest(this);
  68. connect(_request,&HttpRequest::result,this,&LoginForm::result);
  69. }
  70. return _request;
  71. }
  72. void LoginForm::result(int /*code*/, const QJsonObject & body)
  73. {
  74. qDebug()<<body;
  75. ui->status->setVisible(false);
  76. this->setEnabled(true);
  77. QString message = body["message"].toString();
  78. if(body.value("code").toInt(404) != 200){
  79. QMessageBox msg(QMessageBox::Information, "错误", " 网络异常", QMessageBox::Ok, this);
  80. msg.exec();
  81. // ui->username->clear();
  82. // ui->password->clear();
  83. return;
  84. }
  85. QStringList list;
  86. list << ui->lineUser->text() << ui->linePass->text();
  87. CacheFile::writeFile("userpass.cache",list.join("[,]").toUtf8());
  88. CacheFile::writeFile("userlogin.cache",QJsonDocument(body).toJson());
  89. auto data = body.value("data").toObject();
  90. if(data.isEmpty()){
  91. QMessageBox msg(QMessageBox::Information, "错误", "用户名或密码错误", QMessageBox::Ok, this);
  92. msg.exec();
  93. return;
  94. }
  95. UserInfo user;
  96. user.accountId = data["account_id"].toInt();
  97. user.userId = data["user_id"].toInt();
  98. user.userName = data["name"].toString();
  99. user.headPortrait = data["head_portrait"].toString();
  100. user.isVip = data["is_vip"].toInt(-1) == 1 ? true : false;
  101. user.acessToken = data["access_token"].toString();
  102. // GlobalInfo::this_()->setUser(user);
  103. GlobalInfo::this_()->start(user,false);
  104. emit loginFinish();
  105. }
  106. void LoginForm::on_pushButton_2_clicked()
  107. {
  108. emit SettingsClicked();
  109. }
  110. void LoginForm::on_pushButton_clicked()
  111. {
  112. CacheFile cf;
  113. auto dt = cf.readFile("userlogin.cache");
  114. UserInfo user;
  115. QJsonObject obj = QJsonDocument::fromJson(dt).object();
  116. if(!obj.isEmpty()){
  117. auto data = obj.value("data").toObject();
  118. user.accountId = data["account_id"].toInt();
  119. user.userId = data["user_id"].toInt();
  120. user.userName = data["name"].toString();
  121. user.headPortrait = data["head_portrait"].toString();
  122. user.isVip = data["is_vip"].toInt(-1) == 1 ? true : false;
  123. user.acessToken = data["access_token"].toString();
  124. } else {
  125. QMessageBox::warning(this,tr("请先成功登陆一次!"),tr("请先成功登陆一次!"));
  126. return;
  127. }
  128. GlobalInfo::this_()->start(user,true);
  129. emit loginFinish();
  130. }
  131. void LoginForm::login()
  132. {
  133. emit loginFinish();
  134. }