package order import ( "sundynix-go/global" model "sundynix-go/model/order" req "sundynix-go/model/order/request" ) type OrderService struct{} var OrderServiceApp = new(OrderService) func (s *OrderService) Save(r req.SaveOrderReq) error { data := model.Order{ UserId: r.UserId, } return global.DB.Create(&data).Error } func (s *OrderService) Update(r req.UpdateOrderReq) error { updates := map[string]any{ "user_id": r.UserId, } return global.DB.Model(&model.Order{}).Where("id = ?", r.Id).Updates(updates).Error } func (s *OrderService) Delete(ids []string) error { return global.DB.Where("id IN ?", ids).Delete(&model.Order{}).Error } func (s *OrderService) Detail(id string) (data *model.Order, err error) { var record model.Order err = global.DB.Where("id = ?", id).First(&record).Error return &record, err } func (s *OrderService) List(r req.ListOrderReq) (list []model.Order, total int64, err error) { if r.PageSize <= 0 { r.PageSize = 10 } if r.Current <= 0 { r.Current = 1 } db := global.DB.Model(&model.Order{}) 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 }