#include "formsrvinfo.h" #include "ui_formsrvinfo.h" #include "WSSSO.h" #include "respgetusersso.h" #include "respmfuserpay.h" #include "dialogbindsystem.h" #include "respgetsysaccount.h" FormSrvInfo::FormSrvInfo(QWidget *parent) : QWidget(parent), ui(new Ui::FormSrvInfo) { ui->setupUi(this); resetUI(); } FormSrvInfo::~FormSrvInfo() { delete ui; qDebug()<userHash = userHash; if(!userHash.isEmpty()) refreshSrvInfo(); else resetUI(); } void FormSrvInfo::initBindSrvInfoTable(int rows) { QStringList headers; headers.append("服务名称"); headers.append("账户余额"); headers.append("账户赠送余额"); headers.append("有效期自"); headers.append("有效期至"); headers.append("当前状态"); headers.append("操作"); ui->tableWidgetSrvInfo->setRowCount(0); ui->tableWidgetSrvInfo->setColumnCount(0); ui->tableWidgetSrvInfo->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableWidgetSrvInfo->setColumnCount(7); ui->tableWidgetSrvInfo->setHorizontalHeaderLabels(headers); ui->tableWidgetSrvInfo->setRowCount(rows); ui->tableWidgetSrvInfo->setShowGrid(false); ui->tableWidgetSrvInfo->setAlternatingRowColors(true); ui->tableWidgetSrvInfo->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidgetSrvInfo->setSelectionMode(QAbstractItemView::MultiSelection); ui->tableWidgetSrvInfo->setColumnWidth(0,100); ui->tableWidgetSrvInfo->setColumnWidth(1,110); ui->tableWidgetSrvInfo->setColumnWidth(2,110); ui->tableWidgetSrvInfo->setColumnWidth(3,110); ui->tableWidgetSrvInfo->setColumnWidth(4,80); ui->tableWidgetSrvInfo->setColumnWidth(5,80); ui->tableWidgetSrvInfo->setColumnWidth(6,90); ui->tableWidgetSrvInfo->horizontalHeader()->setStyleSheet("font:12px"); ui->tableWidgetSrvInfo->horizontalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetSrvInfo->verticalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetSrvInfo->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui->tableWidgetSrvInfo->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui->tableWidgetSrvInfo->verticalHeader()->setFixedWidth(25); ui->tableWidgetSrvInfo->horizontalHeader()->setFixedHeight(25); ui->tableWidgetSrvInfo->setSortingEnabled(true); } void FormSrvInfo::renderBindSrvInfo(QMultiMap map, int rowCount) { if(rowCount==0) { setDefaultBindSrvInfo(); return ; } initBindSrvInfoTable(rowCount); ui->tableWidgetSrvInfo->setEnabled(true); QStringList keys; keys<<"sysCode"<<"userMoney"<<"userGiftMoney"<<"starttime"<<"endtime"<<"status"; for(int col=0;colsetData(Qt::UserRole,rows.at(row)); item->setData(Qt::DisplayRole,display); item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); ui->tableWidgetSrvInfo->setItem(row,col,item); } } for(int row = 0;row < rowCount;row++) { QPushButton *pushButton = new QPushButton(""); ui->tableWidgetSrvInfo->setCellWidget(row,keys.size(),pushButton); connect(pushButton,SIGNAL(clicked()),this,SLOT(onRowPushButtonClick())); QString status = ui->tableWidgetSrvInfo->item(row,5)->data(Qt::UserRole).toString(); if(status=="1") { pushButton->setEnabled(false); pushButton->setText("服务已开通"); } else { pushButton->setEnabled(true); pushButton->setText("立即开通"); } } ui->tableWidgetSrvInfo->sortByColumn(0); } void FormSrvInfo::setDefaultBindSrvInfo() { initBindSrvInfoTable(3); ui->tableWidgetSrvInfo->setEnabled(false); QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter); item->setText("暂无信息"); ui->tableWidgetSrvInfo->setItem(1,3,item); ui->tableWidgetSrvInfo->setEnabled(false); } void FormSrvInfo::resetUI() { setDefaultBindSrvInfo(); ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setStyleSheet("font:12px"); } void FormSrvInfo::refreshSrvInfo() { WSSSO interface; QString json = interface.getUserSSO(this->userHash); if(!json.isEmpty()){ RespGetUserSSO *response = new RespGetUserSSO(json); if(response->getRtnCode()==1) { renderBindSrvInfo(response->getRs(),response->getRsCount());} else if (response->getRtnCode()== -1) { QMessageBox::critical(this,"提示","登录超时,请重新登录!",QMessageBox::Ok); } else { QMessageBox::critical(this,"提示","数据获取失败!",QMessageBox::Ok); } delete response; } else { QMessageBox::warning(this,"提示","网络连接失败!",QMessageBox::Ok); } } void FormSrvInfo::onRowPushButtonClick() { if(QMessageBox::Yes !=QMessageBox::question(NULL,"确认","是否继续该操作?", QMessageBox::Yes,QMessageBox::No)) { return ; } QPushButton *pbt = dynamic_cast(this->sender()); if(pbt == 0) return; int x = pbt->frameGeometry().x(); int y = pbt->frameGeometry().y(); QModelIndex index = ui->tableWidgetSrvInfo->indexAt(QPoint(x,y)); qDebug()<tableWidgetSrvInfo->item(index.row(),0)->data(Qt::UserRole).toString(); WSSSO interface; if(syscode=="3") { QString json = interface.mfUserPay("1",this->userHash); RespMfUserPay resposne(json); if(resposne.getRtnCode()==1) { refreshSrvInfo(); QMessageBox::information(this,"提示",resposne.getRtnMemo(),QMessageBox::Ok); } else { QMessageBox::critical(this,"提示",resposne.getRtnMemo(),QMessageBox::Ok); } } else if(syscode=="1" || syscode == "2") { DialogBindSystem dialog(this); dialog.setSysRegInfo(syscode,this->userHash); dialog.exec(); if(dialog.serviceIsOpen()) { refreshSrvInfo(); WSSSO sso2; QString json = sso2.getSysAccount(syscode,this->userHash); RespGetSysAccount response2(json); if(response2.getRtnCode() == 1) { QMap shunshiInfo,mingyuanInfo; if(syscode=="1") { shunshiInfo.insert("usercode",response2.getUserCode()); shunshiInfo.insert("userpwd",response2.getUserPwd()); emit updateShunShiAccount(shunshiInfo); } else if(syscode=="2") { mingyuanInfo.insert("usercode",response2.getUserCode()); mingyuanInfo.insert("userpwd",response2.getUserPwd()); emit updateMingYuanAccount(mingyuanInfo); } } } } }