You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1388 lines
46 KiB

2 months ago
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订单号
}
}