refactor: 移除wepay依赖,简化订单退款逻辑

This commit is contained in:
2025-12-20 00:00:57 +08:00
parent df6a8de61d
commit 109cd3b52d
5 changed files with 14 additions and 81 deletions

View File

@@ -1,16 +1,11 @@
package admin
import (
"fmt"
"quyun/v2/app/requests"
"quyun/v2/app/services"
"quyun/v2/database/models"
"quyun/v2/pkg/fields"
"quyun/v2/providers/wepay"
"github.com/gofiber/fiber/v3"
"github.com/pkg/errors"
"go.ipao.vip/gen"
)
@@ -20,9 +15,7 @@ type OrderListQuery struct {
}
// @provider
type orders struct {
wepay *wepay.Client
}
type orders struct{}
// List
//
@@ -62,55 +55,5 @@ func (ctl *orders) List(
// @Router /admin/orders/:id/refund [post]
// @Bind order path key(id) model(id)
func (ctl *orders) Refund(ctx fiber.Ctx, order *models.Order) error {
user, err := services.Users.FindByID(ctx, order.UserID)
if err != nil {
return err
}
post, err := services.Posts.FindByID(ctx, order.PostID)
if err != nil {
return err
}
if order.PaymentMethod == "balance" {
if err := services.Users.AddBalance(ctx, user.ID, order.Meta.Data().CostBalance); err != nil {
return errors.Wrap(err, "add balance failed")
}
if err := services.Users.RevokeUserPosts(ctx, user.ID, order.PostID); err != nil {
return errors.Wrap(err, "revoke posts failed")
}
order.Status = fields.OrderStatusRefundSuccess
if _, err := order.Update(ctx); err != nil {
return errors.Wrap(err, "update order failed")
}
return nil
}
refundTotal := order.Price*int64(order.Discount)/100 - order.Meta.Data().CostBalance
resp, err := ctl.wepay.Refund(ctx, func(bm *wepay.BodyMap) {
bm.
OutRefundNo(order.OrderNo).
OutTradeNo(order.OrderNo).
TransactionID(order.TransactionID).
CNYRefundAmount(refundTotal, refundTotal).
RefundReason(fmt.Sprintf("%s 退款", post.Title))
})
if err != nil {
return err
}
meta := order.Meta.Data()
meta.RefundResp = resp
order.Meta = meta.JsonType()
order.RefundTransactionID = resp.RefundId
order.Status = fields.OrderStatusRefundProcessing
if _, err := order.Update(ctx); err != nil {
return err
}
return nil
return services.Orders.Refund(ctx, order)
}

View File

@@ -6,7 +6,6 @@ import (
"quyun/v2/providers/app"
"quyun/v2/providers/job"
"quyun/v2/providers/jwt"
"quyun/v2/providers/wepay"
"go.ipao.vip/atom"
"go.ipao.vip/atom/container"
@@ -37,12 +36,8 @@ func Provide(opts ...opt.Option) error {
}); err != nil {
return err
}
if err := container.Container.Provide(func(
wepay *wepay.Client,
) (*orders, error) {
obj := &orders{
wepay: wepay,
}
if err := container.Container.Provide(func() (*orders, error) {
obj := &orders{}
return obj, nil
}); err != nil {