|
|
@@ -8,24 +8,19 @@ import (
|
|
|
|
|
|
"fohow.com/apps"
|
|
|
"fohow.com/apps/helpers"
|
|
|
- "fohow.com/apps/models/base_config"
|
|
|
"fohow.com/libs/lib_redis"
|
|
|
- "math"
|
|
|
-
|
|
|
// "fohow.com/apps/models/balance_model"
|
|
|
// "fohow.com/apps/models/project_join_model"
|
|
|
// "fohow.com/apps/models/project_model"
|
|
|
"fohow.com/apps/models/balance_model"
|
|
|
"fohow.com/apps/models/order_model"
|
|
|
"fohow.com/apps/models/pay_model"
|
|
|
- "fohow.com/cache"
|
|
|
"fohow.com/libs/wx_mp"
|
|
|
"github.com/astaxie/beego"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
- //"fohow.com/apps/models/product_model"
|
|
|
- "fmt"
|
|
|
+
|
|
|
"fohow.com/apps/models/user_model"
|
|
|
)
|
|
|
|
|
|
@@ -122,15 +117,9 @@ func (self *PayController) wxPayBalanceAsync() {
|
|
|
self.Ctx.WriteString(wx_mp.MapToXmlString(notifyResponse))
|
|
|
return
|
|
|
}
|
|
|
- go recharge(order.WxUserId, order.UserId, order.TotalPrice, order.OrderId)
|
|
|
- wxUser := user_model.GetWxUserById(order.WxUserId, false)
|
|
|
- if wxUser != nil {
|
|
|
- newSendInviterBenefit(wxUser, order.OrderId, user_model.BALANCE_BENEFIT)
|
|
|
- }
|
|
|
- if totalFee >= base_config.GetBuyCash() && wxUser.ShowInviteMode != 1 {
|
|
|
- //升级群主
|
|
|
- UpdateIntroUser(wxUser)
|
|
|
- }
|
|
|
+
|
|
|
+ // 发放充值佣金
|
|
|
+ go helpers.PatchRechargeBalance(order.Id, totalFee)
|
|
|
|
|
|
notifyResponse["return_code"] = wx_mp.PAY_SUCCESS
|
|
|
//beego.BeeLogger.Warn("小程序购买提货券微信支付回调通知,订单编号=%s 订单状态=%d", order.OrderId, order.State)
|
|
|
@@ -139,148 +128,6 @@ func (self *PayController) wxPayBalanceAsync() {
|
|
|
|
|
|
}
|
|
|
|
|
|
-//升级群主
|
|
|
-func UpdateIntroUser(wxUser *user_model.WxUser) {
|
|
|
-
|
|
|
- if wxUser == nil || wxUser.ShowInviteMode == int64(1) {
|
|
|
- return
|
|
|
- }
|
|
|
- //升级群主,打开推广模块
|
|
|
- wxUser.ShowInviteMode = int64(1)
|
|
|
- wxUser.Rank = int64(1)
|
|
|
- wxUser.PartnerTime = time.Now().Unix()
|
|
|
- wxUser.Save()
|
|
|
- //更改下级群主关系
|
|
|
- inviteList := user_model.GetWxUsersByInviteIdAll(wxUser.Id, false)
|
|
|
- go user_model.UpdateClass(inviteList, wxUser.Id, wxUser.IntroUserId)
|
|
|
- //消除user,wxuser缓存
|
|
|
- userKey := fmt.Sprintf("user.GetByUid[%d]", wxUser.UserId)
|
|
|
- wxUserKey := cache.GetKey(cache.GetWxUserById, wxUser.Id)
|
|
|
- cache.Cache.Delete(userKey)
|
|
|
- cache.Cache.Delete(wxUserKey)
|
|
|
-}
|
|
|
-
|
|
|
-func FindInviter(wxUser *user_model.WxUser) *user_model.WxUser {
|
|
|
- inviter := user_model.GetWxUserById(wxUser.InviteId, false)
|
|
|
- if inviter == nil {
|
|
|
- return nil
|
|
|
- }
|
|
|
- if inviter.ShowInviteMode == int64(1) {
|
|
|
- return inviter
|
|
|
- } else {
|
|
|
- return FindInviter(inviter)
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func newSendInviterBenefit(wxUser *user_model.WxUser, orderId, source string) {
|
|
|
-
|
|
|
- //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)
|
|
|
- //发放一级收益, 上级群主返利540
|
|
|
- if balanceOrder.PaiedPrice == base_config.GetBuyCash() {
|
|
|
- count = base_config.GetCashAward()
|
|
|
- }
|
|
|
- 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()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
//微信购买商品
|
|
|
func (self *PayController) wxPayExchangeAsync() {
|
|
|
var notifyResponse = map[string]string{
|
|
|
@@ -337,9 +184,9 @@ func (self *PayController) wxPayExchangeAsync() {
|
|
|
//go notice()
|
|
|
wxUser := user_model.GetWxUserById(order.WxUserId, true)
|
|
|
if order.OrderType == order_model.ORDER_TYPE_NORMAL {
|
|
|
- go newSendInviterBenefit(wxUser, order.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
|
|
|
+ go helpers.NewSendInviterBenefit(wxUser, order.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
|
|
|
} else if order.OrderType == order_model.ORDER_TYPE_SHOP {
|
|
|
- go shopSendInviterBenefit(wxUser, order.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
|
|
|
+ go helpers.ShopSendInviterBenefit(wxUser, order.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
|
|
|
}
|
|
|
|
|
|
//发放赠品
|