| | |
| | | ui->tableView->setSortingEnabled(true); |
| | | |
| | | QStringList labels; |
| | | labels<<"股票名字"<<"股票代号"<<"市值(亿)"<<"涨跌幅"<<"收盘价"<<"成交额(亿)"<<"成交量"<<"换手率"<<"PE_TTM"; |
| | | labels<<"股票名字"<<"股票代号"<<"市值(亿)"<<"涨跌幅"<<"收盘价"<<"成交额(亿)"<<"成交量"<<"换手率"<<"PE_TTM"<<"交易额排名"; |
| | | m_model->setHorizontalHeaderLabels(labels); |
| | | |
| | | initMySQL(); // 初始化MySQL |
| | |
| | | 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")); |
| | | // 设置请求头,用户代理,用来模拟浏览器 |
| | | m_request.setHeader(QNetworkRequest::UserAgentHeader,userAgent); |
| | | // 设置cookie |
| | |
| | | |
| | | 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(); // 清空数组中的数据 |
| | |
| | | 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)); |
| | |
| | | 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++; |
| | | } |
| | |
| | | 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()<<"更新排名完成了"; |
| | | |
| | | } |