package com.xcong.excoin.modules.symbols.controller; import com.huobi.client.model.Candlestick; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.symbols.parameter.dto.KlineDetailDto; import com.xcong.excoin.modules.symbols.parameter.vo.HomeSymbolsVo; import com.xcong.excoin.modules.symbols.parameter.vo.KlineDataVo; import com.xcong.excoin.modules.symbols.service.SymbolsService; import com.xcong.excoin.utils.RedisUtils; import com.xcong.excoin.utils.TypeJudgeUtils; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; /** * @author wzy * @date 2020-05-28 **/ @Api(value = "K线以及币种相关轮询接口类", tags = "K线以及币种相关轮询接口类") @Slf4j @RestController @RequestMapping(value = "/api/symbols") public class SymbolsController { @Resource private SymbolsService symbolsService; @Resource private RedisUtils redisUtils; @ApiOperation(value = "轮询获取app首页币种交易信息", notes = "轮询获取app首页币种交易信息") @ApiResponses({ @ApiResponse(code = 0, message = "success", response = HomeSymbolsVo.class) }) @GetMapping(value = "/homeSymbols") public Result homeSymbols(@ApiParam(name = "type", value = "类型1-币币2-合约3-自选", required = true, example = "1") @RequestParam(value = "type") Integer type) { return symbolsService.homeSymbols(type); } @ApiOperation(value = "根据币种查询币种当前各种数据", notes = "根据币种查询币种当前各种数据") @ApiResponses({ @ApiResponse(code = 0, message = "success", response = HomeSymbolsVo.class) }) @GetMapping(value = "/findSymbolData") public Result findSymbolData(@ApiParam(name = "symbol", value = "币种", required = true, example = "BTC/USDT") @RequestParam(value = "symbol") String symbol) { return symbolsService.findSymbolData(symbol); } @ApiOperation(value = "查询历史K线数据", notes = "查询历史K线数据") @ApiResponses({ @ApiResponse(code = 0, message = "success", response = KlineDataVo.class) }) @PostMapping(value = "/klineDetail") public Result klineDetail(@RequestBody @Valid KlineDetailDto klineDetailDto) { if (!TypeJudgeUtils.klinePeriod(klineDetailDto.getPeriod())) { return Result.fail("非法参数"); } return symbolsService.findKlineDetails(klineDetailDto); } @ApiOperation(value = "查询当日最高最低价") @GetMapping(value = "/getDayHighAndLow") public Result getDayHighAndLow(@ApiParam(name = "symbol", value = "币种", required = true, example = "BTC/USDT") @RequestParam(value = "symbol") String symbol) { Candlestick object = (Candlestick) redisUtils.get(symbol); return Result.ok(object); } }