src/main/java/com/xcong/excoin/common/enumerates/SymbolEnum.java
@@ -25,5 +25,15 @@ this.value = value; } public static String getNameByValue(String value) { String name = ""; for (SymbolEnum symbolEnum : values()) { if (value.equals(symbolEnum.getValue())){ name = symbolEnum.getName(); break; } } return name; } } src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
New file @@ -0,0 +1,49 @@ package com.xcong.excoin.modules.contract.controller; import cn.hutool.core.util.StrUtil; import com.xcong.excoin.common.enumerates.SymbolEnum; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.contract.parameter.dto.SubmitEntrustDto; import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService; import com.xcong.excoin.utils.TypeJudgeUtils; import com.xcong.excoin.utils.api.response.Symbol; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; 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 javax.annotation.Resource; /** * 合约委托订单controller * * @author wzy * @date 2020-05-27 **/ @Slf4j @Api(value = "ContractEntrustOrderController", tags = "合约委托订单接口类") @RestController @RequestMapping(value = "/api/contractEntrust") public class ContractEntrustOrderController { @Resource private ContractEntrustOrderService contractEntrustOrderService; @ApiOperation(value = "合约提交委托订单", notes = "提交委托订单") @PostMapping(value = "/submitEntrustOrder") public Result submitEntrustOrder(@RequestBody @Validated SubmitEntrustDto submitEntrustDto) { if (StrUtil.isBlank(SymbolEnum.getNameByValue(submitEntrustDto.getSymbol()))){ return Result.fail("非法币种"); } if (!TypeJudgeUtils.entrustType(submitEntrustDto.getEntrustType())) { return Result.fail("非法类型"); } return Result.ok("123"); } } src/main/java/com/xcong/excoin/modules/contract/controller/ContractHoldOrderController.java
New file @@ -0,0 +1,17 @@ package com.xcong.excoin.modules.contract.controller; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author wzy * @date 2020-05-27 **/ @Slf4j @Api(value = "ContractHoldOrderController", tags = "合约持仓订单接口类") @RestController @RequestMapping(value = "/api/contractHold") public class ContractHoldOrderController { } src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
New file @@ -0,0 +1,17 @@ package com.xcong.excoin.modules.contract.controller; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author wzy * @date 2020-05-27 **/ @Slf4j @Api(value = "ContractOrderController", tags = "合约订单历史接口类") @RestController @RequestMapping(value = "/api/contractOrder") public class ContractOrderController { } src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
New file @@ -0,0 +1,10 @@ package com.xcong.excoin.modules.contract.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; /** * @author helius */ public interface ContractEntrustOrderDao extends BaseMapper<ContractEntrustOrderEntity> { } src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java
New file @@ -0,0 +1,10 @@ package com.xcong.excoin.modules.contract.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; /** * @author helius */ public interface ContractHoldOrderDao extends BaseMapper<ContractHoldOrderEntity> { } src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
New file @@ -0,0 +1,10 @@ package com.xcong.excoin.modules.contract.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; /** * @author helius */ public interface ContractOrderDao extends BaseMapper<ContractOrderEntity> { } src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java
New file @@ -0,0 +1,76 @@ package com.xcong.excoin.modules.contract.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.xcong.excoin.common.system.base.BaseEntity; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @author wzy * @date 2020-05-27 **/ @Data @TableName("contract_entrust_order") public class ContractEntrustOrderEntity extends BaseEntity { public static final int ENTRUST_TYPE_OPEN_MORE = 1; public static final int ENTRUST_TYPE_OPEN_LESS = 2; public static final int ENTRUST_TYPE_CLOSE_MORE = 3; public static final int ENTRUST_TYPE_CLOSE_LESS = 4; /** * 会员ID */ private Long memberId; /** * 订单编号 */ private String orderNo; /** * 仓位类型 1逐仓2全仓 */ private int positionType; /** * 委托类型 1开多,2开空,3平多,4平空 */ private int entrustType; /** * 委托价格 */ private BigDecimal entrustPrice; /** * 币种 */ private String symbol; /** * 数量 */ private int symbolCnt; /** * 币种规格 */ private Long symbolSku; /** * 杠杆倍率 */ private int leverRatio; /** * 保证金 */ private BigDecimal bondAmount; } src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java
New file @@ -0,0 +1,110 @@ package com.xcong.excoin.modules.contract.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.xcong.excoin.common.system.base.BaseEntity; import lombok.Data; import java.math.BigDecimal; /** * 合约持仓订单表 * * @author wzy * @date 2020-05-27 **/ @Data @TableName("contract_hold_order") public class ContractHoldOrderEntity extends BaseEntity { /** * 会员Id */ private Long memberId; /** * 订单编号 */ private String orderNo; /** * 仓位类型 1-逐仓 2-全仓 */ private int potionType; /** * 交易类型 1-市价 2-限价 */ private int tradeType; /** * 币种 */ private String symbol; /** * 手数 */ private int symbolCnt; /** * 可平张数(仅全仓模式) */ private int symbolCntSale; /** * 币种规格 */ private Long symbolSku; /** * 开仓价 */ private BigDecimal openingPrice; /** * 开仓类型 1-开多 2-开多 */ private int openingType; /** * 开仓手续费 */ private BigDecimal openingFeeAmount; /** * 保证金 */ private BigDecimal bondPrice; /** * 杠杆倍率 */ private int leverRatio; /** * 市场价 */ private BigDecimal markPrice; /** * 止损价 */ private BigDecimal stopLossPrice; /** * 止盈价 */ private BigDecimal stopProfitPrice; /** * 预付款金额 */ private BigDecimal prePaymentAmount; /** * 预估强平价 */ private BigDecimal forceClosingPrice; private int operateNo; } src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
New file @@ -0,0 +1,147 @@ package com.xcong.excoin.modules.contract.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.xcong.excoin.common.system.base.BaseEntity; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * 合约订单历史表 * * @author wzy * @date 2020-05-27 **/ @Data @TableName("contract_order_entity") public class ContractOrderEntity extends BaseEntity { /** * 会员Id */ private Long memberId; /** * 订单编号 */ private String orderNo; /** * 仓位类型 1-逐仓 2-全仓 */ private int potionType; /** * 交易类型 1-市价 2-限价 */ private int tradeType; /** * 订单类型 - 0撤单,1开多,2开空,3平多,4平空,5委托开多,6委托开空,7委托平多,8委托平空,9爆仓平多,10爆仓平空 */ private int orderType; /** * 委托开仓价 */ private BigDecimal entrustOpeningPrice; /** * 委托时间 */ private Date entrustTime; /** * 币种 */ private String symbol; /** * 手数 */ private int symbolCnt; /** * 币种规格 */ private Long symbolSku; /** * 平仓价 */ private BigDecimal closingPrice; /** * 平仓手续费 */ private BigDecimal closingFeeAmount; /** * 平仓时间 */ private Date closingTime; /** * 杠杆倍率 */ private int leverRatio; /** * 止损价 */ private BigDecimal stopLossPrice; /** * 止盈价 */ private BigDecimal stopProfitPrice; /** * 盈亏金额 */ private BigDecimal rewardAmount; /** * 盈亏比例 */ private BigDecimal rewardRatio; /** * 开仓价 */ private BigDecimal openingPrice; /** * 开仓手续费 */ private BigDecimal openingFeeAmount; /** * 预付款金额 */ private BigDecimal prePaymentAmount; /** * 保证金 */ private BigDecimal bondAmount; /** * 市场价 */ private BigDecimal markPrice; /** * 预估强平价 */ private BigDecimal forceClosingPrice; /** * 持仓费 */ private BigDecimal holdAmount; private int operateNo; } src/main/java/com/xcong/excoin/modules/contract/parameter/dto/SubmitEntrustDto.java
New file @@ -0,0 +1,38 @@ package com.xcong.excoin.modules.contract.parameter.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; /** * @author wzy * @date 2020-05-27 **/ @Data @ApiModel(value = "SubmitEntrustDto", description = "提交委托订单接口接受类") public class SubmitEntrustDto { @NotNull() @Min(1) @ApiModelProperty(value = "委托价", example = "9000.00") private BigDecimal entrustPrice; @NotNull @ApiModelProperty(value = "委托类型 1开多 2开空 3平多 4平空", example = "1") private int entrustType; @NotBlank @ApiModelProperty(value = "币种", example = "BTC/USDT") private String symbol; @NotNull @Min(1) @ApiModelProperty(value = "币种数量", example = "1") private int symbolCnt; } src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
New file @@ -0,0 +1,14 @@ package com.xcong.excoin.modules.contract.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; import com.xcong.excoin.modules.contract.parameter.dto.SubmitEntrustDto; /** * @author helius */ public interface ContractEntrustOrderService extends IService<ContractEntrustOrderEntity> { public Result addContractEntrustOrder(SubmitEntrustDto submitEntrustDto); } src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
New file @@ -0,0 +1,10 @@ package com.xcong.excoin.modules.contract.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; /** * @author helius */ public interface ContractHoldOrderService extends IService<ContractHoldOrderEntity> { } src/main/java/com/xcong/excoin/modules/contract/service/ContractOrderService.java
New file @@ -0,0 +1,10 @@ package com.xcong.excoin.modules.contract.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; /** * @author helius */ public interface ContractOrderService extends IService<ContractOrderEntity> { } src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
New file @@ -0,0 +1,43 @@ package com.xcong.excoin.modules.contract.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao; import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; import com.xcong.excoin.modules.contract.parameter.dto.SubmitEntrustDto; import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService; import com.xcong.excoin.modules.member.entity.MemberEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * @author wzy * @date 2020-05-27 **/ @Slf4j @Service public class ContractEntrustOrderServiceImpl extends ServiceImpl<ContractEntrustOrderDao, ContractEntrustOrderEntity> implements ContractEntrustOrderService { @Resource private ContractEntrustOrderDao contractEntrustOrderDao; @Override public Result addContractEntrustOrder(SubmitEntrustDto submitEntrustDto) { MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); // 委托开仓 if (submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_OPEN_MORE || submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_OPEN_LESS) { } // 委托平仓 if (submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_MORE || submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_LESS) { } return null; } } src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
New file @@ -0,0 +1,13 @@ package com.xcong.excoin.modules.contract.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; /** * @author wzy * @date 2020-05-27 **/ public class ContractHoldOrderServiceImpl extends ServiceImpl<ContractHoldOrderDao, ContractHoldOrderEntity> implements ContractHoldOrderService { } src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java
New file @@ -0,0 +1,13 @@ package com.xcong.excoin.modules.contract.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.modules.contract.dao.ContractOrderDao; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import com.xcong.excoin.modules.contract.service.ContractOrderService; /** * @author wzy * @date 2020-05-27 **/ public class ContractOrderServiceImpl extends ServiceImpl<ContractOrderDao, ContractOrderEntity> implements ContractOrderService { } src/main/java/com/xcong/excoin/utils/TypeJudgeUtils.java
New file @@ -0,0 +1,28 @@ package com.xcong.excoin.utils; /** * 接受参数 类型判断 * * @author wzy * @date 2020-05-27 **/ public class TypeJudgeUtils { /** * 委托类型 1开多 2开空 3平多 4平空 * * @param type * @return */ public static boolean entrustType(int type) { switch (type) { case 1: case 2: case 3: case 4: return true; default: return false; } } } src/main/resources/logback-spring.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration> <configuration scan="false"> <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 --> <property name="log.path" value="logs" /> src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao"> </mapper> src/main/resources/mapper/contract/ContractHoldOrderDao.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao"> </mapper> src/main/resources/mapper/contract/ContractOrderDao.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.contract.dao.ContractOrderDao"> </mapper>