// 三级返现 func (o *subOrderImpl) backFor3R(mch merchant.IMerchant, m member.IMember, back_fee float32, unixTime int64) (err error) { if back_fee > 0 { i := 0 mName := m.Profile().GetProfile().Name saleConf := mch.ConfManager().GetSaleConf() percent := saleConf.CashBackTg2Percent for i < 2 { rl := m.GetRelation() if rl == nil || rl.RefereesId == 0 { break } m = o._memberRep.GetMember(rl.RefereesId) if m == nil { break } if i == 1 { percent = saleConf.CashBackTg1Percent } err = o.updateMemberAccount(m, mch.GetValue().Name, mName, back_fee*percent, unixTime) if err != nil { domain.HandleError(err, "domain") break } i++ } } return err }
// 更新返现到会员账户 func (o *orderImpl) updateShoppingMemberBackFee(pt merchant.IMerchant, m member.IMember, fee float32, unixTime int64) { if fee == 0 { return } v := o.GetValue() pv := pt.GetValue() //更新账户 acc := m.GetAccount() acv := acc.GetValue() //acc.TotalFee += o._value.Fee //acc.TotalPay += o._value.PayFee acv.PresentBalance += fee // 更新赠送余额 acv.TotalPresentFee += fee acv.UpdateTime = unixTime acc.Save() //给自己返现 tit := fmt.Sprintf("订单:%s(商户:%s)返现¥%.2f元", v.OrderNo, pv.Name, fee) acc.PresentBalance(tit, v.OrderNo, float32(fee)) }