package com.xcong.excoin.modules.coin.controller; import java.math.BigDecimal; import javax.annotation.Resource; import javax.validation.Valid; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.coin.parameter.dto.CancelEntrustWalletCoinOrderDto; import com.xcong.excoin.modules.coin.parameter.dto.FindCollectDto; import com.xcong.excoin.modules.coin.parameter.dto.SubmitSalesWalletCoinOrderDto; import com.xcong.excoin.modules.coin.parameter.vo.FindCollectListVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberSelectSymbolsVo; import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinDealListVo; import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinDealVo; import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinListVo; import com.xcong.excoin.modules.coin.parameter.vo.TransactionPageOfWalletCoinVo; import com.xcong.excoin.modules.coin.service.OrderCoinService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; @Slf4j @Api(value = "币币交易接口", tags = "币币交易接口") @RestController @RequestMapping(value = "/api/orderCoin") public class OrderCoinController { @Resource OrderCoinService orderCoinService; /** * 进入交易页面 * @return */ @ApiOperation(value = "进入交易页面", notes = "进入交易页面") @ApiResponses({@ApiResponse( code = 200, message = "success", response = TransactionPageOfWalletCoinVo.class)}) @ApiImplicitParams({ @ApiImplicitParam(name = "symbol", value = "币种", required = true, dataType = "String", paramType="query") }) @GetMapping(value = "/enterTransactionPageOfWalletCoin") public Result enterTransactionPageOfWalletCoin(String symbol) { return orderCoinService.enterTransactionPageOfWalletCoin(symbol); } /** * 提交买卖订单 * @return */ @ApiOperation(value = "提交买卖订单", notes = "提交买卖订单") @PostMapping(value="/submitSalesWalletCoinOrder") public Result submitSalesWalletCoinOrder(@RequestBody @Valid SubmitSalesWalletCoinOrderDto submitSalesWalletCoinOrderDto) { String symbol = submitSalesWalletCoinOrderDto.getSymbol(); Integer type = submitSalesWalletCoinOrderDto.getType(); Integer tradeType = submitSalesWalletCoinOrderDto.getTradeType(); BigDecimal price = submitSalesWalletCoinOrderDto.getPrice(); BigDecimal amount = submitSalesWalletCoinOrderDto.getAmount(); return orderCoinService.submitSalesWalletCoinOrder(symbol,type,tradeType,price,amount); } /** * 获取委托单数据 * @return */ @ApiOperation(value = "获取委托单数据", notes = "获取委托单数据") @ApiResponses({@ApiResponse( code = 200, message = "success", response = OrderWalletCoinListVo.class)}) @ApiImplicitParams({ @ApiImplicitParam(name = "symbol", value = "币种", required = true, dataType = "String", paramType="query"), @ApiImplicitParam(name = "status", value = "状态 1:委托中2:撤单3:已成交", required = true, dataType = "int", paramType="query") }) @GetMapping(value = "/getEntrustWalletCoinOrder") public Result getEntrustWalletCoinOrder(String symbol,Integer status) { return orderCoinService.getEntrustWalletCoinOrder(symbol,status); } /** * 撤销委托订单 * @return */ @ApiOperation(value = "撤销委托订单", notes = "撤销委托订单") @PostMapping(value="/cancelEntrustWalletCoinOrder") public Result cancelEntrustWalletCoinOrder(@RequestBody @Valid CancelEntrustWalletCoinOrderDto cancelEntrustWalletCoinOrderDto) { String orderId = cancelEntrustWalletCoinOrderDto.getOrderId(); return orderCoinService.cancelEntrustWalletCoinOrder(orderId); } /** * 获取币币交易历史订单信息 * @return */ @ApiOperation(value = "获取币币交易历史订单信息", notes = "获取币币交易历史订单信息") @ApiResponses({@ApiResponse( code = 200, message = "success", response = OrderWalletCoinDealListVo.class)}) @ApiImplicitParams({ @ApiImplicitParam(name = "symbol", value = "币种", required = true, dataType = "String", paramType="query") }) @GetMapping(value = "/findAllWalletCoinOrder") public Result findAllWalletCoinOrder(String symbol) { return orderCoinService.findAllWalletCoinOrder(symbol); } /** * 获取一条币币交易历史订单信息 * @return */ @ApiOperation(value = "获取一条币币交易历史订单信息", notes = "获取一条币币交易历史订单信息") @ApiResponses({@ApiResponse( code = 200, message = "success", response = OrderWalletCoinDealVo.class)}) @ApiImplicitParams({ @ApiImplicitParam(name = "orderId", value = "订单ID", required = true, dataType = "Long", paramType="query") }) @GetMapping(value = "/findWalletCoinOrder") public Result findWalletCoinOrder(Long orderId) { return orderCoinService.findWalletCoinOrder(orderId); } /** * 币币自选|取消自选 * @return */ @ApiOperation(value = "币币自选|取消自选", notes = "币币自选|取消自选") @PostMapping(value="/findCollect") public Result findCollect(@RequestBody @Valid FindCollectDto findCollectDto) { String symbol = findCollectDto.getSymbol(); Integer type = findCollectDto.getType(); return orderCoinService.findCollect(symbol,type); } /** * 币币是否自选 * @return */ @ApiOperation(value = "币币是否自选", notes = "币币是否自选") @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberSelectSymbolsVo.class)}) @ApiImplicitParams({ @ApiImplicitParam(name = "symbol", value = "币种", required = true, dataType = "String", paramType="query") }) @GetMapping(value = "/checkIsCollect") public Result checkIsCollect(String symbol) { return orderCoinService.checkIsCollect(symbol); } /** * 已自选的币种 * @return */ @ApiOperation(value = "已自选的币种", notes = "已自选的币种") @ApiResponses({@ApiResponse( code = 200, message = "success", response = FindCollectListVo.class)}) @GetMapping(value = "/findCollectList") public Result findCollectList() { return orderCoinService.findCollectList(); } }