今日指数-day07
1.股票Code联想推荐
1.1 股票Code联想推荐功能介绍
1) 原型效果
输入框输入股票编码后,显示关联的股票信息;
2)接口定义说明
接口说明:
功能描述:根据输入的个股代码,进行模糊查询,返回证券代码和证券名称
服务路径:/quot/stock/search
服务方法:GET
请求参数:searchStr (只接受代码模糊查询,不支持文字查询)
响应数据格式:
{"code": 1,"data": [{"code": "600000",//股票编码"name": "浦发银行" //股票名称},{"code": "600004","name": "白云机场"}]
}
1.2股票Code联想推荐功能实现
1)定义Web访问接口
@GetMapping("/stock/search")public R<List<Map<String,Object>>> fuzzyQuery(@RequestParam("searchStr") String searchStr){return stockService.fuzzyQuery(searchStr);}
2)定义服务接口和实现
定义服务接口
/*** 根据输入的个股代码,进行模糊查询,返回证券代码和证券名称* @param searchStr* @return*/R<List<Map<String, Object>>> fuzzyQuery(String searchStr);
实现
@Overridepublic R<List<Map<String, Object>>> fuzzyQuery(String searchStr) {//检查参数校验if(StringUtils.isBlank(searchStr)){R.error(ResponseCode.DATA_ERROR.getMessage());}// 对参数进行模糊处理String searchStrFuzzy = "%" + searchStr + "%";//根据股票代码模糊查询List<Map<String,Object>>stockRtInfoList=stockRtInfoMapper.getByCodeFuzzy(searchStrFuzzy);return R.ok(stockRtInfoList);}
3)定义mapper接口方法与xml
mapper
/*** 根据股票编码模糊查询* @param searchStrFuzzy* @return*/List<Map<String, Object>> getByCodeFuzzy(String searchStrFuzzy);
xml
<select id="getByCodeFuzzy" resultType="java.util.Map">select distinctsri.stock_code as code,sri.stock_name as namefrom stock_rt_info as sriwhere sri.stock_code like #{searchStrFuzzy}
</select>
2.个股描述功能实现
2.1 个股描述功能实现说明
1)原型示意
2)接口说明
功能描述:个股主营业务查询接口
服务路径:/api/quot/stock/describe
服务方法:GET
请求参数:code #股票编码
响应参数:
{"code": 1,"data": {"code": "000002", //股票编码"trade": "房地产 ", //行业,也就是行业板块名称"business": "房地产开发和物业服务",//公司主营业务"name": "万科A" //公司名称}
}
2.2股描述功能实现
1)定义Web访问接口
/*** 个股主营业务查询接口* @param code* @return*/
@GetMapping("/stock/describe")
public R<Map<String,Object>> getStockDescribe(@RequestParam("code") String code){return stockService.getStockDescribe(code);
}
2)定义服务接口和实现
定义服务接口
/*** 个股主营业务查询接口* @param code* @return*/
R<Map<String, Object>> getStockDescribe(String code);
实现
@Override
public R<Map<String, Object>> getStockDescribe(String code) {//检查参数校验if(StringUtils.isBlank(code)){R.error(ResponseCode.DATA_ERROR.getMessage());}//根据参数查询个股主营业务Map<String,Object> mapResult=stockBusinessMapper.getBySecCodeInfo(code);return R.ok(mapResult);}
3)定义mapper接口方法与xml
mapper
/*** 根据参数查询个股主营业务* @param code* @return*/Map<String, Object> getBySecCodeInfo(String code);
xml
<select id="getBySecCodeInfo" resultType="java.util.Map">selectsb.stock_code as code,sb.stock_name as name,sb.block_name as trade,sb.business as businessfrom stock_business as sbwhere stock_code=#{code}
</select>
3.个股周K线功能实现
3.1 个股周K线功能实现功能分析
1)个股周K线功能原型分析
2)个股周K线功能接口分析
个股周K线数据主要包含:股票ID、 一周内最高价、 一周内最低价 、周1开盘价、周5的收盘价、整周均价、以及一周内最大交易日期(一般是周五所对应日期)
接口要求:
功能描述:统计每周内的股票数据信息,信息包含:股票ID、 一周内最高价、 一周内最低价 、周1开盘价、周5的收盘价、整周均价、以及一周内最大交易日期(一般是周五所对应日期);
服务路径:/api/quot/stock/screen/weekkline
服务方法:GET
请求参数:code //股票编码
响应数据格式:
{"code": 1,"data": [{"avgPrice": 8.574954,//一周内平均价"minPrice": 8.56,//一周内最低价"openPrice": 8.6,//周一开盘价"maxPrice": 8.6,//一周内最高价"closePrice": 8.57,//周五收盘价(如果当前日期不到周五,则显示最新价格)"mxTime": "2021-12-19 15:00",//一周内最大时间"stockCode": "600000"//股票编码}]
}
3.2个股周K线功能实现
1)定义Web访问接口
/*** 功能描述:统计每周内的股票数据信息,信息包含:* 股票ID、 一周内最高价、 一周内最低价 、周1开盘价、周5的收盘价、* 整周均价、以及一周内最大交易日期(一般是周五所对应日期)** @param code* @return*/@GetMapping("/stock/screen/weekkline")public R<List<Map<String, Object>>> getStockInfo(@RequestParam("code") String code) {return stockService.getStockInfo(code);}
2)定义服务接口和实现
定义服务接口
/*** 功能描述:统计每周内的股票数据信息,信息包含:* 股票ID、 一周内最高价、 一周内最低价 、周1开盘价、周5的收盘价、* 整周均价、以及一周内最大交易日期(一般是周五所对应日期)** @param code* @return*/
R<List<Map<String, Object>>> getStockInfo(String code);
实现
@Override
public R<List<Map<String, Object>>> getStockInfo(String code) {// 获取日期范围DateTime lastDate4Stock = DateTimeUtil.getLastDate4Stock(DateTime.now());Date endTime = lastDate4Stock.toDate();Date startTime = lastDate4Stock.minusDays(4).toDate();// TODO moke 测试数据startTime = DateTime.parse("2021-12-25 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();// 根据日期范围统计每周的股票数据信息List<Map<String, Object>> mapResult = stockRtInfoMapper.getStockInfo4Week(code, startTime, endTime);return R.ok(mapResult);
}
3)定义mapper接口方法与xml
定义mapper
List<Map<String, Object>> getStockInfo4Week(@Param("code") String code,@Param("startTime") Date startTime,@Param("endTime") Date endTime);
xml
<select id="getStockInfo4Week" resultType="java.util.Map">select distinctavg(sri.cur_price) as avgPrice,min(sri.cur_price) as minPrice,sri.open_price as openPrice,max(sri.cur_price) as maxPrice,sri.cur_price as closePrice,date_format(max(sri.cur_time), '%Y%m%d') as mxTime,sri.stock_code as stock_codefrom stock_rt_info as sriwhere sri.stock_code = #{code}and sri.cur_time between #{startTime} and #{endTime}</select>
max(sri.cur_price) as maxPrice,sri.cur_price as closePrice,date_format(max(sri.cur_time), '%Y%m%d') as mxTime,sri.stock_code as stock_codefrom stock_rt_info as sriwhere sri.stock_code = #{code}and sri.cur_time between #{startTime} and #{endTime}
</select>