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 }