Merge branch 'dev_mall_member' into dev_share_card_issue_code

This commit is contained in:
li 2022-04-19 14:21:33 +08:00
commit 30fca5a0a4
6 changed files with 876 additions and 149 deletions

View File

@ -326,7 +326,7 @@ func UpgradeMember(c *gin.Context) {
// 补押金 // 补押金
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit) depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).StatusEq(model.RedeemCodeStatusUsed).Count() count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).CodeTypeEq(model.CodeTypeMemberCard30).StatusEq(model.RedeemCodeStatusUsed).Count()
if err != nil { if err != nil {
logger.Error("err:", err) logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
@ -452,7 +452,7 @@ func UpgradeMemberInfo(c *gin.Context) {
// 补押金 // 补押金
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit) depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).StatusEq(model.RedeemCodeStatusUsed).Count() count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).CodeTypeEq(model.CodeTypeMemberCard30).StatusEq(model.RedeemCodeStatusUsed).Count()
if err != nil { if err != nil {
logger.Error("err:", err) logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)

View File

@ -4,6 +4,7 @@ package model
import ( import (
"errors" "errors"
"fmt" "fmt"
"strings"
"time" "time"
"github.com/jinzhu/gorm" "github.com/jinzhu/gorm"
@ -29,6 +30,15 @@ func (qs RedeemCodeQuerySet) w(db *gorm.DB) RedeemCodeQuerySet {
return NewRedeemCodeQuerySet(db) return NewRedeemCodeQuerySet(db)
} }
func (qs RedeemCodeQuerySet) Select(fields ...RedeemCodeDBSchemaField) RedeemCodeQuerySet {
names := []string{}
for _, f := range fields {
names = append(names, f.String())
}
return qs.w(qs.db.Select(strings.Join(names, ",")))
}
// Create is an autogenerated method // Create is an autogenerated method
// nolint: dupl // nolint: dupl
func (o *RedeemCode) Create(db *gorm.DB) error { func (o *RedeemCode) Create(db *gorm.DB) error {
@ -53,6 +63,18 @@ func (qs RedeemCodeQuerySet) CodeSecretEq(codeSecret string) RedeemCodeQuerySet
return qs.w(qs.db.Where("code_secret = ?", codeSecret)) return qs.w(qs.db.Where("code_secret = ?", codeSecret))
} }
// CodeSecretGt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretGt(codeSecret string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_secret > ?", codeSecret))
}
// CodeSecretGte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretGte(codeSecret string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_secret >= ?", codeSecret))
}
// CodeSecretIn is an autogenerated method // CodeSecretIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretIn(codeSecret ...string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) CodeSecretIn(codeSecret ...string) RedeemCodeQuerySet {
@ -63,6 +85,24 @@ func (qs RedeemCodeQuerySet) CodeSecretIn(codeSecret ...string) RedeemCodeQueryS
return qs.w(qs.db.Where("code_secret IN (?)", codeSecret)) return qs.w(qs.db.Where("code_secret IN (?)", codeSecret))
} }
// CodeSecretLike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretLike(codeSecret string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_secret LIKE ?", codeSecret))
}
// CodeSecretLt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretLt(codeSecret string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_secret < ?", codeSecret))
}
// CodeSecretLte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretLte(codeSecret string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_secret <= ?", codeSecret))
}
// CodeSecretNe is an autogenerated method // CodeSecretNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretNe(codeSecret string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) CodeSecretNe(codeSecret string) RedeemCodeQuerySet {
@ -79,12 +119,30 @@ func (qs RedeemCodeQuerySet) CodeSecretNotIn(codeSecret ...string) RedeemCodeQue
return qs.w(qs.db.Where("code_secret NOT IN (?)", codeSecret)) return qs.w(qs.db.Where("code_secret NOT IN (?)", codeSecret))
} }
// CodeSecretNotlike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeSecretNotlike(codeSecret string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_secret NOT LIKE ?", codeSecret))
}
// CodeTypeEq is an autogenerated method // CodeTypeEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeEq(codeType string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) CodeTypeEq(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type = ?", codeType)) return qs.w(qs.db.Where("code_type = ?", codeType))
} }
// CodeTypeGt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeGt(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type > ?", codeType))
}
// CodeTypeGte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeGte(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type >= ?", codeType))
}
// CodeTypeIn is an autogenerated method // CodeTypeIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeIn(codeType ...string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) CodeTypeIn(codeType ...string) RedeemCodeQuerySet {
@ -95,6 +153,24 @@ func (qs RedeemCodeQuerySet) CodeTypeIn(codeType ...string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type IN (?)", codeType)) return qs.w(qs.db.Where("code_type IN (?)", codeType))
} }
// CodeTypeLike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeLike(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type LIKE ?", codeType))
}
// CodeTypeLt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeLt(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type < ?", codeType))
}
// CodeTypeLte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeLte(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type <= ?", codeType))
}
// CodeTypeNe is an autogenerated method // CodeTypeNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeNe(codeType string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) CodeTypeNe(codeType string) RedeemCodeQuerySet {
@ -111,6 +187,12 @@ func (qs RedeemCodeQuerySet) CodeTypeNotIn(codeType ...string) RedeemCodeQuerySe
return qs.w(qs.db.Where("code_type NOT IN (?)", codeType)) return qs.w(qs.db.Where("code_type NOT IN (?)", codeType))
} }
// CodeTypeNotlike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) CodeTypeNotlike(codeType string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type NOT LIKE ?", codeType))
}
// Count is an autogenerated method // Count is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) Count() (int, error) { func (qs RedeemCodeQuerySet) Count() (int, error) {
@ -381,6 +463,18 @@ func (qs RedeemCodeQuerySet) One(ret *RedeemCode) error {
return qs.db.First(ret).Error return qs.db.First(ret).Error
} }
// OrderAscByCodeSecret is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscByCodeSecret() RedeemCodeQuerySet {
return qs.w(qs.db.Order("code_secret ASC"))
}
// OrderAscByCodeType is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscByCodeType() RedeemCodeQuerySet {
return qs.w(qs.db.Order("code_type ASC"))
}
// OrderAscByCreatedAt is an autogenerated method // OrderAscByCreatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscByCreatedAt() RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) OrderAscByCreatedAt() RedeemCodeQuerySet {
@ -411,12 +505,42 @@ func (qs RedeemCodeQuerySet) OrderAscByID() RedeemCodeQuerySet {
return qs.w(qs.db.Order("id ASC")) return qs.w(qs.db.Order("id ASC"))
} }
// OrderAscBySerialCode is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscBySerialCode() RedeemCodeQuerySet {
return qs.w(qs.db.Order("serial_code ASC"))
}
// OrderAscByStatus is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscByStatus() RedeemCodeQuerySet {
return qs.w(qs.db.Order("status ASC"))
}
// OrderAscByStoreId is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscByStoreId() RedeemCodeQuerySet {
return qs.w(qs.db.Order("store_id ASC"))
}
// OrderAscByUpdatedAt is an autogenerated method // OrderAscByUpdatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) OrderAscByUpdatedAt() RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) OrderAscByUpdatedAt() RedeemCodeQuerySet {
return qs.w(qs.db.Order("updated_at ASC")) return qs.w(qs.db.Order("updated_at ASC"))
} }
// OrderDescByCodeSecret is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescByCodeSecret() RedeemCodeQuerySet {
return qs.w(qs.db.Order("code_secret DESC"))
}
// OrderDescByCodeType is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescByCodeType() RedeemCodeQuerySet {
return qs.w(qs.db.Order("code_type DESC"))
}
// OrderDescByCreatedAt is an autogenerated method // OrderDescByCreatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescByCreatedAt() RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) OrderDescByCreatedAt() RedeemCodeQuerySet {
@ -447,6 +571,24 @@ func (qs RedeemCodeQuerySet) OrderDescByID() RedeemCodeQuerySet {
return qs.w(qs.db.Order("id DESC")) return qs.w(qs.db.Order("id DESC"))
} }
// OrderDescBySerialCode is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescBySerialCode() RedeemCodeQuerySet {
return qs.w(qs.db.Order("serial_code DESC"))
}
// OrderDescByStatus is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescByStatus() RedeemCodeQuerySet {
return qs.w(qs.db.Order("status DESC"))
}
// OrderDescByStoreId is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescByStoreId() RedeemCodeQuerySet {
return qs.w(qs.db.Order("store_id DESC"))
}
// OrderDescByUpdatedAt is an autogenerated method // OrderDescByUpdatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) OrderDescByUpdatedAt() RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) OrderDescByUpdatedAt() RedeemCodeQuerySet {
@ -459,6 +601,18 @@ func (qs RedeemCodeQuerySet) SerialCodeEq(serialCode string) RedeemCodeQuerySet
return qs.w(qs.db.Where("serial_code = ?", serialCode)) return qs.w(qs.db.Where("serial_code = ?", serialCode))
} }
// SerialCodeGt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeGt(serialCode string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code > ?", serialCode))
}
// SerialCodeGte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeGte(serialCode string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code >= ?", serialCode))
}
// SerialCodeIn is an autogenerated method // SerialCodeIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeIn(serialCode ...string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) SerialCodeIn(serialCode ...string) RedeemCodeQuerySet {
@ -469,6 +623,24 @@ func (qs RedeemCodeQuerySet) SerialCodeIn(serialCode ...string) RedeemCodeQueryS
return qs.w(qs.db.Where("serial_code IN (?)", serialCode)) return qs.w(qs.db.Where("serial_code IN (?)", serialCode))
} }
// SerialCodeLike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeLike(serialCode string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code LIKE ?", serialCode))
}
// SerialCodeLt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeLt(serialCode string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code < ?", serialCode))
}
// SerialCodeLte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeLte(serialCode string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code <= ?", serialCode))
}
// SerialCodeNe is an autogenerated method // SerialCodeNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeNe(serialCode string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) SerialCodeNe(serialCode string) RedeemCodeQuerySet {
@ -485,12 +657,30 @@ func (qs RedeemCodeQuerySet) SerialCodeNotIn(serialCode ...string) RedeemCodeQue
return qs.w(qs.db.Where("serial_code NOT IN (?)", serialCode)) return qs.w(qs.db.Where("serial_code NOT IN (?)", serialCode))
} }
// SerialCodeNotlike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) SerialCodeNotlike(serialCode string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code NOT LIKE ?", serialCode))
}
// StatusEq is an autogenerated method // StatusEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) StatusEq(status string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) StatusEq(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status = ?", status)) return qs.w(qs.db.Where("status = ?", status))
} }
// StatusGt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StatusGt(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status > ?", status))
}
// StatusGte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StatusGte(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status >= ?", status))
}
// StatusIn is an autogenerated method // StatusIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) StatusIn(status ...string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) StatusIn(status ...string) RedeemCodeQuerySet {
@ -501,6 +691,24 @@ func (qs RedeemCodeQuerySet) StatusIn(status ...string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status IN (?)", status)) return qs.w(qs.db.Where("status IN (?)", status))
} }
// StatusLike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StatusLike(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status LIKE ?", status))
}
// StatusLt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StatusLt(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status < ?", status))
}
// StatusLte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StatusLte(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status <= ?", status))
}
// StatusNe is an autogenerated method // StatusNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) StatusNe(status string) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) StatusNe(status string) RedeemCodeQuerySet {
@ -517,6 +725,68 @@ func (qs RedeemCodeQuerySet) StatusNotIn(status ...string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status NOT IN (?)", status)) return qs.w(qs.db.Where("status NOT IN (?)", status))
} }
// StatusNotlike is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StatusNotlike(status string) RedeemCodeQuerySet {
return qs.w(qs.db.Where("status NOT LIKE ?", status))
}
// StoreIdEq is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdEq(storeId uint32) RedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id = ?", storeId))
}
// StoreIdGt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdGt(storeId uint32) RedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id > ?", storeId))
}
// StoreIdGte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdGte(storeId uint32) RedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id >= ?", storeId))
}
// StoreIdIn is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdIn(storeId ...uint32) RedeemCodeQuerySet {
if len(storeId) == 0 {
qs.db.AddError(errors.New("must at least pass one storeId in StoreIdIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("store_id IN (?)", storeId))
}
// StoreIdLt is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdLt(storeId uint32) RedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id < ?", storeId))
}
// StoreIdLte is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdLte(storeId uint32) RedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id <= ?", storeId))
}
// StoreIdNe is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdNe(storeId uint32) RedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id != ?", storeId))
}
// StoreIdNotIn is an autogenerated method
// nolint: dupl
func (qs RedeemCodeQuerySet) StoreIdNotIn(storeId ...uint32) RedeemCodeQuerySet {
if len(storeId) == 0 {
qs.db.AddError(errors.New("must at least pass one storeId in StoreIdNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("store_id NOT IN (?)", storeId))
}
// UpdatedAtEq is an autogenerated method // UpdatedAtEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs RedeemCodeQuerySet) UpdatedAtEq(updatedAt time.Time) RedeemCodeQuerySet { func (qs RedeemCodeQuerySet) UpdatedAtEq(updatedAt time.Time) RedeemCodeQuerySet {
@ -616,6 +886,13 @@ func (u RedeemCodeUpdater) SetStatus(status string) RedeemCodeUpdater {
return u return u
} }
// SetStoreId is an autogenerated method
// nolint: dupl
func (u RedeemCodeUpdater) SetStoreId(storeId uint32) RedeemCodeUpdater {
u.fields[string(RedeemCodeDBSchema.StoreId)] = storeId
return u
}
// SetUpdatedAt is an autogenerated method // SetUpdatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (u RedeemCodeUpdater) SetUpdatedAt(updatedAt time.Time) RedeemCodeUpdater { func (u RedeemCodeUpdater) SetUpdatedAt(updatedAt time.Time) RedeemCodeUpdater {
@ -658,6 +935,7 @@ var RedeemCodeDBSchema = struct {
SerialCode RedeemCodeDBSchemaField SerialCode RedeemCodeDBSchemaField
CodeType RedeemCodeDBSchemaField CodeType RedeemCodeDBSchemaField
Status RedeemCodeDBSchemaField Status RedeemCodeDBSchemaField
StoreId RedeemCodeDBSchemaField
CodeSecret RedeemCodeDBSchemaField CodeSecret RedeemCodeDBSchemaField
EffectiveTime RedeemCodeDBSchemaField EffectiveTime RedeemCodeDBSchemaField
ExpirationTime RedeemCodeDBSchemaField ExpirationTime RedeemCodeDBSchemaField
@ -670,6 +948,7 @@ var RedeemCodeDBSchema = struct {
SerialCode: RedeemCodeDBSchemaField("serial_code"), SerialCode: RedeemCodeDBSchemaField("serial_code"),
CodeType: RedeemCodeDBSchemaField("code_type"), CodeType: RedeemCodeDBSchemaField("code_type"),
Status: RedeemCodeDBSchemaField("status"), Status: RedeemCodeDBSchemaField("status"),
StoreId: RedeemCodeDBSchemaField("store_id"),
CodeSecret: RedeemCodeDBSchemaField("code_secret"), CodeSecret: RedeemCodeDBSchemaField("code_secret"),
EffectiveTime: RedeemCodeDBSchemaField("effective_time"), EffectiveTime: RedeemCodeDBSchemaField("effective_time"),
ExpirationTime: RedeemCodeDBSchemaField("expiration_time"), ExpirationTime: RedeemCodeDBSchemaField("expiration_time"),
@ -686,6 +965,7 @@ func (o *RedeemCode) Update(db *gorm.DB, fields ...RedeemCodeDBSchemaField) erro
"serial_code": o.SerialCode, "serial_code": o.SerialCode,
"code_type": o.CodeType, "code_type": o.CodeType,
"status": o.Status, "status": o.Status,
"store_id": o.StoreId,
"code_secret": o.CodeSecret, "code_secret": o.CodeSecret,
"effective_time": o.EffectiveTime, "effective_time": o.EffectiveTime,
"expiration_time": o.ExpirationTime, "expiration_time": o.ExpirationTime,
@ -742,6 +1022,15 @@ func (qs UserRedeemCodeQuerySet) w(db *gorm.DB) UserRedeemCodeQuerySet {
return NewUserRedeemCodeQuerySet(db) return NewUserRedeemCodeQuerySet(db)
} }
func (qs UserRedeemCodeQuerySet) Select(fields ...UserRedeemCodeDBSchemaField) UserRedeemCodeQuerySet {
names := []string{}
for _, f := range fields {
names = append(names, f.String())
}
return qs.w(qs.db.Select(strings.Join(names, ",")))
}
// Create is an autogenerated method // Create is an autogenerated method
// nolint: dupl // nolint: dupl
func (o *UserRedeemCode) Create(db *gorm.DB) error { func (o *UserRedeemCode) Create(db *gorm.DB) error {
@ -754,6 +1043,62 @@ func (o *UserRedeemCode) Delete(db *gorm.DB) error {
return db.Delete(o).Error return db.Delete(o).Error
} }
// ActivityTypeEq is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeEq(activityType uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("activity_type = ?", activityType))
}
// ActivityTypeGt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeGt(activityType uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("activity_type > ?", activityType))
}
// ActivityTypeGte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeGte(activityType uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("activity_type >= ?", activityType))
}
// ActivityTypeIn is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeIn(activityType ...uint32) UserRedeemCodeQuerySet {
if len(activityType) == 0 {
qs.db.AddError(errors.New("must at least pass one activityType in ActivityTypeIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("activity_type IN (?)", activityType))
}
// ActivityTypeLt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeLt(activityType uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("activity_type < ?", activityType))
}
// ActivityTypeLte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeLte(activityType uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("activity_type <= ?", activityType))
}
// ActivityTypeNe is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeNe(activityType uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("activity_type != ?", activityType))
}
// ActivityTypeNotIn is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) ActivityTypeNotIn(activityType ...uint32) UserRedeemCodeQuerySet {
if len(activityType) == 0 {
qs.db.AddError(errors.New("must at least pass one activityType in ActivityTypeNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("activity_type NOT IN (?)", activityType))
}
// All is an autogenerated method // All is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) All(ret *[]UserRedeemCode) error { func (qs UserRedeemCodeQuerySet) All(ret *[]UserRedeemCode) error {
@ -766,6 +1111,18 @@ func (qs UserRedeemCodeQuerySet) CodeTypeEq(codeType string) UserRedeemCodeQuery
return qs.w(qs.db.Where("code_type = ?", codeType)) return qs.w(qs.db.Where("code_type = ?", codeType))
} }
// CodeTypeGt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeGt(codeType string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type > ?", codeType))
}
// CodeTypeGte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeGte(codeType string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type >= ?", codeType))
}
// CodeTypeIn is an autogenerated method // CodeTypeIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeIn(codeType ...string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) CodeTypeIn(codeType ...string) UserRedeemCodeQuerySet {
@ -776,6 +1133,24 @@ func (qs UserRedeemCodeQuerySet) CodeTypeIn(codeType ...string) UserRedeemCodeQu
return qs.w(qs.db.Where("code_type IN (?)", codeType)) return qs.w(qs.db.Where("code_type IN (?)", codeType))
} }
// CodeTypeLike is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeLike(codeType string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type LIKE ?", codeType))
}
// CodeTypeLt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeLt(codeType string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type < ?", codeType))
}
// CodeTypeLte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeLte(codeType string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type <= ?", codeType))
}
// CodeTypeNe is an autogenerated method // CodeTypeNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeNe(codeType string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) CodeTypeNe(codeType string) UserRedeemCodeQuerySet {
@ -792,6 +1167,12 @@ func (qs UserRedeemCodeQuerySet) CodeTypeNotIn(codeType ...string) UserRedeemCod
return qs.w(qs.db.Where("code_type NOT IN (?)", codeType)) return qs.w(qs.db.Where("code_type NOT IN (?)", codeType))
} }
// CodeTypeNotlike is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) CodeTypeNotlike(codeType string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("code_type NOT LIKE ?", codeType))
}
// ConvertTimeEq is an autogenerated method // ConvertTimeEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) ConvertTimeEq(convertTime time.Time) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) ConvertTimeEq(convertTime time.Time) UserRedeemCodeQuerySet {
@ -1026,6 +1407,18 @@ func (qs UserRedeemCodeQuerySet) One(ret *UserRedeemCode) error {
return qs.db.First(ret).Error return qs.db.First(ret).Error
} }
// OrderAscByActivityType is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscByActivityType() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("activity_type ASC"))
}
// OrderAscByCodeType is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscByCodeType() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("code_type ASC"))
}
// OrderAscByConvertTime is an autogenerated method // OrderAscByConvertTime is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscByConvertTime() UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) OrderAscByConvertTime() UserRedeemCodeQuerySet {
@ -1050,6 +1443,24 @@ func (qs UserRedeemCodeQuerySet) OrderAscByID() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("id ASC")) return qs.w(qs.db.Order("id ASC"))
} }
// OrderAscBySerialCode is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscBySerialCode() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("serial_code ASC"))
}
// OrderAscByStatus is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscByStatus() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("status ASC"))
}
// OrderAscByStoreId is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscByStoreId() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("store_id ASC"))
}
// OrderAscByUid is an autogenerated method // OrderAscByUid is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderAscByUid() UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) OrderAscByUid() UserRedeemCodeQuerySet {
@ -1062,6 +1473,18 @@ func (qs UserRedeemCodeQuerySet) OrderAscByUpdatedAt() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("updated_at ASC")) return qs.w(qs.db.Order("updated_at ASC"))
} }
// OrderDescByActivityType is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescByActivityType() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("activity_type DESC"))
}
// OrderDescByCodeType is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescByCodeType() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("code_type DESC"))
}
// OrderDescByConvertTime is an autogenerated method // OrderDescByConvertTime is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescByConvertTime() UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) OrderDescByConvertTime() UserRedeemCodeQuerySet {
@ -1086,6 +1509,24 @@ func (qs UserRedeemCodeQuerySet) OrderDescByID() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("id DESC")) return qs.w(qs.db.Order("id DESC"))
} }
// OrderDescBySerialCode is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescBySerialCode() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("serial_code DESC"))
}
// OrderDescByStatus is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescByStatus() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("status DESC"))
}
// OrderDescByStoreId is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescByStoreId() UserRedeemCodeQuerySet {
return qs.w(qs.db.Order("store_id DESC"))
}
// OrderDescByUid is an autogenerated method // OrderDescByUid is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) OrderDescByUid() UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) OrderDescByUid() UserRedeemCodeQuerySet {
@ -1104,6 +1545,18 @@ func (qs UserRedeemCodeQuerySet) SerialCodeEq(serialCode string) UserRedeemCodeQ
return qs.w(qs.db.Where("serial_code = ?", serialCode)) return qs.w(qs.db.Where("serial_code = ?", serialCode))
} }
// SerialCodeGt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeGt(serialCode string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code > ?", serialCode))
}
// SerialCodeGte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeGte(serialCode string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code >= ?", serialCode))
}
// SerialCodeIn is an autogenerated method // SerialCodeIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeIn(serialCode ...string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) SerialCodeIn(serialCode ...string) UserRedeemCodeQuerySet {
@ -1114,6 +1567,24 @@ func (qs UserRedeemCodeQuerySet) SerialCodeIn(serialCode ...string) UserRedeemCo
return qs.w(qs.db.Where("serial_code IN (?)", serialCode)) return qs.w(qs.db.Where("serial_code IN (?)", serialCode))
} }
// SerialCodeLike is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeLike(serialCode string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code LIKE ?", serialCode))
}
// SerialCodeLt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeLt(serialCode string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code < ?", serialCode))
}
// SerialCodeLte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeLte(serialCode string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code <= ?", serialCode))
}
// SerialCodeNe is an autogenerated method // SerialCodeNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeNe(serialCode string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) SerialCodeNe(serialCode string) UserRedeemCodeQuerySet {
@ -1130,12 +1601,30 @@ func (qs UserRedeemCodeQuerySet) SerialCodeNotIn(serialCode ...string) UserRedee
return qs.w(qs.db.Where("serial_code NOT IN (?)", serialCode)) return qs.w(qs.db.Where("serial_code NOT IN (?)", serialCode))
} }
// SerialCodeNotlike is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) SerialCodeNotlike(serialCode string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("serial_code NOT LIKE ?", serialCode))
}
// StatusEq is an autogenerated method // StatusEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusEq(status string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) StatusEq(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status = ?", status)) return qs.w(qs.db.Where("status = ?", status))
} }
// StatusGt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusGt(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status > ?", status))
}
// StatusGte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusGte(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status >= ?", status))
}
// StatusIn is an autogenerated method // StatusIn is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusIn(status ...string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) StatusIn(status ...string) UserRedeemCodeQuerySet {
@ -1146,6 +1635,24 @@ func (qs UserRedeemCodeQuerySet) StatusIn(status ...string) UserRedeemCodeQueryS
return qs.w(qs.db.Where("status IN (?)", status)) return qs.w(qs.db.Where("status IN (?)", status))
} }
// StatusLike is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusLike(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status LIKE ?", status))
}
// StatusLt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusLt(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status < ?", status))
}
// StatusLte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusLte(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status <= ?", status))
}
// StatusNe is an autogenerated method // StatusNe is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusNe(status string) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) StatusNe(status string) UserRedeemCodeQuerySet {
@ -1162,6 +1669,68 @@ func (qs UserRedeemCodeQuerySet) StatusNotIn(status ...string) UserRedeemCodeQue
return qs.w(qs.db.Where("status NOT IN (?)", status)) return qs.w(qs.db.Where("status NOT IN (?)", status))
} }
// StatusNotlike is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StatusNotlike(status string) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("status NOT LIKE ?", status))
}
// StoreIdEq is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdEq(storeId uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id = ?", storeId))
}
// StoreIdGt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdGt(storeId uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id > ?", storeId))
}
// StoreIdGte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdGte(storeId uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id >= ?", storeId))
}
// StoreIdIn is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdIn(storeId ...uint32) UserRedeemCodeQuerySet {
if len(storeId) == 0 {
qs.db.AddError(errors.New("must at least pass one storeId in StoreIdIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("store_id IN (?)", storeId))
}
// StoreIdLt is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdLt(storeId uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id < ?", storeId))
}
// StoreIdLte is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdLte(storeId uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id <= ?", storeId))
}
// StoreIdNe is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdNe(storeId uint32) UserRedeemCodeQuerySet {
return qs.w(qs.db.Where("store_id != ?", storeId))
}
// StoreIdNotIn is an autogenerated method
// nolint: dupl
func (qs UserRedeemCodeQuerySet) StoreIdNotIn(storeId ...uint32) UserRedeemCodeQuerySet {
if len(storeId) == 0 {
qs.db.AddError(errors.New("must at least pass one storeId in StoreIdNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("store_id NOT IN (?)", storeId))
}
// UidEq is an autogenerated method // UidEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserRedeemCodeQuerySet) UidEq(uid uint32) UserRedeemCodeQuerySet { func (qs UserRedeemCodeQuerySet) UidEq(uid uint32) UserRedeemCodeQuerySet {
@ -1254,6 +1823,13 @@ func (qs UserRedeemCodeQuerySet) UpdatedAtNe(updatedAt time.Time) UserRedeemCode
return qs.w(qs.db.Where("updated_at != ?", updatedAt)) return qs.w(qs.db.Where("updated_at != ?", updatedAt))
} }
// SetActivityType is an autogenerated method
// nolint: dupl
func (u UserRedeemCodeUpdater) SetActivityType(activityType uint32) UserRedeemCodeUpdater {
u.fields[string(UserRedeemCodeDBSchema.ActivityType)] = activityType
return u
}
// SetCodeType is an autogenerated method // SetCodeType is an autogenerated method
// nolint: dupl // nolint: dupl
func (u UserRedeemCodeUpdater) SetCodeType(codeType string) UserRedeemCodeUpdater { func (u UserRedeemCodeUpdater) SetCodeType(codeType string) UserRedeemCodeUpdater {
@ -1303,6 +1879,13 @@ func (u UserRedeemCodeUpdater) SetStatus(status string) UserRedeemCodeUpdater {
return u return u
} }
// SetStoreId is an autogenerated method
// nolint: dupl
func (u UserRedeemCodeUpdater) SetStoreId(storeId uint32) UserRedeemCodeUpdater {
u.fields[string(UserRedeemCodeDBSchema.StoreId)] = storeId
return u
}
// SetUid is an autogenerated method // SetUid is an autogenerated method
// nolint: dupl // nolint: dupl
func (u UserRedeemCodeUpdater) SetUid(uid uint32) UserRedeemCodeUpdater { func (u UserRedeemCodeUpdater) SetUid(uid uint32) UserRedeemCodeUpdater {
@ -1351,9 +1934,11 @@ var UserRedeemCodeDBSchema = struct {
DeletedAt UserRedeemCodeDBSchemaField DeletedAt UserRedeemCodeDBSchemaField
Uid UserRedeemCodeDBSchemaField Uid UserRedeemCodeDBSchemaField
Status UserRedeemCodeDBSchemaField Status UserRedeemCodeDBSchemaField
StoreId UserRedeemCodeDBSchemaField
SerialCode UserRedeemCodeDBSchemaField SerialCode UserRedeemCodeDBSchemaField
CodeType UserRedeemCodeDBSchemaField CodeType UserRedeemCodeDBSchemaField
ConvertTime UserRedeemCodeDBSchemaField ConvertTime UserRedeemCodeDBSchemaField
ActivityType UserRedeemCodeDBSchemaField
}{ }{
ID: UserRedeemCodeDBSchemaField("id"), ID: UserRedeemCodeDBSchemaField("id"),
@ -1362,9 +1947,11 @@ var UserRedeemCodeDBSchema = struct {
DeletedAt: UserRedeemCodeDBSchemaField("deleted_at"), DeletedAt: UserRedeemCodeDBSchemaField("deleted_at"),
Uid: UserRedeemCodeDBSchemaField("uid"), Uid: UserRedeemCodeDBSchemaField("uid"),
Status: UserRedeemCodeDBSchemaField("status"), Status: UserRedeemCodeDBSchemaField("status"),
StoreId: UserRedeemCodeDBSchemaField("store_id"),
SerialCode: UserRedeemCodeDBSchemaField("serial_code"), SerialCode: UserRedeemCodeDBSchemaField("serial_code"),
CodeType: UserRedeemCodeDBSchemaField("code_type"), CodeType: UserRedeemCodeDBSchemaField("code_type"),
ConvertTime: UserRedeemCodeDBSchemaField("convert_time"), ConvertTime: UserRedeemCodeDBSchemaField("convert_time"),
ActivityType: UserRedeemCodeDBSchemaField("activity_type"),
} }
// Update updates UserRedeemCode fields by primary key // Update updates UserRedeemCode fields by primary key
@ -1377,9 +1964,11 @@ func (o *UserRedeemCode) Update(db *gorm.DB, fields ...UserRedeemCodeDBSchemaFie
"deleted_at": o.DeletedAt, "deleted_at": o.DeletedAt,
"uid": o.Uid, "uid": o.Uid,
"status": o.Status, "status": o.Status,
"store_id": o.StoreId,
"serial_code": o.SerialCode, "serial_code": o.SerialCode,
"code_type": o.CodeType, "code_type": o.CodeType,
"convert_time": o.ConvertTime, "convert_time": o.ConvertTime,
"activity_type": o.ActivityType,
} }
u := map[string]interface{}{} u := map[string]interface{}{}
for _, f := range fields { for _, f := range fields {

View File

@ -6093,6 +6093,74 @@ func (qs UserQuerySet) One(ret *User) error {
return qs.db.First(ret).Error return qs.db.First(ret).Error
} }
// OpenMemberChannelEq is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelEq(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel = ?", openMemberChannel))
}
// OpenMemberChannelGt is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelGt(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel > ?", openMemberChannel))
}
// OpenMemberChannelGte is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelGte(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel >= ?", openMemberChannel))
}
// OpenMemberChannelIn is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelIn(openMemberChannel ...string) UserQuerySet {
if len(openMemberChannel) == 0 {
qs.db.AddError(errors.New("must at least pass one openMemberChannel in OpenMemberChannelIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("open_member_channel IN (?)", openMemberChannel))
}
// OpenMemberChannelLike is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelLike(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel LIKE ?", openMemberChannel))
}
// OpenMemberChannelLt is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelLt(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel < ?", openMemberChannel))
}
// OpenMemberChannelLte is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelLte(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel <= ?", openMemberChannel))
}
// OpenMemberChannelNe is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelNe(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel != ?", openMemberChannel))
}
// OpenMemberChannelNotIn is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelNotIn(openMemberChannel ...string) UserQuerySet {
if len(openMemberChannel) == 0 {
qs.db.AddError(errors.New("must at least pass one openMemberChannel in OpenMemberChannelNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("open_member_channel NOT IN (?)", openMemberChannel))
}
// OpenMemberChannelNotlike is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OpenMemberChannelNotlike(openMemberChannel string) UserQuerySet {
return qs.w(qs.db.Where("open_member_channel NOT LIKE ?", openMemberChannel))
}
// OpenMemberTimeEq is an autogenerated method // OpenMemberTimeEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserQuerySet) OpenMemberTimeEq(openMemberTime time.Time) UserQuerySet { func (qs UserQuerySet) OpenMemberTimeEq(openMemberTime time.Time) UserQuerySet {
@ -6219,6 +6287,12 @@ func (qs UserQuerySet) OrderAscByMemberLevel() UserQuerySet {
return qs.w(qs.db.Order("member_level ASC")) return qs.w(qs.db.Order("member_level ASC"))
} }
// OrderAscByOpenMemberChannel is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OrderAscByOpenMemberChannel() UserQuerySet {
return qs.w(qs.db.Order("open_member_channel ASC"))
}
// OrderAscByOpenMemberTime is an autogenerated method // OrderAscByOpenMemberTime is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserQuerySet) OrderAscByOpenMemberTime() UserQuerySet { func (qs UserQuerySet) OrderAscByOpenMemberTime() UserQuerySet {
@ -6387,6 +6461,12 @@ func (qs UserQuerySet) OrderDescByMemberLevel() UserQuerySet {
return qs.w(qs.db.Order("member_level DESC")) return qs.w(qs.db.Order("member_level DESC"))
} }
// OrderDescByOpenMemberChannel is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OrderDescByOpenMemberChannel() UserQuerySet {
return qs.w(qs.db.Order("open_member_channel DESC"))
}
// OrderDescByOpenMemberTime is an autogenerated method // OrderDescByOpenMemberTime is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserQuerySet) OrderDescByOpenMemberTime() UserQuerySet { func (qs UserQuerySet) OrderDescByOpenMemberTime() UserQuerySet {
@ -7294,6 +7374,13 @@ func (u UserUpdater) SetMemberLevel(memberLevel uint32) UserUpdater {
return u return u
} }
// SetOpenMemberChannel is an autogenerated method
// nolint: dupl
func (u UserUpdater) SetOpenMemberChannel(openMemberChannel string) UserUpdater {
u.fields[string(UserDBSchema.OpenMemberChannel)] = openMemberChannel
return u
}
// SetOpenMemberTime is an autogenerated method // SetOpenMemberTime is an autogenerated method
// nolint: dupl // nolint: dupl
func (u UserUpdater) SetOpenMemberTime(openMemberTime time.Time) UserUpdater { func (u UserUpdater) SetOpenMemberTime(openMemberTime time.Time) UserUpdater {
@ -7434,6 +7521,7 @@ var UserDBSchema = struct {
Country UserDBSchemaField Country UserDBSchemaField
Deposit UserDBSchemaField Deposit UserDBSchemaField
UserType UserDBSchemaField UserType UserDBSchemaField
OpenMemberChannel UserDBSchemaField
StoreId UserDBSchemaField StoreId UserDBSchemaField
InviteCodeUrl UserDBSchemaField InviteCodeUrl UserDBSchemaField
LastLoginAt UserDBSchemaField LastLoginAt UserDBSchemaField
@ -7464,6 +7552,7 @@ var UserDBSchema = struct {
Country: UserDBSchemaField("country"), Country: UserDBSchemaField("country"),
Deposit: UserDBSchemaField("deposit"), Deposit: UserDBSchemaField("deposit"),
UserType: UserDBSchemaField("user_type"), UserType: UserDBSchemaField("user_type"),
OpenMemberChannel: UserDBSchemaField("open_member_channel"),
StoreId: UserDBSchemaField("store_id"), StoreId: UserDBSchemaField("store_id"),
InviteCodeUrl: UserDBSchemaField("invite_code_url"), InviteCodeUrl: UserDBSchemaField("invite_code_url"),
LastLoginAt: UserDBSchemaField("last_login_at"), LastLoginAt: UserDBSchemaField("last_login_at"),
@ -7498,6 +7587,7 @@ func (o *User) Update(db *gorm.DB, fields ...UserDBSchemaField) error {
"country": o.Country, "country": o.Country,
"deposit": o.Deposit, "deposit": o.Deposit,
"user_type": o.UserType, "user_type": o.UserType,
"open_member_channel": o.OpenMemberChannel,
"store_id": o.StoreId, "store_id": o.StoreId,
"invite_code_url": o.InviteCodeUrl, "invite_code_url": o.InviteCodeUrl,
"last_login_at": o.LastLoginAt, "last_login_at": o.LastLoginAt,

View File

@ -423,6 +423,7 @@ func TestLeng(t *testing.T) {
// B61E1104C989D4E2F453EB6253A06A3721094DDF76FF468EB679CEA046403D3F7B963A8FBED0CB70C1EB9B17BB684DAFB700F966676D // B61E1104C989D4E2F453EB6253A06A3721094DDF76FF468EB679CEA046403D3F7B963A8FBED0CB70C1EB9B17BB684DAFB700F966676D
} }
// 生成会员兑换码
func TestRedeemCodeCreate(t *testing.T) { func TestRedeemCodeCreate(t *testing.T) {
RedeemCodeCreate() RedeemCodeCreate()
} }
@ -431,7 +432,7 @@ func RedeemCodeCreate() {
//InitTestDB() //InitTestDB()
InitDBProd() InitDBProd()
for i := 0; i < 1000; i++ { for i := 0; i < 7; i++ {
redeem := NewRedeemCode() redeem := NewRedeemCode()
fmt.Println("redeemCode:", redeem) fmt.Println("redeemCode:", redeem)
@ -442,12 +443,13 @@ func RedeemCodeCreate() {
if !IsRedeemCodeExist(redeem) { if !IsRedeemCodeExist(redeem) {
redeemCode := &RedeemCode{ redeemCode := &RedeemCode{
SerialCode: redeem, SerialCode: redeem,
CodeType: CodeTypeMemberCard30, CodeType: CodeTypeMemberGoldMember,
Status: RedeemCodeStatusStock, Status: RedeemCodeStatusStock,
CodeSecret: secretCode, CodeSecret: secretCode,
EffectiveTime: time.Now(), EffectiveTime: time.Now(),
ExpirationTime: time.Time{}, ExpirationTime: time.Now().AddDate(1, 0, 0),
} }
//err := DBDev.Create(redeemCode).Error
err := DBProd.Create(redeemCode).Error err := DBProd.Create(redeemCode).Error
if err != nil { if err != nil {
fmt.Println("err:", err) fmt.Println("err:", err)
@ -462,6 +464,7 @@ func RedeemCodeCreate() {
func IsRedeemCodeExist(code string) bool { func IsRedeemCodeExist(code string) bool {
var isExist uint32 var isExist uint32
sql := fmt.Sprintf("SELECT EXISTS (SELECT * FROM redeem_code WHERE serial_code = '%s') AS code_exsit;", code) sql := fmt.Sprintf("SELECT EXISTS (SELECT * FROM redeem_code WHERE serial_code = '%s') AS code_exsit;", code)
//err := DBDev.Raw(sql).Row().Scan(&isExist)
err := DBProd.Raw(sql).Row().Scan(&isExist) err := DBProd.Raw(sql).Row().Scan(&isExist)
if err != nil { if err != nil {
fmt.Println("err:", err) fmt.Println("err:", err)

View File

@ -15,7 +15,10 @@ const (
RedeemCodeStatusUsed = "used" // 已使用 RedeemCodeStatusUsed = "used" // 已使用
) )
const ( const (
CodeTypeMemberCard30 = "member-card-30" CodeTypeMemberCard30 = "member-card-30" // 会员卡 30天
CodeTypeMemberGoldMember = "member-card-gold-member"
CodeTypeMemberPlatinumMember = "member-card-platinum-member"
CodeTypeMemberBlackGoldMember = "member-card-black-gold-member"
) )
const ( const (
@ -41,6 +44,7 @@ type RedeemCode struct {
SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码 SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码
CodeType string `json:"code_type"` // memberCard CodeType string `json:"code_type"` // memberCard
Status string `json:"status" gorm:"index;comment:'兑换状态'"` // stocking user-hold used Status string `json:"status" gorm:"index;comment:'兑换状态'"` // stocking user-hold used
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
CodeSecret string `json:"code_secret"` // 兑换密码 CodeSecret string `json:"code_secret"` // 兑换密码
EffectiveTime time.Time `json:"effective_time"` // 生效时间 EffectiveTime time.Time `json:"effective_time"` // 生效时间
ExpirationTime time.Time `json:"expiration_time"` // 过期时间 ExpirationTime time.Time `json:"expiration_time"` // 过期时间
@ -51,6 +55,7 @@ type UserRedeemCode struct {
Model Model
Uid uint32 `json:"uid" gorm:"index;comment:'用户id'"` Uid uint32 `json:"uid" gorm:"index;comment:'用户id'"`
Status string `json:"status" gorm:"index;comment:'兑换状态'"` // user-hold used Status string `json:"status" gorm:"index;comment:'兑换状态'"` // user-hold used
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码 SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码
CodeType string `json:"code_type"` // memberCard CodeType string `json:"code_type"` // memberCard
ConvertTime time.Time `json:"convert_time"` // 绑定时间 ConvertTime time.Time `json:"convert_time"` // 绑定时间
@ -123,6 +128,10 @@ func UserRedeemCodeConvert(uid uint32, serialCode string) error {
begin.Rollback() begin.Rollback()
return err return err
} }
//qsUserRedeem := NewUserRedeemCodeQuerySet(begin).UidEq(uid).SerialCodeEq(serialCode).GetUpdater()
//if userRedeem.CodeType == CodeTypeMemberGoldMember {
// //qsUserRedeem = qsUserRedeem.SetCodeType()
//}
updateNum, err := NewUserRedeemCodeQuerySet(begin).UidEq(uid).SerialCodeEq(serialCode).GetUpdater(). updateNum, err := NewUserRedeemCodeQuerySet(begin).UidEq(uid).SerialCodeEq(serialCode).GetUpdater().
SetStatus(UserRedeemCodeStatusUsed).SetConvertTime(time.Now()).UpdateNum() SetStatus(UserRedeemCodeStatusUsed).SetConvertTime(time.Now()).UpdateNum()
if err != nil { if err != nil {
@ -137,15 +146,45 @@ func UserRedeemCodeConvert(uid uint32, serialCode string) error {
} }
user := GetUserByUid(uid) user := GetUserByUid(uid)
qs := NewUserQuerySet(begin).UidEq(uid).GetUpdater() qs := NewUserQuerySet(begin).UidEq(uid).GetUpdater()
if user.MemberLevel == 1 { if user.MemberLevel != 1 && user.MemberLevel != 3 &&
qs = qs.SetMemberLevel(3) userRedeem.CodeType != CodeTypeMemberCard30 {
logger.Error("code type used by consumer:")
begin.Rollback()
return errors.New("code type used by consumer")
} }
if user.MemberExpire.After(time.Now()) { addDates := 0
qs = qs.SetMemberExpire(user.MemberExpire.AddDate(0, 0, 30)) memberLevel := uint32(0)
} else { switch userRedeem.CodeType {
qs = qs.SetMemberExpire(time.Now().AddDate(0, 0, 30)) case CodeTypeMemberCard30:
addDates = 30
memberLevel = 3
case CodeTypeMemberGoldMember:
addDates = 365
memberLevel = 2
qs = qs.SetMemberLevel(MemberLevelGold).SetOpenMemberTime(time.Now()).SetOpenMemberChannel(OpenMemberChannelRedeemCode)
case CodeTypeMemberPlatinumMember:
addDates = 365
memberLevel = 4
qs = qs.SetMemberLevel(MemberLevelPlatinum).SetOpenMemberTime(time.Now()).SetOpenMemberChannel(OpenMemberChannelRedeemCode)
case CodeTypeMemberBlackGoldMember:
addDates = 365
memberLevel = 5
qs = qs.SetMemberLevel(MemberLevelBlackGold).SetOpenMemberTime(time.Now()).SetOpenMemberChannel(OpenMemberChannelRedeemCode)
default:
logger.Error(" code type err:", err)
begin.Rollback()
return err
} }
if user.MemberExpire.After(time.Now()) {
qs = qs.SetMemberExpire(user.MemberExpire.AddDate(0, 0, addDates))
} else {
qs = qs.SetMemberExpire(time.Now().AddDate(0, 0, addDates))
}
if user.MemberLevel == 1 || user.MemberLevel == 3 {
qs = qs.SetMemberLevel(memberLevel)
}
userNum, err := qs.UpdateNum() userNum, err := qs.UpdateNum()
if err != nil { if err != nil {
logger.Error("user redeem code err:", err) logger.Error("user redeem code err:", err)

View File

@ -30,8 +30,9 @@ type User struct {
City string `json:"city"` // 城市 City string `json:"city"` // 城市
Province string `json:"province"` // 省 Province string `json:"province"` // 省
Country string `json:"country"` // 市 Country string `json:"country"` // 市
Deposit uint32 `json:"deposit"` // Deposit uint32 `json:"deposit"` // 押金
UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员 UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员
OpenMemberChannel string `json:"open_member_channel" ` // 开通会员渠道 -门店推广 -用户邀请 -兑换码
StoreId uint64 `json:"store_id"` // 门店id StoreId uint64 `json:"store_id"` // 门店id
InviteCodeUrl string `json:"invite_code_url"` // 分享二维码 InviteCodeUrl string `json:"invite_code_url"` // 分享二维码
LastLoginAt time.Time `json:"last_login_at"` // 最近登录时间 LastLoginAt time.Time `json:"last_login_at"` // 最近登录时间
@ -54,7 +55,7 @@ const (
const ( const (
MemberLevelConsumer = 1 // 普通用户 MemberLevelConsumer = 1 // 普通用户
MemberLevelGold = 2 // 黄金会员 MemberLevelGold = 2 // 黄金会员
MemberLevelPeriod = 3 MemberLevelPeriod = 3 // 短期会员
MemberLevelPlatinum = 4 // 白金会员 MemberLevelPlatinum = 4 // 白金会员
MemberLevelBlackGold = 5 // 黑金会员 MemberLevelBlackGold = 5 // 黑金会员
) )
@ -63,6 +64,11 @@ const (
DateTimeFormat = "2006-01-02" DateTimeFormat = "2006-01-02"
TimeFormat = "2006-01-02 15:04:05" TimeFormat = "2006-01-02 15:04:05"
) )
const (
OpenMemberChannelStorePromotion = "store_promotion"
OpenMemberChannelUserInvite = "user_invite"
OpenMemberChannelRedeemCode = "redeem_code"
)
// gen:qs // gen:qs
type UserInvite struct { type UserInvite struct {