fix:
This commit is contained in:
parent
a07635bf14
commit
0a881f3b03
|
@ -24,6 +24,7 @@ func runServer() {
|
|||
logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var serverCmd = &cobra.Command{
|
||||
|
@ -129,4 +130,47 @@ func init() {
|
|||
// panic(err)
|
||||
// }
|
||||
// fmt.Println("DB init success")
|
||||
//}
|
||||
//}
|
||||
|
||||
//func main() {
|
||||
//
|
||||
// router := gin.Default()
|
||||
//
|
||||
// // v1
|
||||
// r1 := router.Group("/test/v1.0")
|
||||
// {
|
||||
// r1.GET("/testrestart", controller.Testshutdown)
|
||||
// } //router.Run( utils.GlobalObject.ServiceHost + ":" + utils.GlobalObject.ServicePort)
|
||||
// srv := &http.Server{
|
||||
// Addr: utils.GlobalObject.ServiceHost + ":" + utils.GlobalObject.ServicePort,
|
||||
// Handler: router,
|
||||
// }
|
||||
// go func() {
|
||||
// // service connections
|
||||
// if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
// log.Fatalf("listen: %s", err)
|
||||
// }
|
||||
// }()
|
||||
//
|
||||
// // Wait for interrupt signal to gracefully shutdown the server with
|
||||
// // a timeout of 5 seconds.
|
||||
// quit := make(chan os.Signal)
|
||||
// // kill (no param) default send syscanll.SIGTERM
|
||||
// // kill -2 is syscall.SIGINT
|
||||
// // kill -9 is syscall. SIGKILL but can"t be catch, so don't need add it
|
||||
// signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
||||
// <-quit
|
||||
// log.Println("Shutdown Server ...")
|
||||
//
|
||||
// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
// defer cancel()
|
||||
// if err := srv.Shutdown(ctx); err != nil {
|
||||
// log.Fatal("Server Shutdown:", err)
|
||||
// }
|
||||
// // catching ctx.Done(). timeout of 5 seconds.
|
||||
// select {
|
||||
// case <-ctx.Done():
|
||||
// log.Println("timeout of 10 seconds.")
|
||||
// }
|
||||
// log.Println("Server exiting")
|
||||
//}
|
||||
|
|
|
@ -67,45 +67,45 @@ func AuthLogin(c *gin.Context) {
|
|||
now := time.Now()
|
||||
// 不存在则创建 新用户
|
||||
//var invite *model.UserInvite
|
||||
if req.InviteUid != 0 && req.InviteUid != user.Uid && user.StoreId == 0 {
|
||||
//if req.InviteUid != 0 && req.InviteUid != user.Uid && user.StoreId == 0 {
|
||||
if req.InviteUid != 0 && req.InviteUid != user.Uid {
|
||||
|
||||
inviteUser := model.GetUserByUid(req.InviteUid)
|
||||
user.StoreId = inviteUser.StoreId
|
||||
if inviteUser.UserType == 2 {
|
||||
//user.UserType = model.UserTypeConsumer
|
||||
num, err := model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId).
|
||||
_, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId).
|
||||
UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
}
|
||||
if num == 0 {
|
||||
logger.Error("update store id err")
|
||||
memberLevel := user.MemberLevel
|
||||
if memberLevel == 0 {
|
||||
memberLevel = model.MemberTypeConsumer
|
||||
}
|
||||
|
||||
invite := &model.UserInvite{
|
||||
FromUid: req.InviteUid,
|
||||
UserType: inviteUser.UserType,
|
||||
StoreId: inviteUser.StoreId,
|
||||
MemberOpenTime: time.Time{},
|
||||
MemberType: model.MemberTypeConsumer,
|
||||
MemberType: memberLevel,
|
||||
MemberStatus: 1,
|
||||
ToUid: user.Uid,
|
||||
}
|
||||
|
||||
count, err := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).Count()
|
||||
if err != nil {
|
||||
//count, err := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.InviteUid).ToUidEq(user.Uid).Count()
|
||||
//if err != nil {
|
||||
// logger.Error(err)
|
||||
// RespJson(c, status.InternalServerError, nil)
|
||||
// return
|
||||
//}
|
||||
//if count == 0 {
|
||||
//}
|
||||
if err := invite.Create(model.DB); err != nil {
|
||||
logger.Error(err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
if count == 0 {
|
||||
if err := invite.Create(model.DB); err != nil {
|
||||
logger.Error(err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ func UserMemberRenewalState(c *gin.Context) {
|
|||
if err == model.RecordNotFound || uint32(user.MemberExpire.Unix()) != activityMemberRenewal.MemberSerial {
|
||||
//if user.MemberExpire.Before(utils.Now().AddDate(0, 1, 0)) &&
|
||||
// user.MemberExpire.After(utils.Now()) {
|
||||
if user.MemberExpire.Before(utils.Now().AddDate(0, 1, 0)) {
|
||||
if user.MemberExpire.Before(utils.Now().AddDate(0, 0, model.GetActivityRenewalConfig().PopTrap)) {
|
||||
activityMemberRenewal = model.ActivityMemberRenewal{
|
||||
ActivityId: 1,
|
||||
Uid: uc.Uid,
|
||||
|
@ -114,7 +114,7 @@ func UserMemberRenewalState(c *gin.Context) {
|
|||
isPop = false
|
||||
}
|
||||
}
|
||||
if activityMemberRenewal.StartTime.AddDate(0, 0, model.MemberRenewalExpiration).Before(utils.Now()) {
|
||||
if activityMemberRenewal.StartTime.AddDate(0, 0, model.GetActivityRenewalConfig().ActivityContinuity).Before(utils.Now()) {
|
||||
activityMemberRenewal.State = 3
|
||||
_, err = model.NewActivityMemberRenewalQuerySet(model.DB).IDEq(activityMemberRenewal.ID).GetUpdater().
|
||||
SetState(3).UpdateNum()
|
||||
|
@ -206,7 +206,7 @@ func UserMemberRenewalInfo(c *gin.Context) {
|
|||
coupons[i].IsDraw = true
|
||||
}
|
||||
}
|
||||
down := model.MemberRenewalExpiration*24*3600 - (utils.Now().Unix() - renewal.StartTime.Unix())
|
||||
down := int64(model.GetActivityRenewalConfig().ActivityContinuity)*24*3600 - (utils.Now().Unix() - renewal.StartTime.Unix())
|
||||
ret := map[string]interface{}{
|
||||
"coupon_list": coupons,
|
||||
"renewal": renewal,
|
||||
|
@ -307,7 +307,7 @@ func UserMemberRenewalCouponDraw(c *gin.Context) {
|
|||
Value: coupons[i].Value,
|
||||
State: 1,
|
||||
ActiveStart: time.Now(),
|
||||
ActiveEnd: time.Now().AddDate(0, 0, model.MemberRenewalExpiration),
|
||||
ActiveEnd: time.Now().AddDate(0, 0, model.GetActivityRenewalConfig().CouponValidity),
|
||||
MemberLevel: coupons[i].MemberLevel,
|
||||
}
|
||||
|
||||
|
|
|
@ -435,32 +435,53 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeMemberFee
|
||||
fundRecord.Remark = remark
|
||||
memberRecord := &model.UserMemberRecord{
|
||||
Uid: record.Uid,
|
||||
AfterMemberLevel: record.MemberLevel,
|
||||
}
|
||||
newTime := time.Now()
|
||||
var user model.User
|
||||
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
} else {
|
||||
expireTime := time.Now().AddDate(1, 0, 0)
|
||||
if user.MemberExpire.After(time.Now()) {
|
||||
expireTime := newTime.AddDate(1, 0, 0)
|
||||
if user.MemberExpire.After(newTime) {
|
||||
expireTime = user.MemberExpire.AddDate(1, 0, 0)
|
||||
}
|
||||
|
||||
memberRecord.BeforeMemberLevel = user.MemberLevel
|
||||
memberRecord.BeforeMemberExpire = user.MemberExpire
|
||||
memberRecord.Serial = uint32(user.MemberExpire.Unix())
|
||||
memberRecord.AfterMemberExpire = expireTime
|
||||
if user.IsMember() {
|
||||
memberRecord.OpenMemberLevel = user.OpenMemberLevel
|
||||
memberRecord.OpenMemberTime = user.OpenMemberTime
|
||||
} else {
|
||||
memberRecord.OpenMemberLevel = record.MemberLevel
|
||||
memberRecord.OpenMemberTime = newTime
|
||||
}
|
||||
memberConfig, err := model.GetMemberConfig(record.MemberLevel)
|
||||
if err != nil {
|
||||
logger.Error("GetMemberConfig err:", err)
|
||||
return
|
||||
}
|
||||
openMemberTime := time.Now()
|
||||
if !user.OpenMemberTime.IsZero() {
|
||||
openMemberTime = user.OpenMemberTime
|
||||
//openMemberTime := newTime
|
||||
userUpdateQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).
|
||||
SetMemberExpire(expireTime).SetDeposit(memberConfig.MemberDeposit)
|
||||
if user.OpenMemberTime.IsZero() {
|
||||
//openMemberTime = user.OpenMemberTime
|
||||
userUpdateQs = userUpdateQs.SetOpenMemberTime(newTime).SetOpenMemberLevel(record.MemberLevel)
|
||||
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 1)
|
||||
} else {
|
||||
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 2)
|
||||
}
|
||||
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).
|
||||
SetMemberExpire(expireTime).SetDeposit(memberConfig.MemberDeposit).SetOpenMemberTime(openMemberTime).
|
||||
UpdateNum()
|
||||
|
||||
_, err = userUpdateQs.UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
if record.UserCouponId > 0 {
|
||||
err = model.NewUserCouponQuerySet(model.DB).IDEq(record.UserCouponId).GetUpdater().
|
||||
SetState(2).SetUseTime(utils.Now()).Update()
|
||||
|
@ -479,7 +500,7 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
FromUid: 0,
|
||||
UserType: 0,
|
||||
StoreId: 0,
|
||||
MemberOpenTime: time.Now(),
|
||||
MemberOpenTime: newTime,
|
||||
MemberType: 2,
|
||||
ToUid: record.Uid,
|
||||
MemberStatus: 2,
|
||||
|
@ -496,7 +517,7 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
} else {
|
||||
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
|
||||
if user.MemberLevel != 2 {
|
||||
qs = qs.SetMemberOpenTime(time.Now()).SetMemberLevel(record.MemberLevel)
|
||||
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
||||
}
|
||||
num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum()
|
||||
if err != nil {
|
||||
|
@ -526,8 +547,15 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
|
||||
if inviteUser.UserType == 2 {
|
||||
openMemberChannel = model.OpenMemberChannelStorePromotion
|
||||
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
||||
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel))
|
||||
if !user.OpenMemberTime.IsZero() {
|
||||
fmt.Println("用户续费---")
|
||||
model.AddCooperativeMemberRenewal(inviteUser.CooperativeBusinessId,
|
||||
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel))
|
||||
} else {
|
||||
fmt.Println("用户开通------")
|
||||
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
||||
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel))
|
||||
}
|
||||
|
||||
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
|
||||
SetCooperativeName(inviteUser.CooperativeName)
|
||||
|
@ -544,7 +572,12 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
|
||||
if user.MemberLevel != 2 {
|
||||
}
|
||||
|
||||
go func() {
|
||||
err = model.DB.Create(memberRecord).Error
|
||||
if err != nil {
|
||||
logger.Error("create member record err:", err)
|
||||
}
|
||||
}()
|
||||
model.CreateUserRentCardByMemberLevel(record.Uid, record.MemberLevel, memberConfig.CardMax)
|
||||
}
|
||||
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).GetUpdater().SetState(2).UpdateNum()
|
||||
|
@ -662,6 +695,24 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
logger.Error("user err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
memberRecord := &model.UserMemberRecord{
|
||||
Uid: record.Uid,
|
||||
BeforeMemberLevel: user.MemberLevel,
|
||||
AfterMemberLevel: record.MemberLevel,
|
||||
BeforeMemberExpire: user.MemberExpire,
|
||||
AfterMemberExpire: record.MemberExpire,
|
||||
InviteUid: 0,
|
||||
DeductionDays: record.DeductionDays,
|
||||
DeductionFee: record.DeductionFee,
|
||||
CouponId: record.UserCouponId,
|
||||
Serial: uint32(user.MemberExpire.Unix()),
|
||||
Type: model.GetUserMemberRecordType(record.MemberLevel, 3),
|
||||
OpenMemberLevel: user.OpenMemberLevel,
|
||||
OpenMemberTime: user.OpenMemberTime,
|
||||
}
|
||||
memberRecord.Add()
|
||||
|
||||
memberConfig, err := model.GetMemberConfig(record.MemberLevel)
|
||||
if err != nil {
|
||||
logger.Error("GetMemberConfig err:", err)
|
||||
|
@ -717,6 +768,7 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
if err != nil {
|
||||
logger.Error("update user open member record state:err", err)
|
||||
}
|
||||
|
||||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeUpgradeMember
|
||||
fundRecord.Remark = "升级会员"
|
||||
|
|
|
@ -57,3 +57,61 @@ func GetActionUserRenewalLog(uid, action uint32) (UserRenewalLog, error) {
|
|||
}
|
||||
return userRenewalLog, nil
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
type UserMemberRecord struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
BeforeMemberLevel uint32 `json:"before_member_level"`
|
||||
AfterMemberLevel uint32 `json:"after_member_level"`
|
||||
BeforeMemberExpire time.Time `json:"before_member_expire"`
|
||||
AfterMemberExpire time.Time `json:"after_member_expire"`
|
||||
InviteUid uint32 `json:"invite_uid" gorm:"index"`
|
||||
DeductionDays uint32 `json:"deduction_days"` // 抵扣天数
|
||||
DeductionFee uint32 `json:"deduction_fee"` // 抵扣金额
|
||||
CouponId uint32 `json:"coupon_id"` // 优惠券id
|
||||
Serial uint32 `json:"serial" gorm:"index"` // 日志
|
||||
Type uint32 `json:"type" gorm:"index"` // 1-开通黄金 2-开通白金 3-开通黑金 4-续费黄金 5-续费白金 6-续费黑金 7-升级白金 8-升级黑金
|
||||
OpenMemberLevel uint32 `json:"open_member_level"`
|
||||
OpenMemberTime time.Time `json:"open_member_time"`
|
||||
}
|
||||
|
||||
func GetUserMemberRecordType(level uint32, memberType uint32) uint32 {
|
||||
if memberType == 1 {
|
||||
switch level {
|
||||
case 2:
|
||||
return 1
|
||||
case 4:
|
||||
return 2
|
||||
case 5:
|
||||
return 3
|
||||
}
|
||||
} else if memberType == 2 {
|
||||
switch level {
|
||||
case 2:
|
||||
return 4
|
||||
case 4:
|
||||
return 5
|
||||
case 5:
|
||||
return 6
|
||||
}
|
||||
} else if memberType == 3 {
|
||||
switch level {
|
||||
case 4:
|
||||
return 7
|
||||
case 5:
|
||||
return 8
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *UserMemberRecord) Add() {
|
||||
go func() {
|
||||
err := DB.Create(m).Error
|
||||
if err != nil {
|
||||
logger.Error("create user member record err:", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -27,10 +27,11 @@ type PayConfig struct {
|
|||
}
|
||||
|
||||
const (
|
||||
ConfigNamePay = "pay_config" // 支付配置
|
||||
ConfigNameMember = "member_config" // 会员配置
|
||||
ConfigNameMemberVm = "member_vm_config" // 会员积分配置
|
||||
ConfigNameAttendanceVm = "attendance_vm_config" // 签到积分配置
|
||||
ConfigNamePay = "pay_config" // 支付配置
|
||||
ConfigNameMember = "member_config" // 会员配置
|
||||
ConfigNameMemberVm = "member_vm_config" // 会员积分配置
|
||||
ConfigNameAttendanceVm = "attendance_vm_config" // 签到积分配置
|
||||
ConfigActivityRenewal = "activity_renewal_config" // 活动配置
|
||||
)
|
||||
|
||||
func PayConfigInfo() (*PayConfig, error) {
|
||||
|
@ -186,6 +187,39 @@ func (m *AttendanceVmConfig) Vm(days uint32) uint32 {
|
|||
return vm
|
||||
}
|
||||
|
||||
type ActivityRenewalConfig struct {
|
||||
CouponValidity int `json:"coupon_validity"`
|
||||
ActivityContinuity int `json:"activity_continuity"`
|
||||
PopTrap int `json:"pop_trap"`
|
||||
}
|
||||
|
||||
func ActivityRenewalConfigInfo() (ActivityRenewalConfig, error) {
|
||||
activityRenewalConfig := ActivityRenewalConfig{}
|
||||
var configAllocation Config
|
||||
err := NewConfigQuerySet(DB).NameEq(ConfigActivityRenewal).One(&configAllocation)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return activityRenewalConfig, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal([]byte(configAllocation.Value), &activityRenewalConfig)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return activityRenewalConfig, err
|
||||
}
|
||||
|
||||
return activityRenewalConfig, nil
|
||||
}
|
||||
|
||||
func GetActivityRenewalConfig() ActivityRenewalConfig {
|
||||
info, err := ActivityRenewalConfigInfo()
|
||||
if err != nil {
|
||||
logger.Error("info err:", err)
|
||||
return info
|
||||
}
|
||||
return info
|
||||
}
|
||||
|
||||
//type ConfigInterface interface {
|
||||
// Encode() string
|
||||
//}
|
||||
|
|
|
@ -39,21 +39,27 @@ type CooperativeBusiness struct {
|
|||
// gen:qs
|
||||
type CooperativeMemberDeduct struct {
|
||||
Model
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金金会员提成
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金金会员提成
|
||||
RenewalGoldDeduct uint32 `json:"renewal_gold_deduct"` // 续费黄金会员提成
|
||||
RenewalPlatinumDeduct uint32 `json:"renewal_platinum_deduct"` // 续费白金会员提成
|
||||
RenewalBlackGoldDeduct uint32 `json:"renewal_black_gold_deduct"` // 续费黑金金会员提成
|
||||
// cooperative_member_deduct
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
type CooperativeAssistantMemberDeduct struct {
|
||||
Model
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` //
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金金会员提成
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` //
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金金会员提成
|
||||
RenewalGoldDeduct uint32 `json:"renewal_gold_deduct"` // 续费黄金会员提成
|
||||
RenewalPlatinumDeduct uint32 `json:"renewal_platinum_deduct"` // 续费白金会员提成
|
||||
RenewalBlackGoldDeduct uint32 `json:"renewal_black_gold_deduct"` // 续费黑金金会员提成
|
||||
// cooperative_assistant_member_deduct
|
||||
}
|
||||
|
||||
|
@ -74,6 +80,11 @@ type CooperativeMemberPromotion struct {
|
|||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
Date string `json:"date" gorm:"index"` //
|
||||
State string `json:"state"` // 待发起结算 待财务打款 已结算
|
||||
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量
|
||||
|
||||
// cooperative_member_promotion
|
||||
}
|
||||
|
||||
|
@ -82,12 +93,15 @@ type CooperativeMemberPromotion struct {
|
|||
type CooperativeMemberPromotionStore struct {
|
||||
Model
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
Date string `json:"date" gorm:"index"` //
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
Date string `json:"date" gorm:"index"` //
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量
|
||||
// cooperative_member_promotion_store
|
||||
}
|
||||
|
||||
|
@ -96,11 +110,14 @@ type CooperativeMemberPromotionStore struct {
|
|||
type CooperativeMemberPromotionDay struct {
|
||||
Model
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
DayTime string `json:"day_time" gorm:"index"` //
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
DayTime string `json:"day_time" gorm:"index"` //
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量
|
||||
// cooperative_member_promotion_day
|
||||
}
|
||||
|
||||
|
@ -109,13 +126,15 @@ type CooperativeMemberPromotionDay struct {
|
|||
type CooperativeMemberPromotionStoreDay struct {
|
||||
Model
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
DayTime string `json:"day_time" gorm:"index"` //
|
||||
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
DayTime string `json:"day_time" gorm:"index"` //
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量
|
||||
// cooperative_member_promotion_store_day
|
||||
}
|
||||
|
||||
|
@ -131,9 +150,18 @@ type CooperativeDeductSettle struct {
|
|||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成配置
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金会员提成配置
|
||||
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成配置
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金会员提成配置
|
||||
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量
|
||||
|
||||
RenewalGoldDeduct uint32 `json:"renewal_gold_deduct"` // 续费黄金会员提成
|
||||
RenewalPlatinumDeduct uint32 `json:"renewal_platinum_deduct"` // 续费白金会员提成
|
||||
RenewalBlackGoldDeduct uint32 `json:"renewal_black_gold_deduct"` // 续费黑金金会员提成
|
||||
}
|
||||
|
||||
func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32, memberLevel int) {
|
||||
|
@ -462,3 +490,320 @@ func (m *CooperativeBusiness) SetAssistantMemberDeductConfig(storeId uint32) {
|
|||
}
|
||||
m.CooperativeAssistantMemberDeduct = &assistantDeductConfig
|
||||
}
|
||||
|
||||
func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, memberLevel int) {
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
}()
|
||||
var cooperativeBusiness CooperativeBusiness
|
||||
err := NewCooperativeBusinessQuerySet(DB).IDEq(cooperativeId).One(&cooperativeBusiness)
|
||||
if err != nil {
|
||||
logger.Error("cooperative business err:", err)
|
||||
return
|
||||
}
|
||||
//fmt.Println("cooperativeId:", cooperativeId)
|
||||
//fmt.Println("storeId:", storeId)
|
||||
//fmt.Println("assistantUid:", assistantUid)
|
||||
//fmt.Println("memberLevel:", memberLevel)
|
||||
|
||||
go func() {
|
||||
promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
|
||||
promotionStore := &CooperativeMemberPromotionStore{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
|
||||
promotionDay := &CooperativeMemberPromotionDay{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
|
||||
promotionStoreDay := &CooperativeMemberPromotionStoreDay{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
|
||||
inviteReport := &InviteMemberReport{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name,
|
||||
Uid: assistantUid, StoreId: storeId,
|
||||
}
|
||||
begin := DB.Begin()
|
||||
err = promotion.AddRenewal(begin, memberLevel)
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("promotion add promotion err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = promotionStore.AddRenewal(begin, memberLevel, storeId)
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("promotion add promotion err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = promotionDay.AddRenewal(begin, memberLevel)
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("promotion add promotion err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = promotionStoreDay.AddRenewal(begin, memberLevel, storeId)
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("promotion add promotion err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = inviteReport.AddRenewal(begin, memberLevel)
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("promotion add promotion err:", err)
|
||||
return
|
||||
}
|
||||
err = begin.Commit().Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("commit err:", err)
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
}
|
||||
|
||||
func (m *CooperativeMemberPromotion) AddRenewal(gdb *gorm.DB, memberLevel int) error {
|
||||
dateString := utils.MonthDate()
|
||||
if memberLevel < 0 {
|
||||
return errors.New("member level err")
|
||||
}
|
||||
m.Date = dateString
|
||||
sql := ""
|
||||
switch memberLevel {
|
||||
case 2:
|
||||
sql = "UPDATE cooperative_member_promotion SET renewal_gold_count=renewal_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.RenewalGoldCount = 1
|
||||
case 4:
|
||||
sql = "UPDATE cooperative_member_promotion SET renewal_platinum_count=renewal_platinum_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.RenewalPlatinumCount = 1
|
||||
case 5:
|
||||
sql = "UPDATE cooperative_member_promotion SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
}
|
||||
fmt.Println("邀请会员sql:", sql)
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s' ",
|
||||
m.CooperativeBusinessId, dateString))
|
||||
if err != nil {
|
||||
logger.Error("cooperative member promotion record exist err:", err)
|
||||
return err
|
||||
}
|
||||
//fmt.Println("是否存在数据:", fmt.Sprintf(
|
||||
// "SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s'",
|
||||
// m.CooperativeBusinessId, dateString))
|
||||
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
|
||||
}
|
||||
|
||||
func (m *CooperativeMemberPromotionStore) AddRenewal(gdb *gorm.DB, memberLevel int, storeId uint32) error {
|
||||
dateString := utils.MonthDate()
|
||||
if memberLevel < 0 {
|
||||
return errors.New("member level err")
|
||||
}
|
||||
m.Date = dateString
|
||||
m.StoreId = storeId
|
||||
sql := ""
|
||||
switch memberLevel {
|
||||
case 2:
|
||||
sql = "UPDATE cooperative_member_promotion_store SET renewal_gold_count=renewal_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalGoldCount = 1
|
||||
case 4:
|
||||
sql = "UPDATE cooperative_member_promotion_store SET renewal_platinum_count=renewal_platinum_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalPlatinumCount = 1
|
||||
case 5:
|
||||
sql = "UPDATE cooperative_member_promotion_store SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion_store WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d",
|
||||
m.CooperativeBusinessId, dateString, storeId))
|
||||
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 {
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
logger.Error("create cooperative member promotion err:", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *CooperativeMemberPromotionDay) AddRenewal(gdb *gorm.DB, memberLevel int) error {
|
||||
dayString := utils.TodayZeroDateFormat()
|
||||
if memberLevel < 0 {
|
||||
return errors.New("member level err")
|
||||
}
|
||||
m.DayTime = dayString
|
||||
sql := ""
|
||||
switch memberLevel {
|
||||
case 2:
|
||||
sql = "UPDATE cooperative_member_promotion_day SET renewal_gold_count=renewal_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.RenewalGoldCount = 1
|
||||
case 4:
|
||||
sql = "UPDATE cooperative_member_promotion_day SET renewal_platinum_count=renewal_platinum_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.RenewalPlatinumCount = 1
|
||||
case 5:
|
||||
sql = "UPDATE cooperative_member_promotion_day SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion_day WHERE cooperative_business_id=%d AND day_time='%s'",
|
||||
m.CooperativeBusinessId, dayString))
|
||||
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 day err:", err)
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
logger.Error("create cooperative member promotion day err:", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *CooperativeMemberPromotionStoreDay) AddRenewal(gdb *gorm.DB, memberLevel int, storeId uint32) error {
|
||||
dateString := utils.TodayZeroDateFormat()
|
||||
if memberLevel < 0 {
|
||||
return errors.New("member level err")
|
||||
}
|
||||
m.DayTime = dateString
|
||||
m.StoreId = storeId
|
||||
sql := ""
|
||||
switch memberLevel {
|
||||
case 2:
|
||||
sql = "UPDATE cooperative_member_promotion_store_day SET renewal_gold_count=renewal_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalGoldCount = 1
|
||||
case 4:
|
||||
sql = "UPDATE cooperative_member_promotion_store_day SET renewal_platinum_count=renewal_platinum_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalPlatinumCount = 1
|
||||
case 5:
|
||||
sql = "UPDATE cooperative_member_promotion_store_day SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist("SELECT * FROM cooperative_member_promotion_store_day " +
|
||||
fmt.Sprintf("WHERE cooperative_business_id=%d AND day_time='%s' AND store_id=%d",
|
||||
m.CooperativeBusinessId, dateString, storeId))
|
||||
if err != nil {
|
||||
logger.Error("cooperative member promotion store day record exist err:", err)
|
||||
return err
|
||||
}
|
||||
if exist {
|
||||
err = gdb.Exec(sql).Error
|
||||
if err != nil {
|
||||
logger.Error("update cooperative member promotion store day err:", err)
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
logger.Error("create cooperative member promotion store day err:", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *InviteMemberReport) AddRenewal(gdb *gorm.DB, memberLevel 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 renewal_gold_count=renewal_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
|
||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
||||
m.RenewalGoldCount = 1
|
||||
case 4:
|
||||
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",
|
||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
||||
m.RenewalPlatinumCount = 1
|
||||
case 5:
|
||||
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",
|
||||
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
}
|
||||
|
||||
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",
|
||||
m.CooperativeBusinessId, dateString, m.StoreId, 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
|
||||
}
|
||||
|
|
|
@ -5,9 +5,17 @@ import "time"
|
|||
const (
|
||||
CouponTypeDeduction = "deduction" // 抵扣
|
||||
)
|
||||
const (
|
||||
MemberRenewalExpiration = 7
|
||||
)
|
||||
|
||||
//var MemberRenewalExpiration int
|
||||
//var PopTrap int
|
||||
//var CouponValidity int
|
||||
|
||||
//func MemberRenewalActivityInit() {
|
||||
// renewalConfig := GetActivityRenewalConfig()
|
||||
// MemberRenewalExpiration = renewalConfig.ActivityContinuity
|
||||
// PopTrap = renewalConfig.PopTrap
|
||||
// CouponValidity = renewalConfig.CouponValidity
|
||||
//}
|
||||
|
||||
//go:generate goqueryset -in coupon.go
|
||||
// gen:qs
|
||||
|
|
|
@ -36,6 +36,7 @@ type GameCard struct {
|
|||
RealPrice uint32 `json:"real_price"` // 真实价格
|
||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
VideoLink string `json:"video_link"` // 链接
|
||||
}
|
||||
|
||||
func (*GameCard) TableName() string {
|
||||
|
|
|
@ -116,16 +116,44 @@ func InitTestDB() {
|
|||
//&OperationLog{},
|
||||
//&DeliverTask{},
|
||||
//&DeliverTaskSub{},
|
||||
&User{},
|
||||
|
||||
// 优惠券
|
||||
&GameCard{},
|
||||
&ActivityMemberRenewal{},
|
||||
&Activity{},
|
||||
&UserCoupon{},
|
||||
&Coupon{},
|
||||
//&GameCard{},
|
||||
//&ActivityMemberRenewal{},
|
||||
//&Activity{},
|
||||
//&UserCoupon{},
|
||||
//&Coupon{},
|
||||
//&UserOpenMemberRecord{},
|
||||
//&HomeCarousel{},
|
||||
//&UserRenewalLog{},
|
||||
|
||||
&User{},
|
||||
&UserOpenMemberRecord{},
|
||||
&HomeCarousel{},
|
||||
&UserRenewalLog{},
|
||||
&CooperativeMemberDeduct{},
|
||||
&CooperativeAssistantMemberDeduct{},
|
||||
&UserMemberRecord{},
|
||||
&CooperativeDeductSettle{},
|
||||
&CooperativeMemberPromotionStore{},
|
||||
&CooperativeMemberPromotionDay{},
|
||||
&InviteMemberReport{},
|
||||
&MemberStatisticDaily{},
|
||||
&CooperativeMemberPromotion{},
|
||||
&GameCard{},
|
||||
&CooperativeMemberPromotionStoreDay{},
|
||||
|
||||
//&CooperativeMemberDeduct{},
|
||||
//&CooperativeAssistantMemberDeduct{},
|
||||
//&CooperativeDeductSettle{},
|
||||
//&CooperativeMemberPromotion{},
|
||||
//&CooperativeMemberPromotion{},
|
||||
//&CooperativeMemberPromotionDay{},
|
||||
&CooperativeMemberDeduct{},
|
||||
&CooperativeAssistantMemberDeduct{},
|
||||
&CooperativeMemberPromotion{},
|
||||
&CooperativeMemberPromotionStore{},
|
||||
&CooperativeMemberPromotionDay{},
|
||||
&CooperativeMemberPromotionStoreDay{},
|
||||
&CooperativeDeductSettle{},
|
||||
)
|
||||
|
||||
fmt.Println("DB init success")
|
||||
|
@ -221,14 +249,15 @@ func InitDBProd() {
|
|||
//&DeliverTaskSub{},
|
||||
|
||||
// 优惠券
|
||||
//&GameCard{},
|
||||
//&ActivityMemberRenewal{},
|
||||
//&Activity{},
|
||||
//&UserCoupon{},
|
||||
//&Coupon{},
|
||||
//&UserOpenMemberRecord{},
|
||||
//&HomeCarousel{},
|
||||
//&UserRenewalLog{},
|
||||
&GameCard{},
|
||||
&ActivityMemberRenewal{},
|
||||
&Activity{},
|
||||
&UserCoupon{},
|
||||
&Coupon{},
|
||||
&UserOpenMemberRecord{},
|
||||
&HomeCarousel{},
|
||||
&UserRenewalLog{},
|
||||
)
|
||||
|
||||
if err := DBProd.DB().Ping(); err != nil {
|
||||
|
@ -1485,4 +1514,79 @@ func UserUpgradeMemberRecord() {
|
|||
func TestOrderUpdater_SetUserAddressId(t *testing.T) {
|
||||
//var users []User
|
||||
|
||||
InitTestDB()
|
||||
DB = DBDev
|
||||
|
||||
var games []GameCard
|
||||
err := NewGameCardQuerySet(DBDev).All(&games)
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
}
|
||||
|
||||
for _, game := range games {
|
||||
exist, err := QueryRecordExist(fmt.Sprintf("SELECT * FROM game_card_goods_stock WHERE game_card_id = %d", game.ID))
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
}
|
||||
if exist {
|
||||
continue
|
||||
}
|
||||
//if game.ID != 812 {
|
||||
// continue
|
||||
//}
|
||||
goods := &GameCardGoods{
|
||||
GameCardId: uint64(game.ID),
|
||||
SerialNumber: fmt.Sprintf("%d", game.ID) + "01",
|
||||
Status: 1,
|
||||
StoreId: 32,
|
||||
Provider: "",
|
||||
StockTime: time.Now(),
|
||||
CardType: "common",
|
||||
FunctionState: 2,
|
||||
ShareProfitType: 1,
|
||||
CooperativeBusinessId: 12,
|
||||
CooperativeName: "代理商01",
|
||||
}
|
||||
|
||||
err = DBDev.Create(goods).Error
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
}
|
||||
|
||||
goodsStock := &GameCardGoodsStock{
|
||||
StoreId: 32,
|
||||
GameCardId: uint64(game.ID),
|
||||
StoreStock: 1,
|
||||
RentStock: 1,
|
||||
UserHoldStock: 0,
|
||||
OrderCount: 0,
|
||||
TotalStock: 1,
|
||||
CooperativeBusinessId: 12,
|
||||
CooperativeName: "代理商01",
|
||||
Name: game.Name,
|
||||
CoverImg: game.CoverImg,
|
||||
}
|
||||
err = DBDev.Create(goodsStock).Error
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
}
|
||||
err = NewGameCardQuerySet(DBDev).IDEq(game.ID).GetUpdater().SetStatus(1).Update()
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestActivityRenewalConfig(t *testing.T) {
|
||||
config := ActivityRenewalConfig{
|
||||
CouponValidity: 7,
|
||||
ActivityContinuity: 7,
|
||||
PopTrap: 30,
|
||||
}
|
||||
|
||||
marshal, err := json.Marshal(&config)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
fmt.Println("marshal:", string(marshal))
|
||||
}
|
||||
|
|
|
@ -764,7 +764,9 @@ func IsCardGoodsStockEnough(cards []CardInfo, storeId uint32) (bool, error) {
|
|||
|
||||
func GameCardGoodsInventoryReduction(cards []CardInfo, storeId uint32, gdb *gorm.DB) error {
|
||||
for i, _ := range cards {
|
||||
sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-%d WHERE store_id=%d AND game_card_id=%d;", cards[i].Count, storeId, cards[i].GameCardId)
|
||||
sql := fmt.Sprintf(
|
||||
"UPDATE game_card_goods_stock SET rent_stock= rent_stock-%d WHERE store_id=%d AND game_card_id=%d;",
|
||||
cards[i].Count, storeId, cards[i].GameCardId)
|
||||
fmt.Println("sql:", sql)
|
||||
err := gdb.Exec(sql).Error
|
||||
if err != nil {
|
||||
|
|
|
@ -45,9 +45,13 @@ type User struct {
|
|||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
|
||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||
ShopAssistantName string `json:"shop_assistant_name"` // 店员名称
|
||||
Version uint32 `json:"-"` //
|
||||
UserVm *UserVm `json:"user_vm" gorm:"-"` //
|
||||
InviteTime time.Time `json:"invite_time"`
|
||||
//RenewalTime time.Time `json:"renewal_time"`
|
||||
//RenewalMemberLevel uint32 `json:"renewal_member_level"`
|
||||
OpenMemberLevel uint32 `json:"open_member_level"`
|
||||
|
||||
Version uint32 `json:"-"` //
|
||||
UserVm *UserVm `json:"user_vm" gorm:"-"` //
|
||||
InviteTime time.Time `json:"invite_time"`
|
||||
//RoleId uint32 `json:"role_id"` // 角色id
|
||||
|
||||
}
|
||||
|
@ -257,14 +261,16 @@ func UserUpdate(user *User) error {
|
|||
type UserOpenMemberRecord struct {
|
||||
Model
|
||||
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
OpenNo string `json:"open_no" gorm:"index"`
|
||||
OrderId uint32 `json:"order_id" gorm:"index"`
|
||||
OrderType uint32 `json:"order_type"`
|
||||
MemberLevel uint32 `json:"member_level"`
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
UserCouponId uint32 `json:"user_coupon_id" gorm:"index"` // 优惠券id
|
||||
State uint32 `json:"state"` // 1-未处理 2-已处理
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
OpenNo string `json:"open_no" gorm:"index"`
|
||||
OrderId uint32 `json:"order_id" gorm:"index"`
|
||||
OrderType uint32 `json:"order_type"`
|
||||
MemberLevel uint32 `json:"member_level"`
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
UserCouponId uint32 `json:"user_coupon_id" gorm:"index"` // 优惠券id
|
||||
State uint32 `json:"state"` // 1-未处理 2-已处理
|
||||
DeductionDays uint32 `json:"deduction_days"`
|
||||
DeductionFee uint32 `json:"deduction_fee"`
|
||||
|
||||
Order *Order `json:"order" gorm:"-"`
|
||||
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
|
||||
|
@ -367,6 +373,9 @@ type InviteMemberReport struct {
|
|||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金会员提成
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量
|
||||
// invite_member_report
|
||||
User *User `json:"user" gorm:"-"`
|
||||
}
|
||||
|
@ -1017,3 +1026,16 @@ func UserInviteListSetToUser(list []UserInvite) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
type MemberStatisticDaily struct {
|
||||
Model
|
||||
|
||||
MemberLevel uint32 `json:"member_level"`
|
||||
Date string `json:"date"`
|
||||
DateTime time.Time `json:"date_time"`
|
||||
Increase uint32 `json:"increase"`
|
||||
Expire uint32 `json:"expire"`
|
||||
Net uint32 `json:"net"`
|
||||
Accumulative uint32 `json:"accumulative"`
|
||||
}
|
||||
|
|
13
pack/examine.sh
Normal file
13
pack/examine.sh
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
while : #循环,为了让脚本一直运行监控
|
||||
do
|
||||
COUNT=`ps -ef | grep ./hm_server |wc -l`
|
||||
if [ "$COUNT" -gt 1 ];
|
||||
then
|
||||
echo "server service is ok"
|
||||
else
|
||||
echo "server servicie not exist"
|
||||
nohup ./hm_server > server.log 2>&1 &
|
||||
fi
|
||||
sleep 60
|
||||
done
|
Loading…
Reference in New Issue
Block a user