package share import ( "matchmaking-system/internal/biz/structure" "matchmaking-system/internal/pkg/flags" "matchmaking-system/internal/service/order" "strconv" v1 "matchmaking-system/api/matchmaking/v1/share" models "matchmaking-system/internal/pkg/model" ) // ShareSgdCancelReply // // @Description: // @param check // @param err // @param req // @return *v1.SgdOrderReply func ShareSgdCancelReply(check bool, err string, req *v1.CancelSgdOrderRequest) *v1.SgdOrderReply { code, replyStr := order.ResultCodeSrr(check, err) return &v1.SgdOrderReply{ Code: code, Data: ResultSgdOrderMessage(req.OrderId), Message: replyStr, } } // VerificationSgdShareCancel // // @Description: // @param req // @return bool func VerificationSgdShareCancel(req *v1.CancelSgdOrderRequest) bool { if len(req.GetOrderId()) <= 0 { return false } return true } // ShareAllSgdPositionRequest // // @Description: // @param check // @param err // @param req // @return *v1.AllSgdOrderReply func ShareAllSgdPositionRequest(check bool, err string) *v1.AllSgdOrderReply { code, replyStr := order.ResultCodeSrr(check, err) return &v1.AllSgdOrderReply{ Code: code, Data: "", Message: replyStr, } } // ShareSgdPositionOrderReply // // @Description: // @param check // @param err // @param req // @return *v1.SgdOrderReply func ShareSgdPositionOrderReply(check bool, err string, req *v1.CancelSgdOrderRequest) *v1.SgdOrderReply { code, replyStr := order.ResultCodeSrr(check, err) return &v1.SgdOrderReply{ Code: code, Data: ResultSgdOrderMessage(req.OrderId), Message: replyStr, } } // VerificationSgdSharePosition // // @Description: // @param req // @return bool func VerificationSgdSharePosition(req *v1.CancelSgdOrderRequest) bool { if len(req.GetOrderId()) <= 0 { return false } return true } // StopSgdOrderQuery // // @Description: // @param request // @return structure.StopOrder func StopSgdOrderQuery(request *v1.UpdateSgdOrderRequest) structure.StopOrder { return structure.StopOrder{ OrderId: request.OrderId, StopType: request.StopType, StopLossPrice: request.StopLossPrice, StopWinPrice: request.StopWinPrice, } } // ShareSgdUpdateOrderReply // // @Description: // @param check // @param err // @param req // @return *v1.SgdOrderReply func ShareSgdUpdateOrderReply(check bool, err string, req *v1.UpdateSgdOrderRequest) *v1.SgdOrderReply { code, replyStr := order.ResultCodeSrr(check, err) return &v1.SgdOrderReply{ Code: code, Data: ResultSgdOrderMessage(req.OrderId), Message: replyStr, } } // VerificationSgdStopOrderQuery // // @Description: // @param request // @return bool func VerificationSgdStopOrderQuery(request *v1.UpdateSgdOrderRequest) bool { if len(request.GetOrderId()) <= 0 { return false } switch request.StopType { case 1: if len(request.GetStopLossPrice()) <= 0 && len(request.GetStopWinPrice()) <= 0 { return false } case 0: //if len(request.GetStopLossPrice()) <= 0 && len(request.GetStopWinPrice()) <= 0 { // return false //} return true default: return false } return true } // ShareSgdOrderQuery // // @Description: // @param request // @return structure.ShareOrder func ShareSgdOrderQuery(request *v1.ShareSgdOrderRequest) structure.ShareOrder { return structure.ShareOrder{ StockId: request.StockId, TradeType: request.TradeType, DealType: request.DealType, LimitPrice: request.LimitPrice, MarketPrice: request.MarketPrice, MarketMoney: request.MarketMoney, OrderNumber: request.OrderNumber, ServiceCost: request.ServiceCost, StopType: request.StopType, StopLossPrice: request.StopLossPrice, StopWinPrice: request.StopWinPrice, PryNum: request.PryNum, } } // ResultSgdOrderMessage // // @Description: // @param orderId // @return *v1.SgdOrderResult func ResultSgdOrderMessage(orderId string) *v1.SgdOrderResult { return &v1.SgdOrderResult{ OrderId: orderId, } } // ShareSgdPlaceOrderReply // // @Description: // @param check // @param err // @param orderId // @return *v1.SgdOrderReply func ShareSgdPlaceOrderReply(check bool, err string, orderId string) *v1.SgdOrderReply { code, replyStr := order.ResultCodeSrr(check, err) return &v1.SgdOrderReply{ Code: code, Data: ResultSgdOrderMessage(orderId), Message: replyStr, } } // VerificationSgdShareOrderQuery // // @Description: // @param request // @return bool func VerificationSgdShareOrderQuery(request *v1.ShareSgdOrderRequest) bool { if len(request.GetStockId()) <= 0 { return false } switch request.DealType { case 1: if len(request.GetLimitPrice()) <= 0 { return false } case 2: if len(request.GetMarketPrice()) <= 0 { return false } default: return false } if len(request.GetMarketMoney()) <= 0 { return false } if len(request.GetOrderNumber()) <= 0 { return false } if len(request.GetServiceCost()) <= 0 { return false } switch request.StopType { case 1: if len(request.GetStopLossPrice()) <= 0 && len(request.GetStopWinPrice()) <= 0 { return false } } switch request.TradeType { case 1: case 2: default: return false } return true } // VerificationSgdBotStockTrade // // @Description: // @param req // @return bool func VerificationSgdBotStockTrade(req *v1.GetSgdBotStockTradeRequest) bool { if req.GetPageSize() < 0 { return false } if req.GetStatus() < 0 { return false } if req.GetPageCount() < 0 { return false } return true } // BotStockSgdTradeReply // // @Description: // @param check // @param err // @param req // @param data // @param totalCount // @return *v1.GetBotStockSgdTradeReply func BotStockSgdTradeReply(check bool, err string, req *v1.GetSgdBotStockTradeRequest, data []*models.BotStockSgdTrade, totalCount int64) *v1.GetBotStockSgdTradeReply { code, replyStr := order.ResultCodeSrr(check, err) return &v1.GetBotStockSgdTradeReply{ Code: code, Data: &v1.BotStockSgdTradeReply{ PageSize: req.PageSize, PageCount: req.PageCount, Data: BotStockSgdTradeMessage(data), TotalCount: totalCount, }, Message: replyStr, } } // BotStockSgdTradeMessage // // @Description: // @param stockList // @return BotStockSgdTrade func BotStockSgdTradeMessage(stockList []*models.BotStockSgdTrade) (stockTrade []*v1.BotStockSgdTrade) { for _, value := range stockList { stockTrade = append(stockTrade, &v1.BotStockSgdTrade{ OrderId: value.OrderId, StockId: value.StockId, TradeType: int64(value.TradeType), DealType: int64(value.DealType), LimitPrice: value.LimitPrice, MarketPrice: value.MarketPrice, DealPrice: value.DealPrice, ClosingPrice: value.ClosingPrice, OrderNumber: value.OrderNumber, StopType: int64(value.StopType), StopLossPrice: value.StopLossPrice, StopWinPrice: value.StopWinPrice, ServiceCost: value.ServiceCost, MarketMoney: value.MarketMoney, OrderMoney: value.OrderMoney, ClosingCost: value.ClosingCost, Status: int64(value.Status), CreateTime: value.CreateTime.Format(flags.LayoutTime), UpdateTime: value.UpdateTime.Format(flags.LayoutTime), OpenTime: value.OpenTime.Format(flags.LayoutTime), ClosingTime: value.ClosingTime.Format(flags.LayoutTime), KeepDecimal: strconv.Itoa(value.KeepDecimal), StockName: value.StockName, PryNum: strconv.Itoa(value.PryNum), }) } return }