xiaoyong931011
2020-07-21 0d3edcd5bef12358829d18adbe6d8e75d96548f0
202020721  代码提交
4 files modified
405 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/trademanage/entity/ContractHoldOrderEntity.java 366 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml 5 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/trademanage/contractHoldOrderAlone.html 20 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/trademanage/entity/ContractHoldOrderEntity.java
@@ -1,178 +1,188 @@
package com.xcong.excoin.modules.trademanage.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xcong.excoin.common.entity.BaseEntity;
import lombok.Data;
/**
 * 合约持仓订单表
 *
 * @author wzy
 * @date 2020-05-27
 **/
@Data
@TableName("contract_hold_order")
public class ContractHoldOrderEntity extends BaseEntity {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * 是否可平仓 1-是
     */
    public static final int ORDER_CAN_CLOSING_Y = 1;
    /**
     * 是否可平仓 0-否
     */
    public static final int ORDER_CAN_CLOSING_N = 0;
    /**
     * 开多
     */
    public static final int OPENING_TYPE_MORE = 1;
    /**
     * 开空
     */
    public static final int OPENING_TYPE_LESS = 2;
    /**
     * 交易类型 市价
     */
    public static final int TRADE_TYPE_MARK = 1;
    /**
     * 交易类型 限价
     */
    public static final int TRADE_TYPE_LIMIT = 2;
    /**
     * 会员Id
     */
    private Long memberId;
    /**
     * 订单编号
     */
    private String orderNo;
    /**
     * 仓位类型 1-逐仓 2-全仓
     */
    private int positionType;
    /**
     * 交易类型 1-市价 2-限价
     */
    private int tradeType;
    /**
     * 币种
     */
    private String symbol;
    /**
     * 手数
     */
    private int symbolCnt;
    /**
     * 可平张数(仅全仓模式)
     */
    private int symbolCntSale;
    /**
     * 币种规格
     */
    private BigDecimal symbolSku;
    /**
     * 开仓价
     */
    private BigDecimal openingPrice;
    /**
     * 开仓类型 1-开多 2-开空
     */
    private int openingType;
    /**
     * 开仓手续费
     */
    private BigDecimal openingFeeAmount;
    /**
     * 保证金
     */
    private BigDecimal bondAmount;
    /**
     * 杠杆倍率
     */
    private int leverRatio;
    /**
     * 市场价
     */
    private BigDecimal markPrice;
    /**
     * 止损价
     */
    private BigDecimal stopLossPrice;
    /**
     * 止盈价
     */
    private BigDecimal stopProfitPrice;
    /**
     * 预付款金额
     */
    private BigDecimal prePaymentAmount;
    /**
     * 预估强平价
     */
    private BigDecimal forceClosingPrice;
    private int operateNo;
    /**
     * 是否可平仓 0-否 1-是
     */
    private int isCanClosing;
    /**
     * 批次号 队列平仓时使用,避免重复
     */
    public String batchNo;
    /**
     * 手机号(包含国际手机号)
     */
    @TableField(exist = false)
    private String phone;
    /**
     * 邮箱
     */
    @TableField(exist = false)
    private String email;
    @TableField(exist = false)
    private String account;
    /**
     * 邀请码
     */
    @TableField(exist = false)
    private String inviteId;
    /**
     * 系统盈亏
     */
    @TableField(exist = false)
    private BigDecimal rewardRatio;
}
package com.xcong.excoin.modules.trademanage.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xcong.excoin.common.entity.BaseEntity;
import lombok.Data;
/**
 * 合约持仓订单表
 *
 * @author wzy
 * @date 2020-05-27
 **/
