package market import ( "context" "fmt" "sig-pub/api/pb" "sig-pub/pkg/grpc/session" "sig-pub/pkg/mapping" ) type MarketGrpcServer struct { pb.UnimplementedMarketServer tradeInstanceService *TradeInstanceService } func NewMarketGrpcServer(instanceService *TradeInstanceService) *MarketGrpcServer { return &MarketGrpcServer{ tradeInstanceService: instanceService, } } func (svr *MarketGrpcServer) GetTradeInstance(ctx context.Context, req *pb.ReqGetTradeInstance) (rsp *pb.RspGetTradeInstance, err error) { subject, err := session.GetSubject(ctx) if err != nil { return } fmt.Printf("subject: %#v\n", subject) inst, err := svr.tradeInstanceService.GetInstance(req.InstId) if err != nil { return } rsp = &pb.RspGetTradeInstance{ Inst: mapping.TradeInstance2Proto(inst), } return } func (svr *MarketGrpcServer) AddTradeInstance(ctx context.Context, req *pb.ReqAddTradeInstance) (rsp *pb.RspAddTradeInstance, err error) { subject, err := session.GetSubject(ctx) if err != nil { return } inst := mapping.Proto2TradeInstance(req.Inst) err = svr.tradeInstanceService.InsertInstance(subject.Uid, inst) if err != nil { return } rsp = &pb.RspAddTradeInstance{ Inst: mapping.TradeInstance2Proto(inst), } return } // ListExchangeTradeInstance 获取指定交易所的正常状态的交易产品 func (svr *MarketGrpcServer) ListExchangeTradeInstance(ctx context.Context, req *pb.ReqListExchangeTradeInstance) (rsp *pb.RspListExchangeTradeInstance, err error) { rsp = new(pb.RspListExchangeTradeInstance) var exchanges []int32 for _, exchange := range req.Exchanges { exchanges = append(exchanges, int32(exchange)) } exchangeInsts, err := svr.tradeInstanceService.ListExchangeTradeInstance(exchanges) if err != nil { return } for _, inst := range exchangeInsts { rsp.ExchangeInsts = append(rsp.ExchangeInsts, mapping.ExchangeInstance2Proto(inst)) } return }