package com.yami.trading.service.trader;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.yami.trading.bean.contract.domain.ContractOrder;
|
import com.yami.trading.bean.trader.domain.TraderFollowUserOrder;
|
import com.yami.trading.service.contract.ContractApplyOrderService;
|
import com.yami.trading.service.contract.ContractOrderService;
|
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 用户跟随交易员详情
|
*/
|
public interface TraderFollowUserOrderService {
|
/**
|
*交易员进入市场后的持仓单
|
*/
|
|
public void traderOpen(ContractOrder order, ContractApplyOrderService contractApplyOrderService, ContractOrderService contractOrderService, int follow);
|
|
/**
|
* 平仓,按订单进行平仓
|
*/
|
public void traderClose(ContractOrder order, ContractOrderService contractOrderService);
|
|
/**
|
* 跟单用户合约已完全平仓时,将跟单映射表状态从 submitted/processing_close 同步为 created。
|
* 停止跟单会对跟单方直接走合约 saveClose;跟单方不是交易员时不会触发异步 traderClose,
|
* 若不同步会导致映射长期为 submitted,再次跟单时仍占用 volumeMax、无法跟随新开仓。
|
*/
|
void syncFollowUserOrderLinkAfterContractClose(ContractOrder contractOrder);
|
|
/**
|
* 按用户+交易员维度,将「合约已 created 但跟单映射仍为 submitted」的历史脏数据纠正为 created(再次开始跟单时调用)。
|
*/
|
void reconcileStaleSubmittedMappings(String partyId, String traderPartyId);
|
|
|
/**
|
* @param partyId 用户partyId
|
* @param apply_oder_no 委托单订单号
|
*/
|
public TraderFollowUserOrder findByPartyIdAndOrderNo(String partyId, String apply_oder_no);
|
|
public List<TraderFollowUserOrder> findByPartyIdAndTraderPartyIdAndState(String partyId, String trader_partyId,
|
String state);
|
|
public void update(TraderFollowUserOrder entity);
|
|
/**
|
* APP查询订单列表
|
*
|
* @return
|
*/
|
public List<Map<String, Object>> getPaged(Page page, String partyId, String state);
|
|
|
}
|