1
zj
yesterday befbf57e4112d07003bff18102f556a1e5a154de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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);
 
 
}