fix:分享返利备注以及eventid
This commit is contained in:
@@ -3,6 +3,7 @@ package svc
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
ea "github.com/earn-alliance/earnalliance-go"
|
||||
"github.com/shopspring/decimal"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
@@ -22,8 +23,8 @@ type ServiceContext struct {
|
||||
Config config.Config
|
||||
|
||||
TaskModel model.NhTaskModel
|
||||
TaskAssetModel model.NhTaskAssetModel
|
||||
TaskAssetRecordModel model.NhTaskAssetRecordModel
|
||||
taskAssetModel model.NhTaskAssetModel
|
||||
taskAssetRecordModel model.NhTaskAssetRecordModel
|
||||
TaskProgressModel model.NhTaskProgressModel
|
||||
TwitterModel model.NhTwitterModel
|
||||
PromoteBindModel model.NhPromoteBindModel
|
||||
@@ -60,8 +61,8 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
||||
Config: c,
|
||||
|
||||
TaskModel: model.NewNhTaskModel(dbConn),
|
||||
TaskAssetModel: model.NewNhTaskAssetModel(dbConn),
|
||||
TaskAssetRecordModel: model.NewNhTaskAssetRecordModel(dbConn),
|
||||
taskAssetModel: model.NewNhTaskAssetModel(dbConn),
|
||||
taskAssetRecordModel: model.NewNhTaskAssetRecordModel(dbConn),
|
||||
TaskProgressModel: model.NewNhTaskProgressModel(dbConn),
|
||||
TwitterModel: model.NewNhTwitterModel(dbConn),
|
||||
PromoteBindModel: model.NewNhPromoteBindModel(dbConn),
|
||||
@@ -149,24 +150,33 @@ func (s *ServiceContext) GetUidByEmail(ctx context.Context, email string) (uint,
|
||||
return u.Id, nil
|
||||
}
|
||||
|
||||
func (s *ServiceContext) AddUserAsset(ctx context.Context, uid uint, asset consts.AssetType, amount decimal.Decimal, remark string, eventId uint64, provideUid uint, referralReward bool) error {
|
||||
func (s *ServiceContext) AddUserAssetWithSession(ctx context.Context, session sqlx.Session, uid uint, asset consts.AssetType, amount decimal.Decimal, remark string, eventId uint64, provideUid uint, referralReward bool) error {
|
||||
var assetModel model.NhTaskAssetModel
|
||||
var recordModel model.NhTaskAssetRecordModel
|
||||
if session != nil {
|
||||
assetModel = s.taskAssetModel.WithSession(session)
|
||||
recordModel = s.taskAssetRecordModel.WithSession(session)
|
||||
} else {
|
||||
assetModel = s.taskAssetModel
|
||||
recordModel = s.taskAssetRecordModel
|
||||
}
|
||||
var err error
|
||||
switch asset {
|
||||
case consts.AssetType_Points:
|
||||
err = s.TaskAssetModel.AddPoint(ctx, uid, amount)
|
||||
err = assetModel.AddPoint(ctx, uid, amount)
|
||||
case consts.AssetType_Castile:
|
||||
err = s.TaskAssetModel.AddCastile(ctx, uid, amount)
|
||||
err = assetModel.AddCastile(ctx, uid, amount)
|
||||
case consts.AssetType_Elite_Points:
|
||||
err = s.TaskAssetModel.AddElitePoints(ctx, uid, amount)
|
||||
err = assetModel.AddElitePoints(ctx, uid, amount)
|
||||
case consts.AssetType_Keys:
|
||||
err = s.TaskAssetModel.AddKeys(ctx, uid, int(amount.IntPart()))
|
||||
err = assetModel.AddKeys(ctx, uid, int(amount.IntPart()))
|
||||
default:
|
||||
return errors.New("unknown asset type")
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = s.TaskAssetRecordModel.Insert(ctx, &model.NhTaskAssetRecord{
|
||||
_, err = recordModel.Insert(ctx, &model.NhTaskAssetRecord{
|
||||
Uid: int(uid),
|
||||
EventId: eventId,
|
||||
AssetField: string(asset),
|
||||
@@ -198,6 +208,11 @@ func (s *ServiceContext) AddUserAsset(ctx context.Context, uid uint, asset const
|
||||
} else if s.AmbassadorModel.IsAmbassador(ctx, pb.ShareUid) {
|
||||
rate = 10
|
||||
}
|
||||
rewardAmount := amount.Mul(decimal.NewFromFloat(float64(rate) / 100))
|
||||
return s.AddUserAsset(ctx, pb.ShareUid, asset, rewardAmount, "referral reward", 0, uid, false)
|
||||
rated := decimal.NewFromFloat(float64(rate) / 100)
|
||||
rewardAmount := amount.Mul(rated)
|
||||
return s.AddUserAssetWithSession(ctx, session, pb.ShareUid, asset, rewardAmount, fmt.Sprintf("分享返利,比例%s", rated.String()), 7, uid, false)
|
||||
}
|
||||
|
||||
func (s *ServiceContext) AddUserAsset(ctx context.Context, uid uint, asset consts.AssetType, amount decimal.Decimal, remark string, eventId uint64, provideUid uint, referralReward bool) error {
|
||||
return s.AddUserAssetWithSession(ctx, nil, uid, asset, amount, remark, eventId, provideUid, referralReward)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user