day08-实战-今日指数

今日指数-day08

1. 个股最新分时行情数据

1.1 个股最新分时行情功能说明

1)个股最新分时行情功能原型

在这里插入图片描述

2)个股最新分时行情数据接口分析
功能描述:获取个股最新分时行情数据,主要包含:开盘价、前收盘价、最新价、最高价、最低价、成交金额和成交量、交易时间信息; 
服务路径:/api/quot/stock/screen/second/detail
服务方法:GET
请求参数:code //股票编码

响应数据格式:

R<StockRt>{"code": 1,"data": {"tradeAmt": 58672751,//最新交易量"preClosePrice": 3.89,//前收盘价格"lowPrice": 3.89,//最低价"highPrice": 3.91,//最高价"openPrice": 3.9,//开盘价"tradeVol": 228625157,//交易金额"tradePrice": 3.9//当前价格"curDate": '2022-01-03 14:58'//当前日期}
}
2)注意事项
如果当前日期不在股票交易时间内,则查询最近的股票交易时间的数据回显

1.2个股最新分时行情功能实现

1)定义web访问接口
    /*** 获取个股最新分时行情数据,主要包含:* 	开盘价、前收盘价、最新价、最高价、最低价、成交金额和成交量、交易时间信息* @param code* @return*/@GetMapping("/stock/screen/second/detail")public R<Map<String, Object>> stockScreenTimeSharingInfo(@RequestParam("code") String code) {return stockService.stockScreenTimeSharingInfo(code);}
2)定义服务接口和实现

服务接口

 /*** 获取个股最新分时行情数据,主要包含:* 	开盘价、前收盘价、最新价、最高价、最低价、成交金额和成交量、交易时间信息* @param code* @return*/R<Map<String, Object>> stockScreenTimeSharingInfo(String code);

实现

    @Overridepublic R<Map<String, Object>> stockScreenTimeSharingInfo(String code) {// 获取最新股票有效交易日DateTime lastDate4Stock = DateTimeUtil.getLastDate4Stock(DateTime.now());DateTime openDate = DateTimeUtil.getOpenDate(lastDate4Stock);Date endTime = lastDate4Stock.toDate();Date startTime = openDate.toDate();// TODO moke 测试数据startTime = DateTime.parse("2021-12-30 09:30:00", DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate();endTime = DateTime.parse("2021-12-30 15:00:00", DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate();// 根据股票开盘和关盘时间分时查询个股数据Map<String, Object> mapResult = stockRtInfoMapper.getStockScreenTimeInfo(code, startTime, endTime);return R.ok(mapResult);}
3)定义mapper和xml

mapper

Map<String, Object> getStockScreenTimeInfo(@Param("code") String code,@Param("startTime") Date startTime,@Param("endTime") Date endTime);

xml

<select id="getStockScreenTimeInfo" resultType="java.util.Map">selectsri.trade_amount as tradeAmt,sri.pre_close_price as preClosePrice,sri.min_price as lowPrice,sri.max_price as highPrice,sri.open_price as openPrice,sri.trade_amount as tradePrice,sri.cur_price as tradePrice,date_format(sri.cur_time, '%Y%M%d%H%m%s') as curDatefrom stock_rt_info as sriwhere cur_time in (selectmax(sri2.cur_time)from stock_rt_info as sri2where sri2.stock_code = #{code}and cur_time between #{startTime} and #{endTime})and stock_code = #{code}</select>

2.个股实时交易流水查询

2.1 个股实时交易流水查询功能介绍

1)功能原型

在这里插入图片描述

2)功能接口说明
功能描述:个股交易流水行情数据查询--查询最新交易流水,按照交易时间降序取前10
服务路径:/quot/stock/screen/second
入参:code  股票编码
服务方法:GET

响应数据格式:

{"code": 1,"data": [{"date": "2022-01-03-14:58",//当前时间,精确到分"tradeAmt": 58672751,//交易量"tradeVol": 228625157,//交易金额"tradePrice": 3.9//交易价格}]
}

2.2个股实时交易流水查询功能实现

1)定义web访问接口
    /*** 个股交易流水行情数据查询--查询最新交易流水,按照交易时间降序取前10* @param code* @return*/@GetMapping("/stock/screen/second")public R<List<Map<String, Object>>> getStockTradinStatement(@RequestParam("code") String code) {return stockService.getStockTradinStatement(code);}
2)定义服务接口和实现

