func (this *merchantService) SaveMerchant(merchantId int, v *merchant.Merchant) (int, error) { var mch merchant.IMerchant var err error var isCreate bool v.Id = merchantId if merchantId > 0 { mch, _ = this._mchRep.GetMerchant(merchantId) if mch == nil { err = errors.New("no such partner") } else { err = mch.SetValue(v) } } else { isCreate = true mch, err = this._mchRep.CreateMerchant(v) } if err != nil { return 0, err } merchantId, err = mch.Save() if isCreate { this.initializeMerchant(merchantId) } return merchantId, err }