Files

49 lines
1.7 KiB
Go
Raw Permalink Normal View History

package user
import (
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/infra"
"git.apinb.com/heqiapp/platforms/backend/api/internal/impl"
"git.apinb.com/heqiapp/platforms/backend/api/internal/logic/common"
"git.apinb.com/heqiapp/platforms/backend/api/internal/logic/payment"
"git.apinb.com/heqiapp/platforms/backend/api/internal/models"
"github.com/gin-gonic/gin"
)
func CreateRefund(businessType string) gin.HandlerFunc {
return func(ctx *gin.Context) {
account, ok := common.UserAccount(ctx)
if !ok {
return
}
var request struct {
RequestNo string `json:"request_no" binding:"required"`
Reason string `json:"reason" binding:"required"`
Description string `json:"description"`
Items []payment.RefundItemInput `json:"items" binding:"required,min=1"`
}
if ctx.ShouldBindJSON(&request) != nil {
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
return
}
refund, err := payment.CreateRefund(account.ID, account.Identity, businessType, ctx.Param("identity"), payment.RefundInput{RequestNo: request.RequestNo, Reason: request.Reason, Description: request.Description, Items: request.Items})
if err != nil {
infra.Response.Error(ctx, err)
return
}
infra.Response.Success(ctx, common.ResourceResponse(refund))
}
}
func ListRefunds(ctx *gin.Context) {
account, ok := common.UserAccount(ctx)
if !ok {
return
}
var list []models.PaymentRefund
if err := impl.DBService.Where("user_identity = ?", account.Identity).Order("created_at desc").Find(&list).Error; err != nil {
infra.Response.Error(ctx, err)
return
}
infra.Response.Success(ctx, common.ResourceResponse(list))
}