ClassSet.cpp 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. #include "ClassSet.h"
  2. #include "DBServiceSet.h"
  3. #include <QCryptographicHash>
  4. #include <QSettings>
  5. #include <QDebug>
  6. QList<NodeMatrixInfo *> ClassSet::datas;
  7. ClassSet::ClassSet()
  8. {
  9. datas.clear();
  10. NodeMatrixInfo *testData = new NodeMatrixInfo();
  11. testData->expertName = "luoyc";
  12. testData->expertId = "1";
  13. testData->engineerId = 1;
  14. testData->node = "1.1";
  15. testData->abscissa = "A";
  16. testData->ordinate = "A";
  17. datas.append(testData);
  18. NodeMatrixInfo *testData1 = new NodeMatrixInfo();
  19. testData1->expertName = "luoyc";
  20. testData1->expertId = "1";
  21. testData1->engineerId = 1;
  22. testData1->node = "1.1";
  23. testData1->abscissa = "A";
  24. testData1->ordinate = "B";
  25. datas.append(testData1);
  26. NodeMatrixInfo *testData2 = new NodeMatrixInfo();
  27. testData2->expertName = "luoyc";
  28. testData2->expertId = "1";
  29. testData2->engineerId = 1;
  30. testData2->node = "1.2";
  31. testData2->abscissa = "B";
  32. testData2->ordinate = "A";
  33. datas.append(testData2);
  34. NodeMatrixInfo *testData3 = new NodeMatrixInfo();
  35. testData3->expertName = "luoyc";
  36. testData3->expertId = "1";
  37. testData3->engineerId = 1;
  38. testData3->node = "1.2";
  39. testData3->abscissa = "B";
  40. testData3->ordinate = "B";
  41. datas.append(testData3);
  42. NodeMatrixInfo *testData4 = new NodeMatrixInfo();
  43. testData4->expertName = "luoyc";
  44. testData4->expertId = "1";
  45. testData4->engineerId = 1;
  46. testData4->node = "1.1.1";
  47. testData4->abscissa = "A1";
  48. testData4->ordinate = "A1";
  49. datas.append(testData4);
  50. NodeMatrixInfo *testData5 = new NodeMatrixInfo();
  51. testData5->expertName = "luoyc";
  52. testData5->expertId = "1";
  53. testData5->engineerId = 1;
  54. testData5->node = "1.1.1";
  55. testData5->abscissa = "A1";
  56. testData5->ordinate = "A2";
  57. datas.append(testData5);
  58. NodeMatrixInfo *testData6 = new NodeMatrixInfo();
  59. testData6->expertName = "luoyc";
  60. testData6->expertId = "1";
  61. testData6->engineerId = 1;
  62. testData6->node = "1.1.2";
  63. testData6->abscissa = "A2";
  64. testData6->ordinate = "A1";
  65. datas.append(testData6);
  66. NodeMatrixInfo *testData7 = new NodeMatrixInfo();
  67. testData7->expertName = "luoyc";
  68. testData7->expertId = "1";
  69. testData7->engineerId = 1;
  70. testData7->node = "1.1.2";
  71. testData7->abscissa = "A2";
  72. testData7->ordinate = "A2";
  73. datas.append(testData7);
  74. NodeMatrixInfo *testData8 = new NodeMatrixInfo();
  75. testData8->expertName = "luoyc";
  76. testData8->expertId = "1";
  77. testData8->engineerId = 1;
  78. testData8->node = "1.2.1";
  79. testData8->abscissa = "B1";
  80. testData8->ordinate = "B1";
  81. datas.append(testData8);
  82. NodeMatrixInfo *testData9 = new NodeMatrixInfo();
  83. testData9->expertName = "luoyc";
  84. testData9->expertId = "1";
  85. testData9->engineerId = 1;
  86. testData9->node = "1.2.1";
  87. testData9->abscissa = "B1";
  88. testData9->ordinate = "B2";
  89. datas.append(testData9);
  90. NodeMatrixInfo *testData10 = new NodeMatrixInfo();
  91. testData10->expertName = "luoyc";
  92. testData10->expertId = "1";
  93. testData10->engineerId = 1;
  94. testData10->node = "1.2.2";
  95. testData10->abscissa = "B2";
  96. testData10->ordinate = "B1";
  97. datas.append(testData10);
  98. NodeMatrixInfo *testData11 = new NodeMatrixInfo();
  99. testData11->expertName = "luoyc";
  100. testData11->expertId = "1";
  101. testData11->engineerId = 1;
  102. testData11->node = "1.2.2";
  103. testData11->abscissa = "B2";
  104. testData11->ordinate = "B2";
  105. datas.append(testData11);
  106. }
  107. static QFUser *m_currentUser = nullptr;
  108. QString QFUser::nameOfRole(QFUser::Role role)
  109. {
  110. switch (role) {
  111. case QFUser::SuperAdmin: {
  112. return "超级管理员";
  113. }
  114. case QFUser::GerneralAdmin: {
  115. return "普通管理员";
  116. }
  117. case QFUser::Expert: {
  118. return "专家";
  119. }
  120. default:
  121. return "未知";
  122. }
  123. }
  124. QFUser::QFUser() { }
  125. QFUser::QFUser(const QString userId, const QString password) : userNo(userId), rawPassword(password) { }
  126. QFUser *QFUser::currentUser()
  127. {
  128. return m_currentUser;
  129. }
  130. QString QFUser::roleName() const
  131. {
  132. return nameOfRole(role);
  133. }
  134. int QFUser::logout()
  135. {
  136. if (m_currentUser == nullptr) {
  137. return QF_CODE_NOT_LOGIN;
  138. }
  139. delete m_currentUser;
  140. m_currentUser = nullptr;
  141. return QF_CODE_SUCCEEDED;
  142. }
  143. int QFUser::resetAdmin(QString account, QString password, QString repeatPassword)
  144. {
  145. qDebug() << account << password << repeatPassword << (password == repeatPassword);
  146. if (account.isEmpty()) {
  147. return QF_CODE_EMPTY_ACCOUNT;
  148. } else if (password.isEmpty()) {
  149. return QF_CODE_EMPTY_PASSWORD;
  150. } else if (password != repeatPassword) {
  151. return QF_CODE_PASSWORD_NOT_SAME;
  152. } else if (password == rawPassword) {
  153. return QF_CODE_PASSWORD_UNCHANGED;
  154. }
  155. QString md5str;
  156. QByteArray md5bytes = QCryptographicHash::hash(password.toLatin1(), QCryptographicHash::Md5);
  157. md5str.prepend(md5bytes.toHex());
  158. bool ret = DBServiceSet().UpdateUserById(account, md5str, id);
  159. if (ret) {
  160. return QF_CODE_SUCCEEDED;
  161. } else {
  162. return QF_CODE_DATA_ERROR;
  163. }
  164. }
  165. int QFUser::login()
  166. {
  167. if (m_currentUser != nullptr) {
  168. return QF_CODE_ALREADY_LOGIN;
  169. }
  170. if (userNo.isEmpty()) {
  171. return QF_CODE_EMPTY_ACCOUNT;
  172. }
  173. if (rawPassword.isEmpty()) {
  174. return QF_CODE_EMPTY_PASSWORD;
  175. }
  176. if (!DBServiceSet().QueryUserByNo(this, userNo)) {
  177. return QF_CODE_USER_NOT_EXISTS;
  178. }
  179. QCryptographicHash ch(QCryptographicHash::Md5);
  180. QString md5str;
  181. QByteArray md5bytes = QCryptographicHash::hash(rawPassword.toLatin1(), QCryptographicHash::Md5);
  182. md5str.prepend(md5bytes.toHex());
  183. m_currentUser = new QFUser(userNo, rawPassword);
  184. if (!DBServiceSet().QueryUserByNoAndPassword(m_currentUser, userNo, md5str)) {
  185. delete m_currentUser;
  186. m_currentUser = nullptr;
  187. return QF_CODE_WRONG_PASSWORD;
  188. }
  189. return QF_CODE_SUCCEEDED;
  190. }