formsrvinfo.cpp 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. #include "formsrvinfo.h"
  2. #include "ui_formsrvinfo.h"
  3. #include "WSSSO.h"
  4. #include "respgetusersso.h"
  5. #include "respmfuserpay.h"
  6. #include "dialogbindsystem.h"
  7. #include "respgetsysaccount.h"
  8. FormSrvInfo::FormSrvInfo(QWidget *parent) :
  9. QWidget(parent),
  10. ui(new Ui::FormSrvInfo)
  11. {
  12. ui->setupUi(this);
  13. resetUI();
  14. }
  15. FormSrvInfo::~FormSrvInfo()
  16. {
  17. delete ui;
  18. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  19. <<"SNCUser.FormSrvInfo Destroyed.";
  20. }
  21. void FormSrvInfo::setUserHash(QString userHash)
  22. {
  23. this->userHash = userHash;
  24. if(!userHash.isEmpty())
  25. refreshSrvInfo();
  26. else
  27. resetUI();
  28. }
  29. void FormSrvInfo::initBindSrvInfoTable(int rows)
  30. {
  31. QStringList headers;
  32. headers.append("服务名称");
  33. headers.append("账户余额");
  34. headers.append("账户赠送余额");
  35. headers.append("有效期自");
  36. headers.append("有效期至");
  37. headers.append("当前状态");
  38. headers.append("操作");
  39. ui->tableWidgetSrvInfo->setRowCount(0);
  40. ui->tableWidgetSrvInfo->setColumnCount(0);
  41. ui->tableWidgetSrvInfo->setEditTriggers(QAbstractItemView::NoEditTriggers);
  42. ui->tableWidgetSrvInfo->setColumnCount(7);
  43. ui->tableWidgetSrvInfo->setHorizontalHeaderLabels(headers);
  44. ui->tableWidgetSrvInfo->setRowCount(rows);
  45. ui->tableWidgetSrvInfo->setShowGrid(false);
  46. ui->tableWidgetSrvInfo->setAlternatingRowColors(true);
  47. ui->tableWidgetSrvInfo->setSelectionBehavior(QAbstractItemView::SelectRows);
  48. ui->tableWidgetSrvInfo->setSelectionMode(QAbstractItemView::MultiSelection);
  49. ui->tableWidgetSrvInfo->setColumnWidth(0,100);
  50. ui->tableWidgetSrvInfo->setColumnWidth(1,110);
  51. ui->tableWidgetSrvInfo->setColumnWidth(2,110);
  52. ui->tableWidgetSrvInfo->setColumnWidth(3,110);
  53. ui->tableWidgetSrvInfo->setColumnWidth(4,80);
  54. ui->tableWidgetSrvInfo->setColumnWidth(5,80);
  55. ui->tableWidgetSrvInfo->setColumnWidth(6,90);
  56. ui->tableWidgetSrvInfo->horizontalHeader()->setStyleSheet("font:12px");
  57. ui->tableWidgetSrvInfo->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  58. ui->tableWidgetSrvInfo->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  59. ui->tableWidgetSrvInfo->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  60. ui->tableWidgetSrvInfo->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  61. ui->tableWidgetSrvInfo->verticalHeader()->setFixedWidth(25);
  62. ui->tableWidgetSrvInfo->horizontalHeader()->setFixedHeight(25);
  63. ui->tableWidgetSrvInfo->setSortingEnabled(true);
  64. }
  65. void FormSrvInfo::renderBindSrvInfo(QMultiMap<QString, QString> map, int rowCount)
  66. {
  67. if(rowCount==0)
  68. {
  69. setDefaultBindSrvInfo();
  70. return ;
  71. }
  72. initBindSrvInfoTable(rowCount);
  73. ui->tableWidgetSrvInfo->setEnabled(true);
  74. QStringList keys;
  75. keys<<"sysCode"<<"userMoney"<<"userGiftMoney"<<"starttime"<<"endtime"<<"status";
  76. for(int col=0;col<keys.size();col++)
  77. {
  78. QStringList rows = map.values(keys.at(col));
  79. for(int row=0;row<rows.size();row++)
  80. {
  81. QString display = rows.at(row);
  82. QTableWidgetItem *item;
  83. item = new QTableWidgetItem();
  84. if(keys.at(col)=="sysCode")
  85. {
  86. if(rows.at(row)=="1")
  87. display = "瞬时空号检测";
  88. else if(rows.at(row)=="2")
  89. display = "名远空号检测";
  90. else if(rows.at(row)=="3")
  91. display = "帮我选号码";
  92. else
  93. display = "其他";
  94. }
  95. if(keys.at(col)=="status")
  96. {
  97. if(rows.at(row)=="0")
  98. display = "禁用";
  99. else if(rows.at(row)=="1")
  100. display = "正常";
  101. else
  102. display = "未开通";
  103. }
  104. item->setData(Qt::UserRole,rows.at(row));
  105. item->setData(Qt::DisplayRole,display);
  106. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  107. ui->tableWidgetSrvInfo->setItem(row,col,item);
  108. }
  109. }
  110. for(int row = 0;row < rowCount;row++)
  111. {
  112. QPushButton *pushButton = new QPushButton("");
  113. ui->tableWidgetSrvInfo->setCellWidget(row,keys.size(),pushButton);
  114. connect(pushButton,SIGNAL(clicked()),this,SLOT(onRowPushButtonClick()));
  115. QString status = ui->tableWidgetSrvInfo->item(row,5)->data(Qt::UserRole).toString();
  116. if(status=="1")
  117. {
  118. pushButton->setEnabled(false);
  119. pushButton->setText("服务已开通");
  120. }
  121. else
  122. {
  123. pushButton->setEnabled(true);
  124. pushButton->setText("立即开通");
  125. }
  126. }
  127. ui->tableWidgetSrvInfo->sortByColumn(0);
  128. }
  129. void FormSrvInfo::setDefaultBindSrvInfo()
  130. {
  131. initBindSrvInfoTable(3);
  132. ui->tableWidgetSrvInfo->setEnabled(false);
  133. QTableWidgetItem *item = new QTableWidgetItem();
  134. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  135. item->setText("暂无信息");
  136. ui->tableWidgetSrvInfo->setItem(1,3,item);
  137. ui->tableWidgetSrvInfo->setEnabled(false);
  138. }
  139. void FormSrvInfo::resetUI()
  140. {
  141. setDefaultBindSrvInfo();
  142. ui->tabWidget->setCurrentIndex(0);
  143. ui->tabWidget->setStyleSheet("font:12px");
  144. }
  145. void FormSrvInfo::refreshSrvInfo()
  146. {
  147. WSSSO interface;
  148. QString json = interface.getUserSSO(this->userHash);
  149. if(!json.isEmpty()){
  150. RespGetUserSSO *response = new RespGetUserSSO(json);
  151. if(response->getRtnCode()==1)
  152. {
  153. renderBindSrvInfo(response->getRs(),response->getRsCount());}
  154. else if (response->getRtnCode()== -1)
  155. {
  156. QMessageBox::critical(this,"提示","登录超时,请重新登录!",QMessageBox::Ok);
  157. }
  158. else
  159. {
  160. QMessageBox::critical(this,"提示","数据获取失败!",QMessageBox::Ok);
  161. }
  162. delete response;
  163. }
  164. else
  165. {
  166. QMessageBox::warning(this,"提示","网络连接失败!",QMessageBox::Ok);
  167. }
  168. }
  169. void FormSrvInfo::onRowPushButtonClick()
  170. {
  171. if(QMessageBox::Yes !=QMessageBox::question(NULL,"确认","是否继续该操作?",
  172. QMessageBox::Yes,QMessageBox::No))
  173. {
  174. return ;
  175. }
  176. QPushButton *pbt = dynamic_cast<QPushButton*>(this->sender());
  177. if(pbt == 0)
  178. return;
  179. int x = pbt->frameGeometry().x();
  180. int y = pbt->frameGeometry().y();
  181. QModelIndex index = ui->tableWidgetSrvInfo->indexAt(QPoint(x,y));
  182. qDebug()<<index;
  183. QString syscode = ui->tableWidgetSrvInfo->item(index.row(),0)->data(Qt::UserRole).toString();
  184. WSSSO interface;
  185. if(syscode=="3")
  186. {
  187. QString json = interface.mfUserPay("1",this->userHash);
  188. RespMfUserPay resposne(json);
  189. if(resposne.getRtnCode()==1)
  190. {
  191. refreshSrvInfo();
  192. QMessageBox::information(this,"提示",resposne.getRtnMemo(),QMessageBox::Ok);
  193. }
  194. else
  195. {
  196. QMessageBox::critical(this,"提示",resposne.getRtnMemo(),QMessageBox::Ok);
  197. }
  198. }
  199. else if(syscode=="1" || syscode == "2")
  200. {
  201. DialogBindSystem dialog(this);
  202. dialog.setSysRegInfo(syscode,this->userHash);
  203. dialog.exec();
  204. if(dialog.serviceIsOpen())
  205. {
  206. refreshSrvInfo();
  207. WSSSO sso2;
  208. QString json = sso2.getSysAccount(syscode,this->userHash);
  209. RespGetSysAccount response2(json);
  210. if(response2.getRtnCode() == 1)
  211. {
  212. QMap<QString,QString> shunshiInfo,mingyuanInfo;
  213. if(syscode=="1")
  214. {
  215. shunshiInfo.insert("usercode",response2.getUserCode());
  216. shunshiInfo.insert("userpwd",response2.getUserPwd());
  217. emit updateShunShiAccount(shunshiInfo);
  218. }
  219. else if(syscode=="2")
  220. {
  221. mingyuanInfo.insert("usercode",response2.getUserCode());
  222. mingyuanInfo.insert("userpwd",response2.getUserPwd());
  223. emit updateMingYuanAccount(mingyuanInfo);
  224. }
  225. }
  226. }
  227. }
  228. }