服务接口

    /*** 个股交易流水行情数据查询--查询最新交易流水,按照交易时间降序取前10* @param code* @return*/R<List<Map<String, Object>>> getStockTradinStatement(String code);

实现

    @Overridepublic R<List<Map<String, Object>>> getStockTradinStatement(String code) {if(StringUtils.isBlank(code)) {return R.error(ResponseCode.DATA_ERROR.getMessage());}List<Map<String,Object>> mapResult=stockRtInfoMapper.getByCodeInfo(code);return R.ok(mapResult);}
3)定义mapper和xml

mapper

List<Map<String, Object>> getByCodeInfo(String code);
    <select id="getByCodeInfo" resultType="java.util.Map">selectdate_format(sri.cur_time, '%Y%m%d%H%m') as date,sri.trade_amount as tradeAmt,sri.trade_volume as tradeVol,sri.cur_price as tradePricefrom stock_rt_info as sriwhere sri.stock_code = #{code}order by cur_time desclimit 10;</select>

3.拉取外盘数据功能实现

3.1功能分析

国外大盘数据采集与国内大盘数据几乎一致,目前通过sina接口无法获取国外大盘的交易量和交易金额数据,所以针对国外大盘数据,需要单独处理;

注意事项:

​ 国外大盘数据接口不提供交易量和交易金额的信息;

字段分析:

  var hq_str_b_FSSTI="富时新加坡海峡时报指数,3123.68,-2.96,-0.09";大盘code      大盘名称       大盘点数    涨跌值    涨幅

注意:因为外盘的开盘周期不固定的,所以我们就一天仅仅采集一次数据即可;

​ 或者针对不同的外盘,使用不同的采集计划!

采集外盘接口:http://hq.sinajs.cn/list=int_dji,int_nasdaq,int_hangseng,int_nikkei,b_FSSTI,其它详见第五天接口说明;

4.完善用户登录成功动态回显菜单栏功能

1)功能接口说明

功能描述:当前用户登录后,仅仅加载了用户表相关信息,接下来完成的功能是完善用户权限相关的信息;
服务路径:/api/login
请求方式:POST
注意事项:顶级权限(功能菜单项)的pid为0

在这里插入图片描述

对应表表结构:

sys_permissioin表:

在这里插入图片描述

接口响应数据格式:

{"code": 1,"data": {"id": "1237361915165020161",//用户ID"username": "admin",//用户名称"phone": "13888888888",//手机号"nickName": "itheima",//昵称"realName": "heima",//真实名称"sex": 1,//性别"status": 1,//状态"email": "875267425@qq.com",//邮件"menus": [//侧边栏权限树(不包含按钮权限){"id": "1236916745927790564",//权限ID"title": "组织管理",//权限标题"icon": "el-icon-star-off",//权限图标(按钮权限无图片)"path": "/org",//请求地址"name": "org",//权限名称对应前端vue组件名称"children": [{"id": "1236916745927790578","title": "角色管理","icon": "el-icon-s-promotion","path": "/roles","name": "roles","children": [] // null 则前端展示失败},{"id": "1236916745927790560","title": "菜单权限管理","icon": "el-icon-s-tools","path": "/menus","name": "menus","children": [] }]},{"id": "1236916745927790569","title": "账号管理","icon": "el-icon-s-data","path": "/user","name": "user","children": []}],permissions: ["btn-user-delete",//按钮权限标识"btn-log-delete","btn-user-add","btn-role-update","btn-permission-delete",]}
}

响应结果字段与sys_permission表字段关系:

在这里插入图片描述

实现步骤:

1.根据用户名已经查询了用户信息,且做了用户信息合法性的判断;

2.如果 用户合法,则根据用户的id去数据库查询用户拥有的权限信息集合;

​ 根据用户id查询权限信息,数据要注意去重(distinct)

3.递归用户拥有的权限集合,组织出用户的目录-菜单树(不包含按钮权限)—》menus

3.获取按钮权限标识集合(获取权限集合中type=3的权限信息)—》permissions

在这里插入图片描述

在这里插入图片描述

提示:用户侧边栏信息先批量查询,然后再通过递归组装数据;

29)]

