From 61945e321fbb4b0e851aed1f0c3eb9a927292a14 Mon Sep 17 00:00:00 2001 From: kanade Date: Mon, 18 Apr 2022 11:15:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=B6=E7=9B=8A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/api/mobile/pay/public/pay_success.go | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/internal/api/mobile/pay/public/pay_success.go b/internal/api/mobile/pay/public/pay_success.go index 91c7ea0..4c88426 100755 --- a/internal/api/mobile/pay/public/pay_success.go +++ b/internal/api/mobile/pay/public/pay_success.go @@ -2,11 +2,17 @@ package public import ( "errors" + "fmt" + "git.oa00.com/go/mysql" + gorm2 "gorm.io/gorm" "recook/internal/model/goods" "recook/internal/model/order" "recook/internal/model/user" "recook/internal/service/app/shop" + jpush2 "recook/internal/v2/lib/jpush" order2 "recook/internal/v2/logic/manage/order" + "recook/internal/v2/model/jpush" + "recook/internal/v2/model/jyy" manage "recook/internal/v2/model/recook/order" "time" @@ -86,13 +92,55 @@ func PaySuccessCallback(tx *gorm.DB, orderInfo order.Information, completeTime f } else { // 虚拟订单用户升级 if orderInfo.SharerID != 0 && orderInfo.SharerID != orderInfo.UserID { - if err := tx.Create(order.CreateProfit( + profit := order.CreateProfit( orderInfo.SharerID, order.Card, orderInfo.ActualTotalAmount, - orderInfo.ID, 2)).Error; err != nil { + orderInfo.ID, 2) + if err := tx.Create(&profit).Error; err != nil { return err } + if row := tx.Model(&user.Wallet{}).Where("user_id = ?", orderInfo.SharerID).Updates(map[string]interface{}{ + "balance": gorm2.Expr("balance + ?", profit.Income), + "version": gorm2.Expr("version + 1"), + }).RowsAffected; row == 0 { + e := fmt.Errorf("网络异常") + return e + } + + r1 := user.WalletBalanceList{ + UserID: orderInfo.SharerID, + IncomeType: uint(10 + order.Card), + Amount: profit.Income, + Title: orderInfo.Title, + Comment: order.Card.GetStr(), + OrderID: orderInfo.ID, + OrderTime: orderInfo.CreatedAt, + CreatedAt: formatime.NewSecondNow(), + ProfitID: uint(profit.ID), + } + if e := tx.Create(&r1).Error; e != nil { + return e + } + + // 添加收益记录 + message := fmt.Sprintf("您的%s已到账", order.Card.GetStr()) + if e := tx.Create(&jyy.AppUserMessage{ + UserID: int(orderInfo.SharerID), + Message: message, + Kind: jyy.Profit, + IsRead: false, + SubID: uint64(profit.ID), + }).Error; e != nil { + return e + } + var ju jpush.JPush + mysql.Db.First(&ju, "user_id = ?", orderInfo.SharerID) + if ju.RegistrationId != "" { + client := jpush2.GetClient() + client.PushMsgWithRegister(ju.RegistrationId, "收益到账", message) + } + } var u1 user.Information if err := tx.First(&u1, "id = ?", orderInfo.UserID).Error; err != nil {