#include "analysisbyrediscache.h" #include "ui_analysisbyrediscache.h" #include #include #include AnalysisByRedisCache::AnalysisByRedisCache(QWidget *parent) : QMainWindow(parent), ui(new Ui::AnalysisByRedisCache) { ui->setupUi(this); ui->dateEdit->setDate(QDate::currentDate().addMonths(-1)); if(m_dbCache.initMySQL("127.0.0.1",3306,"root","root","stock_plan")){ qDebug()<<"mysql conn ok"; }else{ qDebug()<<"mysql conn fail"; } if(m_dbCache.initRedis("127.0.0.1",6379)){ qDebug()<<"redis conn ok"; }else{ qDebug()<<"redis conn fail"; } m_model = new QStandardItemModel(this); ui->tableView->setModel(m_model); } AnalysisByRedisCache::~AnalysisByRedisCache() { delete ui; } void AnalysisByRedisCache::on_pushButton_loadDataSQLRedis_clicked() { QString begin_date = ui->dateEdit->text(); QString limit_str = ui->comboBox->currentText(); QString sql = QString("select * from stock_day_info where time_trade > '%1' limit %2;").arg(begin_date).arg(limit_str); qDebug()<<"sql:"< items; items.append(new QStandardItem(it["name"].toString())); double market_capital = it["market_capital"].toDouble() / 100000000; items.append(new QStandardItem(QString::number(market_capital))); items.append(new QStandardItem(it["close"].toString())); items.append(new QStandardItem(it["percent"].toString())); items.append(new QStandardItem(it["amount_rank"].toString())); items.append(new QStandardItem(it["time_trade"].toString())); QString amount_rank = it["amount_rank"].toString(); if(rank_val != 0){ double rank_rate = 1 - (amount_rank.toDouble()/rank_val); //items.append(new QStandardItem(QString::number(rank_rate))); rank_val = amount_rank.toInt(); QStandardItem * amount_rank_item = new QStandardItem(QString::number(rank_rate)); if(rank_rate > 0.9){ amount_rank_item->setData(QColor("red"),Qt::BackgroundColorRole); } items.append(amount_rank_item); } if(rank_val == 0 && amount_rank.toInt() != 0){ rank_val = amount_rank.toInt(); } m_model->appendRow(items); } } qDebug()<<"cnt="<lineEdit_name->text(); searchAndAnalysisData(name); } void AnalysisByRedisCache::on_pushButton_batchAnalysis_clicked() { // 批量分析 // 重设模型的行数为0,清空一下数据 m_model->setRowCount(0); int batch_num = ui->comboBox_batchNum->currentText().toInt(); // 批量分析个股的数量 // 拿出个股交易额排名的前N名,进行缓存分析 emit getStockNamesSignal(batch_num); }