func DeletePromotion(p promotion.IPromotion) error { var err error var rep promotion.IPromotionRep = nil if p.Type() == promotion.TypeFlagCashBack { v := p.(*CashBackPromotion) rep = v._promRep err = rep.DeleteValueCashBack(v.GetAggregateRootId()) } else if p.Type() == promotion.TypeFlagCoupon { v := p.(*Coupon) rep = v._promRep err = rep.DeleteValueCoupon(v.GetAggregateRootId()) } if err == nil && rep != nil { err = rep.DeletePromotion(p.GetAggregateRootId()) } return err }