func backCashForMember(m member.IMember, order *shopping.ValueOrder, fee int, refName string) error { //更新账户 acc := m.GetAccount() acv := acc.GetValue() bFee := float32(fee) acv.PresentBalance += bFee // 更新赠送余额 acv.TotalPresentFee += bFee acv.UpdateTime = time.Now().Unix() _, err := acc.Save() if err == nil { //给自己返现 icLog := &member.IncomeLog{ MemberId: m.GetAggregateRootId(), OrderId: order.Id, Type: "backcash", Fee: float32(fee), Log: fmt.Sprintf("推广返现¥%s元,订单号:%s,来源:%s", format.FormatFloat(bFee), order.OrderNo, refName), State: 1, RecordTime: acv.UpdateTime, } err = m.SaveIncomeLog(icLog) } return err }
// 更新返现到会员账户 func (this *Order) updateShoppingMemberBackFee(pt partner.IPartner, m member.IMember, fee float32, unixTime int64) { if fee == 0 { return } v := this.GetValue() pv := pt.GetValue() //更新账户 acc := m.GetAccount() //acc.TotalFee += this._value.Fee //acc.TotalPay += this._value.PayFee acc.PresentBalance += fee // 更新赠送余额 acc.TotalPresentFee += fee acc.UpdateTime = unixTime m.SaveAccount() //给自己返现 icLog := &member.IncomeLog{ MemberId: this._value.MemberId, OrderId: v.Id, Type: "backcash", Fee: fee, Log: fmt.Sprintf("订单:%s(商家:%s)返现¥%.2f元", v.OrderNo, pv.Name, fee), State: 1, RecordTime: unixTime, } m.SaveIncomeLog(icLog) }
func (this *Order) updateMemberAccount(m member.IMember, ptName, mName string, fee float32, unixTime int64) { if fee == 0 { return } //更新账户 acc := m.GetAccount() acc.PresentBalance += fee acc.TotalPresentFee += fee acc.UpdateTime = unixTime m.SaveAccount() //给自己返现 icLog := &member.IncomeLog{ MemberId: this._value.MemberId, Type: "backcash", Fee: fee, Log: fmt.Sprintf("订单:%s(商家:%s,会员:%s)收入¥%.2f元", this._value.OrderNo, ptName, mName, fee), State: 1, RecordTime: unixTime, } m.SaveIncomeLog(icLog) }
// 处理返现促销 func (this *Order) handleCashBackPromotion(pt partner.IPartner, m member.IMember, v *shopping.OrderPromotionBind, pm promotion.IPromotion) error { cpv := pm.GetRelationValue().(*promotion.ValueCashBack) //更新账户 bFee := float32(cpv.BackFee) acc := m.GetAccount() acv := acc.GetValue() acv.PresentBalance += bFee // 更新赠送余额 acv.TotalPresentFee += bFee // 赠送金额,不应该计入到余额,可采取充值到余额 //acc.Balance += float32(cpv.BackFee) // 更新账户余额 acv.UpdateTime = time.Now().Unix() _, err := acc.Save() if err == nil { // 优惠绑定生效 v.IsApply = 1 this._shoppingRep.SavePromotionBindForOrder(v) // 处理自定义返现 c := pm.(promotion.ICashBackPromotion) HandleCashBackDataTag(m, this._value, c, this._memberRep) //给自己返现 tit := fmt.Sprintf("返现¥%d元,订单号:%s", cpv.BackFee, this._value.OrderNo) err = acc.PresentBalance(tit, v.OrderNo, float32(cpv.BackFee)) } return err }
// 处理返现促销 func (this *Order) handleCashBackPromotion(pt partner.IPartner, m member.IMember, v *shopping.OrderPromotionBind, pm promotion.IPromotion) error { cpv := pm.GetRelationValue().(*promotion.ValueCashBack) //更新账户 acc := m.GetAccount() acc.PresentBalance = acc.PresentBalance + float32(cpv.BackFee) // 更新赠送余额 acc.Balance += float32(cpv.BackFee) // 更新账户余额 acc.UpdateTime = time.Now().Unix() err := m.SaveAccount() if err == nil { // 优惠绑定生效 v.IsApply = 1 this._shoppingRep.SavePromotionBindForOrder(v) // 处理自定义返现 c := pm.(promotion.ICashBackPromotion) HandleCashBackDataTag(m, this._value, c, this._memberRep) //给自己返现 icLog := &member.IncomeLog{ MemberId: this._value.MemberId, OrderId: this.GetDomainId(), Type: "backcash", Fee: float32(cpv.BackFee), Log: fmt.Sprintf("返现¥%d元,订单号:%s", cpv.BackFee, this._value.OrderNo), State: 1, RecordTime: acc.UpdateTime, } err = m.SaveIncomeLog(icLog) } return err }
// 更新账户 func updateAccountForOrder(m member.IMember, order shopping.IOrder) { acc := m.GetAccount() ov := order.GetValue() acc.TotalFee += ov.Fee acc.TotalPay += ov.PayFee acc.UpdateTime = time.Now().Unix() m.SaveAccount() }
func backCashForMember(m member.IMember, order *shopping.ValueOrder, fee int, refName string) error { //更新账户 acc := m.GetAccount() acv := acc.GetValue() bFee := float32(fee) acv.PresentBalance += bFee // 更新赠送余额 acv.TotalPresentFee += bFee acv.UpdateTime = time.Now().Unix() _, err := acc.Save() if err == nil { tit := fmt.Sprintf("推广返现¥%s元,订单号:%s,来源:%s", format.FormatFloat(bFee), order.OrderNo, refName) err = acc.PresentBalance(tit, order.OrderNo, float32(fee)) } return err }
func (this *Order) updateMemberAccount(m member.IMember, ptName, mName string, fee float32, unixTime int64) { if fee == 0 { return } //更新账户 acc := m.GetAccount() acv := acc.GetValue() acv.PresentBalance += fee acv.TotalPresentFee += fee acv.UpdateTime = unixTime acc.Save() //给自己返现 tit := fmt.Sprintf("订单:%s(商家:%s,会员:%s)收入¥%.2f元", this._value.OrderNo, ptName, mName, fee) acc.PresentBalance(tit, this._value.OrderNo, fee) }
// 获取会员汇总信息 func (this *memberService) GetMemberSummary(memberId int) *dto.MemberSummary { var m member.IMember = this._memberRep.GetMember(memberId) if m != nil { mv := m.GetValue() acv := m.GetAccount().GetValue() lv := m.GetLevel() return &dto.MemberSummary{ Id: m.GetAggregateRootId(), Usr: mv.Usr, Name: mv.Name, Exp: mv.Exp, Level: mv.Level, LevelName: lv.Name, Integral: acv.Integral, Balance: acv.Balance, PresentBalance: acv.PresentBalance, UpdateTime: mv.UpdateTime, } } return nil }
// 更新返现到会员账户 func (this *Order) updateShoppingMemberBackFee(pt partner.IPartner, m member.IMember, fee float32, unixTime int64) { if fee == 0 { return } v := this.GetValue() pv := pt.GetValue() //更新账户 acc := m.GetAccount() acv := acc.GetValue() //acc.TotalFee += this._value.Fee //acc.TotalPay += this._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)) }