From 3f98f8556d15c37ecb178a54a1595d1d1c07d431 Mon Sep 17 00:00:00 2001 From: hucan <951870319@qq.com> Date: Sat, 22 Feb 2025 11:24:08 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A7=A6=E5=8F=91=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=202=E3=80=81=E7=94=A8=E6=88=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=88=B6=E7=BA=A7=E9=82=80=E8=AF=B7=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/line_user.go | 6 +++-- .../sysservice/authservice/authentication.go | 27 ++++++++++++------- .../binanceservice/futuresjudgeservice.go | 18 ++++++++++--- services/binanceservice/futuresrest.go | 12 +++++++-- services/binanceservice/spotjudgeservice.go | 10 ++++--- services/binanceservice/spotreset.go | 5 +++- 6 files changed, 57 insertions(+), 21 deletions(-) diff --git a/app/admin/models/line_user.go b/app/admin/models/line_user.go index 426b3eb..66e7e1a 100644 --- a/app/admin/models/line_user.go +++ b/app/admin/models/line_user.go @@ -1,9 +1,10 @@ package models import ( - "github.com/shopspring/decimal" "time" + "github.com/shopspring/decimal" + "go-admin/common/models" ) @@ -11,7 +12,8 @@ type LineUser struct { models.Model GroupId int `json:"groupId" gorm:"type:int unsigned;comment:组别ID"` - Pid int `json:"pid" gorm:"type:int unsigned;comment:推荐人ID"` + Pid int `json:"pid" gorm:"type:int unsigned;comment:直接推荐人ID"` + TopReferrerId int `json:"topReferrerId" gorm:"type:int unsigned;comment:父级推荐人ID"` Username string `json:"username" gorm:"type:varchar(32);comment:用户名"` Nickname string `json:"nickname" gorm:"type:varchar(50);comment:昵称"` Password string `json:"password" gorm:"type:varchar(32);comment:密码"` diff --git a/common/service/sysservice/authservice/authentication.go b/common/service/sysservice/authservice/authentication.go index 816877f..18d5032 100644 --- a/common/service/sysservice/authservice/authentication.go +++ b/common/service/sysservice/authservice/authentication.go @@ -16,6 +16,7 @@ import ( "go-admin/pkg/emailhelper" "time" + "github.com/go-admin-team/go-admin-core/logger" log "github.com/go-admin-team/go-admin-core/logger" "go.uber.org/zap" "gorm.io/gorm" @@ -81,17 +82,23 @@ func UserRegister(orm *gorm.DB, registerInfo sysmodel.FrontedUserRegisterReq) (i //if code := CheckPhoneOrEmailCaptcha(orm, cc); code != statuscode.OK { // return "", "", statuscode.CaptchaInvalid //} + parentRegister := models.LineUser{} + if err := orm.Model(&parentRegister).Where("id =?", registerInfo.Pid).Find(&parentRegister).Error; err != nil { + logger.Error("获取推荐人失败", err) + } + user := models.LineUser{ - Pid: registerInfo.Pid, - Password: registerInfo.Password, - Salt: inttostring.GenerateRandomString(6), - Email: registerInfo.Email, - InviteCode: inttostring.NewInvite().Encode(int(time.Now().Unix())), - Loginip: registerInfo.IP, - Mobile: registerInfo.Phone, - Area: registerInfo.PhoneAreaCode, - Status: "verify", - LoginTime: time.Now(), + Pid: registerInfo.Pid, + TopReferrerId: parentRegister.Pid, + Password: registerInfo.Password, + Salt: inttostring.GenerateRandomString(6), + Email: registerInfo.Email, + InviteCode: inttostring.NewInvite().Encode(int(time.Now().Unix())), + Loginip: registerInfo.IP, + Mobile: registerInfo.Phone, + Area: registerInfo.PhoneAreaCode, + Status: "verify", + LoginTime: time.Now(), ModelTime: cModels.ModelTime{ CreatedAt: time.Now(), UpdatedAt: time.Now(), diff --git a/services/binanceservice/futuresjudgeservice.go b/services/binanceservice/futuresjudgeservice.go index c38a9b4..2966fc7 100644 --- a/services/binanceservice/futuresjudgeservice.go +++ b/services/binanceservice/futuresjudgeservice.go @@ -137,7 +137,11 @@ func futTriggerOrder(db *gorm.DB, v *dto.PreOrderRedisList, item string, futApi } } - if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status ='0'", preOrder.Id).Updates(map[string]interface{}{"status": "1", "trigger_time": time.Now()}).Error; err != nil { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", preOrder.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + log.Error("更新预下单状态失败 ordersn:", preOrder.OrderSn, " status:1") + } + + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status ='0'", preOrder.Id).Updates(map[string]interface{}{"status": "1"}).Error; err != nil { log.Error("更新预下单状态失败 ordersn:", v.OrderSn, " status:1") } @@ -261,8 +265,12 @@ func FuturesReduceTrigger(db *gorm.DB, reduceOrder ReduceListItem, futApi FutRes log.Errorf("合约减仓更新状态失败 id:%s err:%v", reduceOrder.Id, err2) } } else { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", reduceOrder.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + log.Error("更新减仓单状态失败 ordersn:", reduceOrder.OrderSn, " status:1") + } + if err := db.Model(&DbModels.LinePreOrder{}). - Where("id = ? AND status =0", reduceOrder.Id).Updates(map[string]interface{}{"status": 1, "trigger_time": time.Now()}).Error; err != nil { + Where("id = ? AND status =0", reduceOrder.Id).Updates(map[string]interface{}{"status": 1}).Error; err != nil { log.Errorf("合约减仓更新状态失败 id:%s err:%v", reduceOrder.Id, err) } } @@ -389,7 +397,11 @@ func FutAddPositionTrigger(db *gorm.DB, v *AddPositionList, item string, futApi } } - if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status ='0'", preOrder.Id).Updates(map[string]interface{}{"status": "1", "trigger_time": time.Now()}).Error; err != nil { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", preOrder.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + log.Error("更新预下单状态失败 ordersn:", v.OrderSn, " status:1") + } + + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status ='0'", preOrder.Id).Updates(map[string]interface{}{"status": "1"}).Error; err != nil { log.Error("更新预下单状态失败 ordersn:", v.OrderSn, " status:1") } return diff --git a/services/binanceservice/futuresrest.go b/services/binanceservice/futuresrest.go index a61fdc8..5f2472f 100644 --- a/services/binanceservice/futuresrest.go +++ b/services/binanceservice/futuresrest.go @@ -510,8 +510,12 @@ func processFutTakeProfitOrder(db *gorm.DB, futApi FutRestApi, order models.Line logger.Error("合约止盈下单失败,更新状态失败:", order.OrderSn, " err:", err) } } else { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", order.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + logger.Error("更新合约止盈单触发事件 ordersn:", order.OrderSn) + } + if err := db.Model(&DbModels.LinePreOrder{}).Where("id = ? and status =0", order.Id). - Updates(map[string]interface{}{"status": "1", "num": num.String(), "trigger_time": time.Now()}).Error; err != nil { + Updates(map[string]interface{}{"status": "1", "num": num.String()}).Error; err != nil { logger.Error("合约止盈下单成功,更新状态失败:", order.OrderSn, " err:", err) } } @@ -540,8 +544,12 @@ func processFutStopLossOrder(db *gorm.DB, order models.LinePreOrder, price, num logger.Error("合约止损下单失败,更新状态失败:", order.OrderSn, " err:", err2) } } else { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", order.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + logger.Error("更新合约止损单触发事件 ordersn:", order.OrderSn) + } + if err := db.Model(&order).Where("status =0"). - Updates(map[string]interface{}{"status": "1", "trigger_time": time.Now()}).Error; err != nil { + Updates(map[string]interface{}{"status": "1"}).Error; err != nil { logger.Error("合约止损下单成功,更新状态失败:", order.OrderSn, " err:", err) } } diff --git a/services/binanceservice/spotjudgeservice.go b/services/binanceservice/spotjudgeservice.go index 34b3d94..da383e4 100644 --- a/services/binanceservice/spotjudgeservice.go +++ b/services/binanceservice/spotjudgeservice.go @@ -127,7 +127,7 @@ func SpotOrderLock(db *gorm.DB, v *dto.PreOrderRedisList, item string, spotApi S } } - if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status ='0'", preOrder.Id).Updates(map[string]interface{}{"status": "1", "trigger_time": time.Now()}).Error; err != nil { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", preOrder.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { log.Error("更新预下单状态失败 ordersn:", v.OrderSn, " status:1") } return @@ -245,7 +245,7 @@ func SpotStopLossTrigger(db *gorm.DB, stopOrder dto.StopLossRedisList, spotApi S if err := spotApi.OrderPlaceLoop(db, params, 3); err != nil { log.Errorf("现货止损挂单失败 id:%s err:%v", stopOrder.Id, err) } else { - if err := db.Model(&DbModels.LinePreOrder{}).Where("id = ? AND status =0", stopOrder.Id).Updates(map[string]interface{}{"status": 1, "trigger_time": time.Now()}).Error; err != nil { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id = ? ", stopOrder.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { log.Errorf("现货止损更新状态失败 id:%s err:%v", stopOrder.Id, err) } } @@ -362,9 +362,13 @@ func SpotReduceTrigger(db *gorm.DB, reduceOrder ReduceListItem, spotApi SpotRest log.Errorf("修改现货减仓状态失败 id:%s err:%v", reduceOrder.Id, err2) } } else { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =?", reduceOrder.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + log.Error("更新预下单触发事件失败 ordersn:", reduceOrder.OrderSn) + } + if err := db.Model(&DbModels.LinePreOrder{}). Where("id =? AND status =0", reduceOrder.Id). - Updates(map[string]interface{}{"status": 1, "trigger_time": time.Now()}).Error; err != nil { + Updates(map[string]interface{}{"status": 1}).Error; err != nil { log.Errorf("修改现货减仓状态失败 id:%s err:%v", reduceOrder.Id, err) } } diff --git a/services/binanceservice/spotreset.go b/services/binanceservice/spotreset.go index 5fb5f50..40ce946 100644 --- a/services/binanceservice/spotreset.go +++ b/services/binanceservice/spotreset.go @@ -686,8 +686,11 @@ func processTakeProfitOrder(db *gorm.DB, spotApi SpotRestApi, order models.LineP logger.Error("现货止盈下单失败,更新状态失败:", order.OrderSn, " err:", err) } } else { + if err := db.Model(&DbModels.LinePreOrder{}).Where("id =? ", order.Id).Updates(map[string]interface{}{"trigger_time": time.Now()}).Error; err != nil { + logger.Error("更新现货止盈单触发事件 ordersn:", order.OrderSn) + } if err := db.Model(&DbModels.LinePreOrder{}).Where("id = ? and status ='0'", order.Id). - Updates(map[string]interface{}{"status": "1", "num": order.Num, "trigger_time": time.Now()}).Error; err != nil { + Updates(map[string]interface{}{"status": "1", "num": order.Num}).Error; err != nil { logger.Error("现货止盈下单成功,更新状态失败:", order.OrderSn, " err:", err) } }