xiaoyong931011
2020-05-27 28421da72919df14c782c65ff4f310e4680358c9
Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git
20 files added
2 files modified
642 ■■■■■ changed files
src/main/java/com/xcong/excoin/common/enumerates/SymbolEnum.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java 49 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/controller/ContractHoldOrderController.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java 76 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java 110 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java 147 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/parameter/dto/SubmitEntrustDto.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/ContractOrderService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/utils/TypeJudgeUtils.java 28 ●●●●● patch | view | raw | blame | history
src/main/resources/logback-spring.xml 2 ●●● patch | view | raw | blame | history
src/main/resources/mapper/contract/ContractEntrustOrderDao.xml 5 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/contract/ContractHoldOrderDao.xml 5 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/contract/ContractOrderDao.xml 5 ●●●●● patch | view | raw | blame | history
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>