前面有一篇文章介绍了使用selenium获取上市公司半年报的方法,这篇文章就给这些数据写一个简单的前端展示页面
上一篇文章的链接在这里
【java爬虫】使用selenium获取某交易所公司半年报数据-CSDN博客
首先来看一下整个页面的展示效果
前端页面采用vue+element-plus+axio进行编写,采用cdn的方式引入,只有一个index.html文件。
我们要展示的数据如下:
第一个组数据用
我们需要写一些sql语句用于统计这些数据。
首先需要写一个用于获取第一组数据的实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StatisticsEntity {
// 平均营业收入
private Double incomeavg;
// 平均净利润
private Double profit1avg;
// 平均经营现金流
private Double cashflowavg;
// 平均资产收益率
private Double rate1avg;
// 平均基本每股收益
private Double rate2avg;
// 平均资产负债率
private Double rate3avg;
}
接着是Mapper接口
@Mapper
public interface ReportMapper {
// 清空表
public void clearAll();
// 插入一条数据
public void insertOneItem(@Param("item")ReportEntity entity);
// 查询营业收入最高的十大公司
public List queryMaxIncome();
// 查询净利润最高的十大公司
public List queryMaxProfit();
// 查询经营现金流最高的十大公司
public List queryMaxCashflow();
// 查询净资产收益率最高的十大公司
public List queryMaxRate1();
// 查询每股收益最高的十大公司
public List queryMaxRate2();
// 查询资产负债率率最高的十大公司
public List queryMaxRate3();
// 平均营业收入
public Double queryIncomeAvg();
// 平均净利润
public Double queryProfit1Avg();
// 平均经营现金流
public Double queryCashflowAvg();
// 平均资产负债率
public Double queryRate1Avg();
// 平均基本每股收益
public Double queryRate2Avg();
// 平均资产负债率
public Double queryRate3Avg();
}
Mapper对应的xml文件
company, stock, income, profit1, profit2, cashflow, rate1, rate2, rate3
delete from t_report where 1=1
insert into t_report
(company, stock, income, profit1, profit2, cashflow, rate1, rate2, rate3)
values
(#{item.company}, #{item.stock}, #{item.income}, #{item.profit1},
#{item.profit2}, #{item.cashflow}, #{item.rate1}, #{item.rate2}, #{item.rate3})
最后是Controller类
@Controller
@CrossOrigin(origins = "*")
public class QueryController {
@Autowired
private ReportMapper reportMapper;
@RequestMapping("queryBaseInfo")
@ResponseBody
public String queryBaseInfo() {
StatisticsEntity statisticsEntity = new StatisticsEntity();
statisticsEntity.setIncomeavg(reportMapper.queryIncomeAvg());
statisticsEntity.setCashflowavg(reportMapper.queryCashflowAvg());
statisticsEntity.setProfit1avg(reportMapper.queryProfit1Avg());
statisticsEntity.setRate1avg(reportMapper.queryRate1Avg());
statisticsEntity.setRate2avg(reportMapper.queryRate2Avg());
statisticsEntity.setRate3avg(reportMapper.queryRate3Avg());
return JSON.toJSONString(statisticsEntity);
}
@RequestMapping("queryMaxIncome")
@ResponseBody
public String queryMaxIncome() {
List reportEntities = reportMapper.queryMaxIncome();
return JSON.toJSONString(reportEntities);
}
@RequestMapping("queryMaxProfit")
@ResponseBody
public String queryMaxProfit() {
List reportEntities = reportMapper.queryMaxProfit();
return JSON.toJSONString(reportEntities);
}
@RequestMapping("queryMaxCashflow")
@ResponseBody
public String queryMaxCashflow() {
List reportEntities = reportMapper.queryMaxCashflow();
return JSON.toJSONString(reportEntities);
}
@RequestMapping("queryMaxRate1")
@ResponseBody
public String queryMaxRate1() {
List reportEntities = reportMapper.queryMaxRate1();
return JSON.toJSONString(reportEntities);
}
@RequestMapping("queryMaxRate2")
@ResponseBody
public String queryMaxRate2() {
List reportEntities = reportMapper.queryMaxRate2();
return JSON.toJSONString(reportEntities);
}
@RequestMapping("queryMaxRate3")
@ResponseBody
public String queryMaxRate3() {
List reportEntities = reportMapper.queryMaxRate3();
return JSON.toJSONString(reportEntities);
}
}
之前说过我们采用cdn的方式引入库,所有的代码如下
上交所公司半年报数据简析
上交所公司半年报数据简析
{{ baseInfo.incomeavg }}
{{ baseInfo.profit1avg }}
{{ baseInfo.cashflowavg }}
{{ baseInfo.rate1avg }}
{{ baseInfo.rate2avg }}
{{ baseInfo.rate3avg }}
经营收入排名前十的公司
净利润排名前十的公司
经营现金流排名前十的公司
资产收益率排名前十的公司
基本每股收益排名前十的公司
资产负债率排名前十的公司
可以从上面的分享看出来整体的逻辑非常简单,就是写sql获取数据然后前端页面进行展示,下面分享一些详细数据。