54 lines
1.3 KiB
Go
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
|
|
}
|