实现步骤:

1.根据用户名已经查询了用户信息,且做了用户信息合法性的判断;

2.如果 用户合法,则根据用户的id去数据库查询用户拥有的权限信息集合;

​ 根据用户id查询权限信息,数据要注意去重(distinct)

3.递归用户拥有的权限集合,组织出用户的目录-菜单树(不包含按钮权限)—》menus

3.获取按钮权限标识集合(获取权限集合中type=3的权限信息)—》permissions

[外链图片转存中…(img-wDpj3Nj0-1708411102831)]

[外链图片转存中…(img-X6eVOHfV-1708411102831)]

提示:用户侧边栏信息先批量查询,然后再通过递归组装数据;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/694784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子加密机的工作原理是什么

量子加密机&#xff0c;作为现代加密技术的一大飞跃&#xff0c;正逐渐成为信息安全领域的研究热点。与传统的加密方法相比&#xff0c;量子加密技术以其独特的优势&#xff0c;为信息安全提供了更为坚实的保障。 量子加密的核心在于利用量子力学的特性&#xff0c;尤其是量子纠…

MySQL 多表操作

一.多表关系 1.一对一关系 一个学生只有一张身份证&#xff1b;一张身份证只能对应一个学生。 在任一表中添加外键&#xff0c;指向另一方主键&#xff0c;确保一对一关系。 一般一对一关系很少见&#xff0c;遇到一对一关系的表最好合并。 2.一对多/多对一关系 一个部门…

国产chat gpt推荐

下述网站响应非常快 会持续更新的! 付费&#xff1a; 小名言 免费&#xff1a; AIchatOS 百度的文心一言

【虚拟仿真】Unity3D中实现3DUI,并且实现Button、InputField、Toggle等事件绑定

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近在项目中需要用到3DUI的展示,之前一般会用TextMeshPro进行展示: 但是,后面又需要添加按钮、Toggle等…

船运物流管理系统|基于springboot船运物流管理系统设计与实现(源码+数据库+文档)

船运物流管理系统目录 目录 基于springboot船运物流管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、货运单管理 3、公告管理 4、公告类型管理 5、新闻管理 6、新闻类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 …

【线性代数基础】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 关于线性代数的基础知识。 知识图谱 1.基本概念&#xff1a; 向量&#xff1a;向量是一个有方向的量&#xff0c;可以用一组数&#xff08;称为坐标&#xff09;来表示。在二维空间中&#x…

4、电源管理入门之子系统reset

