fix:
This commit is contained in:
parent
a07635bf14
commit
0a881f3b03
|
@ -24,6 +24,7 @@ func runServer() {
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var serverCmd = &cobra.Command{
|
var serverCmd = &cobra.Command{
|
||||||
|
@ -130,3 +131,46 @@ func init() {
|
||||||
// }
|
// }
|
||||||
// fmt.Println("DB init success")
|
// 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()
|
now := time.Now()
|
||||||
// 不存在则创建 新用户
|
// 不存在则创建 新用户
|
||||||
//var invite *model.UserInvite
|
//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)
|
inviteUser := model.GetUserByUid(req.InviteUid)
|
||||||
user.StoreId = inviteUser.StoreId
|
user.StoreId = inviteUser.StoreId
|
||||||
if inviteUser.UserType == 2 {
|
if inviteUser.UserType == 2 {
|
||||||
//user.UserType = model.UserTypeConsumer
|
//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()
|
UpdateNum()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
}
|
}
|
||||||
if num == 0 {
|
memberLevel := user.MemberLevel
|
||||||
logger.Error("update store id err")
|
if memberLevel == 0 {
|
||||||
|
memberLevel = model.MemberTypeConsumer
|
||||||
}
|
}
|
||||||
|
|
||||||
invite := &model.UserInvite{
|
invite := &model.UserInvite{
|
||||||
FromUid: req.InviteUid,
|
FromUid: req.InviteUid,
|
||||||
UserType: inviteUser.UserType,
|
UserType: inviteUser.UserType,
|
||||||
StoreId: inviteUser.StoreId,
|
StoreId: inviteUser.StoreId,
|
||||||
MemberOpenTime: time.Time{},
|
MemberOpenTime: time.Time{},
|
||||||
MemberType: model.MemberTypeConsumer,
|
MemberType: memberLevel,
|
||||||
MemberStatus: 1,
|
MemberStatus: 1,
|
||||||
ToUid: user.Uid,
|
ToUid: user.Uid,
|
||||||
}
|
}
|
||||||
|
|
||||||
count, err := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).Count()
|
//count, err := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.InviteUid).ToUidEq(user.Uid).Count()
|
||||||
if err != nil {
|
//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)
|
logger.Error(err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
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 err == model.RecordNotFound || uint32(user.MemberExpire.Unix()) != activityMemberRenewal.MemberSerial {
|
||||||
//if user.MemberExpire.Before(utils.Now().AddDate(0, 1, 0)) &&
|
//if user.MemberExpire.Before(utils.Now().AddDate(0, 1, 0)) &&
|
||||||
// user.MemberExpire.After(utils.Now()) {
|
// 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{
|
activityMemberRenewal = model.ActivityMemberRenewal{
|
||||||
ActivityId: 1,
|
ActivityId: 1,
|
||||||
Uid: uc.Uid,
|
Uid: uc.Uid,
|
||||||
|
@ -114,7 +114,7 @@ func UserMemberRenewalState(c *gin.Context) {
|
||||||
isPop = false
|
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
|
activityMemberRenewal.State = 3
|
||||||
_, err = model.NewActivityMemberRenewalQuerySet(model.DB).IDEq(activityMemberRenewal.ID).GetUpdater().
|
_, err = model.NewActivityMemberRenewalQuerySet(model.DB).IDEq(activityMemberRenewal.ID).GetUpdater().
|
||||||
SetState(3).UpdateNum()
|
SetState(3).UpdateNum()
|
||||||
|
@ -206,7 +206,7 @@ func UserMemberRenewalInfo(c *gin.Context) {
|
||||||
coupons[i].IsDraw = true
|
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{}{
|
ret := map[string]interface{}{
|
||||||
"coupon_list": coupons,
|
"coupon_list": coupons,
|
||||||
"renewal": renewal,
|
"renewal": renewal,
|
||||||
|
@ -307,7 +307,7 @@ func UserMemberRenewalCouponDraw(c *gin.Context) {
|
||||||
Value: coupons[i].Value,
|
Value: coupons[i].Value,
|
||||||
State: 1,
|
State: 1,
|
||||||
ActiveStart: time.Now(),
|
ActiveStart: time.Now(),
|
||||||
ActiveEnd: time.Now().AddDate(0, 0, model.MemberRenewalExpiration),
|
ActiveEnd: time.Now().AddDate(0, 0, model.GetActivityRenewalConfig().CouponValidity),
|
||||||
MemberLevel: coupons[i].MemberLevel,
|
MemberLevel: coupons[i].MemberLevel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -435,32 +435,53 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
fundRecord.Uid = uint32(record.Uid)
|
fundRecord.Uid = uint32(record.Uid)
|
||||||
fundRecord.FundType = model.FundTypeMemberFee
|
fundRecord.FundType = model.FundTypeMemberFee
|
||||||
fundRecord.Remark = remark
|
fundRecord.Remark = remark
|
||||||
|
memberRecord := &model.UserMemberRecord{
|
||||||
|
Uid: record.Uid,
|
||||||
|
AfterMemberLevel: record.MemberLevel,
|
||||||
|
}
|
||||||
|
newTime := time.Now()
|
||||||
var user model.User
|
var user model.User
|
||||||
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
} else {
|
} else {
|
||||||
expireTime := time.Now().AddDate(1, 0, 0)
|
expireTime := newTime.AddDate(1, 0, 0)
|
||||||
if user.MemberExpire.After(time.Now()) {
|
if user.MemberExpire.After(newTime) {
|
||||||
expireTime = user.MemberExpire.AddDate(1, 0, 0)
|
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)
|
memberConfig, err := model.GetMemberConfig(record.MemberLevel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("GetMemberConfig err:", err)
|
logger.Error("GetMemberConfig err:", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
openMemberTime := time.Now()
|
//openMemberTime := newTime
|
||||||
if !user.OpenMemberTime.IsZero() {
|
userUpdateQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).
|
||||||
openMemberTime = user.OpenMemberTime
|
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).
|
_, err = userUpdateQs.UpdateNum()
|
||||||
UpdateNum()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if record.UserCouponId > 0 {
|
if record.UserCouponId > 0 {
|
||||||
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()
|
||||||
|
@ -479,7 +500,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
FromUid: 0,
|
FromUid: 0,
|
||||||
UserType: 0,
|
UserType: 0,
|
||||||
StoreId: 0,
|
StoreId: 0,
|
||||||
MemberOpenTime: time.Now(),
|
MemberOpenTime: newTime,
|
||||||
MemberType: 2,
|
MemberType: 2,
|
||||||
ToUid: record.Uid,
|
ToUid: record.Uid,
|
||||||
MemberStatus: 2,
|
MemberStatus: 2,
|
||||||
|
@ -496,7 +517,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
} else {
|
} else {
|
||||||
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
|
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
|
||||||
if user.MemberLevel != 2 {
|
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()
|
num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -526,8 +547,15 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
|
|
||||||
if inviteUser.UserType == 2 {
|
if inviteUser.UserType == 2 {
|
||||||
openMemberChannel = model.OpenMemberChannelStorePromotion
|
openMemberChannel = model.OpenMemberChannelStorePromotion
|
||||||
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
if !user.OpenMemberTime.IsZero() {
|
||||||
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel))
|
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).
|
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
|
||||||
SetCooperativeName(inviteUser.CooperativeName)
|
SetCooperativeName(inviteUser.CooperativeName)
|
||||||
|
@ -544,7 +572,12 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
|
|
||||||
if user.MemberLevel != 2 {
|
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)
|
model.CreateUserRentCardByMemberLevel(record.Uid, record.MemberLevel, memberConfig.CardMax)
|
||||||
}
|
}
|
||||||
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).GetUpdater().SetState(2).UpdateNum()
|
_, 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)
|
logger.Error("user err:", err)
|
||||||
return
|
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)
|
memberConfig, err := model.GetMemberConfig(record.MemberLevel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("GetMemberConfig err:", err)
|
logger.Error("GetMemberConfig err:", err)
|
||||||
|
@ -717,6 +768,7 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("update user open member record state:err", err)
|
logger.Error("update user open member record state:err", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fundRecord.Uid = uint32(record.Uid)
|
fundRecord.Uid = uint32(record.Uid)
|
||||||
fundRecord.FundType = model.FundTypeUpgradeMember
|
fundRecord.FundType = model.FundTypeUpgradeMember
|
||||||
fundRecord.Remark = "升级会员"
|
fundRecord.Remark = "升级会员"
|
||||||
|
|
|
@ -57,3 +57,61 @@ func GetActionUserRenewalLog(uid, action uint32) (UserRenewalLog, error) {
|
||||||
}
|
}
|
||||||
return userRenewalLog, nil
|
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 (
|
const (
|
||||||
ConfigNamePay = "pay_config" // 支付配置
|
ConfigNamePay = "pay_config" // 支付配置
|
||||||
ConfigNameMember = "member_config" // 会员配置
|
ConfigNameMember = "member_config" // 会员配置
|
||||||
ConfigNameMemberVm = "member_vm_config" // 会员积分配置
|
ConfigNameMemberVm = "member_vm_config" // 会员积分配置
|
||||||
ConfigNameAttendanceVm = "attendance_vm_config" // 签到积分配置
|
ConfigNameAttendanceVm = "attendance_vm_config" // 签到积分配置
|
||||||
|
ConfigActivityRenewal = "activity_renewal_config" // 活动配置
|
||||||
)
|
)
|
||||||
|
|
||||||
func PayConfigInfo() (*PayConfig, error) {
|
func PayConfigInfo() (*PayConfig, error) {
|
||||||
|
@ -186,6 +187,39 @@ func (m *AttendanceVmConfig) Vm(days uint32) uint32 {
|
||||||
return vm
|
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 {
|
//type ConfigInterface interface {
|
||||||
// Encode() string
|
// Encode() string
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -39,21 +39,27 @@ type CooperativeBusiness struct {
|
||||||
// gen:qs
|
// gen:qs
|
||||||
type CooperativeMemberDeduct struct {
|
type CooperativeMemberDeduct struct {
|
||||||
Model
|
Model
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||||
BlackGoldDeduct uint32 `json:"black_gold_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
|
// cooperative_member_deduct
|
||||||
}
|
}
|
||||||
|
|
||||||
// gen:qs
|
// gen:qs
|
||||||
type CooperativeAssistantMemberDeduct struct {
|
type CooperativeAssistantMemberDeduct struct {
|
||||||
Model
|
Model
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||||
StoreId uint32 `json:"store_id" gorm:"index"` //
|
StoreId uint32 `json:"store_id" gorm:"index"` //
|
||||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||||
BlackGoldDeduct uint32 `json:"black_gold_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
|
// cooperative_assistant_member_deduct
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +80,11 @@ type CooperativeMemberPromotion struct {
|
||||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||||
Date string `json:"date" gorm:"index"` //
|
Date string `json:"date" gorm:"index"` //
|
||||||
State string `json:"state"` // 待发起结算 待财务打款 已结算
|
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
|
// cooperative_member_promotion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,12 +93,15 @@ type CooperativeMemberPromotion struct {
|
||||||
type CooperativeMemberPromotionStore struct {
|
type CooperativeMemberPromotionStore struct {
|
||||||
Model
|
Model
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||||
Date string `json:"date" gorm:"index"` //
|
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
|
// cooperative_member_promotion_store
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,11 +110,14 @@ type CooperativeMemberPromotionStore struct {
|
||||||
type CooperativeMemberPromotionDay struct {
|
type CooperativeMemberPromotionDay struct {
|
||||||
Model
|
Model
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||||
DayTime string `json:"day_time" gorm:"index"` //
|
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
|
// cooperative_member_promotion_day
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,13 +126,15 @@ type CooperativeMemberPromotionDay struct {
|
||||||
type CooperativeMemberPromotionStoreDay struct {
|
type CooperativeMemberPromotionStoreDay struct {
|
||||||
Model
|
Model
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
|
||||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||||
DayTime string `json:"day_time" gorm:"index"` //
|
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
|
// cooperative_member_promotion_store_day
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,9 +150,18 @@ type CooperativeDeductSettle struct {
|
||||||
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
GoldCount uint32 `json:"gold_count"` // 黄金会员数量
|
||||||
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量
|
||||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量
|
||||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置
|
|
||||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成配置
|
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置
|
||||||
BlackGoldDeduct uint32 `json:"black_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) {
|
func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32, memberLevel int) {
|
||||||
|
@ -462,3 +490,320 @@ func (m *CooperativeBusiness) SetAssistantMemberDeductConfig(storeId uint32) {
|
||||||
}
|
}
|
||||||
m.CooperativeAssistantMemberDeduct = &assistantDeductConfig
|
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 (
|
const (
|
||||||
CouponTypeDeduction = "deduction" // 抵扣
|
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
|
//go:generate goqueryset -in coupon.go
|
||||||
// gen:qs
|
// gen:qs
|
||||||
|
|
|
@ -36,6 +36,7 @@ type GameCard struct {
|
||||||
RealPrice uint32 `json:"real_price"` // 真实价格
|
RealPrice uint32 `json:"real_price"` // 真实价格
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
|
||||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||||
|
VideoLink string `json:"video_link"` // 链接
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*GameCard) TableName() string {
|
func (*GameCard) TableName() string {
|
||||||
|
|
|
@ -116,16 +116,44 @@ func InitTestDB() {
|
||||||
//&OperationLog{},
|
//&OperationLog{},
|
||||||
//&DeliverTask{},
|
//&DeliverTask{},
|
||||||
//&DeliverTaskSub{},
|
//&DeliverTaskSub{},
|
||||||
&User{},
|
|
||||||
// 优惠券
|
// 优惠券
|
||||||
&GameCard{},
|
//&GameCard{},
|
||||||
&ActivityMemberRenewal{},
|
//&ActivityMemberRenewal{},
|
||||||
&Activity{},
|
//&Activity{},
|
||||||
&UserCoupon{},
|
//&UserCoupon{},
|
||||||
&Coupon{},
|
//&Coupon{},
|
||||||
|
//&UserOpenMemberRecord{},
|
||||||
|
//&HomeCarousel{},
|
||||||
|
//&UserRenewalLog{},
|
||||||
|
|
||||||
|
&User{},
|
||||||
&UserOpenMemberRecord{},
|
&UserOpenMemberRecord{},
|
||||||
&HomeCarousel{},
|
&CooperativeMemberDeduct{},
|
||||||
&UserRenewalLog{},
|
&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")
|
fmt.Println("DB init success")
|
||||||
|
@ -221,14 +249,15 @@ func InitDBProd() {
|
||||||
//&DeliverTaskSub{},
|
//&DeliverTaskSub{},
|
||||||
|
|
||||||
// 优惠券
|
// 优惠券
|
||||||
|
//&GameCard{},
|
||||||
|
//&ActivityMemberRenewal{},
|
||||||
|
//&Activity{},
|
||||||
|
//&UserCoupon{},
|
||||||
|
//&Coupon{},
|
||||||
|
//&UserOpenMemberRecord{},
|
||||||
|
//&HomeCarousel{},
|
||||||
|
//&UserRenewalLog{},
|
||||||
&GameCard{},
|
&GameCard{},
|
||||||
&ActivityMemberRenewal{},
|
|
||||||
&Activity{},
|
|
||||||
&UserCoupon{},
|
|
||||||
&Coupon{},
|
|
||||||
&UserOpenMemberRecord{},
|
|
||||||
&HomeCarousel{},
|
|
||||||
&UserRenewalLog{},
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if err := DBProd.DB().Ping(); err != nil {
|
if err := DBProd.DB().Ping(); err != nil {
|
||||||
|
@ -1485,4 +1514,79 @@ func UserUpgradeMemberRecord() {
|
||||||
func TestOrderUpdater_SetUserAddressId(t *testing.T) {
|
func TestOrderUpdater_SetUserAddressId(t *testing.T) {
|
||||||
//var users []User
|
//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 {
|
func GameCardGoodsInventoryReduction(cards []CardInfo, storeId uint32, gdb *gorm.DB) error {
|
||||||
for i, _ := range cards {
|
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)
|
fmt.Println("sql:", sql)
|
||||||
err := gdb.Exec(sql).Error
|
err := gdb.Exec(sql).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -45,9 +45,13 @@ type User struct {
|
||||||
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
|
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
|
||||||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||||||
ShopAssistantName string `json:"shop_assistant_name"` // 店员名称
|
ShopAssistantName string `json:"shop_assistant_name"` // 店员名称
|
||||||
Version uint32 `json:"-"` //
|
//RenewalTime time.Time `json:"renewal_time"`
|
||||||
UserVm *UserVm `json:"user_vm" gorm:"-"` //
|
//RenewalMemberLevel uint32 `json:"renewal_member_level"`
|
||||||
InviteTime time.Time `json:"invite_time"`
|
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
|
//RoleId uint32 `json:"role_id"` // 角色id
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -257,14 +261,16 @@ func UserUpdate(user *User) error {
|
||||||
type UserOpenMemberRecord struct {
|
type UserOpenMemberRecord struct {
|
||||||
Model
|
Model
|
||||||
|
|
||||||
Uid uint32 `json:"uid" gorm:"index"`
|
Uid uint32 `json:"uid" gorm:"index"`
|
||||||
OpenNo string `json:"open_no" gorm:"index"`
|
OpenNo string `json:"open_no" gorm:"index"`
|
||||||
OrderId uint32 `json:"order_id" gorm:"index"`
|
OrderId uint32 `json:"order_id" gorm:"index"`
|
||||||
OrderType uint32 `json:"order_type"`
|
OrderType uint32 `json:"order_type"`
|
||||||
MemberLevel uint32 `json:"member_level"`
|
MemberLevel uint32 `json:"member_level"`
|
||||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||||
UserCouponId uint32 `json:"user_coupon_id" gorm:"index"` // 优惠券id
|
UserCouponId uint32 `json:"user_coupon_id" gorm:"index"` // 优惠券id
|
||||||
State uint32 `json:"state"` // 1-未处理 2-已处理
|
State uint32 `json:"state"` // 1-未处理 2-已处理
|
||||||
|
DeductionDays uint32 `json:"deduction_days"`
|
||||||
|
DeductionFee uint32 `json:"deduction_fee"`
|
||||||
|
|
||||||
Order *Order `json:"order" gorm:"-"`
|
Order *Order `json:"order" gorm:"-"`
|
||||||
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
|
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
|
||||||
|
@ -367,6 +373,9 @@ type InviteMemberReport struct {
|
||||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成
|
||||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成
|
||||||
BlackGoldDeduct uint32 `json:"black_gold_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
|
// invite_member_report
|
||||||
User *User `json:"user" gorm:"-"`
|
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