From 7c4fe576e5fc20267d5e1d5287cbb2ec77e64c3a Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期二, 19 八月 2025 23:40:18 +0800 Subject: [PATCH] redis --- historydata.cpp | 66 +++++++++++++++++++++++++++++++-- 1 files changed, 62 insertions(+), 4 deletions(-) diff --git a/historydata.cpp b/historydata.cpp index 2513297..06b11f9 100644 --- a/historydata.cpp +++ b/historydata.cpp @@ -38,7 +38,7 @@ ui->tableView->setSortingEnabled(true); QStringList labels; - labels<<"鑲$エ鍚嶅瓧"<<"鑲$エ浠e彿"<<"甯傚��(浜�)"<<"娑ㄨ穼骞�"<<"鏀剁洏浠�"<<"鎴愪氦棰�(浜�)"<<"鎴愪氦閲�"<<"鎹㈡墜鐜�"<<"PE_TTM"; + labels<<"鑲$エ鍚嶅瓧"<<"鑲$エ浠e彿"<<"甯傚��(浜�)"<<"娑ㄨ穼骞�"<<"鏀剁洏浠�"<<"鎴愪氦棰�(浜�)"<<"鎴愪氦閲�"<<"鎹㈡墜鐜�"<<"PE_TTM"<<"浜ゆ槗棰濇帓鍚�"; m_model->setHorizontalHeaderLabels(labels); initMySQL(); // 鍒濆鍖朚ySQL @@ -54,7 +54,7 @@ QVariant var; var.setValue(list); // 璁剧疆瑕佽闂殑缃戝潃 - m_request.setUrl(QUrl("https://xueqiu.com/?md5__1038=QqGxcDnDyiitnD05o4%2Br%3Di%3De0KDtYqCDRWOoD")); + m_request.setUrl(QUrl("https://xueqiu.com/S/SZ002466")); // 璁剧疆璇锋眰澶达紝鐢ㄦ埛浠g悊锛岀敤鏉ユā鎷熸祻瑙堝櫒 m_request.setHeader(QNetworkRequest::UserAgentHeader,userAgent); // 璁剧疆cookie @@ -320,7 +320,7 @@ QString searchTime = ui->dateEdit->text(); qDebug()<<"鏌ヨ鐨勬椂闂�:"<<searchTime; - QString sql = QString("select name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm from stock_day_info where time_trade = '%1'").arg(searchTime); + QString sql = QString("select name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm,amount_rank from stock_day_info where time_trade = '%1'").arg(searchTime); qDebug()<<"sql:"<<sql; m_modelDatas.clear(); // 娓呯┖鏁扮粍涓殑鏁版嵁 @@ -341,8 +341,9 @@ QString volume = que.value(6).toString(); QString turnover_rate = que.value(7).toString(); QString pe_ttm = que.value(8).toString(); + QString amount_rank = que.value(9).toString(); - m_modelDatas.append({name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm}); + m_modelDatas.append({name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm,amount_rank}); QList<QStandardItem*> items; items.append(new QStandardItem(name)); @@ -366,6 +367,7 @@ items.append(new QStandardItem(volume)); items.append(new QStandardItem(turnover_rate)); items.append(new QStandardItem(pe_ttm)); + items.append(new QStandardItem(amount_rank)); m_model->appendRow(items); rows++; } @@ -515,3 +517,59 @@ m_getPoolCloseTimer->stop(); } } + +void HistoryData::on_pushButton_updateRank_clicked() +{ + // 鍏堣幏鍙栨渶鏂扮殑鏃ユ湡鏇存柊琛紝鎵惧�掓暟绗簩涓棩鏈� + // 閫氳繃鍊掓暟绗簩涓棩鏈燂紝鎵惧埌鎵�鏈夎褰曞ぇ浜庤鏃ユ湡鐨勬棩鏈� + // 鏍规嵁鎵惧埌鐨勬墍鏈夊ぇ浜庣殑鏃ユ湡锛屾尐涓繘琛屾帓鍚嶅鐞� + + QVector<QString> log_days; + QString sql = "select * from days_info"; + QSqlQuery que(db); + if(que.exec(sql)){ + while (que.next()) { + log_days.append(que.value(1).toString()); + } + }else{ + qDebug()<<"鏌ヨ澶辫触"; + return ; + } + qDebug()<<log_days.size()<<log_days.back(); + + QString time_trade = "2019-01-01"; + if(log_days.size() > 1){ + time_trade = log_days.at(log_days.size() - 2); // 鏈熬鍊掓暟绗簩涓洿鏂� + //time_trade = log_days.first(); // 浠庣涓�涓紑濮嬫洿鏂� + } + qDebug()<<"time_trade:"<<time_trade; + + // 閫氳繃鍊掓暟绗簩涓棩鏈燂紝鎵惧埌鎵�鏈夎褰曞ぇ浜庤鏃ユ湡鐨勬棩鏈� + sql = QString("SELECT DISTINCT time_trade FROM stock_day_info WHERE time_trade IS NOT NULL AND time_trade >= '%1' ORDER BY time_trade;").arg(time_trade); + qDebug()<<"sql:"<<sql; + QVector<QString> rank_days; // 瑕佹帓鍚嶇殑鏃ユ湡 + //QSqlQuery que(db); + if(que.exec(sql)){ + while (que.next()) { + rank_days.append(que.value(0).toString()); + } + }else{ + qDebug()<<"鏌ヨ澶辫触"; + return ; + } + qDebug()<<"rank_days size:"<<rank_days.size()<<rank_days.first()<<rank_days.back(); + + // 鏍规嵁鎵惧埌鐨勬墍鏈夊ぇ浜庣殑鏃ユ湡锛屾尐涓繘琛屾帓鍚嶅鐞� + for(int i=0;i<rank_days.size();++i){ + sql = QString("SET @rank := 0; SET @trade_date := '%1'; UPDATE stock_day_info c JOIN ( SELECT id, @rank := @rank + 1 AS rank FROM stock_day_info WHERE time_trade = @trade_date ORDER BY amount DESC ) d ON c.id = d.id SET c.amount_rank = d.rank WHERE c.time_trade = @trade_date;").arg(rank_days.at(i)); + qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")<<sql; + if(que.exec(sql)){ + qDebug()<<"sql update ok"<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz"); + }else{ + qDebug()<<"鏌ヨ澶辫触"; + break ; + } + } + qDebug()<<"鏇存柊鎺掑悕瀹屾垚浜�"; + +} -- Gitblit v1.8.0