// 是否可用 func (this *Coupon) CanUse(m member.IMember, fee float32) (bool, error) { mv := m.GetValue() cv := this.GetValue() if cv.AllowEnable == 0 { return false, errors.New("无效的优惠券") } dtUnix := time.Now().Unix() stUnix := cv.BeginTime ovUnix := cv.OverTime if dtUnix < stUnix { return false, errors.New(fmt.Sprintf("优惠券必须在%s~%s使用", time.Unix(cv.BeginTime, 0).Format("2006-01-02"), time.Unix(cv.OverTime, 0).Format("2006-01-02")), ) } else if dtUnix > ovUnix { return false, errors.New("优惠拳已过期") } if cv.NeedBind == 0 && cv.Amount == 0 { return false, errors.New("优惠券不足") } if mv.Level < cv.MinLevel { return false, errors.New("会员等级不满足要求") } if fee < float32(cv.MinFee) { return false, errors.New(fmt.Sprintf("订单金额需达到¥%d", cv.MinFee)) } return true, nil }
// 三级返现 func (this *Order) backFor3R(pt partner.IPartner, m member.IMember, back_fee float32, unixTime int64) { if back_fee == 0 { return } i := 0 mName := m.GetValue().Name saleConf := pt.GetSaleConf() percent := saleConf.CashBackTg2Percent for i < 2 { rl := m.GetRelation() if rl == nil || rl.InvitationMemberId == 0 { break } m = this._memberRep.GetMember(rl.InvitationMemberId) if m == nil { break } if i == 1 { percent = saleConf.CashBackTg1Percent } this.updateMemberAccount(m, pt.GetValue().Name, mName, back_fee*percent, unixTime) i++ } }
// 获取会员汇总信息 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 }