1.优化会员邀请流程;
2.修改登录接口,登录时通过手机号判断用户;
This commit is contained in:
parent
7f8d1ba8e7
commit
343e486176
|
@ -70,7 +70,8 @@ func AuthLogin(c *gin.Context) {
|
||||||
//fmt.Println("用户信息 userInfo:", userInfo)
|
//fmt.Println("用户信息 userInfo:", userInfo)
|
||||||
|
|
||||||
var user = model.User{}
|
var user = model.User{}
|
||||||
sqlErr := model.NewUserQuerySet(model.DB).WxOpenIDEq(resp.OpenID).One(&user)
|
//sqlErr := model.NewUserQuerySet(model.DB).WxOpenIDEq(resp.OpenID).One(&user)
|
||||||
|
sqlErr := model.NewUserQuerySet(model.DB).TelEq(phone.PhoneNumber).One(&user)
|
||||||
if sqlErr != nil && sqlErr != model.RecordNotFound {
|
if sqlErr != nil && sqlErr != model.RecordNotFound {
|
||||||
logger.Error("WxOpenIDEq:", sqlErr)
|
logger.Error("WxOpenIDEq:", sqlErr)
|
||||||
RespJson(c, status.DBOperateError, nil)
|
RespJson(c, status.DBOperateError, nil)
|
||||||
|
@ -79,7 +80,6 @@ func AuthLogin(c *gin.Context) {
|
||||||
|
|
||||||
fmt.Println("InviteUid:", req.InviteUid)
|
fmt.Println("InviteUid:", req.InviteUid)
|
||||||
nowTime := time.Now()
|
nowTime := time.Now()
|
||||||
|
|
||||||
if req.InviteUid != 0 && req.InviteUid != user.Uid && user.Uid != 0 { // 入参有邀请人id且非本人
|
if req.InviteUid != 0 && req.InviteUid != user.Uid && user.Uid != 0 { // 入参有邀请人id且非本人
|
||||||
inviteUser := model.GetUserByUid(req.InviteUid)
|
inviteUser := model.GetUserByUid(req.InviteUid)
|
||||||
effectiveStoreInfo, err := model.GetUserEffectiveStore(req.InviteUid)
|
effectiveStoreInfo, err := model.GetUserEffectiveStore(req.InviteUid)
|
||||||
|
@ -87,7 +87,6 @@ func AuthLogin(c *gin.Context) {
|
||||||
RespJson(c, status.InviteUserFail, nil)
|
RespJson(c, status.InviteUserFail, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//user.StoreId = uint64(effectiveStoreInfo.StoreID)
|
|
||||||
|
|
||||||
if user.StoreId == 0 && user.Uid != 0 { // 用户所属门店id为空则更新
|
if user.StoreId == 0 && user.Uid != 0 { // 用户所属门店id为空则更新
|
||||||
_, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(effectiveStoreInfo.StoreID).
|
_, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(effectiveStoreInfo.StoreID).
|
||||||
|
@ -98,6 +97,11 @@ func AuthLogin(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if inviteUser.UserType == 2 && user.Uid != 0 { // 店员邀请
|
if inviteUser.UserType == 2 && user.Uid != 0 { // 店员邀请
|
||||||
|
memberLevel := user.MemberLevel
|
||||||
|
if memberLevel == 0 {
|
||||||
|
memberLevel = model.MemberLevelUser // 普通会员
|
||||||
|
}
|
||||||
|
|
||||||
exist, err := model.QueryRecordExist(
|
exist, err := model.QueryRecordExist(
|
||||||
fmt.Sprintf("SELECT * FROM user_invite_record WHERE to_uid = %d AND from_uid = %d ",
|
fmt.Sprintf("SELECT * FROM user_invite_record WHERE to_uid = %d AND from_uid = %d ",
|
||||||
user.Uid, req.InviteUid))
|
user.Uid, req.InviteUid))
|
||||||
|
@ -111,18 +115,21 @@ func AuthLogin(c *gin.Context) {
|
||||||
ToUid: user.Uid,
|
ToUid: user.Uid,
|
||||||
FromUid: req.InviteUid,
|
FromUid: req.InviteUid,
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 2, // 激活邀请
|
Action: 2, // 没邀请过,则生成1条记录且后台可显示
|
||||||
SpendType: 1, // 未开通
|
SpendType: 1, // 未开通
|
||||||
MemberLevel: 0, // 0,未开通会员
|
MemberLevel: memberLevel, // 会员等级
|
||||||
First: 1, // 首次
|
First: 1, // 首次
|
||||||
Scan: 1, // 扫码次数
|
Scan: 1, // 扫码次数
|
||||||
ActionTime: nowTime, // 激活时间
|
ActionTime: nowTime, // 激活时间
|
||||||
}
|
}
|
||||||
|
|
||||||
err = model.DB.Create(firstInviteRecord).Error
|
err = model.DB.Create(firstInviteRecord).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("create user invite record err:", err)
|
logger.Error("create user invite record err:", err)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
// 如果用户还未开通会员,此时首次扫某个店员的码,需要再多生成1条记录
|
||||||
|
if user.MemberLevel == model.MemberLevelConsumer || user.MemberLevel == model.MemberLevelUser {
|
||||||
// 已经邀请过,则更新扫码记录
|
// 已经邀请过,则更新扫码记录
|
||||||
inviteRecord := &model.UserInviteRecord{
|
inviteRecord := &model.UserInviteRecord{
|
||||||
ToUid: user.Uid,
|
ToUid: user.Uid,
|
||||||
|
@ -130,7 +137,7 @@ func AuthLogin(c *gin.Context) {
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 1, // 未激活
|
Action: 1, // 未激活
|
||||||
SpendType: 1, // 未开通
|
SpendType: 1, // 未开通
|
||||||
MemberLevel: 0,
|
MemberLevel: memberLevel, // 会员等级
|
||||||
First: 0,
|
First: 0,
|
||||||
Scan: 1,
|
Scan: 1,
|
||||||
ActionTime: nowTime,
|
ActionTime: nowTime,
|
||||||
|
@ -139,10 +146,16 @@ func AuthLogin(c *gin.Context) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("create user invite record err:", err)
|
logger.Error("create user invite record err:", err)
|
||||||
}
|
}
|
||||||
|
firstInviteRecord.ID = inviteRecord.ID
|
||||||
|
}
|
||||||
|
|
||||||
// UserInvite 邀请主要
|
// UserInvite 邀请主要
|
||||||
var inviteNew model.UserInvite
|
var inviteNew model.UserInvite
|
||||||
inviteErr := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).FromUidEq(req.InviteUid).ActionEq(1).
|
//inviteErr := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).FromUidEq(req.InviteUid).ActionEq(1).
|
||||||
SpendTypeEq(1).One(&inviteNew) // action:1-未激活 spend_type:1-未开通
|
// SpendTypeEq(1).One(&inviteNew) // action:1-未激活 spend_type:1-未开通
|
||||||
|
|
||||||
|
inviteErr := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).FromUidEq(req.InviteUid).
|
||||||
|
OrderDescByCreatedAt().Limit(1).One(&inviteNew)
|
||||||
if inviteErr != nil && inviteErr != model.RecordNotFound {
|
if inviteErr != nil && inviteErr != model.RecordNotFound {
|
||||||
// 是否存在未开通
|
// 是否存在未开通
|
||||||
logger.Error("user invite err:", err)
|
logger.Error("user invite err:", err)
|
||||||
|
@ -150,10 +163,6 @@ func AuthLogin(c *gin.Context) {
|
||||||
fmt.Println("inviteErr:", inviteErr)
|
fmt.Println("inviteErr:", inviteErr)
|
||||||
fmt.Printf("inviteNew:%#v \n", inviteNew)
|
fmt.Printf("inviteNew:%#v \n", inviteNew)
|
||||||
if inviteErr == model.RecordNotFound { // 邀请表没记录
|
if inviteErr == model.RecordNotFound { // 邀请表没记录
|
||||||
memberLevel := user.MemberLevel
|
|
||||||
if memberLevel == 0 {
|
|
||||||
memberLevel = model.MemberLevelUser // 普通会员
|
|
||||||
}
|
|
||||||
invite := &model.UserInvite{
|
invite := &model.UserInvite{
|
||||||
FromUid: req.InviteUid, // 邀请人用户id
|
FromUid: req.InviteUid, // 邀请人用户id
|
||||||
UserType: inviteUser.UserType, // 邀请人用户类型
|
UserType: inviteUser.UserType, // 邀请人用户类型
|
||||||
|
@ -162,35 +171,56 @@ func AuthLogin(c *gin.Context) {
|
||||||
MemberType: memberLevel, // 被邀请用户类型
|
MemberType: memberLevel, // 被邀请用户类型
|
||||||
MemberStatus: 1, // 被邀请用户会员状态 1-未开通
|
MemberStatus: 1, // 被邀请用户会员状态 1-未开通
|
||||||
ToUid: user.Uid, // 被邀请用户id
|
ToUid: user.Uid, // 被邀请用户id
|
||||||
Action: 1, // 未激活
|
Action: 1, // 开通会员
|
||||||
SpendType: 1, // 未开通
|
SpendType: 1, // 未开通
|
||||||
UserInviteRecordId: inviteRecord.ID, // 邀请记录id
|
UserInviteRecordId: firstInviteRecord.ID, // 邀请记录id
|
||||||
FirstInvite: 1, // 首次邀请标志:1 首次邀请 0 非首次
|
FirstInvite: 1, // 首次邀请标志:1 首次邀请 0 非首次
|
||||||
Scan: 1, // 扫码次数
|
Scan: 1, // 扫码次数
|
||||||
}
|
}
|
||||||
fmt.Println("创建邀请:", invite)
|
fmt.Println("创建邀请:", invite)
|
||||||
//count, err := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.InviteUid).ToUidEq(user.Uid).Count()
|
|
||||||
//if err != nil {
|
if user.MemberLevel == model.MemberLevelGold || user.MemberLevel == model.MemberLevelPeriod ||
|
||||||
// logger.Error(err)
|
user.MemberLevel == model.MemberLevelPlatinum || user.MemberLevel == model.MemberLevelBlackGold {
|
||||||
// RespJson(c, status.InternalServerError, nil)
|
invite.RenewHide = 1
|
||||||
// return
|
invite.Action = 2 // 续费会员
|
||||||
//}
|
}
|
||||||
//if count == 0 {
|
|
||||||
//}
|
|
||||||
if err := invite.Create(model.DB); err != nil {
|
if err := invite.Create(model.DB); err != nil {
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//// 已经邀请过,则更新扫码记录
|
||||||
|
//inviteRecord := &model.UserInviteRecord{
|
||||||
|
// ToUid: user.Uid,
|
||||||
|
// FromUid: req.InviteUid,
|
||||||
|
// StoreId: effectiveStoreInfo.StoreID,
|
||||||
|
// Action: 1, // 未激活
|
||||||
|
// SpendType: 1, // 未开通
|
||||||
|
// MemberLevel: memberLevel, // 会员等级
|
||||||
|
// First: 0,
|
||||||
|
// Scan: 1,
|
||||||
|
// ActionTime: nowTime,
|
||||||
|
//}
|
||||||
|
//if user.MemberLevel == model.MemberLevelGold || user.MemberLevel == model.MemberLevelPeriod ||
|
||||||
|
// user.MemberLevel == model.MemberLevelPlatinum || user.MemberLevel == model.MemberLevelBlackGold {
|
||||||
|
// inviteRecord.Action = 2 // 激活后邀请
|
||||||
|
//}
|
||||||
|
//err = model.DB.Create(inviteRecord).Error
|
||||||
|
//if err != nil {
|
||||||
|
// logger.Error("create user invite record err:", err)
|
||||||
|
//}
|
||||||
|
|
||||||
if inviteErr == nil { // 邀请表有记录则更新邀请记录ID
|
} else { // 邀请过,则更新邀请时间
|
||||||
//err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater().
|
var inviteNew model.UserInvite
|
||||||
// SetFromUid(req.InviteUid).SetStoreId(inviteUser.StoreId).SetUserInviteRecordId(inviteRecord.ID).Update()
|
inviteErr := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).FromUidEq(req.InviteUid).
|
||||||
err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater().SetCreatedAt(nowTime).
|
OrderDescByCreatedAt().Limit(1).One(&inviteNew)
|
||||||
SetUserInviteRecordId(inviteRecord.ID).Update()
|
if inviteErr == nil {
|
||||||
|
err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater().SetCreatedAt(nowTime).Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("from uid update user invite err:", err, req.InviteUid)
|
logger.Error("NewUserInviteQuerySet err:", err, req.InviteUid)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -247,7 +277,7 @@ func AuthLogin(c *gin.Context) {
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 2, // 激活邀请
|
Action: 2, // 激活邀请
|
||||||
SpendType: 1, // 未开通
|
SpendType: 1, // 未开通
|
||||||
MemberLevel: 0, // 未开通会员
|
MemberLevel: model.MemberLevelUser, // 普通会员
|
||||||
First: 1, // 首次邀请
|
First: 1, // 首次邀请
|
||||||
Scan: 1,
|
Scan: 1,
|
||||||
ActionTime: nowTime,
|
ActionTime: nowTime,
|
||||||
|
@ -263,7 +293,7 @@ func AuthLogin(c *gin.Context) {
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 1, // 1-未激活
|
Action: 1, // 1-未激活
|
||||||
SpendType: 1, // 未开通
|
SpendType: 1, // 未开通
|
||||||
MemberLevel: 0, // 未开通会员
|
MemberLevel: model.MemberLevelUser, // 普通会员
|
||||||
First: 0,
|
First: 0,
|
||||||
Scan: 1,
|
Scan: 1,
|
||||||
ActionTime: nowTime,
|
ActionTime: nowTime,
|
||||||
|
@ -762,6 +792,7 @@ func UserCodeToCoupon(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var inviteUid, inviteStoreId, userMemberLevel uint32
|
||||||
if len(req.Code) == 6 {
|
if len(req.Code) == 6 {
|
||||||
user := model.GetUserByUid(uc.Uid)
|
user := model.GetUserByUid(uc.Uid)
|
||||||
if user == nil {
|
if user == nil {
|
||||||
|
@ -776,6 +807,8 @@ func UserCodeToCoupon(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userMemberLevel = user.MemberLevel
|
||||||
|
|
||||||
//if user.OpenMemberTime.IsZero() {
|
//if user.OpenMemberTime.IsZero() {
|
||||||
// logger.Error("user is not member")
|
// logger.Error("user is not member")
|
||||||
// RespJson(c, status.UserNotMember, nil)
|
// RespJson(c, status.UserNotMember, nil)
|
||||||
|
@ -789,6 +822,8 @@ func UserCodeToCoupon(c *gin.Context) {
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
inviteUid = shopperPromotionCode.Uid
|
||||||
|
inviteStoreId = shopperPromotionCode.StoreId
|
||||||
|
|
||||||
//model.UserCoupon{}
|
//model.UserCoupon{}
|
||||||
|
|
||||||
|
@ -869,6 +904,97 @@ func UserCodeToCoupon(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 使用店员兑换码才产生邀请记录
|
||||||
|
logger.Info("666")
|
||||||
|
logger.Info("uc.Uid:", uc.Uid)
|
||||||
|
logger.Info("inviteUid:", inviteUid)
|
||||||
|
exist, err = model.QueryRecordExist(
|
||||||
|
fmt.Sprintf("SELECT * FROM user_invite_record WHERE to_uid = %d AND from_uid = %d ",
|
||||||
|
uc.Uid, inviteUid))
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("query err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logger.Info("exist:", exist)
|
||||||
|
if !exist { // 未邀请过,则添加邀请记录:首次邀请记录
|
||||||
|
firstInviteRecord := &model.UserInviteRecord{
|
||||||
|
ToUid: uc.Uid,
|
||||||
|
FromUid: inviteUid,
|
||||||
|
StoreId: uint64(inviteStoreId),
|
||||||
|
Action: 2, // 激活邀请
|
||||||
|
SpendType: 1, // 未开通
|
||||||
|
MemberLevel: userMemberLevel, // 会员等级
|
||||||
|
First: 1, // 首次
|
||||||
|
Scan: 1, // 扫码次数
|
||||||
|
ActionTime: time.Now(), // 激活时间
|
||||||
|
}
|
||||||
|
|
||||||
|
err = model.DB.Create(firstInviteRecord).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("create user invite record err:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 已经邀请过,则更新扫码记录
|
||||||
|
inviteRecord := &model.UserInviteRecord{
|
||||||
|
ToUid: uc.Uid,
|
||||||
|
FromUid: inviteUid,
|
||||||
|
StoreId: uint64(inviteStoreId),
|
||||||
|
Action: 1, // 未激活
|
||||||
|
SpendType: 1, // 未开通
|
||||||
|
MemberLevel: userMemberLevel, // 会员等级
|
||||||
|
First: 0,
|
||||||
|
Scan: 1,
|
||||||
|
ActionTime: time.Now(),
|
||||||
|
}
|
||||||
|
err = model.DB.Create(inviteRecord).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("create user invite record err:", err)
|
||||||
|
}
|
||||||
|
// UserInvite 邀请主要
|
||||||
|
var inviteNew model.UserInvite
|
||||||
|
inviteErr := model.NewUserInviteQuerySet(model.DB).ToUidEq(uc.Uid).FromUidEq(inviteUid).ActionEq(1).
|
||||||
|
SpendTypeEq(1).One(&inviteNew) // action:1-未激活 spend_type:1-未开通
|
||||||
|
if inviteErr != nil && inviteErr != model.RecordNotFound {
|
||||||
|
// 是否存在未开通
|
||||||
|
logger.Error("user invite err:", err)
|
||||||
|
}
|
||||||
|
logger.Info("inviteErr:", inviteErr)
|
||||||
|
fmt.Println("inviteErr:", inviteErr)
|
||||||
|
fmt.Printf("inviteNew:%#v \n", inviteNew)
|
||||||
|
if inviteErr == model.RecordNotFound { // 邀请表没记录
|
||||||
|
logger.Info("inviteErr == model.RecordNotFound")
|
||||||
|
invite := &model.UserInvite{
|
||||||
|
FromUid: inviteUid, // 邀请人用户id
|
||||||
|
UserType: 2, // 邀请人用户类型
|
||||||
|
StoreId: uint64(inviteStoreId), // 邀请人门店ID --- 邀请人如果有多家门店:优先取有效期短的门店,如果有效期相同则取门店id小的门店
|
||||||
|
MemberOpenTime: time.Time{}, // 开通会员时间
|
||||||
|
MemberType: userMemberLevel, // 被邀请用户类型
|
||||||
|
MemberStatus: 1, // 被邀请用户会员状态 1-未开通
|
||||||
|
ToUid: uc.Uid, // 被邀请用户id
|
||||||
|
Action: 1, // 未激活
|
||||||
|
SpendType: 1, // 未开通
|
||||||
|
UserInviteRecordId: inviteRecord.ID, // 邀请记录id
|
||||||
|
FirstInvite: 1, // 首次邀请标志:1 首次邀请 0 非首次
|
||||||
|
Scan: 1, // 扫码次数
|
||||||
|
}
|
||||||
|
fmt.Println("创建邀请:", invite)
|
||||||
|
if err := invite.Create(model.DB); err != nil {
|
||||||
|
logger.Error(err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if inviteErr == nil { // 邀请表有记录则更新邀请记录ID
|
||||||
|
logger.Info("inviteErr == nil")
|
||||||
|
err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater().SetCreatedAt(time.Now()).
|
||||||
|
SetUserInviteRecordId(inviteRecord.ID).Update()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("from uid update user invite err:", err, inviteStoreId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RespOK(c, nil)
|
RespOK(c, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,14 +6,6 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/codinl/go-logger"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"github.com/rs/zerolog/log"
|
|
||||||
"github.com/wechatpay-apiv3/wechatpay-go/core/auth/verifiers"
|
|
||||||
"github.com/wechatpay-apiv3/wechatpay-go/core/downloader"
|
|
||||||
"github.com/wechatpay-apiv3/wechatpay-go/core/notify"
|
|
||||||
"github.com/wechatpay-apiv3/wechatpay-go/services/payments"
|
|
||||||
wechatpayutils "github.com/wechatpay-apiv3/wechatpay-go/utils"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"mh-server/config"
|
"mh-server/config"
|
||||||
aliyun "mh-server/lib/ali"
|
aliyun "mh-server/lib/ali"
|
||||||
|
@ -26,6 +18,15 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/codinl/go-logger"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/core/auth/verifiers"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/core/downloader"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/core/notify"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/services/payments"
|
||||||
|
wechatpayutils "github.com/wechatpay-apiv3/wechatpay-go/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GameCardList(c *gin.Context) {
|
func GameCardList(c *gin.Context) {
|
||||||
|
@ -267,22 +268,14 @@ type (
|
||||||
//
|
//
|
||||||
// 微信推送支付通知
|
// 微信推送支付通知
|
||||||
func PushWXPayNotice(c *gin.Context) {
|
func PushWXPayNotice(c *gin.Context) {
|
||||||
fmt.Println("微信推送支付通知")
|
fmt.Println("微信推送支付通知-start")
|
||||||
body, err := ioutil.ReadAll(c.Request.Body)
|
body, err := ioutil.ReadAll(c.Request.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Error("xml Request.Body1:", string(body))
|
logger.Info("xml Request.Body1:", string(body))
|
||||||
var notifyInfo wxpay.WechatNotifyInfo
|
var notifyInfo wxpay.WechatNotifyInfo
|
||||||
//if err := c.ShouldBindXML(¬ify); err != nil {
|
|
||||||
// logger.Error(err)
|
|
||||||
// RespBodyXML(c, map[string]string{
|
|
||||||
// "return_code": "FAIL",
|
|
||||||
// })
|
|
||||||
// return
|
|
||||||
//}
|
|
||||||
|
|
||||||
err = xml.Unmarshal(body, ¬ifyInfo)
|
err = xml.Unmarshal(body, ¬ifyInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
|
@ -555,21 +548,27 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
|
|
||||||
// 邀请记录
|
// 邀请记录
|
||||||
var invite model.UserInvite
|
var invite model.UserInvite
|
||||||
//err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByID().Limit(1).One(&invite)
|
logger.Info("record.Uid:", record.Uid)
|
||||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
||||||
|
logger.Info("invite:", invite)
|
||||||
|
logger.Info("invite ID:", invite.ID)
|
||||||
if err != nil && err != model.RecordNotFound {
|
if err != nil && err != model.RecordNotFound {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
} else {
|
} else {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
//qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
|
logger.Info("111")
|
||||||
if invite.Action != 2 { // 2-激活邀请
|
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetUserEffectiveStore err:", err)
|
||||||
|
effectiveStoreInfo.StoreID = invite.StoreId
|
||||||
|
}
|
||||||
|
|
||||||
|
if invite.Action == 1 { // 1-未激活 用户首次开通
|
||||||
|
logger.Info("invite.Action == 1")
|
||||||
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
||||||
// SpendType 类型
|
|
||||||
//if user.MemberLevel != 2 {
|
|
||||||
// qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
|
||||||
//}
|
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode {
|
||||||
qs = qs.SetInviteForm(1)
|
qs = qs.SetInviteForm(1)
|
||||||
|
invite.RenewHide = 0
|
||||||
}
|
}
|
||||||
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
||||||
_, err = qs.SetMemberType(2).SetMemberStatus(2).
|
_, err = qs.SetMemberType(2).SetMemberStatus(2).
|
||||||
|
@ -581,16 +580,18 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
go func() {
|
go func() {
|
||||||
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
||||||
SetAction(2).SetSpendType(spendType).SetMemberLevel(record.MemberLevel).
|
SetAction(2).SetSpendType(spendType).SetMemberLevel(record.MemberLevel).
|
||||||
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).Update()
|
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).SetRenewHide(invite.RenewHide).Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("update user invite record err:", err)
|
logger.Error("update user invite record err:", err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
} else {
|
} else { // 续费会员-用户直接续费
|
||||||
|
logger.Info("invite.Action == 2")
|
||||||
inviteRecordNew := &model.UserInviteRecord{
|
inviteRecordNew := &model.UserInviteRecord{
|
||||||
ToUid: invite.ToUid,
|
ToUid: invite.ToUid,
|
||||||
FromUid: invite.FromUid,
|
//FromUid: invite.FromUid,
|
||||||
|
//StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 2,
|
Action: 2,
|
||||||
SpendType: spendType,
|
SpendType: spendType,
|
||||||
MemberLevel: record.MemberLevel,
|
MemberLevel: record.MemberLevel,
|
||||||
|
@ -598,6 +599,13 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
Scan: 0, // 自动生成
|
Scan: 0, // 自动生成
|
||||||
ActionTime: newTime,
|
ActionTime: newTime,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
|
}
|
||||||
|
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
||||||
|
inviteRecordNew.Scan = 1
|
||||||
|
inviteRecordNew.RenewHide = 0 // 店员干预续费
|
||||||
|
inviteRecordNew.FromUid = invite.FromUid
|
||||||
|
inviteRecordNew.StoreId = effectiveStoreInfo.StoreID
|
||||||
}
|
}
|
||||||
err = model.DB.Create(inviteRecordNew).Error
|
err = model.DB.Create(inviteRecordNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -605,15 +613,15 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
userInviteNew := &model.UserInvite{
|
userInviteNew := &model.UserInvite{
|
||||||
FromUid: invite.FromUid,
|
//FromUid: invite.FromUid,
|
||||||
UserType: invite.UserType,
|
//UserType: invite.UserType,
|
||||||
StoreId: invite.StoreId,
|
//StoreId: effectiveStoreInfo.StoreID,
|
||||||
//MemberOpenTime: invite.MemberOpenTime,
|
//MemberOpenTime: invite.MemberOpenTime,
|
||||||
|
//StoreType: invite.StoreType,
|
||||||
MemberOpenTime: time.Now(),
|
MemberOpenTime: time.Now(),
|
||||||
MemberType: 2,
|
MemberType: 2,
|
||||||
MemberStatus: 2,
|
MemberStatus: 2,
|
||||||
ToUid: invite.ToUid,
|
ToUid: invite.ToUid,
|
||||||
StoreType: invite.StoreType,
|
|
||||||
Action: 2,
|
Action: 2,
|
||||||
SpendType: spendType,
|
SpendType: spendType,
|
||||||
MemberLevel: record.MemberLevel,
|
MemberLevel: record.MemberLevel,
|
||||||
|
@ -621,9 +629,16 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
FirstInvite: 0,
|
FirstInvite: 0,
|
||||||
Scan: 0,
|
Scan: 0,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
}
|
}
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
||||||
|
userInviteNew.Scan = 1
|
||||||
|
userInviteNew.RenewHide = 0
|
||||||
userInviteNew.InviteForm = 1
|
userInviteNew.InviteForm = 1
|
||||||
|
userInviteNew.FromUid = invite.FromUid
|
||||||
|
userInviteNew.StoreId = effectiveStoreInfo.StoreID
|
||||||
|
userInviteNew.UserType = invite.UserType
|
||||||
|
userInviteNew.StoreType = invite.StoreType
|
||||||
}
|
}
|
||||||
err = model.DB.Create(userInviteNew).Error
|
err = model.DB.Create(userInviteNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -634,20 +649,6 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
if invite.FromUid != 0 {
|
if invite.FromUid != 0 {
|
||||||
inviteUser := model.GetUserByUid(invite.FromUid)
|
inviteUser := model.GetUserByUid(invite.FromUid)
|
||||||
if inviteUser != nil {
|
if inviteUser != nil {
|
||||||
//if inviteUser.UserType != 2 /*不是店员*/ && user.MemberLevel != 2 { // 邀请 新用户推送一次
|
|
||||||
// err = model.SendUserVm(inviteUser.Uid, record.MemberLevel, 1)
|
|
||||||
// if err != nil {
|
|
||||||
// logger.Error("send user vm err:", err)
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
if spendType == 2 { // 开通会员
|
|
||||||
//err = model.SendUserVm(user.Uid, record.MemberLevel, 0)
|
|
||||||
//if err != nil {
|
|
||||||
// logger.Error("send user vm err:", err)
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
openMemberChannel := model.OpenMemberChannelUserInvite
|
openMemberChannel := model.OpenMemberChannelUserInvite
|
||||||
userQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater()
|
userQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater()
|
||||||
|
|
||||||
|
@ -657,14 +658,24 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
|
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
|
||||||
SetCooperativeName(inviteUser.CooperativeName)
|
SetCooperativeName(inviteUser.CooperativeName)
|
||||||
|
|
||||||
|
effectiveStoreId := invite.StoreId
|
||||||
|
autoRenewFlag := true // 自动续费
|
||||||
|
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
||||||
|
effectiveStoreId = effectiveStoreInfo.StoreID
|
||||||
|
userQs = userQs.SetStoreId(effectiveStoreId) // 更新用户门店:邀请人的有效门店
|
||||||
|
autoRenewFlag = false // 店员干预续费
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Println("用户续费---")
|
fmt.Println("用户续费---")
|
||||||
model.AddCooperativeMemberRenewal(inviteUser.CooperativeBusinessId,
|
model.AddCooperativeMemberRenewal(inviteUser.CooperativeBusinessId,
|
||||||
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre))
|
uint32(effectiveStoreId), inviteUser.Uid, int(record.MemberLevel),
|
||||||
|
int(record.MemberGenre), autoRenewFlag)
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("用户开通------")
|
fmt.Println("用户开通------")
|
||||||
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
||||||
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre))
|
uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel),
|
||||||
|
int(record.MemberGenre))
|
||||||
|
userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -683,8 +694,6 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
logger.Error("send user vm err:", err)
|
logger.Error("send user vm err:", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if user.MemberLevel != 2 {
|
|
||||||
}
|
|
||||||
go func() {
|
go func() {
|
||||||
err = model.DB.Create(memberRecord).Error
|
err = model.DB.Create(memberRecord).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -907,10 +916,17 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
} else {
|
} else {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetUserEffectiveStore err:", err)
|
||||||
|
effectiveStoreInfo.StoreID = invite.StoreId
|
||||||
|
}
|
||||||
|
|
||||||
if invite.Action != 2 {
|
if invite.Action != 2 {
|
||||||
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode {
|
||||||
qs = qs.SetInviteForm(1)
|
qs = qs.SetInviteForm(1)
|
||||||
|
invite.RenewHide = 0
|
||||||
}
|
}
|
||||||
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
||||||
_, err = qs.SetMemberType(record.MemberLevel).SetMemberStatus(2).
|
_, err = qs.SetMemberType(record.MemberLevel).SetMemberStatus(2).
|
||||||
|
@ -922,7 +938,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
go func() {
|
go func() {
|
||||||
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
||||||
SetAction(2).SetSpendType(4).SetMemberLevel(record.MemberLevel).
|
SetAction(2).SetSpendType(4).SetMemberLevel(record.MemberLevel).
|
||||||
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).Update()
|
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).SetRenewHide(invite.RenewHide).Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("update user invite record err:", err)
|
logger.Error("update user invite record err:", err)
|
||||||
}
|
}
|
||||||
|
@ -932,6 +948,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
inviteRecordNew := &model.UserInviteRecord{
|
inviteRecordNew := &model.UserInviteRecord{
|
||||||
ToUid: invite.ToUid,
|
ToUid: invite.ToUid,
|
||||||
FromUid: invite.FromUid,
|
FromUid: invite.FromUid,
|
||||||
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 2,
|
Action: 2,
|
||||||
SpendType: 4,
|
SpendType: 4,
|
||||||
MemberLevel: record.MemberLevel,
|
MemberLevel: record.MemberLevel,
|
||||||
|
@ -939,6 +956,10 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
Scan: 0, // 自动生成
|
Scan: 0, // 自动生成
|
||||||
ActionTime: newTime,
|
ActionTime: newTime,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
|
}
|
||||||
|
if isShopAssistantCode {
|
||||||
|
inviteRecordNew.RenewHide = 0
|
||||||
}
|
}
|
||||||
err = model.DB.Create(inviteRecordNew).Error
|
err = model.DB.Create(inviteRecordNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -948,7 +969,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
userInviteNew := &model.UserInvite{
|
userInviteNew := &model.UserInvite{
|
||||||
FromUid: invite.FromUid,
|
FromUid: invite.FromUid,
|
||||||
UserType: invite.UserType,
|
UserType: invite.UserType,
|
||||||
StoreId: invite.StoreId,
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
//MemberOpenTime: invite.MemberOpenTime,
|
//MemberOpenTime: invite.MemberOpenTime,
|
||||||
MemberOpenTime: time.Now(),
|
MemberOpenTime: time.Now(),
|
||||||
MemberType: 2,
|
MemberType: 2,
|
||||||
|
@ -962,9 +983,11 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
FirstInvite: 0,
|
FirstInvite: 0,
|
||||||
Scan: 0,
|
Scan: 0,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
}
|
}
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode {
|
||||||
userInviteNew.InviteForm = 1
|
userInviteNew.InviteForm = 1
|
||||||
|
userInviteNew.RenewHide = 0
|
||||||
}
|
}
|
||||||
err = model.DB.Create(userInviteNew).Error
|
err = model.DB.Create(userInviteNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -981,15 +1004,20 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("用户升级---")
|
fmt.Println("用户升级---")
|
||||||
|
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetUserEffectiveStore err:", err)
|
||||||
|
effectiveStoreInfo.StoreID = invite.StoreId
|
||||||
|
}
|
||||||
// 统计用户升级的数量,方便前端展示
|
// 统计用户升级的数量,方便前端展示
|
||||||
// 分3种情况:1-店员干预(使用了店员兑换码兑换的优惠券)、2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
// 分3种情况:1-店员干预(使用了店员兑换码兑换的优惠券)、2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
||||||
// 3-自动续费(自己开通会员,原价or优惠券续费) 目前只有1算店员提成,正常1和2都会算;3不算提成
|
// 3-自动续费(自己开通会员,原价or优惠券续费) 目前只有1算店员提成,正常1和2都会算;3不算提成
|
||||||
if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券)
|
if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券)
|
||||||
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
||||||
uint32(invite.StoreId), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false)
|
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false)
|
||||||
} else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
} else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
||||||
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
||||||
uint32(invite.StoreId), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true)
|
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).GetUpdater().SetState(2).UpdateNum()
|
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).GetUpdater().SetState(2).UpdateNum()
|
||||||
|
@ -1208,7 +1236,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("create fund record err:", err)
|
logger.Error("create fund record err:", err)
|
||||||
}
|
}
|
||||||
logger.Debug("微信推动支付通知")
|
logger.Debug("微信推送支付通知-end")
|
||||||
ret.ReturnCode = "SUCCESS"
|
ret.ReturnCode = "SUCCESS"
|
||||||
RespBodyXML(c, ret)
|
RespBodyXML(c, ret)
|
||||||
}
|
}
|
||||||
|
@ -1233,9 +1261,10 @@ type HmPushWXPayNoticeReq struct {
|
||||||
SignType string `json:"sign_type" form:"sign_type"`
|
SignType string `json:"sign_type" form:"sign_type"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 微信推送支付通知
|
// HmPushWXPayNotice 河马付推送支付通知
|
||||||
func HmPushWXPayNotice(c *gin.Context) {
|
func HmPushWXPayNotice(c *gin.Context) {
|
||||||
fmt.Println("微信推送支付通知")
|
fmt.Println("河马付推送支付通知-start")
|
||||||
|
logger.Debug("河马付推送支付通知-start")
|
||||||
|
|
||||||
bankOrderNo := c.Query("bank_order_no")
|
bankOrderNo := c.Query("bank_order_no")
|
||||||
outOrderNo := c.Query("out_order_no")
|
outOrderNo := c.Query("out_order_no")
|
||||||
|
@ -1411,9 +1440,9 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
spendType = uint32(2)
|
spendType = uint32(2) // 2-开通会员
|
||||||
if !user.OpenMemberTime.IsZero() {
|
if !user.OpenMemberTime.IsZero() && user.MemberExpire.After(time.Now()) {
|
||||||
spendType = 3
|
spendType = 3 // 3-续费
|
||||||
}
|
}
|
||||||
isShopAssistantCode := false
|
isShopAssistantCode := false
|
||||||
|
|
||||||
|
@ -1459,9 +1488,9 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
if user.OpenMemberTime.IsZero() {
|
if user.OpenMemberTime.IsZero() {
|
||||||
//openMemberTime = user.OpenMemberTime
|
//openMemberTime = user.OpenMemberTime
|
||||||
userUpdateQs = userUpdateQs.SetOpenMemberTime(newTime).SetOpenMemberLevel(record.MemberLevel)
|
userUpdateQs = userUpdateQs.SetOpenMemberTime(newTime).SetOpenMemberLevel(record.MemberLevel)
|
||||||
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 1)
|
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 1) // 开通会员类型
|
||||||
} else {
|
} else {
|
||||||
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 2)
|
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 2) // 续费会员类型
|
||||||
}
|
}
|
||||||
_, err = userUpdateQs.UpdateNum()
|
_, err = userUpdateQs.UpdateNum()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1469,7 +1498,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if record.UserCouponId > 0 {
|
if record.UserCouponId > 0 { // 如果使用了会员优惠券,更新优惠券状态为2-已使用
|
||||||
err = model.NewUserCouponQuerySet(model.DB).IDEq(record.UserCouponId).GetUpdater().
|
err = model.NewUserCouponQuerySet(model.DB).IDEq(record.UserCouponId).GetUpdater().
|
||||||
SetState(2).SetUseTime(utils.Now()).Update()
|
SetState(2).SetUseTime(utils.Now()).Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1481,7 +1510,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("user coupon err:", err)
|
logger.Error("user coupon err:", err)
|
||||||
} else {
|
} else {
|
||||||
if userCoupon.Approach == 1 {
|
if userCoupon.Approach == 1 { // 当优惠券是通过店员兑换码获取,则创建邀请记录;此类用户是会员续费用户
|
||||||
isShopAssistantCode = true
|
isShopAssistantCode = true
|
||||||
err = model.StorePromotion(userCoupon.PromotionalSales, userCoupon.Uid, nil, &user)
|
err = model.StorePromotion(userCoupon.PromotionalSales, userCoupon.Uid, nil, &user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1493,7 +1522,6 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
|
|
||||||
// 邀请记录
|
// 邀请记录
|
||||||
var invite model.UserInvite
|
var invite model.UserInvite
|
||||||
//err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByID().Limit(1).One(&invite)
|
|
||||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
||||||
if err != nil && err != model.RecordNotFound {
|
if err != nil && err != model.RecordNotFound {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
|
@ -1505,11 +1533,12 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
effectiveStoreInfo.StoreID = invite.StoreId
|
effectiveStoreInfo.StoreID = invite.StoreId
|
||||||
}
|
}
|
||||||
|
|
||||||
if invite.Action != 2 { // 首次开通会员
|
if invite.Action == 1 { // 首次开通会员
|
||||||
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
||||||
|
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode {
|
||||||
qs = qs.SetInviteForm(1)
|
qs = qs.SetInviteForm(1)
|
||||||
|
invite.RenewHide = 0
|
||||||
}
|
}
|
||||||
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
||||||
_, err = qs.SetMemberType(2).SetMemberStatus(2).
|
_, err = qs.SetMemberType(2).SetMemberStatus(2).
|
||||||
|
@ -1521,7 +1550,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
go func() {
|
go func() {
|
||||||
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
||||||
SetAction(2).SetSpendType(spendType).SetMemberLevel(record.MemberLevel).
|
SetAction(2).SetSpendType(spendType).SetMemberLevel(record.MemberLevel).
|
||||||
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).Update()
|
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).SetRenewHide(invite.RenewHide).Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("update user invite record err:", err)
|
logger.Error("update user invite record err:", err)
|
||||||
}
|
}
|
||||||
|
@ -1530,8 +1559,8 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
} else { // 续费会员-用户直接续费
|
} else { // 续费会员-用户直接续费
|
||||||
inviteRecordNew := &model.UserInviteRecord{
|
inviteRecordNew := &model.UserInviteRecord{
|
||||||
ToUid: invite.ToUid,
|
ToUid: invite.ToUid,
|
||||||
FromUid: invite.FromUid,
|
//FromUid: invite.FromUid,
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
//StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 2,
|
Action: 2,
|
||||||
SpendType: spendType,
|
SpendType: spendType,
|
||||||
MemberLevel: record.MemberLevel,
|
MemberLevel: record.MemberLevel,
|
||||||
|
@ -1539,6 +1568,13 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
Scan: 0, // 自动生成
|
Scan: 0, // 自动生成
|
||||||
ActionTime: newTime,
|
ActionTime: newTime,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
|
}
|
||||||
|
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
||||||
|
inviteRecordNew.Scan = 1
|
||||||
|
inviteRecordNew.RenewHide = 0 // 店员干预续费
|
||||||
|
inviteRecordNew.FromUid = invite.FromUid
|
||||||
|
inviteRecordNew.StoreId = effectiveStoreInfo.StoreID
|
||||||
}
|
}
|
||||||
err = model.DB.Create(inviteRecordNew).Error
|
err = model.DB.Create(inviteRecordNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1546,25 +1582,32 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
userInviteNew := &model.UserInvite{
|
userInviteNew := &model.UserInvite{
|
||||||
FromUid: invite.FromUid,
|
//FromUid: invite.FromUid,
|
||||||
UserType: invite.UserType,
|
//UserType: invite.UserType,
|
||||||
StoreId: invite.StoreId,
|
//StoreId: effectiveStoreInfo.StoreID,
|
||||||
//MemberOpenTime: invite.MemberOpenTime,
|
//StoreType: invite.StoreType,
|
||||||
MemberOpenTime: time.Now(),
|
MemberOpenTime: time.Now(),
|
||||||
MemberType: 2,
|
MemberType: 2,
|
||||||
MemberStatus: 2,
|
MemberStatus: 2,
|
||||||
ToUid: invite.ToUid,
|
ToUid: invite.ToUid,
|
||||||
StoreType: invite.StoreType,
|
|
||||||
Action: 2,
|
Action: 2,
|
||||||
SpendType: spendType,
|
SpendType: spendType,
|
||||||
MemberLevel: record.MemberLevel,
|
MemberLevel: record.MemberLevel,
|
||||||
UserInviteRecordId: inviteRecordNew.ID,
|
UserInviteRecordId: inviteRecordNew.ID,
|
||||||
FirstInvite: 0,
|
FirstInvite: 0,
|
||||||
|
Scan: 0,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
|
//MemberOpenTime: invite.MemberOpenTime,
|
||||||
}
|
}
|
||||||
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
||||||
|
userInviteNew.Scan = 1
|
||||||
|
userInviteNew.RenewHide = 0
|
||||||
userInviteNew.InviteForm = 1
|
userInviteNew.InviteForm = 1
|
||||||
|
userInviteNew.FromUid = invite.FromUid
|
||||||
userInviteNew.StoreId = effectiveStoreInfo.StoreID
|
userInviteNew.StoreId = effectiveStoreInfo.StoreID
|
||||||
|
userInviteNew.UserType = invite.UserType
|
||||||
|
userInviteNew.StoreType = invite.StoreType
|
||||||
}
|
}
|
||||||
err = model.DB.Create(userInviteNew).Error
|
err = model.DB.Create(userInviteNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1573,37 +1616,49 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if invite.FromUid != 0 {
|
if invite.FromUid != 0 {
|
||||||
|
logger.Info("invite.FromUid != 0")
|
||||||
|
fmt.Println("invite.FromUid != 0")
|
||||||
inviteUser := model.GetUserByUid(invite.FromUid)
|
inviteUser := model.GetUserByUid(invite.FromUid)
|
||||||
if inviteUser != nil {
|
if inviteUser != nil {
|
||||||
openMemberChannel := model.OpenMemberChannelUserInvite
|
openMemberChannel := model.OpenMemberChannelUserInvite
|
||||||
userQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater()
|
userQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater()
|
||||||
|
|
||||||
|
logger.Info("userQs:", userQs)
|
||||||
|
fmt.Println("userQs:", userQs)
|
||||||
if inviteUser.UserType == 2 {
|
if inviteUser.UserType == 2 {
|
||||||
openMemberChannel = model.OpenMemberChannelStorePromotion
|
openMemberChannel = model.OpenMemberChannelStorePromotion
|
||||||
if !user.OpenMemberTime.IsZero() {
|
if !user.OpenMemberTime.IsZero() {
|
||||||
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
|
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
|
||||||
SetCooperativeName(inviteUser.CooperativeName)
|
SetCooperativeName(inviteUser.CooperativeName)
|
||||||
|
|
||||||
|
autoRenewFlag := true // 自动续费
|
||||||
effectiveStoreId := invite.StoreId
|
effectiveStoreId := invite.StoreId
|
||||||
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
|
||||||
effectiveStoreId = effectiveStoreInfo.StoreID
|
effectiveStoreId = effectiveStoreInfo.StoreID
|
||||||
|
userQs = userQs.SetStoreId(effectiveStoreId) // 更新用户门店:邀请人的有效门店
|
||||||
|
autoRenewFlag = false // 店员干预续费
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("用户续费---")
|
fmt.Println("用户续费---")
|
||||||
model.AddCooperativeMemberRenewal(inviteUser.CooperativeBusinessId,
|
model.AddCooperativeMemberRenewal(inviteUser.CooperativeBusinessId,
|
||||||
uint32(effectiveStoreId), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre))
|
uint32(effectiveStoreId), inviteUser.Uid, int(record.MemberLevel),
|
||||||
|
int(record.MemberGenre), autoRenewFlag)
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("用户开通------")
|
fmt.Println("用户开通------")
|
||||||
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
||||||
uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre))
|
uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre))
|
||||||
|
userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.Info("userQs UpdateNum start")
|
||||||
|
fmt.Println("userQs UpdateNum start")
|
||||||
_, err = userQs.SetOpenMemberChannel(openMemberChannel).UpdateNum()
|
_, err = userQs.SetOpenMemberChannel(openMemberChannel).UpdateNum()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
}
|
}
|
||||||
|
logger.Info("userQs UpdateNum end")
|
||||||
|
fmt.Println("userQs UpdateNum end")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1615,8 +1670,6 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
logger.Error("send user vm err:", err)
|
logger.Error("send user vm err:", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if user.MemberLevel != 2 {
|
|
||||||
}
|
|
||||||
go func() {
|
go func() {
|
||||||
err = model.DB.Create(memberRecord).Error
|
err = model.DB.Create(memberRecord).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1840,10 +1893,17 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
} else {
|
} else {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetUserEffectiveStore err:", err)
|
||||||
|
effectiveStoreInfo.StoreID = invite.StoreId
|
||||||
|
}
|
||||||
|
|
||||||
if invite.Action != 2 {
|
if invite.Action != 2 {
|
||||||
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode {
|
||||||
qs = qs.SetInviteForm(1)
|
qs = qs.SetInviteForm(1)
|
||||||
|
invite.RenewHide = 0
|
||||||
}
|
}
|
||||||
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
||||||
_, err = qs.SetMemberType(record.MemberLevel).SetMemberStatus(2).
|
_, err = qs.SetMemberType(record.MemberLevel).SetMemberStatus(2).
|
||||||
|
@ -1855,7 +1915,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
go func() {
|
go func() {
|
||||||
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
||||||
SetAction(2).SetSpendType(4).SetMemberLevel(record.MemberLevel).
|
SetAction(2).SetSpendType(4).SetMemberLevel(record.MemberLevel).
|
||||||
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).Update()
|
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).SetRenewHide(invite.RenewHide).Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("update user invite record err:", err)
|
logger.Error("update user invite record err:", err)
|
||||||
}
|
}
|
||||||
|
@ -1865,6 +1925,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
inviteRecordNew := &model.UserInviteRecord{
|
inviteRecordNew := &model.UserInviteRecord{
|
||||||
ToUid: invite.ToUid,
|
ToUid: invite.ToUid,
|
||||||
FromUid: invite.FromUid,
|
FromUid: invite.FromUid,
|
||||||
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
Action: 2,
|
Action: 2,
|
||||||
SpendType: 4,
|
SpendType: 4,
|
||||||
MemberLevel: record.MemberLevel,
|
MemberLevel: record.MemberLevel,
|
||||||
|
@ -1872,6 +1933,10 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
Scan: 0, // 自动生成
|
Scan: 0, // 自动生成
|
||||||
ActionTime: newTime,
|
ActionTime: newTime,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
|
}
|
||||||
|
if isShopAssistantCode {
|
||||||
|
inviteRecordNew.RenewHide = 0
|
||||||
}
|
}
|
||||||
err = model.DB.Create(inviteRecordNew).Error
|
err = model.DB.Create(inviteRecordNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1881,7 +1946,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
userInviteNew := &model.UserInvite{
|
userInviteNew := &model.UserInvite{
|
||||||
FromUid: invite.FromUid,
|
FromUid: invite.FromUid,
|
||||||
UserType: invite.UserType,
|
UserType: invite.UserType,
|
||||||
StoreId: invite.StoreId,
|
StoreId: effectiveStoreInfo.StoreID,
|
||||||
//MemberOpenTime: invite.MemberOpenTime,
|
//MemberOpenTime: invite.MemberOpenTime,
|
||||||
MemberOpenTime: time.Now(),
|
MemberOpenTime: time.Now(),
|
||||||
MemberType: 2,
|
MemberType: 2,
|
||||||
|
@ -1895,9 +1960,11 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
FirstInvite: 0,
|
FirstInvite: 0,
|
||||||
Scan: 0,
|
Scan: 0,
|
||||||
MemberGenre: record.MemberGenre,
|
MemberGenre: record.MemberGenre,
|
||||||
|
RenewHide: 1,
|
||||||
}
|
}
|
||||||
if isShopAssistantCode {
|
if isShopAssistantCode {
|
||||||
userInviteNew.InviteForm = 1
|
userInviteNew.InviteForm = 1
|
||||||
|
userInviteNew.RenewHide = 0
|
||||||
}
|
}
|
||||||
err = model.DB.Create(userInviteNew).Error
|
err = model.DB.Create(userInviteNew).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1914,15 +1981,21 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("用户升级---")
|
fmt.Println("用户升级---")
|
||||||
|
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetUserEffectiveStore err:", err)
|
||||||
|
effectiveStoreInfo.StoreID = invite.StoreId
|
||||||
|
}
|
||||||
|
|
||||||
// 统计用户升级的数量,方便前端展示
|
// 统计用户升级的数量,方便前端展示
|
||||||
// 分3种情况:1-店员干预(使用了店员兑换码兑换的优惠券)、2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
// 分3种情况:1-店员干预(使用了店员兑换码兑换的优惠券)、2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
||||||
// 3-自动续费(自己开通会员,原价or优惠券续费) 目前只有1算店员提成,正常1和2都会算;3不算提成
|
// 3-自动续费(自己开通会员,原价or优惠券续费) 目前只有1算店员提成,正常1和2都会算;3不算提成
|
||||||
if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券)
|
if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券)
|
||||||
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
||||||
uint32(invite.StoreId), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false)
|
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false)
|
||||||
} else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
} else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费(开通会员时有店员邀请,原价or优惠券续费)
|
||||||
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
|
||||||
uint32(invite.StoreId), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true)
|
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).GetUpdater().SetState(2).UpdateNum()
|
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).GetUpdater().SetState(2).UpdateNum()
|
||||||
|
@ -2136,7 +2209,7 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("create fund record err:", err)
|
logger.Error("create fund record err:", err)
|
||||||
}
|
}
|
||||||
logger.Debug("微信推动支付通知")
|
logger.Debug("河马付推送支付通知-end")
|
||||||
RespOK(c, "SUCCESS")
|
RespOK(c, "SUCCESS")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2288,7 +2361,7 @@ func PayCallBackHandle(notify wxpay.WechatNotifyInfo, payKey string) (string, er
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
sign = strings.ToUpper(sign)
|
sign = strings.ToUpper(sign)
|
||||||
logger.Error("微信推送支付通知 sign : payKey", sign, payKey)
|
logger.Info("微信推送支付通知 sign : payKey", sign, payKey)
|
||||||
return sign, err
|
return sign, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -957,6 +957,10 @@ func (o *UserInviteRecord) Delete(db *gorm.DB) error {
|
||||||
return db.Delete(o).Error
|
return db.Delete(o).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (qs UserInviteRecordQuerySet) Where(query string) UserInviteRecordQuerySet {
|
||||||
|
return qs.w(qs.db.Where(query))
|
||||||
|
}
|
||||||
|
|
||||||
// ActionEq is an autogenerated method
|
// ActionEq is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserInviteRecordQuerySet) ActionEq(action uint32) UserInviteRecordQuerySet {
|
func (qs UserInviteRecordQuerySet) ActionEq(action uint32) UserInviteRecordQuerySet {
|
||||||
|
|
|
@ -113,13 +113,13 @@ func GetMemberConfig(level uint32, genre uint32) (*MemberConfig, error) {
|
||||||
// 201: {
|
// 201: {
|
||||||
// MemberLever: 2,
|
// MemberLever: 2,
|
||||||
// MemberFee: 1,
|
// MemberFee: 1,
|
||||||
// MemberDeposit: 3,
|
// MemberDeposit: 1,
|
||||||
// CardMax: 1,
|
// CardMax: 1,
|
||||||
// },
|
// },
|
||||||
// 202: {
|
// 202: {
|
||||||
// MemberLever: 2,
|
// MemberLever: 2,
|
||||||
// MemberFee: 2,
|
// MemberFee: 2,
|
||||||
// MemberDeposit: 3,
|
// MemberDeposit: 1,
|
||||||
// CardMax: 1,
|
// CardMax: 1,
|
||||||
// },
|
// },
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -456,35 +456,35 @@ func (m *InviteMemberReport) AddPromotion(gdb *gorm.DB, memberLevel, memberGenre
|
||||||
switch memberGenre {
|
switch memberGenre {
|
||||||
case 200: // 年度黄金
|
case 200: // 年度黄金
|
||||||
sql = "UPDATE invite_member_report SET gold_count=gold_count+1 " +
|
sql = "UPDATE invite_member_report SET gold_count=gold_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.GoldCount = 1
|
m.GoldCount = 1
|
||||||
case 201: // 季度黄金
|
case 201: // 季度黄金
|
||||||
sql = "UPDATE invite_member_report SET gold_count_quarter=gold_count_quarter+1 " +
|
sql = "UPDATE invite_member_report SET gold_count_quarter=gold_count_quarter+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.GoldCountQuarter = 1
|
m.GoldCountQuarter = 1
|
||||||
case 202: // 半年黄金
|
case 202: // 半年黄金
|
||||||
sql = "UPDATE invite_member_report SET gold_count_half=gold_count_half+1 " +
|
sql = "UPDATE invite_member_report SET gold_count_half=gold_count_half+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.GoldCountHalf = 1
|
m.GoldCountHalf = 1
|
||||||
}
|
}
|
||||||
case 4:
|
case 4:
|
||||||
sql = "UPDATE invite_member_report SET platinum_count=platinum_count+1 " +
|
sql = "UPDATE invite_member_report SET platinum_count=platinum_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.PlatinumCount = 1
|
m.PlatinumCount = 1
|
||||||
case 5:
|
case 5:
|
||||||
sql = "UPDATE invite_member_report SET black_gold_count=black_gold_count+1 " +
|
sql = "UPDATE invite_member_report SET black_gold_count=black_gold_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.BlackGoldCount = 1
|
m.BlackGoldCount = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||||
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d AND uid=%d",
|
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d",
|
||||||
m.CooperativeBusinessId, dateString, m.StoreId, m.Uid))
|
m.CooperativeBusinessId, dateString, m.Uid))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("cooperative member promotion record exist err:", err)
|
logger.Error("cooperative member promotion record exist err:", err)
|
||||||
return err
|
return err
|
||||||
|
@ -517,7 +517,7 @@ func (m *CooperativeBusiness) SetAssistantMemberDeductConfig(storeId uint32) {
|
||||||
m.CooperativeAssistantMemberDeduct = &assistantDeductConfig
|
m.CooperativeAssistantMemberDeduct = &assistantDeductConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, memberLevel, memberGenre int) {
|
func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, memberLevel, memberGenre int, autoRenewFlag bool) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
|
@ -571,7 +571,11 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = inviteReport.AddRenewal(begin, memberLevel, memberGenre)
|
if autoRenewFlag { // 自动续费
|
||||||
|
err = inviteReport.AddRenewalAuto(begin, memberLevel, memberGenre)
|
||||||
|
} else { // 干预续费
|
||||||
|
err = inviteReport.AddRenewalInvite(begin, memberLevel, memberGenre)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
begin.Rollback()
|
begin.Rollback()
|
||||||
logger.Error("promotion add promotion err:", err)
|
logger.Error("promotion add promotion err:", err)
|
||||||
|
@ -780,7 +784,8 @@ func (m *CooperativeMemberPromotionStoreDay) AddRenewal(gdb *gorm.DB, memberLeve
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *InviteMemberReport) AddRenewal(gdb *gorm.DB, memberLevel, memberGenre int) error {
|
// AddRenewalAuto 用户自动续费后更新记录
|
||||||
|
func (m *InviteMemberReport) AddRenewalAuto(gdb *gorm.DB, memberLevel, memberGenre int) error {
|
||||||
dateString := utils.MonthDate()
|
dateString := utils.MonthDate()
|
||||||
if memberLevel < 0 {
|
if memberLevel < 0 {
|
||||||
return errors.New("member level err")
|
return errors.New("member level err")
|
||||||
|
@ -802,36 +807,36 @@ func (m *InviteMemberReport) AddRenewal(gdb *gorm.DB, memberLevel, memberGenre i
|
||||||
switch memberGenre {
|
switch memberGenre {
|
||||||
case 200: // 年度黄金
|
case 200: // 年度黄金
|
||||||
sql = "UPDATE invite_member_report SET renewal_gold_count=renewal_gold_count+1 " +
|
sql = "UPDATE invite_member_report SET renewal_gold_count=renewal_gold_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.RenewalGoldCount = 1
|
m.RenewalGoldCount = 1
|
||||||
case 201: // 季度黄金
|
case 201: // 季度黄金
|
||||||
sql = "UPDATE invite_member_report SET renewal_gold_count_quarter=renewal_gold_count_quarter+1 " +
|
sql = "UPDATE invite_member_report SET renewal_gold_count_quarter=renewal_gold_count_quarter+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.RenewalGoldCountQuarter = 1
|
m.RenewalGoldCountQuarter = 1
|
||||||
case 202: // 半年黄金
|
case 202: // 半年黄金
|
||||||
sql = "UPDATE invite_member_report SET renewal_gold_count_half=renewal_gold_count_half+1 " +
|
sql = "UPDATE invite_member_report SET renewal_gold_count_half=renewal_gold_count_half+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.RenewalGoldCountHalf = 1
|
m.RenewalGoldCountHalf = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
case 4:
|
case 4: // 白金
|
||||||
sql = "UPDATE invite_member_report SET renewal_platinum_count=renewal_platinum_count+1 " +
|
sql = "UPDATE invite_member_report SET renewal_platinum_count=renewal_platinum_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.RenewalPlatinumCount = 1
|
m.RenewalPlatinumCount = 1
|
||||||
case 5:
|
case 5: // 黑金
|
||||||
sql = "UPDATE invite_member_report SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
sql = "UPDATE invite_member_report SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.RenewalBlackGoldCount = 1
|
m.RenewalBlackGoldCount = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||||
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d AND uid=%d",
|
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d",
|
||||||
m.CooperativeBusinessId, dateString, m.StoreId, m.Uid))
|
m.CooperativeBusinessId, dateString, m.Uid))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("cooperative member promotion record exist err:", err)
|
logger.Error("cooperative member promotion record exist err:", err)
|
||||||
return err
|
return err
|
||||||
|
@ -854,6 +859,66 @@ func (m *InviteMemberReport) AddRenewal(gdb *gorm.DB, memberLevel, memberGenre i
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AddRenewalInvite 邀请用户续费后更新记录
|
||||||
|
func (m *InviteMemberReport) AddRenewalInvite(gdb *gorm.DB, memberLevel, memberGenre int) error {
|
||||||
|
dateString := utils.MonthDate()
|
||||||
|
if memberLevel < 0 {
|
||||||
|
return errors.New("member level err")
|
||||||
|
}
|
||||||
|
if gdb == nil {
|
||||||
|
gdb = DB
|
||||||
|
}
|
||||||
|
if m.StoreId == 0 {
|
||||||
|
return errors.New("store id is null")
|
||||||
|
}
|
||||||
|
if m.Uid == 0 {
|
||||||
|
return errors.New("uid is null")
|
||||||
|
}
|
||||||
|
m.Date = dateString
|
||||||
|
|
||||||
|
sql := ""
|
||||||
|
switch memberLevel {
|
||||||
|
case 2: // 黄金
|
||||||
|
sql = "UPDATE invite_member_report SET invite_renewal_gold_count=invite_renewal_gold_count+1 " +
|
||||||
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
|
m.InviteRenewalGoldCount = 1
|
||||||
|
case 4: // 白金
|
||||||
|
sql = "UPDATE invite_member_report SET invite_renewal_platinum_count=invite_renewal_platinum_count+1 " +
|
||||||
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
|
m.InviteRenewalPlatinumCount = 1
|
||||||
|
case 5: // 黑金
|
||||||
|
sql = "UPDATE invite_member_report SET invite_renewal_black_gold_count=invite_renewal_black_gold_count+1 " +
|
||||||
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
|
m.InviteRenewalBlackGoldCount = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||||
|
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d",
|
||||||
|
m.CooperativeBusinessId, dateString, m.Uid))
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("cooperative member promotion record exist err:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if exist {
|
||||||
|
err = gdb.Exec(sql).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("update cooperative member promotion err:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//m.State = PromotionStateUnSettlement
|
||||||
|
err = gdb.Create(m).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("create cooperative member promotion err:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// AddCooperativeMemberUpgrade 同步记录会员升级数量
|
// AddCooperativeMemberUpgrade 同步记录会员升级数量
|
||||||
func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMemberLevel uint32, memberLevel int, autoFlag bool) {
|
func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMemberLevel uint32, memberLevel int, autoFlag bool) {
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -1140,19 +1205,19 @@ func (m *InviteMemberReport) AddUpgrade(gdb *gorm.DB, beforeMemberLevel uint32,
|
||||||
switch memberLevel {
|
switch memberLevel {
|
||||||
case 4: // 白金:黄金->白金
|
case 4: // 白金:黄金->白金
|
||||||
sql = "UPDATE invite_member_report SET upgrade_gold_to_platinum_count=upgrade_gold_to_platinum_count+1 " +
|
sql = "UPDATE invite_member_report SET upgrade_gold_to_platinum_count=upgrade_gold_to_platinum_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.UpgradeGoldToPlatinumCount = 1
|
m.UpgradeGoldToPlatinumCount = 1
|
||||||
case 5: // 黑金
|
case 5: // 黑金
|
||||||
if beforeMemberLevel == 2 { // 黄金->黑金
|
if beforeMemberLevel == 2 { // 黄金->黑金
|
||||||
sql = "UPDATE invite_member_report SET upgrade_gold_to_black_count=upgrade_gold_to_black_count+1 " +
|
sql = "UPDATE invite_member_report SET upgrade_gold_to_black_count=upgrade_gold_to_black_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.UpgradeGoldToBlackCount = 1
|
m.UpgradeGoldToBlackCount = 1
|
||||||
} else { // 白金->黑金
|
} else { // 白金->黑金
|
||||||
sql = "UPDATE invite_member_report SET upgrade_platinum_to_black_count=upgrade_platinum_to_black_count+1 " +
|
sql = "UPDATE invite_member_report SET upgrade_platinum_to_black_count=upgrade_platinum_to_black_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.UpgradePlatinumToBlackCount = 1
|
m.UpgradePlatinumToBlackCount = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1160,27 +1225,27 @@ func (m *InviteMemberReport) AddUpgrade(gdb *gorm.DB, beforeMemberLevel uint32,
|
||||||
switch memberLevel {
|
switch memberLevel {
|
||||||
case 4: // 白金:黄金->白金
|
case 4: // 白金:黄金->白金
|
||||||
sql = "UPDATE invite_member_report SET invite_upgrade_gold_to_platinum_count=invite_upgrade_gold_to_platinum_count+1 " +
|
sql = "UPDATE invite_member_report SET invite_upgrade_gold_to_platinum_count=invite_upgrade_gold_to_platinum_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.InviteUpgradeGoldToPlatinumCount = 1
|
m.InviteUpgradeGoldToPlatinumCount = 1
|
||||||
case 5: // 黑金
|
case 5: // 黑金
|
||||||
if beforeMemberLevel == 2 { // 黄金->黑金
|
if beforeMemberLevel == 2 { // 黄金->黑金
|
||||||
sql = "UPDATE invite_member_report SET invite_upgrade_gold_to_black_count=invite_upgrade_gold_to_black_count+1 " +
|
sql = "UPDATE invite_member_report SET invite_upgrade_gold_to_black_count=invite_upgrade_gold_to_black_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.InviteUpgradeGoldToBlackCount = 1
|
m.InviteUpgradeGoldToBlackCount = 1
|
||||||
} else { // 白金->黑金
|
} else { // 白金->黑金
|
||||||
sql = "UPDATE invite_member_report SET invite_upgrade_platinum_to_black_count=invite_upgrade_platinum_to_black_count+1 " +
|
sql = "UPDATE invite_member_report SET invite_upgrade_platinum_to_black_count=invite_upgrade_platinum_to_black_count+1 " +
|
||||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
dateString, m.CooperativeBusinessId, m.Uid)
|
||||||
m.InviteUpgradePlatinumToBlackCount = 1
|
m.InviteUpgradePlatinumToBlackCount = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||||
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d AND uid=%d",
|
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d",
|
||||||
m.CooperativeBusinessId, dateString, m.StoreId, m.Uid))
|
m.CooperativeBusinessId, dateString, m.Uid))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("cooperative member promotion record exist err:", err)
|
logger.Error("cooperative member promotion record exist err:", err)
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -25,7 +25,7 @@ type UserInviteRecord struct {
|
||||||
ToUid uint32 `json:"to_uid"` // 用户ID
|
ToUid uint32 `json:"to_uid"` // 用户ID
|
||||||
FromUid uint32 `json:"from_uid"` // 邀请人ID
|
FromUid uint32 `json:"from_uid"` // 邀请人ID
|
||||||
StoreId uint64 `json:"store_id"` // 门店id 邀请用户门店
|
StoreId uint64 `json:"store_id"` // 门店id 邀请用户门店
|
||||||
Action uint32 `json:"action"` // 1-未激活 2-激活邀请
|
Action uint32 `json:"action"` // 1-未激活 2-激活邀请 表示:该条邀请是否被执行
|
||||||
SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级
|
SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级
|
||||||
MemberLevel uint32 `json:"member_level"` // 会员等级 0-未开通 1-普通 2-黄金 3-短期 4-白金 5-黑金
|
MemberLevel uint32 `json:"member_level"` // 会员等级 0-未开通 1-普通 2-黄金 3-短期 4-白金 5-黑金
|
||||||
MemberGenre uint32 `json:"member_genre"` // 会员类型 201-黄金季度 202-黄金半年
|
MemberGenre uint32 `json:"member_genre"` // 会员类型 201-黄金季度 202-黄金半年
|
||||||
|
|
393
model/user.go
393
model/user.go
|
@ -1,6 +1,7 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/codinl/go-logger"
|
"github.com/codinl/go-logger"
|
||||||
|
@ -9,6 +10,7 @@ import (
|
||||||
"mh-server/lib/utils"
|
"mh-server/lib/utils"
|
||||||
"mh-server/lib/wxpay"
|
"mh-server/lib/wxpay"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -20,7 +22,7 @@ type User struct {
|
||||||
Model
|
Model
|
||||||
|
|
||||||
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
|
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
|
||||||
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-黄金会员 4-白金会员 5-黑金会员
|
MemberLevel uint32 `json:"member_level"` // 当前会员等级:10-普通用户 1-普通会员 2-黄金会员 4-白金会员 5-黑金会员
|
||||||
MemberGenre uint32 `json:"member_genre"` // 会员类型
|
MemberGenre uint32 `json:"member_genre"` // 会员类型
|
||||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||||
OpenMemberTime time.Time `json:"open_member_time"` // 开通会员
|
OpenMemberTime time.Time `json:"open_member_time"` // 开通会员
|
||||||
|
@ -123,7 +125,7 @@ type UserInvite struct {
|
||||||
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
|
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
|
||||||
ToUid uint32 `json:"to_uid"` // 被邀请用户
|
ToUid uint32 `json:"to_uid"` // 被邀请用户
|
||||||
StoreType uint32 `json:"store_type"` // 门店类型 1-自有 2-合作商
|
StoreType uint32 `json:"store_type"` // 门店类型 1-自有 2-合作商
|
||||||
Action uint32 `json:"action"` // 1-未激活 2-激活邀请
|
Action uint32 `json:"action"` // 1-未激活 2-激活邀请 表示:该会员是开通还是续费
|
||||||
SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级 5-店员推广续费
|
SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级 5-店员推广续费
|
||||||
MemberLevel uint32 `json:"member_level"` // 会员等级
|
MemberLevel uint32 `json:"member_level"` // 会员等级
|
||||||
MemberGenre uint32 `json:"member_genre"` // 会员类型
|
MemberGenre uint32 `json:"member_genre"` // 会员类型
|
||||||
|
@ -131,7 +133,7 @@ type UserInvite struct {
|
||||||
FirstInvite uint32 `json:"first_invite"` // 首次邀请标志:1 首次邀请 0 非首次
|
FirstInvite uint32 `json:"first_invite"` // 首次邀请标志:1 首次邀请 0 非首次
|
||||||
Scan uint32 `json:"scan"` // 扫码
|
Scan uint32 `json:"scan"` // 扫码
|
||||||
InviteForm uint32 `json:"invite_form"` // 邀请方式: 1-店员邀请码续费
|
InviteForm uint32 `json:"invite_form"` // 邀请方式: 1-店员邀请码续费
|
||||||
RenewHide uint32 `json:"renew_hide"` // 自动续费
|
RenewHide uint32 `json:"renew_hide"` // 自动续费 1-自动 0-干预
|
||||||
//InviteTime time.Time `json:"invite_time"` // 邀请时间
|
//InviteTime time.Time `json:"invite_time"` // 邀请时间
|
||||||
ToUser *User `json:"to_user" gorm:"-"`
|
ToUser *User `json:"to_user" gorm:"-"`
|
||||||
|
|
||||||
|
@ -258,11 +260,18 @@ func GetUserByUid(uid uint32) *User {
|
||||||
return user
|
return user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const StoreDateTimeFormat = "2006.01.02"
|
||||||
|
|
||||||
// GetUserEffectiveStore 获取店员当前的有效门店(邀请客户时使用)
|
// GetUserEffectiveStore 获取店员当前的有效门店(邀请客户时使用)
|
||||||
func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) {
|
func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) {
|
||||||
user := new(SysUser)
|
user := new(SysUser)
|
||||||
if err := NewSysUserQuerySet(DB).UidEq(uid).One(user); err != nil {
|
if err := NewSysUserQuerySet(DB).UidEq(uid).One(user); err != nil {
|
||||||
logger.Error(err, uid)
|
logger.Error("Error:", err, "UID:", uid)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析门店数据
|
||||||
|
if err := json.Unmarshal([]byte(user.StoreData), &user.StoreList); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,18 +279,41 @@ func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) {
|
||||||
return nil, errors.New("no stores found")
|
return nil, errors.New("no stores found")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析 StoreList 并找到有效时间最短的门店
|
// 当前时间
|
||||||
sort.Slice(user.StoreList, func(i, j int) bool {
|
now := time.Now()
|
||||||
timeI, _ := time.Parse("2006.01.02", user.StoreList[i].ExpireTime)
|
|
||||||
timeJ, _ := time.Parse("2006.01.02", user.StoreList[j].ExpireTime)
|
// 过滤掉过期的门店
|
||||||
|
validStores := make([]StoreInfo, 0)
|
||||||
|
for _, store := range user.StoreList {
|
||||||
|
expireTime, err := time.Parse(StoreDateTimeFormat, store.ExpireTime)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("Error parsing time:", err, "ExpireTime:", store.ExpireTime)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// 包含当天有效时间
|
||||||
|
expireTime = expireTime.Add(24*time.Hour - time.Second)
|
||||||
|
if expireTime.After(now) {
|
||||||
|
validStores = append(validStores, store)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(validStores) == 0 {
|
||||||
|
return &StoreInfo{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按有效时间和 store_id 排序
|
||||||
|
sort.Slice(validStores, func(i, j int) bool {
|
||||||
|
timeI, _ := time.Parse(StoreDateTimeFormat, validStores[i].ExpireTime)
|
||||||
|
timeJ, _ := time.Parse(StoreDateTimeFormat, validStores[j].ExpireTime)
|
||||||
|
|
||||||
if timeI.Equal(timeJ) {
|
if timeI.Equal(timeJ) {
|
||||||
return user.StoreList[i].StoreID < user.StoreList[j].StoreID
|
return validStores[i].StoreID < validStores[j].StoreID
|
||||||
}
|
}
|
||||||
return timeI.Before(timeJ)
|
return timeI.Before(timeJ)
|
||||||
})
|
})
|
||||||
|
|
||||||
return &user.StoreList[0], nil
|
return &validStores[0], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserRentCard(uid uint32) *UserRentCard {
|
func GetUserRentCard(uid uint32) *UserRentCard {
|
||||||
|
@ -1227,99 +1259,100 @@ func StorePromotion(inviteUid, uid uint32, inviteUser, user *User) error {
|
||||||
logger.Error("user inviteUser is nil")
|
logger.Error("user inviteUser is nil")
|
||||||
return errors.New("user inviteUser is nil")
|
return errors.New("user inviteUser is nil")
|
||||||
}
|
}
|
||||||
nowTime := time.Now()
|
|
||||||
|
|
||||||
effectiveStoreInfo, err := GetUserEffectiveStore(inviteUid)
|
// 目前在领取优惠券的时候做了邀请记录,这里不再重复记录
|
||||||
if err != nil {
|
//if inviteUser.UserType == 2 && user.Uid != 0 { // 是店员邀请并且用户id不为空
|
||||||
return err
|
// nowTime := time.Now()
|
||||||
}
|
// effectiveStoreInfo, err := GetUserEffectiveStore(inviteUid)
|
||||||
|
// if err != nil {
|
||||||
if inviteUser.UserType == 2 && user.Uid != 0 { // 是店员邀请并且用户id不为空
|
// return err
|
||||||
exist, err := QueryRecordExist(
|
// }
|
||||||
fmt.Sprintf("SELECT * FROM user_invite_record WHERE to_uid = %d AND from_uid = %d ",
|
//
|
||||||
user.Uid, inviteUid))
|
// exist, err := QueryRecordExist(
|
||||||
if err != nil {
|
// fmt.Sprintf("SELECT * FROM user_invite_record WHERE to_uid = %d AND from_uid = %d ",
|
||||||
logger.Error("query err:", err)
|
// user.Uid, inviteUid))
|
||||||
return err
|
// if err != nil {
|
||||||
}
|
// logger.Error("query err:", err)
|
||||||
if !exist {
|
// return err
|
||||||
firstInviteRecord := &UserInviteRecord{
|
// }
|
||||||
ToUid: user.Uid,
|
// if !exist {
|
||||||
FromUid: inviteUid,
|
// firstInviteRecord := &UserInviteRecord{
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
// ToUid: user.Uid,
|
||||||
Action: 2, // 激活邀请
|
// FromUid: inviteUid,
|
||||||
SpendType: 1, // 未开通
|
// StoreId: effectiveStoreInfo.StoreID,
|
||||||
MemberLevel: 0, // 未开通会员
|
// Action: 2, // 激活邀请
|
||||||
First: 1, // 首次邀请
|
// SpendType: 1, // 未开通
|
||||||
Scan: 1,
|
// MemberLevel: 0, // 未开通会员
|
||||||
ActionTime: nowTime,
|
// First: 1, // 首次邀请
|
||||||
}
|
// Scan: 1,
|
||||||
err = DB.Create(firstInviteRecord).Error
|
// ActionTime: nowTime,
|
||||||
if err != nil {
|
// }
|
||||||
logger.Error("create user invite record err:", err)
|
// err = DB.Create(firstInviteRecord).Error
|
||||||
}
|
// if err != nil {
|
||||||
}
|
// logger.Error("create user invite record err:", err)
|
||||||
// 扫码记录
|
// }
|
||||||
inviteRecord := &UserInviteRecord{
|
// }
|
||||||
ToUid: user.Uid,
|
// // 扫码记录
|
||||||
FromUid: inviteUid,
|
// inviteRecord := &UserInviteRecord{
|
||||||
StoreId: effectiveStoreInfo.StoreID,
|
// ToUid: user.Uid,
|
||||||
Action: 1, // 未激活
|
// FromUid: inviteUid,
|
||||||
SpendType: 1, // 未开通
|
// StoreId: effectiveStoreInfo.StoreID,
|
||||||
MemberLevel: 0,
|
// Action: 1, // 未激活
|
||||||
First: 0,
|
// SpendType: 1, // 未开通
|
||||||
Scan: 1,
|
// MemberLevel: 0,
|
||||||
ActionTime: nowTime,
|
// First: 0,
|
||||||
}
|
// Scan: 1,
|
||||||
err = DB.Create(inviteRecord).Error
|
// ActionTime: nowTime,
|
||||||
if err != nil {
|
// }
|
||||||
logger.Error("create user invite record err:", err)
|
// err = DB.Create(inviteRecord).Error
|
||||||
}
|
// if err != nil {
|
||||||
// UserInvite 邀请主要
|
// logger.Error("create user invite record err:", err)
|
||||||
var inviteNew UserInvite
|
// }
|
||||||
inviteErr := NewUserInviteQuerySet(DB).ToUidEq(user.Uid).FromUidEq(inviteUid).ActionEq(1).
|
// // UserInvite 邀请主要
|
||||||
SpendTypeEq(1).One(&inviteNew)
|
// var inviteNew UserInvite
|
||||||
if inviteErr != nil && inviteErr != RecordNotFound {
|
// inviteErr := NewUserInviteQuerySet(DB).ToUidEq(user.Uid).FromUidEq(inviteUid).ActionEq(1).
|
||||||
// 是否存在未开通
|
// SpendTypeEq(1).One(&inviteNew)
|
||||||
logger.Error("user invite err:", err)
|
// if inviteErr != nil && inviteErr != RecordNotFound {
|
||||||
}
|
// // 是否存在未开通
|
||||||
//fmt.Println("inviteErr:", inviteErr)
|
// logger.Error("user invite err:", err)
|
||||||
//fmt.Printf("inviteNew:%#v \n", inviteNew)
|
// }
|
||||||
if inviteErr == RecordNotFound {
|
// //fmt.Println("inviteErr:", inviteErr)
|
||||||
memberLevel := user.MemberLevel
|
// //fmt.Printf("inviteNew:%#v \n", inviteNew)
|
||||||
if memberLevel == 0 {
|
// if inviteErr == RecordNotFound {
|
||||||
memberLevel = MemberLevelUser
|
// memberLevel := user.MemberLevel
|
||||||
}
|
// if memberLevel == 0 {
|
||||||
invite := &UserInvite{
|
// memberLevel = MemberLevelUser
|
||||||
FromUid: inviteUid, // 邀请人用户id
|
// }
|
||||||
UserType: inviteUser.UserType, // 邀请人用户类型
|
// invite := &UserInvite{
|
||||||
StoreId: effectiveStoreInfo.StoreID, // 邀请人门店id
|
// FromUid: inviteUid, // 邀请人用户id
|
||||||
MemberOpenTime: nowTime, // 开通会员时间
|
// UserType: inviteUser.UserType, // 邀请人用户类型
|
||||||
MemberType: memberLevel, // 被邀请用户类型
|
// StoreId: effectiveStoreInfo.StoreID, // 邀请人门店id
|
||||||
MemberStatus: 1, // 被邀请用户会员状态 1-未开通
|
// MemberOpenTime: nowTime, // 开通会员时间
|
||||||
ToUid: user.Uid, // 被邀请用户id
|
// MemberType: memberLevel, // 被邀请用户类型
|
||||||
Action: 1, // 未激活
|
// MemberStatus: 1, // 被邀请用户会员状态 1-未开通
|
||||||
SpendType: 1, // 未开通
|
// ToUid: user.Uid, // 被邀请用户id
|
||||||
UserInviteRecordId: inviteRecord.ID, // 邀请记录id
|
// Action: 1, // 未激活
|
||||||
FirstInvite: 0, // TODO 首次邀请id
|
// SpendType: 1, // 未开通
|
||||||
Scan: 1, // 扫码次数
|
// UserInviteRecordId: inviteRecord.ID, // 邀请记录id
|
||||||
InviteForm: 1, // 1-店员邀请码续费
|
// FirstInvite: 0, // TODO 首次邀请id
|
||||||
}
|
// Scan: 1, // 扫码次数
|
||||||
fmt.Println("创建邀请:", invite)
|
// InviteForm: 1, // 1-店员邀请码续费
|
||||||
if err := invite.Create(DB); err != nil {
|
// }
|
||||||
logger.Error(err)
|
// fmt.Println("创建邀请:", invite)
|
||||||
return err
|
// if err := invite.Create(DB); err != nil {
|
||||||
}
|
// logger.Error(err)
|
||||||
}
|
// return err
|
||||||
|
// }
|
||||||
if inviteErr == nil {
|
// }
|
||||||
err = NewUserInviteQuerySet(DB).IDEq(inviteNew.ID).GetUpdater().SetCreatedAt(nowTime).
|
//
|
||||||
SetUserInviteRecordId(inviteRecord.ID).SetInviteForm(1).Update()
|
// if inviteErr == nil {
|
||||||
if err != nil {
|
// err = NewUserInviteQuerySet(DB).IDEq(inviteNew.ID).GetUpdater().SetCreatedAt(nowTime).
|
||||||
logger.Error("from uid update user invite err:", err, inviteUid)
|
// SetUserInviteRecordId(inviteRecord.ID).SetInviteForm(1).Update()
|
||||||
}
|
// if err != nil {
|
||||||
}
|
// logger.Error("from uid update user invite err:", err, inviteUid)
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1401,7 +1434,7 @@ type NewUserInviteRecordReq struct {
|
||||||
PageSize int `json:"pageSize"`
|
PageSize int `json:"pageSize"`
|
||||||
FromUid uint32 `json:"from_uid"` // 邀请人ID
|
FromUid uint32 `json:"from_uid"` // 邀请人ID
|
||||||
ToUid uint32 `json:"to_uid"` // 用户ID
|
ToUid uint32 `json:"to_uid"` // 用户ID
|
||||||
RecordType uint32 `json:"record_type"` // 记录类型 1-首次邀请,2-开通年费黄金,3-开通季度黄金,4-开通半年黄金, 5-开通年费白金,6-开通年费黑金,7-续费年费黄金(干预),8-续费年费白金(干预),9-续费年费黑金(干预),10-续费年费黄金(自动), 11-续费季度黄金(自动),12-续费半年黄金(自动),13-续费年费白金(自动),14-续费年费黑金(自动),15-黄金→白金(干预), 16-黄金→黑金(干预),17-白金→黑金(干预),18-黄金→白金(自动),19-黄金→黑金(自动),20-白金→黑金(自动)
|
RecordType []uint32 `json:"record_type"` // 记录类型 1-首次邀请,2-开通年费黄金,3-开通季度黄金,4-开通半年黄金, 5-开通年费白金,6-开通年费黑金,7-续费年费黄金(干预),8-续费年费白金(干预),9-续费年费黑金(干预),10-续费年费黄金(自动), 11-续费季度黄金(自动),12-续费半年黄金(自动),13-续费年费白金(自动),14-续费年费黑金(自动),15-黄金→白金(干预), 16-黄金→黑金(干预),17-白金→黑金(干预),18-黄金→白金(自动),19-黄金→黑金(自动),20-白金→黑金(自动)
|
||||||
RecordStartTime time.Time `json:"record_start_time"` // 记录时间-开始时间
|
RecordStartTime time.Time `json:"record_start_time"` // 记录时间-开始时间
|
||||||
RecordEndTime time.Time `json:"record_end_time"` // 记录时间-结束时间
|
RecordEndTime time.Time `json:"record_end_time"` // 记录时间-结束时间
|
||||||
}
|
}
|
||||||
|
@ -1457,60 +1490,118 @@ func (m *NewUserInviteRecordReq) NewList() (*UserInviteRecordListResp, error) {
|
||||||
if m.ToUid != 0 {
|
if m.ToUid != 0 {
|
||||||
qs = qs.ToUidEq(m.ToUid)
|
qs = qs.ToUidEq(m.ToUid)
|
||||||
}
|
}
|
||||||
if m.RecordType != 0 {
|
//if m.RecordType != 0 {
|
||||||
switch m.RecordType {
|
// switch m.RecordType {
|
||||||
case 1: // 首次邀请
|
// case 1: // 首次邀请
|
||||||
qs = qs.FirstEq(1).SpendTypeEq(1)
|
// qs = qs.FirstEq(1).SpendTypeEq(1)
|
||||||
case 2: // 开通年费黄金
|
// case 2: // 开通年费黄金
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(2)
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(2)
|
||||||
case 3: // 开通季度黄金
|
// case 3: // 开通季度黄金
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(2).MemberGenreEq(201)
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(2).MemberGenreEq(201)
|
||||||
case 4: // 开通半年黄金
|
// case 4: // 开通半年黄金
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(2).MemberGenreEq(202)
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(2).MemberGenreEq(202)
|
||||||
case 5: // 开通年费白金
|
// case 5: // 开通年费白金
|
||||||
qs = qs.MemberLevelEq(4).SpendTypeEq(2)
|
// qs = qs.MemberLevelEq(4).SpendTypeEq(2)
|
||||||
case 6: // 开通年费黑金
|
// case 6: // 开通年费黑金
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(2)
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(2)
|
||||||
|
//
|
||||||
|
// case 7: // 续费年费黄金(干预)
|
||||||
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(0)
|
||||||
|
// case 8: // 续费年费白金(干预)
|
||||||
|
// qs = qs.MemberLevelEq(4).SpendTypeEq(3).RenewHideEq(0)
|
||||||
|
// case 9: // 续费年费黑金(干预)
|
||||||
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(3).RenewHideEq(0)
|
||||||
|
//
|
||||||
|
// case 10: // 续费年费黄金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(1)
|
||||||
|
// case 11: // 续费季度黄金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(1).
|
||||||
|
// MemberGenreEq(201)
|
||||||
|
// case 12: // 续费半年黄金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(1).
|
||||||
|
// MemberGenreEq(202)
|
||||||
|
// case 13: // 续费年费白金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(4).SpendTypeEq(3).RenewHideEq(1)
|
||||||
|
// case 14: // 续费年费黑金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(3).RenewHideEq(1)
|
||||||
|
//
|
||||||
|
// case 15: //黄金→白金(干预)
|
||||||
|
// qs = qs.MemberLevelEq(4).SpendTypeEq(4).RenewHideEq(0)
|
||||||
|
// case 16: //黄金→黑金(干预)
|
||||||
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(0).
|
||||||
|
// MemberGenreIn(200, 201, 202)
|
||||||
|
// case 17: //白金→黑金(干预)
|
||||||
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(0).
|
||||||
|
// MemberGenreNotIn(200, 201, 202)
|
||||||
|
//
|
||||||
|
// case 18: //黄金→白金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(4).SpendTypeEq(4).RenewHideEq(1)
|
||||||
|
// case 19: //黄金→黑金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(1).
|
||||||
|
// MemberGenreIn(200, 201, 202)
|
||||||
|
// case 20: //白金→黑金(自动)
|
||||||
|
// qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(1).
|
||||||
|
// MemberGenreNotIn(200, 201, 202)
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
if len(m.RecordType) != 0 {
|
||||||
|
var recordTypeConditions []string
|
||||||
|
for _, t := range m.RecordType {
|
||||||
|
switch t {
|
||||||
|
case 1:
|
||||||
|
recordTypeConditions = append(recordTypeConditions, "(first=1 AND spend_type=1)")
|
||||||
|
case 2:
|
||||||
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=2)")
|
||||||
|
case 3:
|
||||||
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=2 AND user_invite_record.member_genre=201)")
|
||||||
|
case 4:
|
||||||
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=2 AND user_invite_record.member_genre=202)")
|
||||||
|
case 5:
|
||||||
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=4 AND spend_type=2)")
|
||||||
|
case 6:
|
||||||
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=2)")
|
||||||
|
|
||||||
case 7: // 续费年费黄金(干预)
|
case 7:
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(0)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=3 AND renew_hide=0)")
|
||||||
case 8: // 续费年费白金(干预)
|
case 8:
|
||||||
qs = qs.MemberLevelEq(4).SpendTypeEq(3).RenewHideEq(0)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=4 AND spend_type=3 AND renew_hide=0)")
|
||||||
case 9: // 续费年费黑金(干预)
|
case 9:
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(3).RenewHideEq(0)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=3 AND renew_hide=0)")
|
||||||
|
|
||||||
case 10: // 续费年费黄金(自动)
|
case 10:
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(1)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=3 AND renew_hide=1)")
|
||||||
case 11: // 续费季度黄金(自动)
|
case 11:
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(1).
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=3 AND renew_hide=1 AND user_invite_record.member_genre=201)")
|
||||||
MemberGenreEq(201)
|
case 12:
|
||||||
case 12: // 续费半年黄金(自动)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=2 AND spend_type=3 AND renew_hide=1 AND user_invite_record.member_genre=202)")
|
||||||
qs = qs.MemberLevelEq(2).SpendTypeEq(3).RenewHideEq(1).
|
case 13:
|
||||||
MemberGenreEq(202)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=4 AND spend_type=3 AND renew_hide=1)")
|
||||||
case 13: // 续费年费白金(自动)
|
case 14:
|
||||||
qs = qs.MemberLevelEq(4).SpendTypeEq(3).RenewHideEq(1)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=3 AND renew_hide=1)")
|
||||||
case 14: // 续费年费黑金(自动)
|
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(3).RenewHideEq(1)
|
|
||||||
|
|
||||||
case 15: //黄金→白金(干预)
|
case 15:
|
||||||
qs = qs.MemberLevelEq(4).SpendTypeEq(4).RenewHideEq(0)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=4 AND spend_type=4 AND renew_hide=0)")
|
||||||
case 16: //黄金→黑金(干预)
|
case 16:
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(0).
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=4 AND renew_hide=0 AND user_invite_record.member_genre in (200,201,202))")
|
||||||
MemberGenreIn(200, 201, 202)
|
case 17:
|
||||||
case 17: //白金→黑金(干预)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=4 AND renew_hide=0 AND user_invite_record.member_genre not in (200,201,202))")
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(0).
|
|
||||||
MemberGenreNotIn(200, 201, 202)
|
|
||||||
|
|
||||||
case 18: //黄金→白金(自动)
|
case 18:
|
||||||
qs = qs.MemberLevelEq(4).SpendTypeEq(4).RenewHideEq(1)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=4 AND spend_type=4 AND renew_hide=1)")
|
||||||
case 19: //黄金→黑金(自动)
|
case 19:
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(1).
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=4 AND renew_hide=1 AND user_invite_record.member_genre in (200,201,202))")
|
||||||
MemberGenreIn(200, 201, 202)
|
case 20:
|
||||||
case 20: //白金→黑金(自动)
|
recordTypeConditions = append(recordTypeConditions, "(user_invite_record.member_level=5 AND spend_type=4 AND renew_hide=1 AND user_invite_record.member_genre not in (200,201,202))")
|
||||||
qs = qs.MemberLevelEq(5).SpendTypeEq(4).RenewHideEq(1).
|
|
||||||
MemberGenreNotIn(200, 201, 202)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 拼接多选条件
|
||||||
|
if len(recordTypeConditions) > 0 {
|
||||||
|
recordTypeQuery := strings.Join(recordTypeConditions, " OR ")
|
||||||
|
qs = qs.Where(recordTypeQuery)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if !m.RecordStartTime.IsZero() {
|
if !m.RecordStartTime.IsZero() {
|
||||||
qs = qs.ActionTimeGte(m.RecordStartTime)
|
qs = qs.ActionTimeGte(m.RecordStartTime)
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ func ConfigAppRouter(r gin.IRouter) {
|
||||||
// //api.POST("upload_user_info", controller.UploadUserInfo) // 上传用户信息
|
// //api.POST("upload_user_info", controller.UploadUserInfo) // 上传用户信息
|
||||||
//api.POST("wxpay/notice", controller.PushWXPayNotice) // 微信推送支付通知
|
//api.POST("wxpay/notice", controller.PushWXPayNotice) // 微信推送支付通知
|
||||||
// TODO两边都改
|
// TODO两边都改
|
||||||
api.GET("wxpay/notice", controller.HmPushWXPayNotice) // 推送支付通知
|
api.GET("wxpay/notice", controller.HmPushWXPayNotice) // 河马付推送支付通知
|
||||||
api.POST("wxpay/notice", controller.PushWXPayNotice) // 微信推送支付通知
|
api.POST("wxpay/notice", controller.PushWXPayNotice) // 微信推送支付通知
|
||||||
api.POST("wxpay_refund/notice", controller.PushWXPayRefundNotice) // 微信推送支付退款通知
|
api.POST("wxpay_refund/notice", controller.PushWXPayRefundNotice) // 微信推送支付退款通知
|
||||||
api.POST("aliyun/sts_token", controller.AliyunStsTokenGet) // 阿里云上传图片token
|
api.POST("aliyun/sts_token", controller.AliyunStsTokenGet) // 阿里云上传图片token
|
||||||
|
|
Loading…
Reference in New Issue
Block a user