@Data
@TableName("contract_hold_order")
public class ContractHoldOrderEntity extends BaseEntity {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * 是否可平仓 1-是
     */
    public static final int ORDER_CAN_CLOSING_Y = 1;
    /**
     * 是否可平仓 0-否
     */
    public static final int ORDER_CAN_CLOSING_N = 0;
    /**
     * 开多
     */
    public static final int OPENING_TYPE_MORE = 1;
    /**
     * 开空
     */
    public static final int OPENING_TYPE_LESS = 2;
    /**
     * 交易类型 市价
     */
    public static final int TRADE_TYPE_MARK = 1;
    /**
     * 交易类型 限价
     */
    public static final int TRADE_TYPE_LIMIT = 2;
    /**
     * 会员Id
     */
    private Long memberId;
    /**
     * 订单编号
     */
    private String orderNo;
    /**
     * 仓位类型 1-逐仓 2-全仓
     */
    private int positionType;
    /**
     * 交易类型 1-市价 2-限价
     */
    private int tradeType;
    /**
     * 币种
     */
    private String symbol;
    /**
     * 手数
     */
    private int symbolCnt;
    /**
     * 可平张数(仅全仓模式)
     */
    private int symbolCntSale;
    /**
     * 币种规格
     */
    private BigDecimal symbolSku;
    /**
     * 开仓价
     */
    private BigDecimal openingPrice;
    /**
     * 开仓类型 1-开多 2-开空
     */
    private int openingType;
    /**
     * 开仓手续费
     */
    private BigDecimal openingFeeAmount;
    /**
     * 保证金
     */
    private BigDecimal bondAmount;
    /**
     * 杠杆倍率
     */
    private int leverRatio;
    /**
     * 市场价
     */
    private BigDecimal markPrice;
    /**
     * 止损价
     */
    private BigDecimal stopLossPrice;
    /**
     * 止盈价
     */
    private BigDecimal stopProfitPrice;
    /**
     * 预付款金额
     */
    private BigDecimal prePaymentAmount;
    /**
     * 预估强平价
     */
    private BigDecimal forceClosingPrice;
    private int operateNo;
    /**
     * 是否可平仓 0-否 1-是
     */
    private int isCanClosing;
    /**
     * 批次号 队列平仓时使用,避免重复
     */
    public String batchNo;
    /**
     * 手机号(包含国际手机号)
     */
    @TableField(exist = false)
    private String phone;
    /**
     * 邮箱
     */
    @TableField(exist = false)
    private String email;
    @TableField(exist = false)
    private String account;
    /**
     * 邀请码
     */
    @TableField(exist = false)
    private String inviteId;
    /**
     * 系统盈亏
     */
    @TableField(exist = false)
    private BigDecimal rewardRatio;
    /**
     * 姓名
     */
    @TableField(exist = false)
    private String realName;
    /**
     * 账号类型
     */
    @TableField(exist = false)
    private int accountType;
}
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
@@ -165,6 +165,20 @@
        
        if (records != null) {
            for (ContractHoldOrderEntity holdOrderEntity : records) {
                Long memberId = holdOrderEntity.getMemberId();
                Map<String, Object> columnMap = new HashMap<>();
                columnMap.put("member_id", memberId);
                List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
                if(selectByMap != null && selectByMap.size() > 0) {
                    MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
                    String firstName = memberAuthenticationEntity.getFirstName();
                    String secondName = memberAuthenticationEntity.getSecondName();
                    String realName = firstName + secondName;
                    holdOrderEntity.setRealName(realName);
                }
                MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
                // 获取最新价
                BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml
@@ -33,11 +33,14 @@
            contract_hold_order s
        LEFT JOIN member m ON m.id = s.member_id
        <where>
            FIND_IN_SET('22015141', m.referer_ids)
            (s.member_id in (select id from member where FIND_IN_SET('22015141', m.referer_ids)) or m.id = 10)
            <if test="record != null" >
                <if test="record.account!=null and record.account!=''">
                    and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account})
                </if>
                 <if test="record.isTest!=null and record.isTest!=''">
                    and m.account_type= #{record.isTest}
                </if>
            </if>
        </where>
        ORDER BY s.create_time DESC
src/main/resources/templates/febs/views/modules/trademanage/contractHoldOrderAlone.html
@@ -12,6 +12,16 @@
                                            <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">账号类型</label>
                                        <div class="layui-input-inline">
                                            <select name="isTest">
                                                <option value=""></option>
                                                <option value="1">正常账号</option>
                                                 <option value="2">测试账号</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -74,6 +84,7 @@
                totalRow: true,
                cols: [[
                    {field: 'phone', title: '手机号', minWidth: 100,align:'left'},
                    {field: 'realName', title: '姓名', minWidth: 120,align:'left'},
                    {field: 'forceClosingPrice', title: '预估强平价', minWidth: 120,align:'center'},
                    {field: 'openingType', title: '开仓类型', 
                        templet: function (d) {
@@ -110,6 +121,14 @@
                    {field: 'stopProfitPrice', title: '止盈价', minWidth: 120,align:'center'},
                    {field: 'inviteId', title: '邀请码UID', minWidth: 120,align:'center'},
                    {field: 'orderNo', title: '订单编号', minWidth: 200,align:'center'},
                    {field: 'accountType', title: '账号类型',
                        templet: function (d) {
                            if (d.accountType === 2) {
                                return '<span style="color:red;">测试账号</span>'
                            } else {
                                return '<span style="color:green;">正常账号</span>'
                            }
                        },minWidth: 100,align:'center'},
                    {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
                ]]
            });
@@ -119,6 +138,7 @@
        function getQueryParams() {
            return {
                account: $searchForm.find('input[name="account"]').val().trim(),
                isTest: $searchForm.find("select[name='isTest']").val()
            };
        }