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