Files
sundynix-go/service/order/refund_service.go
T
2026-04-28 10:29:02 +08:00

54 lines
1.3 KiB
Go

package order
import (
"sundynix-go/global"
model "sundynix-go/model/order"
req "sundynix-go/model/order/request"
)
type RefundService struct{}
var RefundServiceApp = new(RefundService)
func (s *RefundService) Save(r req.SaveRefundReq) error {
data := model.Refund{
UserId: r.UserId,
}
return global.DB.Create(&data).Error
}
func (s *RefundService) Update(r req.UpdateRefundReq) error {
updates := map[string]any{
"user_id": r.UserId,
}
return global.DB.Model(&model.Refund{}).Where("id = ?", r.Id).Updates(updates).Error
}
func (s *RefundService) Delete(ids []string) error {
return global.DB.Where("id IN ?", ids).Delete(&model.Refund{}).Error
}
func (s *RefundService) Detail(id string) (data *model.Refund, err error) {
var record model.Refund
err = global.DB.Where("id = ?", id).First(&record).Error
return &record, err
}
func (s *RefundService) List(r req.ListRefundReq) (list []model.Refund, total int64, err error) {
if r.PageSize <= 0 {
r.PageSize = 10
}
if r.Current <= 0 {
r.Current = 1
}
db := global.DB.Model(&model.Refund{})
if r.Keyword != "" {
db = db.Where("id LIKE ?", "%"+r.Keyword+"%")
}
if err = db.Count(&total).Error; err != nil {
return
}
err = db.Limit(r.PageSize).Offset(r.PageSize * (r.Current - 1)).Find(&list).Error
return
}