| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package helpers
- import (
- "fmt"
- "fohow.com/apps/models/balance_model"
- "fohow.com/apps/models/base_config"
- "fohow.com/apps/models/order_model"
- "fohow.com/apps/models/user_model"
- "fohow.com/libs/tool"
- "github.com/astaxie/beego"
- "math"
- "strings"
- )
- func NewSendInviterBenefit(wxUser *user_model.WxUser, orderId, source string) {
- //三部代理--佣金计入本人账户 0317
- specialDepartStr := beego.AppConfig.String("SpecialDepart")
- specialDeparts := strings.Split(specialDepartStr, ".")
- departUser := fmt.Sprintf("%d", wxUser.Depart)
- contain := tool.StringsContains(specialDeparts, departUser)
- var benefitWxUser *user_model.WxUser
- if wxUser.ShowInviteMode == int64(1) && contain >= 0 {
- benefitWxUser = wxUser
- } else {
- //20.12.01 新规--(微信支付金额-运费)>0,按(微信支付金额-运费)*20%给上级代理返佣金(代理本人下订单,也是返给上级代理)
- benefitWxUser = FindInviter(wxUser)
- }
- if benefitWxUser == nil || benefitWxUser.Id == int64(1) {
- return
- }
- //beego.BeeLogger.Warn("benefitWxUser: %s", benefitWxUser)
- //beego.BeeLogger.Warn("newSendInviterBenefit:%v,%v,%s", wxUser, benefitWxUser, orderId)
- if source == user_model.SOURCE_PRODUCT_BENEFIT {
- productOrder := order_model.GetOrderById(orderId, true)
- if productOrder == nil {
- return
- }
- if benefitWxUser != nil {
- //发放群主收益,(微信支付金额-运费)>0,按(微信支付金额-运费)*20%给上级代理返佣金
- be_total := float64(productOrder.PaiedPrice-productOrder.Freight) * float64(0.2)
- count := int64(math.Floor(be_total + 0.5))
- //beego.BeeLogger.Warn("count %d", count)
- remark := fmt.Sprintf("%s%s", wxUser.Nickname, "购物")
- if count > 0 {
- //发放佣金
- inviteOrder := new(user_model.InviteOrder).Create(benefitWxUser.Id, wxUser.Id, wxUser.Id, count, productOrder.TotalPrice, user_model.SOURCE_PRODUCT_BENEFIT, productOrder.OrderId)
- s := balance_model.CASH_SOURCE_PRODUCT_BENEFIT
- cb := balance_model.GetCashBalanceByWxUIdAndRIdAndSource(benefitWxUser.Id, productOrder.OrderId, s)
- if cb == nil {
- cb = new(balance_model.CashBalance).Create(inviteOrder.BenefitWxUId, count, s, productOrder.OrderId, remark)
- if cb != nil {
- //标志进账
- inviteOrder.IsEnterBalance = true
- inviteOrder.EnterTime = cb.CreatedAt
- inviteOrder.Save()
- }
- }
- }
- }
- } else if source == user_model.BALANCE_BENEFIT {
- balanceOrder := balance_model.GetBalanceOrderByOId(orderId, false)
- if balanceOrder == nil {
- return
- }
- //下线充值,上线获得540返利
- if benefitWxUser != nil {
- count := int64(0)
- //读取上级配置收益比例
- if balanceOrder.PaiedPrice >= base_config.GetBuyCash() {
- be_total := balanceOrder.PaiedPrice * base_config.GetCashAward()
- count = be_total / int64(100)
- }
- if count > 0 {
- inviteOrder := new(user_model.InviteOrder).Create(benefitWxUser.Id, wxUser.Id, wxUser.Id, count, balanceOrder.TotalPrice, user_model.BALANCE_BENEFIT, balanceOrder.OrderId)
- //发放现金佣金
- s := balance_model.BALANCE_SOURCE_BENEFIT
- remark := fmt.Sprintf("%s%s", wxUser.Nickname, "充值提货券")
- b := balance_model.GetCashBalanceByWxUIdAndRIdAndSource(benefitWxUser.Id, balanceOrder.OrderId, s)
- if b == nil {
- b = new(balance_model.CashBalance).Create(inviteOrder.BenefitWxUId, count, s, balanceOrder.OrderId, remark)
- if b != nil {
- //标志进账
- inviteOrder.IsEnterBalance = true
- inviteOrder.EnterTime = b.CreatedAt
- inviteOrder.Save()
- }
- }
- }
- }
- }
- }
- func ShopSendInviterBenefit(wxUser *user_model.WxUser, orderId, source string) {
- //非群主店铺专区不能下单
- if wxUser == nil || wxUser.Rank != int64(2) {
- return
- }
- //店长购物给上级返佣8%
- benefitWxUser := FindInviter(wxUser)
- if benefitWxUser == nil || benefitWxUser.Id == int64(1) {
- return
- }
- //beego.BeeLogger.Warn("shop_benefitWxUser: %s", benefitWxUser)
- //beego.BeeLogger.Warn("shop_newSendInviterBenefit:%v,%v,%s", wxUser, benefitWxUser, orderId)
- if source == user_model.SOURCE_PRODUCT_BENEFIT {
- productOrder := order_model.GetOrderById(orderId, false)
- if productOrder == nil || productOrder.OrderType != order_model.ORDER_TYPE_SHOP {
- return
- }
- if benefitWxUser != nil {
- //不扣提货券,只计算8%佣金
- count := int64(math.Floor(float64(productOrder.TotalPrice) * order_model.SHOP_BENETFIT_BL))
- remark := fmt.Sprintf("%s%s", wxUser.Nickname, "店铺专区购物")
- //发放佣金
- inviteOrder := new(user_model.InviteOrder).Create(benefitWxUser.Id, wxUser.Id, wxUser.Id, count, productOrder.TotalPrice, user_model.SOURCE_PRODUCT_BENEFIT, productOrder.OrderId)
- s := balance_model.CASH_SOURCE_PRODUCT_BENEFIT
- cb := balance_model.GetCashBalanceByWxUIdAndRIdAndSource(benefitWxUser.Id, productOrder.OrderId, s)
- if cb == nil {
- cb = new(balance_model.CashBalance).Create(inviteOrder.BenefitWxUId, count, s, productOrder.OrderId, remark)
- if cb != nil {
- //标志进账
- inviteOrder.IsEnterBalance = true
- inviteOrder.EnterTime = cb.CreatedAt
- inviteOrder.Save()
- }
- }
- }
- }
- }
|