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,一经查实,立即删除!

相关文章

深入理解Promise:用法和面试问题解析

引言 在现代的异步JavaScript编程中&#xff0c;Promise是一个强大的工具&#xff0c;用于更优雅地处理异步操作。本文将深入探讨Promise的具体用法&#xff0c;并提供一些在面试中可能遇到的问题及其答案。 Promise的基本用法 Promise是一个代表异步操作最终完成或失败的对…

Redis降低内存占用(二)分片结构

一、分区方法&#xff1a; 分片&#xff0c;也称为分区。Redis提供了多种分区实现方案: 1、哈希分区 2、区间分区 3、一致性哈希分区 4、虚拟分区 5、LUA脚本实现分片 二、

AI相关技能

AI相关 掌握Python语言&#xff0c;了解基本的机器学习和深度学习神经网络算法&#xff0c;会使用PyTorch框架 进行深度学习模型训练&#xff0c;例如基于生成对抗网络的图像恢复处理 对视频&#xff0c; 文本、 Embedding 等的特征数据进行存储管理和分发的平台&#xff0c; …

fastApi笔记06-请求体-多个参数

多个请求体参数 from fastapi import FastAPI, Path, Query from pydantic import BaseModelapp FastAPI()class Item(BaseModel):name: strdescription: str | None Noneprice: floattax: float | None Noneclass User(BaseModel):username: strfull_name: str | None No…

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

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

MySQL 多表操作

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

Mesh中的负载均衡策略介绍

通过负载均衡配置,将请求均匀分配到各个服务节点,避免请求集中在某一点上 Round Robin Weighted Round Robin Ring Hash Weighted Ring Hash​ Random Weighted Random Least Request Ring Hash MD5 Mesh 数据面基于 Envoy 深度定制,在负载均衡算法方面,使用的大部分是 En…

国产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;方便学习。 下载完成后在一个顺眼的地方解压压…

力扣刷题-202.快乐数

编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&#xff0c…

华为OD机试真题-二叉树计算-2024年OD统一考试(C卷)

题目描述:给出一个二叉树如下图所示: 6 / \ 7 9 \ / -2 6 请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。 2…

读取Excel工具类

需要的jar包 poi-3.13.jar poi-ooxml-3.13.jar poi-ooxml-schemas-3.13.jar poi-scratchpad-3.9.jar 工具类1 package com.test.poi;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.…

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动态网站部署架构是一套由&…

HTML5 扩展了 HTMLDocument 类型

HTMLDocument 扩展 ​ HTML5 扩展了 HTMLDocument 类型&#xff0c;增加了更多功能。与其他 HTML5 定义的 DOM 扩展一样&#xff0c; 这些变化同样基于所有浏览器事实上都已经支持的专有扩展。为此&#xff0c;即使这些扩展的标准化相对较晚&#xff0c; 很多浏览器也早就实现…