// 获取会员汇总信息 func (this *memberService) GetMemberSummary(memberId int) *dto.MemberSummary { var m member.IMember = this._rep.GetMember(memberId) if m != nil { mv := m.GetValue() acv := m.GetAccount().GetValue() lv := m.GetLevel() pro := m.Profile().GetProfile() return &dto.MemberSummary{ Id: m.GetAggregateRootId(), Usr: mv.Usr, Name: pro.Name, Avatar: format.GetResUrl(pro.Avatar), Exp: mv.Exp, Level: mv.Level, LevelName: lv.Name, Integral: acv.Integral, Balance: acv.Balance, PresentBalance: acv.PresentBalance, GrowBalance: acv.GrowBalance, GrowAmount: acv.GrowAmount, GrowEarnings: acv.GrowEarnings, GrowTotalEarnings: acv.GrowTotalEarnings, UpdateTime: mv.UpdateTime, } } return nil }
// 是否可用 func (this *Coupon) CanUse(m member.IMember, fee float32) (bool, error) { mv := m.GetValue() cv := this.GetDetailsValue() if this._value.Enabled == 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 }