package com.xcong.excoin.modules.coin.controller;
|
|
import java.math.BigDecimal;
|
|
import javax.annotation.Resource;
|
import javax.validation.Valid;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.xcong.excoin.common.annotations.SubmitRepeat;
|
import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity;
|
import com.xcong.excoin.modules.symbols.constants.SymbolsConstats;
|
import com.xcong.excoin.utils.RedisUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import com.xcong.excoin.common.response.Result;
|
import com.xcong.excoin.modules.coin.parameter.dto.CancelEntrustWalletCoinOrderDto;
|
import com.xcong.excoin.modules.coin.parameter.dto.FindAllWalletCoinOrderDto;
|
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.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.ApiResponse;
|
import io.swagger.annotations.ApiResponses;
|
import lombok.extern.slf4j.Slf4j;
|
|
@Slf4j
|
@Api(value = "币币交易接口", tags = "币币交易接口")
|
@RestController
|
@RequestMapping(value = "/api/orderCoin")
|
@CrossOrigin("*")
|
public class OrderCoinController {
|
|
@Resource
|
OrderCoinService orderCoinService;
|
|
@Autowired
|
private RedisUtils redisUtils;
|
/**
|
* 进入交易页面
|
* @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")
|
@SubmitRepeat
|
public Result submitSalesWalletCoinOrder(@RequestBody @Valid SubmitSalesWalletCoinOrderDto submitSalesWalletCoinOrderDto) {
|
log.debug("买卖单参数[{}]", JSONObject.toJSONString(submitSalesWalletCoinOrderDto));
|
String status = redisUtils.getString("bea_start");
|
if ("1".equals(status)) {
|
return Result.fail("暂未开放");
|
}
|
String symbol = submitSalesWalletCoinOrderDto.getSymbol();
|
Integer type = submitSalesWalletCoinOrderDto.getType();
|
Integer tradeType = submitSalesWalletCoinOrderDto.getTradeType();
|
BigDecimal price = submitSalesWalletCoinOrderDto.getPrice();
|
BigDecimal amount = submitSalesWalletCoinOrderDto.getAmount();
|
if(SymbolsConstats.EXCHANGE_SYMBOLS.contains(symbol)){
|
return orderCoinService.submitSalesWalletCoinOrderWithMatch(symbol,type,tradeType,price,amount,submitSalesWalletCoinOrderDto.getEntrustAmount());
|
|
}else{
|
return orderCoinService.submitSalesWalletCoinOrder(symbol,type,tradeType,price,amount,submitSalesWalletCoinOrderDto.getEntrustAmount());
|
}
|
}
|
|
/**
|
* 获取委托单数据
|
* @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")
|
@SubmitRepeat
|
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 = OrderWalletCoinDealVo.class)})
|
@PostMapping(value="/findAllWalletCoinOrder")
|
public Result findAllWalletCoinOrder(@RequestBody @Validated FindAllWalletCoinOrderDto findAllWalletCoinOrderDto) {
|
return orderCoinService.findAllWalletCoinOrder(findAllWalletCoinOrderDto);
|
}
|
|
/**
|
* 获取一条币币交易历史订单信息
|
* @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();
|
}
|
|
/**
|
* 币种搜索
|
* @return
|
*/
|
@ApiOperation(value = "币种搜索", notes = "币种搜索")
|
@GetMapping(value = "/searchSymbolResultList")
|
public Result searchSymbolResultList() {
|
return orderCoinService.searchSymbolResultList();
|
}
|
|
/**
|
* 获取币币交易历史订单信息
|
* @return
|
*/
|
@ApiOperation(value = "获取币币交易历史订单信息", notes = "获取币币交易历史订单信息")
|
@ApiResponses({@ApiResponse( code = 200, message = "success", response = OrderWalletCoinDealVo.class)})
|
@GetMapping(value="/deal/list")
|
public Result findAllWalletCoinOrder() {
|
return orderCoinService.findAllWalletCoinOrder();
|
}
|
}
|