Bladeren bron

add inviter first send cent

abiao 5 jaren geleden
bovenliggende
commit
f55e160f48

+ 7 - 0
go/gopath/src/fohow.com/apps/controllers/permit_controller/permit_controller.go

@@ -54,6 +54,7 @@ func (self *PermitController) XcxAuthorize() {
 	channel, _ := self.GetInt64("channel", 0)
 	// beego.BeeLogger.Warn("XcxAuthorize userinfo: %s", params)
 	inviteId, _ := self.GetInt64("invite_id", 0)
+	first := false
 	beego.BeeLogger.Warn("XcxAuthorize inviteId: %d", inviteId)
 	type UserInfo struct {
 		NickName  string `json:"nickName"`  // 用户的昵称
@@ -121,6 +122,8 @@ func (self *PermitController) XcxAuthorize() {
 	if wxUser != nil {
 		wxUser.Openid = encryptedData.OpenId
 	} else {
+		//首次授权
+		first = true
 		introUserId := int64(1)
 		if inviteId == int64(0) {
 			inviteId = int64(1)
@@ -162,6 +165,10 @@ func (self *PermitController) XcxAuthorize() {
 	if wxUser != nil {
 		self.SetSession(apps.SessionWxUserKey, wxUser.Id)
 	}
+	//赠送积分
+	if first {
+		go helpers.SendCent(wxUser.Id, inviteId)
+	}
 	// 如果微信用户已绑定手机,则找出userId,并且赋值给session[userId]
 	if wxUser != nil && wxUser.UserId > 0 {
 		user := user_model.GetUserById(wxUser.UserId, false)

+ 44 - 0
go/gopath/src/fohow.com/apps/helpers/cent_helper.go

@@ -0,0 +1,44 @@
+package helpers
+
+import (
+	"fmt"
+	"github.com/astaxie/beego"
+
+	"fohow.com/apps/models/cent_model"
+	"fohow.com/apps/models/user_model"
+	// "st.com/libs/wx_mp"
+)
+
+//首次登录发放积分
+func SendCent(loginedWxUId, ivId int64) {
+	beego.BeeLogger.Warn("******* SendCent wxid:%d, ivId:%d", loginedWxUId, ivId)
+	// 不能设置自己为邀请人, 且没有下级
+	wxUser := user_model.GetWxUserById(loginedWxUId, false)
+	if wxUser != nil && wxUser.Id != ivId {
+		inviter := user_model.GetWxUserById(ivId, true)
+		if inviter == nil {
+			beego.BeeLogger.Error("wxUser SetInviter(%d) inviter not exsit", ivId)
+			return
+		}
+		//登录会员发放积分
+		s := cent_model.FIRST_LOGIN
+		centAward := cent_model.GetCentAwardByCtype(s, true)
+		if centAward == nil {
+			return
+		}
+		count := centAward.Count
+		remark := fmt.Sprintf("首次登录,赠送积分:%d", count)
+		c := new(cent_model.CentBalance).Create(wxUser.Id, count, s, s, remark)
+		if c != nil && ivId > 0 {
+			s := cent_model.NEW_MAN
+			centAward := cent_model.GetCentAwardByCtype(s, true)
+			if centAward == nil {
+				return
+			}
+			count := centAward.Count
+			remark := fmt.Sprintf("分享好友%s注册成功,赠送积分:%d", wxUser.Nickname, count)
+			new(cent_model.CentBalance).Create(inviter.Id, count, s, s, remark)
+		}
+		beego.BeeLogger.Info("Wxuser SendCent  wxUserId:%d, inviteId:%d", wxUser.Id, wxUser.InviteId)
+	}
+}