本文整理汇总了Golang中go2o/src/core/domain/interface/partner.IPartner.GetValue方法的典型用法代码示例。如果您正苦于以下问题:Golang IPartner.GetValue方法的具体用法?Golang IPartner.GetValue怎么用?Golang IPartner.GetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类go2o/src/core/domain/interface/partner.IPartner
的用法示例。
在下文中一共展示了IPartner.GetValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: backFor3R
// 三级返现
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++
}
}
示例2: updateShoppingMemberBackFee
// 更新返现到会员账户
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)
}
示例3: updateShoppingMemberBackFee
// 更新返现到会员账户
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))
}
示例4: Complete
// 完成订单
func (this *Order) Complete() error {
now := time.Now().Unix()
v := this._value
m := this._memberRep.GetMember(v.MemberId)
if m == nil {
return member.ErrNoSuchMember
}
var err error
var ptl partner.IPartner
ptl, err = this._partnerRep.GetPartner(v.PartnerId)
if err != nil {
log.Println("供应商异常!", v.PartnerId)
log.PrintErr(err)
return err
}
pv := ptl.GetValue()
if pv.ExpiresTime < time.Now().Unix() {
return errors.New("您的账户已经过期!")
}
// 增加经验
if EXP_BIT == 0 {
fv := infrastructure.GetApp().Config().GetFloat(variable.EXP_BIT)
if fv <= 0 {
panic("[WANNING]:Exp_bit not set!")
}
EXP_BIT = float32(fv)
}
if err = m.AddExp(int(v.Fee * EXP_BIT)); err != nil {
return err
}
// 更新账户
updateAccountForOrder(m, this)
//******* 返现到账户 ************
var back_fee float32
saleConf := ptl.GetSaleConf()
if saleConf.CashBackPercent > 0 {
back_fee = v.Fee * saleConf.CashBackPercent
//将此次消费记入会员账户
this.updateShoppingMemberBackFee(ptl, m,
back_fee*saleConf.CashBackMemberPercent, now)
//todo: 增加阶梯的返积分,比如订单满30送100积分
backIntegral := int(v.Fee)*saleConf.IntegralBackNum +
saleConf.IntegralBackExtra
// 赠送积分
if backIntegral != 0 {
err = m.AddIntegral(v.PartnerId, enum.INTEGRAL_TYPE_ORDER,
backIntegral, fmt.Sprintf("订单返积分%d个", backIntegral))
if err != nil {
return err
}
}
}
this._value.Status = enum.ORDER_COMPLETED
this._value.IsSuspend = 0
this._value.UpdateTime = now
_, err = this.Save()
if err == nil {
err = this.AppendLog(enum.ORDER_LOG_SETUP, false, "订单已完成")
// 处理返现促销
this.handleCashBackPromotions(ptl, m)
// 三级返现
if back_fee > 0 {
this.backFor3R(ptl, m, back_fee, now)
}
}
return err
}
示例5: Complete
// 完成订单
func (this *Order) Complete() error {
now := time.Now().Unix()
v := this._value
m, err := this._memberRep.GetMember(v.MemberId)
if err == nil {
var ptl partner.IPartner
ptl, err = this._partnerRep.GetPartner(v.PartnerId)
if err != nil {
log.Println("供应商异常!", v.PartnerId)
log.PrintErr(err)
return err
}
pv := ptl.GetValue()
if pv.ExpiresTime < time.Now().Unix() {
return errors.New("您的账户已经过期!")
}
//返现比例
saleConf := ptl.GetSaleConf()
back_fee := v.Fee * saleConf.CashBackPercent
//将此次消费记入会员账户
this.updateShoppingMemberAccount(ptl, m,
back_fee*saleConf.CashBackMemberPercent, now)
//todo: 增加阶梯的返积分,比如订单满30送100积分
backIntegral := int(v.Fee)*saleConf.IntegralBackNum +
saleConf.IntegralBackExtra
//判断是否满足升级条件
if backIntegral != 0 {
err = m.AddIntegral(v.PartnerId, enum.INTEGRAL_TYPE_ORDER,
backIntegral, fmt.Sprintf("订单返积分%d个", backIntegral))
if err != nil {
return err
}
}
// 增加经验
if EXP_BIT == 0 {
fv := infrastructure.GetApp().
Config().GetFloat(variable.EXP_BIT)
EXP_BIT = float32(fv)
}
if EXP_BIT == 0 {
log.Println("[WANNING]:Exp_bit not set!")
}
err = m.AddExp(int(v.Fee * EXP_BIT))
if err != nil {
return err
}
// 三级返现
this.backFor3R(ptl, m, back_fee, now)
this._value.Status = enum.ORDER_COMPLETED
this._value.IsSuspend = 0
this._value.UpdateTime = now
_, err := this.Save()
if err == nil {
err = this.AppendLog(enum.ORDER_LOG_SETUP, false, "订单已完成")
}
}
return err
}