ClassSet.cpp 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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), m_rawPassword(password) { }
  126. const QString QFUser::rawPassword() const
  127. {
  128. return m_rawPassword;
  129. }
  130. QFUser *QFUser::currentUser()
  131. {
  132. return m_currentUser;
  133. }
  134. QString QFUser::roleName() const
  135. {
  136. return nameOfRole(role);
  137. }
  138. int QFUser::logout()
  139. {
  140. if (m_currentUser == nullptr) {
  141. return QF_CODE_NOT_LOGIN;
  142. }
  143. delete m_currentUser;
  144. m_currentUser = nullptr;
  145. return QF_CODE_SUCCEEDED;
  146. }
  147. int QFUser::resetAdmin(QString account, QString password, QString repeatPassword)
  148. {
  149. qDebug() << account << password << repeatPassword << (password == repeatPassword);
  150. if (account.isEmpty()) {
  151. return QF_CODE_EMPTY_ACCOUNT;
  152. } else if (password.isEmpty()) {
  153. return QF_CODE_EMPTY_PASSWORD;
  154. } else if (password != repeatPassword) {
  155. return QF_CODE_PASSWORD_NOT_SAME;
  156. } else if (password == m_rawPassword) {
  157. return QF_CODE_PASSWORD_UNCHANGED;
  158. }
  159. QString md5str;
  160. QByteArray md5bytes = QCryptographicHash::hash(password.toLatin1(), QCryptographicHash::Md5);
  161. md5str.prepend(md5bytes.toHex());
  162. bool ret = DBServiceSet().UpdateUserById(account, md5str, id);
  163. if (ret) {
  164. return QF_CODE_SUCCEEDED;
  165. } else {
  166. return QF_CODE_DATA_ERROR;
  167. }
  168. }
  169. int QFUser::login()
  170. {
  171. if (m_currentUser != nullptr) {
  172. return QF_CODE_ALREADY_LOGIN;
  173. }
  174. if (userNo.isEmpty()) {
  175. return QF_CODE_EMPTY_ACCOUNT;
  176. }
  177. if (m_rawPassword.isEmpty()) {
  178. return QF_CODE_EMPTY_PASSWORD;
  179. }
  180. if (!DBServiceSet().QueryUserByNo(this, userNo)) {
  181. return QF_CODE_USER_NOT_EXISTS;
  182. }
  183. QCryptographicHash ch(QCryptographicHash::Md5);
  184. QString md5str;
  185. QByteArray md5bytes = QCryptographicHash::hash(m_rawPassword.toLatin1(), QCryptographicHash::Md5);
  186. md5str.prepend(md5bytes.toHex());
  187. m_currentUser = new QFUser(userNo, m_rawPassword);
  188. if (!DBServiceSet().QueryUserByNoAndPassword(m_currentUser, userNo, md5str)) {
  189. delete m_currentUser;
  190. m_currentUser = nullptr;
  191. return QF_CODE_WRONG_PASSWORD;
  192. }
  193. return QF_CODE_SUCCEEDED;
  194. }