目录 1. 简介 2. consumer-驱动软件 3. provider-reset驱动 3.1 整体介绍 3.2 reset复位API说明 之前的文章电源管理入门-1关机重启详解介绍了整机SoC的重启也可以说是reset,那么子系统的reset,例如某个驱动(网卡、USB等)或者某个子系统(NPU、ISP等运行在独立的M核或…

Windows安装PHP及在VScode中配置插件,使用PHP输出HelloWorld

安装PHP PHP官网下载地址(8.3版本)&#xff1a;PHP For Windows&#xff1a;二进制文件和源代码发布 点击下载.zip格式压缩包&#xff1a; 历史版本在Old archives中下载。推荐在Documentation download中下载官方文档&#xff0c;方便学习。 下载完成后在一个顺眼的地方解压压…

MySQL学习笔记3: MySQL数据库基础

目录 前言目标数据库操作&#xff08;针对database 的操作&#xff09;1. 创建数据库 create database 数据库名;2. 查看数据库 show databases;3. 选中数据库 use 数据库名;4. 删除数据库 drop database 数据库名; mysql中支持的数据类型1. 数值类型: NUMERIC(M,D)2. 字符串类…

实现Slider 滑块组件标记动态变化

实现以上效果&#xff0c;下拉框、slider滑块、按钮都在同一行&#xff0c;设置flex布局后&#xff0c;发现silider滑块最右边的标记数字一直都如下竖着显示&#xff0c;后来通过给源组件的标记区.el-slider__marks-text增加一个宽度后解决该问题。 <template><div>…

Linux实验记录:使用LNMP架构部署动态网站环境

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; LNMP动态网站部署架构是一套由&…

探索亚信安慧AntDB的数据库管理之道

AntDB数据库管理系统以其卓越的性能和稳定性成为众多用户的选择之一。这款系统采用了影响力大、社区繁荣、开放度高、生态增长迅速的PG内核&#xff0c;为用户提供了稳定可靠的数据库解决方案。 数据库的稳定性对于用户来说至关重要&#xff0c;特别是在面对大规模数据处理和高…

Go语言进阶篇——泛型

前言 在开始今天有关泛型的介绍之前,我们先来看一个简单的例子&#xff0c;如果我们要设计两个int类型变量相加的函数&#xff0c;我们可以这样设计&#xff1a; func Sum (a, b int) int {return a b }如果变量要求是float类型或者是其他类型&#xff0c;我们要面对一个问题…

高防服务器是怎样进行防御的?

随着互联网的发展&#xff0c;网络攻击和恶意流量也日益增多&#xff0c;高防服务器作为企业网络安全的重要保障&#xff0c;越来越受到关注。那么&#xff0c;高防服务器是怎样进行防御的呢&#xff1f; 高防服务器主要是指具备防御DDoS攻击、CC攻击、7x24小时实时防御网站入…

【Flink集群RPC通讯机制(二)】创建AkkaRpcService、启动RPC服务、实现相互通信

文章目录 零. RpcService服务概述1. AkkaRpcService的创建和初始化2.通过AkkaRpcService初始化RpcServer3. ResourceManager中RPC服务的启动4. 实现相互通讯能力 零. RpcService服务概述 RpcService负责创建和启动Flink集群环境中RpcEndpoint组件的RpcServer&#xff0c;且Rpc…

32单片机基础:OLED调试工具的使用

下面会介绍OLED显示屏的驱动函数模块&#xff0c;先学会如何使用&#xff0c;至于OLED屏幕的原理和代码编写&#xff0c; 我们之后会再写一篇。 现在我们就是用OLED当一个调试的显示屏&#xff0c;方便我们调试程序。 为什么要调试呢&#xff0c;是为了方便我们看现象&#…

嵌入式学习之Linux入门篇——使用VMware创建Unbuntu虚拟机

目录 主机硬件要求 VMware 安装 安装Unbuntu 18.04.6 LTS 新建虚拟机 进入Unbuntu安装环节 主机硬件要求 内存最少16G 硬盘最好分出一个单独的盘&#xff0c;而且最少预留200G&#xff0c;可以使用移动固态操作系统win7/10/11 VMware 安装 版本&#xff1a;VMware Works…

CQT新里程碑:SOC 2 数据安全认证通过,加强其人工智能支持

Covalent Network&#xff08;CQT&#xff09;发展新里程碑&#xff1a;SOC 2 数据安全认证通过&#xff0c;进一步加强了其人工智能支持 Covalent Network&#xff08;CQT&#xff09;现已完成并通过了严格的 Service Organization Control&#xff08;SOC) 2 Type II 的合规性…

vivo 基于 StarRocks 构建实时大数据分析平台,为业务搭建数据桥梁

在大数据时代&#xff0c;数据分析和处理能力对于企业的决策和发展至关重要。 vivo 作为一家全球移动互联网智能终端公司&#xff0c;需要基于移动终端的制造、物流、销售等各个方面的数据进行分析以满足业务决策。 而随着公司数字化服务的演进&#xff0c;业务诉求和技术架构有…

ELK Stack 日志平台搭建

前言 最近在折腾 ELK 日志平台&#xff0c;它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。 专门实操了一波&#xff0c;这玩意看起来简单&#xff0c;但是里面的流程步骤还是很多的&#xff0c;而且遇到了很多坑。在此记录和总结下。 本文亮点&#xff1a;…