feat: update

This commit is contained in:
Rogee
2025-05-23 20:07:34 +08:00
parent 9b38699764
commit 57cb0a750b
53 changed files with 741 additions and 982 deletions

View File

@@ -5,7 +5,7 @@ import (
"fmt"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"github.com/pkg/errors"
@@ -45,7 +45,7 @@ func (w *BalancePayNotifyWorker) Work(ctx context.Context, job *Job[BalancePayNo
log.Infof("[Start] Working on job with strings: %+v", job.Args)
defer log.Infof("[End] Finished %s", job.Args.Kind())
order, err := models.Orders.GetByOrderNo(context.Background(), job.Args.OrderNo)
order, err := model.OrdersModel.GetByOrderNo(context.Background(), job.Args.OrderNo)
if err != nil {
log.Errorf("GetByOrderNo error:%v", err)
return err
@@ -56,7 +56,7 @@ func (w *BalancePayNotifyWorker) Work(ctx context.Context, job *Job[BalancePayNo
return JobCancel(fmt.Errorf("Order already paid, currently status: %d", order.Status))
}
user, err := models.Users.GetByID(context.Background(), order.UserID)
user, err := model.UsersModel.GetByID(context.Background(), order.UserID)
if err != nil {
log.Errorf("GetByID error:%v", err)
return errors.Wrap(err, "get user error")
@@ -75,25 +75,25 @@ func (w *BalancePayNotifyWorker) Work(ctx context.Context, job *Job[BalancePayNo
}
log.Infof("Updated order details: %+v", order)
tx, err := models.Transaction(ctx)
tx, err := model.Transaction(ctx)
if err != nil {
return errors.Wrap(err, "Transaction error")
}
defer tx.Rollback()
// update user balance
err = models.Users.SetBalance(ctx, user.ID, user.Balance-payPrice)
err = model.UsersModel.SetBalance(ctx, user.ID, user.Balance-payPrice)
if err != nil {
log.WithError(err).Error("SetBalance error")
return JobCancel(errors.Wrap(err, "set user balance failed"))
}
if err := models.Users.BuyPosts(context.Background(), order.UserID, order.PostID, order.Price); err != nil {
if err := model.UsersModel.BuyPosts(context.Background(), order.UserID, order.PostID, order.Price); err != nil {
log.Errorf("BuyPosts error:%v", err)
return errors.Wrap(err, "BuyPosts error")
}
if err := models.Orders.Update(context.Background(), order); err != nil {
if err := model.OrdersModel.Update(context.Background(), order); err != nil {
log.Errorf("Update order error:%v", err)
return errors.Wrap(err, "Update order error")
}

View File

@@ -6,7 +6,7 @@ import (
"path/filepath"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/providers/ali"
"quyun/providers/app"
"quyun/providers/job"
@@ -55,7 +55,7 @@ func (w *DownloadFromAliOSSWorker) Work(ctx context.Context, job *Job[DownloadFr
log.Infof("[Start] Working on job with strings: %+v", job.Args)
defer log.Infof("[End] Finished %s", job.Args.Kind())
media, err := models.Medias.GetByHash(ctx, job.Args.MediaHash)
media, err := model.MediasModel.GetByHash(ctx, job.Args.MediaHash)
if err != nil {
log.Errorf("Error getting media by ID: %v", err)
return JobCancel(err)

View File

@@ -4,7 +4,7 @@ import (
"context"
"testing"
"quyun/app/models"
"quyun/app/model"
"quyun/app/service/testx"
"quyun/providers/ali"
"quyun/providers/app"
@@ -34,7 +34,7 @@ type DownloadFromAliOSSSuite struct {
}
func Test_DownloadFromAliOSS(t *testing.T) {
providers := testx.Default().With(Provide, models.Provide)
providers := testx.Default().With(Provide, model.Provide)
testx.Serve(providers, t, func(p DownloadFromAliOSSSuiteInjectParams) {
suite.Run(t, &DownloadFromAliOSSSuite{DownloadFromAliOSSSuiteInjectParams: p})

View File

@@ -4,9 +4,8 @@ import (
"context"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"quyun/database/schemas/public/model"
"quyun/pkg/utils"
"quyun/providers/ali"
"quyun/providers/app"
@@ -57,13 +56,13 @@ func (w *PublishDraftPostsWorker) Work(ctx context.Context, job *Job[PublishDraf
log.Infof("[Start] Working on job with strings: %+v", job.Args)
defer log.Infof("[End] Finished %s", job.Args.Kind())
media, err := models.Medias.GetByHash(ctx, job.Args.MediaHash)
media, err := model.MediasModel.GetByHash(ctx, job.Args.MediaHash)
if err != nil {
log.Errorf("Error getting media by ID: %v", err)
return JobCancel(err)
}
relationMedias, err := models.Medias.GetRelations(ctx, media.Hash)
relationMedias, err := model.MediasModel.GetRelations(ctx, media.Hash)
if err != nil {
log.Errorf("Error getting relation medias: %v", err)
return JobCancel(err)
@@ -98,7 +97,7 @@ func (w *PublishDraftPostsWorker) Work(ctx context.Context, job *Job[PublishDraf
return media.ID, media.MimeType == "image/jpeg"
})),
}
if err := models.Posts.Create(ctx, post); err != nil {
if err := model.PostsModel.Create(ctx, post); err != nil {
log.Errorf("Error creating post: %v", err)
return errors.Wrap(err, "create post")
}

View File

@@ -5,7 +5,7 @@ import (
"path/filepath"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"quyun/pkg/utils"
"quyun/providers/app"
@@ -54,7 +54,7 @@ func (w *VideoCutWorker) Work(ctx context.Context, job *Job[VideoCut]) error {
log.Infof("[Start] Working on job with strings: %+v", job.Args)
defer log.Infof("[End] Finished %s", job.Args.Kind())
media, err := models.Medias.GetByHash(ctx, job.Args.MediaHash)
media, err := model.MediasModel.GetByHash(ctx, job.Args.MediaHash)
if err != nil {
log.Errorf("Error getting media by ID: %v", err)
return JobCancel(err)
@@ -81,7 +81,7 @@ func (w *VideoCutWorker) Work(ctx context.Context, job *Job[VideoCut]) error {
Short: false,
Duration: duration,
}
if err := models.Medias.UpdateMetas(ctx, media.ID, metas); err != nil {
if err := model.MediasModel.UpdateMetas(ctx, media.ID, metas); err != nil {
log.Errorf("Error updating media metas: %v", err)
return errors.Wrap(err, "update media metas")
}

View File

@@ -6,9 +6,8 @@ import (
"path/filepath"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"quyun/database/schemas/public/model"
"quyun/pkg/utils"
"quyun/providers/ali"
"quyun/providers/app"
@@ -58,7 +57,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx
log.Infof("[Start] Working on job with strings: %+v", job.Args)
defer log.Infof("[End] Finished %s", job.Args.Kind())
media, err := models.Medias.GetByHash(ctx, job.Args.MediaHash)
media, err := model.MediasModel.GetByHash(ctx, job.Args.MediaHash)
if err != nil {
log.Errorf("Error getting media by ID: %v", err)
return JobCancel(err)
@@ -111,7 +110,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx
log.Errorf("Error removing original file: %v", err)
}
if err := models.Medias.Create(ctx, imageMedia); err != nil {
if err := model.MediasModel.Create(ctx, imageMedia); err != nil {
log.Errorf("Error creating media record: %v", err)
return errors.Wrap(err, "failed to create media record")
}

View File

@@ -5,9 +5,8 @@ import (
"path/filepath"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"quyun/database/schemas/public/model"
"quyun/pkg/utils"
"quyun/providers/ali"
"quyun/providers/app"
@@ -58,7 +57,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho
log.Infof("[Start] Working on job with strings: %+v", job.Args)
defer log.Infof("[End] Finished %s", job.Args.Kind())
media, err := models.Medias.GetByHash(ctx, job.Args.MediaHash)
media, err := model.MediasModel.GetByHash(ctx, job.Args.MediaHash)
if err != nil {
log.Errorf("Error getting media by ID: %v", err)
return JobCancel(err)
@@ -113,7 +112,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho
}
log.Infof("pending create media record %s", job.Args.FilePath)
if err := models.Medias.Create(ctx, mediaModel); err != nil {
if err := model.MediasModel.Create(ctx, mediaModel); err != nil {
log.Errorf("Error saving media record: %v data: %+v", err, mediaModel)
return err
}

View File

@@ -5,7 +5,7 @@ import (
"fmt"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"github.com/go-pay/gopay/wechat/v3"
@@ -53,7 +53,7 @@ func (w *WechatPayNotifyWorker) Work(ctx context.Context, job *Job[WechatPayNoti
return JobCancel(errors.New("TradeState is not SUCCESS"))
}
order, err := models.Orders.GetByOrderNo(context.Background(), notify.OutTradeNo)
order, err := model.OrdersModel.GetByOrderNo(context.Background(), notify.OutTradeNo)
if err != nil {
log.Errorf("GetByOrderNo error:%v", err)
return err
@@ -64,7 +64,7 @@ func (w *WechatPayNotifyWorker) Work(ctx context.Context, job *Job[WechatPayNoti
return JobCancel(fmt.Errorf("Order already paid, currently status: %d", order.Status))
}
user, err := models.Users.GetByID(context.Background(), order.UserID)
user, err := model.UsersModel.GetByID(context.Background(), order.UserID)
if err != nil {
return errors.Wrapf(err, "get user by id(%d) failed", order.UserID)
}
@@ -85,25 +85,25 @@ func (w *WechatPayNotifyWorker) Work(ctx context.Context, job *Job[WechatPayNoti
order.Meta = fields.ToJson(meta)
log.Infof("Updated order details: %+v", order)
tx, err := models.Transaction(ctx)
tx, err := model.Transaction(ctx)
if err != nil {
return errors.Wrap(err, "Transaction error")
}
defer tx.Rollback()
// update user balance
err = models.Users.SetBalance(ctx, user.ID, user.Balance-meta.CostBalance)
err = model.UsersModel.SetBalance(ctx, user.ID, user.Balance-meta.CostBalance)
if err != nil {
log.WithError(err).Error("SetBalance error")
return JobCancel(errors.Wrap(err, "set user balance failed"))
}
if err := models.Users.BuyPosts(context.Background(), order.UserID, order.PostID, order.Price); err != nil {
if err := model.UsersModel.BuyPosts(context.Background(), order.UserID, order.PostID, order.Price); err != nil {
log.Errorf("BuyPosts error:%v", err)
return errors.Wrap(err, "BuyPosts error")
}
if err := models.Orders.Update(context.Background(), order); err != nil {
if err := model.OrdersModel.Update(context.Background(), order); err != nil {
log.Errorf("Update order error:%v", err)
return errors.Wrap(err, "Update order error")
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"testing"
"quyun/app/models"
"quyun/app/model"
"quyun/app/service/testx"
"github.com/go-pay/gopay/wechat/v3"
@@ -30,7 +30,7 @@ type WechatPayNotifySuite struct {
}
func Test_WechatPayNotify(t *testing.T) {
providers := testx.Default().With(Provide, models.Provide)
providers := testx.Default().With(Provide, model.Provide)
testx.Serve(providers, t, func(p WechatPayNotifySuiteInjectParams) {
suite.Run(t, &WechatPayNotifySuite{WechatPayNotifySuiteInjectParams: p})

View File

@@ -4,7 +4,7 @@ import (
"context"
"time"
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"github.com/go-pay/gopay/wechat/v3"
@@ -47,7 +47,7 @@ func (w *WechatRefundNotifyWorker) Work(ctx context.Context, job *Job[WechatRefu
notify := job.Args.Notify
order, err := models.Orders.GetByOrderNo(context.Background(), notify.OutTradeNo)
order, err := model.OrdersModel.GetByOrderNo(context.Background(), notify.OutTradeNo)
if err != nil {
log.Errorf("GetByOrderNo error:%v", err)
return err
@@ -69,20 +69,20 @@ func (w *WechatRefundNotifyWorker) Work(ctx context.Context, job *Job[WechatRefu
order.Meta = fields.ToJson(meta)
log.Infof("Updated order details: %+v", order)
tx, err := models.Transaction(ctx)
tx, err := model.Transaction(ctx)
if err != nil {
return errors.Wrap(err, "Transaction error")
}
defer tx.Rollback()
if order.Status == fields.OrderStatusRefundSuccess {
if err := models.Users.RevokePosts(context.Background(), order.UserID, order.PostID); err != nil {
if err := model.UsersModel.RevokePosts(context.Background(), order.UserID, order.PostID); err != nil {
log.Errorf("RevokePosts error:%v", err)
return errors.Wrap(err, "RevokePosts error")
}
}
if err := models.Orders.Update(context.Background(), order); err != nil {
if err := model.OrdersModel.Update(context.Background(), order); err != nil {
log.Errorf("Update order error:%v", err)
return errors.Wrap(err, "Update order error")
}