package biz import ( "context" "github.com/go-kratos/kratos/v2/log" "matchmaking-system/internal/biz/structure" "matchmaking-system/internal/pkg/flags" "matchmaking-system/internal/pkg/logging/applogger" "matchmaking-system/internal/pkg/logging/common" "strconv" "strings" models "matchmaking-system/internal/pkg/model" ) // UserOrder // @Description: type UserOrder struct { ud UserOrderRepo log *log.Helper } // UserOrderRepo // @Description: type UserOrderRepo interface { // 检查用户(Token|UserID) CheckToken(ctx context.Context) (int, error) // 新股申购交易下单-开盘服务(美股|泰股|马股|印尼股|印度股|新加坡股|港股|英股|法股|德股|巴西股) GetBotUserUsPreStockOrder(ctx context.Context, id string) ([]models.BotUserUsPreStockOrder, error) GetBotUserThaPreStockOrder(ctx context.Context, id string) ([]models.BotUserThaPreStockOrder, error) GetBotUserMysPreStockOrder(ctx context.Context, id string) ([]models.BotUserMysPreStockOrder, error) GetBotUserIdnPreStockOrder(ctx context.Context, id string) ([]models.BotUserIdnPreStockOrder, error) GetBotUserInPreStockOrder(ctx context.Context, id string) ([]models.BotUserInPreStockOrder, error) GetBotUserSgdPreStockOrder(ctx context.Context, id string) ([]models.BotUserSgdPreStockOrder, error) GetBotUserHkdPreStockOrder(ctx context.Context, id string) ([]models.BotUserHkdPreStockOrder, error) GetBotUserGbxPreStockOrder(ctx context.Context, id string) ([]models.BotUserGbxPreStockOrder, error) GetBotUserEurPreStockOrder(ctx context.Context, id string) ([]models.BotUserEurPreStockOrder, error) GetBotUserFurPreStockOrder(ctx context.Context, id string) ([]models.BotUserFurPreStockOrder, error) GetBotUserBrlPreStockOrder(ctx context.Context, id string) ([]models.BotUserBrlPreStockOrder, error) GetBotUserJpyPreStockOrder(ctx context.Context, id string) ([]models.BotUserJpPreStockOrder, error) // 新股申购交易下单-开盘服务OrderNo(美股|泰股|马股|印尼股|印度股|新加坡股|港股|英股|法股|德股|巴西股) GetBotUserUsPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserUsPreStockOrder, error) GetBotUserThaPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserThaPreStockOrder, error) GetBotUserMysPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserMysPreStockOrder, error) GetBotUserIdnPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserIdnPreStockOrder, error) GetBotUserInPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserInPreStockOrder, error) GetBotUserSgdPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserSgdPreStockOrder, error) GetBotUserHkdPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserHkdPreStockOrder, error) GetBotUserGbxPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserGbxPreStockOrder, error) GetBotUserEurPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserEurPreStockOrder, error) GetBotUserFurPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserFurPreStockOrder, error) GetBotUserBrlPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserBrlPreStockOrder, error) GetBotUserJpyPreStockOrderByOrderNo(ctx context.Context, code []string) ([]models.BotUserJpPreStockOrder, error) // 股票赠送交易下单-开盘服务(美股|泰股|马股|印尼股|印度股|新加坡股|港股|英股|法股|德股|巴西股) GetBotUserUsGiveStockOrder(ctx context.Context, id string) ([]models.BotUserUsGiveStockOrder, error) GetBotUserThaGiveStockOrders(ctx context.Context, id string) ([]models.BotUserThaGiveStockOrder, error) GetBotUserMysGiveStockOrders(ctx context.Context, id string) ([]models.BotUserMysGiveStockOrder, error) GetBotUserIdnGiveStockOrders(ctx context.Context, id string) ([]models.BotUserIdnGiveStockOrder, error) GetBotUserInGiveStockOrders(ctx context.Context, id string) ([]models.BotUserInGiveStockOrder, error) GetBotUserSgdGiveStockOrders(ctx context.Context, id string) ([]models.BotUserSgdGiveStockOrder, error) GetBotUserHkdGiveStockOrders(ctx context.Context, id string) ([]models.BotUserHkdGiveStockOrder, error) GetBotUserGbxGiveStockOrders(ctx context.Context, id string) ([]models.BotUserGbxGiveStockOrder, error) GetBotUserEurGiveStockOrders(ctx context.Context, id string) ([]models.BotUserEurGiveStockOrder, error) GetBotUserFurGiveStockOrders(ctx context.Context, id string) ([]models.BotUserFurGiveStockOrder, error) GetBotUserBrlGiveStockOrders(ctx context.Context, id string) ([]models.BotUserBrlGiveStockOrder, error) GetBotUserJpyGiveStockOrders(ctx context.Context, id string) ([]models.BotUserJpGiveStockOrder, error) // 更新全局股票代码:[交易所名称:股票代码(BSE:AHINDCOPPER)](美股|泰股|马股|印尼股|印度股|新加坡股|港股|英股|法股|德股|巴西股) GetBotStockList(ctx context.Context) ([]models.BotStockList, error) GetBotStockMysList(ctx context.Context) ([]models.BotStockMysList, error) GetBotStockThaList(ctx context.Context) ([]models.BotStockThaList, error) GetBotStockIdnList(ctx context.Context) ([]models.BotStockIdnList, error) GetBotStockInList(ctx context.Context) ([]models.BotStockInList, error) GetBotStockSgdList(ctx context.Context) ([]models.BotStockSgdList, error) GetBotStockHkdList(ctx context.Context) ([]models.BotStockHkdList, error) GetBotStockGbxList(ctx context.Context) ([]models.BotStockGbxList, error) GetBotStockEurList(ctx context.Context) ([]models.BotStockEurList, error) GetBotStockFurList(ctx context.Context) ([]models.BotStockFurList, error) GetBotStockBrlList(ctx context.Context) ([]models.BotStockBrlList, error) GetBotStockJpyList(ctx context.Context) ([]models.BotStockJpList, error) // 新股申购交易下单-创建持仓订单(美股|泰股|马股|印尼股|印度股|新加坡股|港股|英股|法股|德股|巴西股) CreateBotUserUsPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserThaPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserMysPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserIdnPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserInPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserSgdPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserHkdPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserGbxPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserEurPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserFurPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserBrlPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error CreateBotUserJpyPreStockOrder(ctx context.Context, code string, order []structure.ShareOrder) error // 新股申购-更新股票stockId(美股|泰股|马股|印尼股|印度股|新加坡股|港股|英股|法股|德股|巴西股) UpdateShareUsTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareThaTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareMysTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareIdnTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareInTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareSgdTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareHkdTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareGbxTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareEurTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareFurTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareBrlTradeStockId(ctx context.Context, code, codeOld string) error UpdateShareJpyTradeStockId(ctx context.Context, code, codeOld string) error } // NewUserOrderRepo // // @Description: // @param logger // @return *UserOrder func NewUserOrderRepo(uo UserOrderRepo, logger log.Logger) *UserOrder { return &UserOrder{ud: uo, log: log.NewHelper(logger)} } // GetUserIdByToken // // @Description: 通过token获取用户Id // @receiver uo // @param ctx // @return int64 // @return error func (uo *UserOrder) GetUserIdByToken(ctx context.Context) (int64, bool, error) { userId, err := uo.ud.CheckToken(ctx) if err != nil { return 0, false, flags.ErrTokenMessage } return int64(userId), true, nil } // SharePreTrade 新股申购交易下单-开盘服务(美股|印尼股|马股|泰股|印度股|新加坡股|港股|英股) // // @Description: // @receiver uo // @param ctx // @param id // @param code // @param stock // @return error func (uo *UserOrder) SharePreTrade(ctx context.Context, id, code string, stock int32) error { switch stock { case flags.ShareUsMarketType: // 美股市场 return uo.ShareUsMarket(ctx, id, code) case flags.ShareThaMarketType: // 泰股市场 return uo.ShareThaMarket(ctx, id, code) case flags.ShareMysMarketType: // 马股市场 return uo.ShareMysMarket(ctx, id, code) case flags.ShareIdnMarketType: // 印尼市场 return uo.ShareIdnMarket(ctx, id, code) case flags.ShareInrMarketType: // 印度股市场 return uo.ShareInrMarket(ctx, id, code) case flags.ShareSgdMarketType: // 新加坡股市场 return uo.ShareSgdMarket(ctx, id, code) case flags.ShareHkdMarketType: // 港股市场 return uo.ShareHkdMarket(ctx, id, code) case flags.ShareGbxMarketType: // 英股市场 return uo.ShareGbxMarket(ctx, id, code) case flags.ShareEurMarketType: // 德股市场 return uo.ShareEurMarket(ctx, id, code) case flags.ShareFurMarketType: // 法股市场 return uo.ShareFurMarket(ctx, id, code) case flags.ShareBrlMarketType: // 巴西股市场 return uo.ShareBrlMarket(ctx, id, code) case flags.ShareJpyMarketType: // 日本股市场 return uo.ShareJpyMarket(ctx, id, code) default: return flags.ErrOrderTow } } // SharePreTradeByOrderOn // // @Description: 新股申购交易下单-开盘服务(订单号)(美股|印尼股|马股|泰股|印度股|新加坡股|港股|英股) // @receiver uo // @param ctx // @param id // @param code // @param stock // @return error func (uo *UserOrder) SharePreTradeByOrderOn(ctx context.Context, id, code string, stock int32) error { switch stock { case flags.ShareUsMarketType: // 美股市场 return uo.ShareUsByOrderNoMarket(ctx, id, code) case flags.ShareThaMarketType: // 泰股市场 return uo.ShareThaOrderNoMarket(ctx, id, code) case flags.ShareMysMarketType: // 马股市场 return uo.ShareMysOrderNoMarket(ctx, id, code) case flags.ShareIdnMarketType: // 印尼市场 return uo.ShareIdnOrderNoMarket(ctx, id, code) case flags.ShareInrMarketType: // 印度股市场 return uo.ShareInrOrderNoMarket(ctx, id, code) case flags.ShareSgdMarketType: // 新加坡股市场 return uo.ShareSgdOrderNoMarket(ctx, id, code) case flags.ShareHkdMarketType: // 港股市场 return uo.ShareHkdOrderNoMarket(ctx, id, code) case flags.ShareGbxMarketType: // 英股市场 return uo.ShareGbxOrderNoMarket(ctx, id, code) case flags.ShareEurMarketType: // 德股市场 return uo.ShareEurOrderNoMarket(ctx, id, code) case flags.ShareFurMarketType: // 法股市场 return uo.ShareFurOrderNoMarket(ctx, id, code) case flags.ShareBrlMarketType: // 巴西股市场 return uo.ShareBrlOrderNoMarket(ctx, id, code) case flags.ShareJpyMarketType: // 日本股市场 return uo.ShareJpyOrderNoMarket(ctx, id, code) default: return flags.ErrOrderTow } } // UpdateShareTradeStockId // // @Description: 更新-新股申购股票stockId // @receiver uo // @param ctx // @param code 新code // @param codeOld 旧code标识 // @param stock 市场标识 // @return error func (uo *UserOrder) UpdateShareTradeStockId(ctx context.Context, code, codeOld string, stock int64) error { switch stock { case flags.ShareUsMarketType: // 美股市场 return uo.ud.UpdateShareUsTradeStockId(ctx, code, codeOld) case flags.ShareThaMarketType: // 泰股市场 return uo.ud.UpdateShareThaTradeStockId(ctx, code, codeOld) case flags.ShareMysMarketType: // 马股市场 return uo.ud.UpdateShareMysTradeStockId(ctx, code, codeOld) case flags.ShareIdnMarketType: // 印尼市场 return uo.ud.UpdateShareIdnTradeStockId(ctx, code, codeOld) case flags.ShareInrMarketType: // 印度股市场 return uo.ud.UpdateShareInTradeStockId(ctx, code, codeOld) case flags.ShareSgdMarketType: // 新加坡股市场 return uo.ud.UpdateShareSgdTradeStockId(ctx, code, codeOld) case flags.ShareHkdMarketType: // 港股市场 return uo.ud.UpdateShareHkdTradeStockId(ctx, code, codeOld) case flags.ShareGbxMarketType: // 英股市场 return uo.ud.UpdateShareGbxTradeStockId(ctx, code, codeOld) case flags.ShareEurMarketType: // 德股市场 return uo.ud.UpdateShareEurTradeStockId(ctx, code, codeOld) case flags.ShareFurMarketType: // 法股市场 return uo.ud.UpdateShareFurTradeStockId(ctx, code, codeOld) case flags.ShareBrlMarketType: // 巴西股市场 return uo.ud.UpdateShareBrlTradeStockId(ctx, code, codeOld) case flags.ShareJpyMarketType: // 日本股市场 return uo.ud.UpdateShareJpyTradeStockId(ctx, code, codeOld) default: return flags.ErrOrderTow } } // ShareGiveaways // // @Description: 赠送股票生成持仓订单 // @receiver uo // @param ctx // @param id // @param code // @param stock // @return error func (uo *UserOrder) ShareGiveaways(ctx context.Context, id, code string, stock int32) error { switch stock { case flags.ShareUsMarketType: // 美股市场 return uo.ShareUsMarketGiveaways(ctx, id, code) case flags.ShareThaMarketType: // 泰股市场 return uo.ShareThaMarketGiveaways(ctx, id, code) case flags.ShareMysMarketType: // 马股市场 return uo.ShareMysMarketGiveaways(ctx, id, code) case flags.ShareIdnMarketType: // 印尼市场 return uo.ShareIdnMarketGiveaways(ctx, id, code) case flags.ShareInrMarketType: // 印度股市场 return uo.ShareInrMarketGiveaways(ctx, id, code) case flags.ShareSgdMarketType: // 新加坡股市场 return uo.ShareSgdMarketGiveaways(ctx, id, code) case flags.ShareHkdMarketType: // 港股市场 return uo.ShareHkdMarketGiveaways(ctx, id, code) case flags.ShareGbxMarketType: // 英股市场 return uo.ShareGbxMarketGiveaways(ctx, id, code) case flags.ShareEurMarketType: // 德股市场 return uo.ShareEurMarketGiveaways(ctx, id, code) case flags.ShareFurMarketType: // 法股市场 return uo.ShareFurMarketGiveaways(ctx, id, code) case flags.ShareBrlMarketType: // 巴西股市场 return uo.ShareBrlMarketGiveaways(ctx, id, code) case flags.ShareJpyMarketType: // 日本股市场 return uo.ShareJpyMarketGiveaways(ctx, id, code) default: return flags.ErrOrderTow } } // UpdateShareTradeStockIdByList // // @Description: 更新-全局股票订单StockId标识 // @receiver uo // @param ctx // @return error func (uo *UserOrder) UpdateShareTradeStockIdByList(ctx context.Context) error { // 美股StockId更新 shareUs, _ := uo.ud.GetBotStockList(ctx) for _, value := range shareUs { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareUsTradeStockId(ctx, code, codeOld) } } // 泰股StockId更新 shareTha, _ := uo.ud.GetBotStockThaList(ctx) for _, value := range shareTha { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareThaTradeStockId(ctx, code, codeOld) } } // 马股StockId更新 shareMys, _ := uo.ud.GetBotStockMysList(ctx) for _, value := range shareMys { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareMysTradeStockId(ctx, code, codeOld) } } // 印尼股StockId更新 shareIdn, _ := uo.ud.GetBotStockIdnList(ctx) for _, value := range shareIdn { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareIdnTradeStockId(ctx, code, codeOld) } } // 印度股StockId更新 shareIn, _ := uo.ud.GetBotStockInList(ctx) for _, value := range shareIn { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareInTradeStockId(ctx, code, codeOld) } } // 新加坡股StockId更新 shareSgd, _ := uo.ud.GetBotStockSgdList(ctx) for _, value := range shareSgd { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareSgdTradeStockId(ctx, code, codeOld) } } // 港股StockId更新 shareHkd, _ := uo.ud.GetBotStockHkdList(ctx) for _, value := range shareHkd { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareHkdTradeStockId(ctx, code, codeOld) } } // 英股StockId更新 shareGbx, _ := uo.ud.GetBotStockGbxList(ctx) for _, value := range shareGbx { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareGbxTradeStockId(ctx, code, codeOld) } } // 法股StockId更新 shareFur, _ := uo.ud.GetBotStockFurList(ctx) for _, value := range shareFur { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareFurTradeStockId(ctx, code, codeOld) } } // 德股StockId更新 shareEur, _ := uo.ud.GetBotStockEurList(ctx) for _, value := range shareEur { code := value.StockCode strArray := strings.Split(value.StockCode, ":") if len(strArray) >= 2 { codeOld := strArray[1] _ = uo.ud.UpdateShareEurTradeStockId(ctx, code, codeOld) } } return nil } // ShareUsMarket // // @Description: 美股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareUsMarket(ctx context.Context, id, code string) error { usOrder, err := uo.ud.GetBotUserUsPreStockOrder(ctx, id) if err != nil || usOrder == nil { return err } var order []structure.ShareOrder for _, value := range usOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserUsPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserUsPreStockOrder(ctx, code, order) } // ShareUsByOrderNoMarket // // @Description: 美股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareUsByOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") usOrder, err := uo.ud.GetBotUserUsPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || usOrder == nil { return err } var order []structure.ShareOrder for _, value := range usOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserUsPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserUsPreStockOrder(ctx, code, order) } // ShareUsMarketGiveaways // // @Description: 美股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareUsMarketGiveaways(ctx context.Context, id, code string) error { usOrder, err := uo.ud.GetBotUserUsGiveStockOrder(ctx, id) if err != nil || usOrder == nil { return err } var order []structure.ShareOrder for _, value := range usOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserUsGiveStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserUsPreStockOrder(ctx, code, order) } // ShareThaMarket // // @Description: 泰股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareThaMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserThaPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserThaPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserThaPreStockOrder(ctx, code, order) } // ShareThaOrderNoMarket // // @Description: 泰股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareThaOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserThaPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserThaPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserThaPreStockOrder(ctx, code, order) } // ShareThaMarketGiveaways // // @Description: 泰股市场赠送 // @receiver uo // @param ctx // @param id // @param func (uo *UserOrder) ShareThaMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserThaGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserThaGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserThaPreStockOrder(ctx, code, order) } // ShareJpyMarket // // @Description: 日股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareJpyMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserJpyPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserJpyPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserJpyPreStockOrder(ctx, code, order) } // ShareJpyOrderNoMarket // // @Description: 日股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareJpyOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserJpyPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserJpyPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserJpyPreStockOrder(ctx, code, order) } // ShareJpyMarketGiveaways // // @Description: 日股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareJpyMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserJpyGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserJpyGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserJpyPreStockOrder(ctx, code, order) } // ShareBrlMarket // // @Description: 巴西股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareBrlMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserBrlPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserBrlPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserBrlPreStockOrder(ctx, code, order) } // ShareBrlOrderNoMarket // // @Description: 巴西股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareBrlOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserBrlPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserBrlPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserBrlPreStockOrder(ctx, code, order) } // ShareBrlMarketGiveaways // // @Description: 巴西股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareBrlMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserBrlGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserBrlGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserBrlPreStockOrder(ctx, code, order) } // ShareMysMarket // // @Description: 马股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareMysMarket(ctx context.Context, id, code string) error { mysOrder, err := uo.ud.GetBotUserMysPreStockOrder(ctx, id) if err != nil || mysOrder == nil { return err } var order []structure.ShareOrder for _, value := range mysOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserMysPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserMysPreStockOrder(ctx, code, order) } // ShareMysOrderNoMarket // // @Description: 马股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareMysOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") mysOrder, err := uo.ud.GetBotUserMysPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || mysOrder == nil { return err } var order []structure.ShareOrder for _, value := range mysOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserMysPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserMysPreStockOrder(ctx, code, order) } // ShareMysMarketGiveaways // // @Description: 马股市场赠送 // @receiver uo // @param ctx // @param id // @param code func (uo *UserOrder) ShareMysMarketGiveaways(ctx context.Context, id, code string) error { mysOrder, err := uo.ud.GetBotUserMysGiveStockOrders(ctx, id) if err != nil || mysOrder == nil { return err } var order []structure.ShareOrder for _, value := range mysOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserMysGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserMysPreStockOrder(ctx, code, order) } // ShareIdnMarket // // @Description: 印尼市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareIdnMarket(ctx context.Context, id, code string) error { idnOrder, err := uo.ud.GetBotUserIdnPreStockOrder(ctx, id) if err != nil || idnOrder == nil { return err } var order []structure.ShareOrder for _, value := range idnOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserIdnPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserIdnPreStockOrder(ctx, code, order) } // ShareIdnOrderNoMarket // // @Description: 印尼市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareIdnOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") idnOrder, err := uo.ud.GetBotUserIdnPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || idnOrder == nil { return err } var order []structure.ShareOrder for _, value := range idnOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserIdnPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserIdnPreStockOrder(ctx, code, order) } // ShareIdnMarketGiveaways // // @Description: 印尼市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareIdnMarketGiveaways(ctx context.Context, id, code string) error { idnOrder, err := uo.ud.GetBotUserIdnGiveStockOrders(ctx, id) if err != nil || idnOrder == nil { return err } var order []structure.ShareOrder for _, value := range idnOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserIdnGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserIdnPreStockOrder(ctx, code, order) } // ShareInrMarket // // @Description: 印度股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareInrMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserInPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserInPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserInPreStockOrder(ctx, code, order) } // ShareInrOrderNoMarket // // @Description: 印度股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareInrOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserInPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserInPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserInPreStockOrder(ctx, code, order) } // ShareInrMarketGiveaways // // @Description: 印度股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareInrMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserInGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserInGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserInPreStockOrder(ctx, code, order) } // ShareSgdMarket // // @Description: 新加坡股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareSgdMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserSgdPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserInPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserSgdPreStockOrder(ctx, code, order) } // ShareSgdOrderNoMarket // // @Description: 新加坡股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareSgdOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserSgdPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v SharePreTrade.GetBotUserInPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserSgdPreStockOrder(ctx, code, order) } // ShareSgdMarketGiveaways // // @Description: 新加坡股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareSgdMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserSgdGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserSgdGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserSgdPreStockOrder(ctx, code, order) } // ShareGbxMarket // // @Description: 英股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareGbxMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserGbxPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareGbxMarket.GetBotUserInPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserGbxPreStockOrder(ctx, code, order) } // ShareGbxOrderNoMarket // // @Description: 英股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareGbxOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserGbxPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareGbxOrderNoMarket.GetBotUserGbxPreStockOrderByOrderNo:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserGbxPreStockOrder(ctx, code, order) } // ShareGbxMarketGiveaways // // @Description: 英股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareGbxMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserGbxGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserSgdGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserGbxPreStockOrder(ctx, code, order) } // ShareEurMarket // // @Description: 德股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareEurMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserEurPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareEurMarket.GetBotUserInPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserEurPreStockOrder(ctx, code, order) } // ShareEurOrderNoMarket // // @Description: 德股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareEurOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserEurPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareEurOrderNoMarket.GetBotUserEurPreStockOrderByOrderNo:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserEurPreStockOrder(ctx, code, order) } // ShareEurMarketGiveaways // // @Description: 德股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareEurMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserEurGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareEurMarketGiveaways.GetBotUserEurGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserEurPreStockOrder(ctx, code, order) } // ShareFurMarket // // @Description: 法股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareFurMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserFurPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareFurMarket.GetBotUserFurPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserFurPreStockOrder(ctx, code, order) } // ShareFurOrderNoMarket // // @Description: 法股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareFurOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserFurPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareFurOrderNoMarket.GetBotUserFurPreStockOrderByOrderNo:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserFurPreStockOrder(ctx, code, order) } // ShareFurMarketGiveaways // // @Description: 法股市场赠送 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareFurMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserFurGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareFurMarketGiveaways.GetBotUserFurGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserFurPreStockOrder(ctx, code, order) } // ShareHkdMarket // // @Description: 港股市场 // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareHkdMarket(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserHkdPreStockOrder(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareHkdMarket.GetBotUserHkdPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserHkdPreStockOrder(ctx, code, order) } // ShareHkdOrderNoMarket // // @Description: 港股市场-->OrderNo // @receiver uo // @param ctx // @param id // @param code // @return error func (uo *UserOrder) ShareHkdOrderNoMarket(ctx context.Context, id, code string) error { orderNoArray := strings.Split(id, ",") thaOrder, err := uo.ud.GetBotUserHkdPreStockOrderByOrderNo(ctx, orderNoArray) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.GetNum <= 0 { applogger.Error("%v ShareHkdMarket.GetBotUserHkdPreStockOrder:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, value.GetAmount, value.GetNum, value.UserId)) } return uo.ud.CreateBotUserHkdPreStockOrder(ctx, code, order) } // ShareHkdMarketGiveaways // // @Description: 港股市场赠送 // @receiver uo // @param ctx // @param id // @param code func (uo *UserOrder) ShareHkdMarketGiveaways(ctx context.Context, id, code string) error { thaOrder, err := uo.ud.GetBotUserHkdGiveStockOrders(ctx, id) if err != nil || thaOrder == nil { return err } var order []structure.ShareOrder for _, value := range thaOrder { if value.Num <= 0 { applogger.Error("%v ShareGiveaways.GetBotUserHkdGiveStockOrders:%v", value.OrderNo, common.ErrSharePre) continue } order = append(order, uo.ParameterConstruction(code, value.OrderNo, value.Price, flags.SetZero, value.Num, value.UserId)) } return uo.ud.CreateBotUserHkdPreStockOrder(ctx, code, order) } // ParameterConstruction // // @Description: 新股申购下单参数构造 // @receiver uo // @param ctx // @param code // @param price // @param amount // @param num // @param userId // @return structure.ShareOrder func (uo *UserOrder) ParameterConstruction(code, orderNo string, price, amount string, num, userId int) structure.ShareOrder { return structure.ShareOrder{ UserId: userId, // 用户ID StockId: code, // 股票代码 TradeType: flags.TradeTypeBuy, // 买涨 DealType: flags.DealTypeLimited, // 限价 LimitPrice: price, // 申购价格--->开仓价格 MarketPrice: flags.SetZero, // 市价 MarketMoney: amount, // 订单金额 OrderNumber: strconv.Itoa(num), // 订单数量 ServiceCost: flags.SetZero, // 开仓手续费 StopType: flags.StopTypeNone, // 止盈止损设置 StopLossPrice: flags.SetNull, // 止损设置 StopWinPrice: flags.SetNull, // 止盈设置 PryNum: flags.SetOne, // 杠杆默认值 OrderNo: orderNo, // IPO订单号 } }