Merge branch 'dev_mall_member' into dev_share_card_issue_code
This commit is contained in:
commit
30fca5a0a4
|
@ -326,7 +326,7 @@ func UpgradeMember(c *gin.Context) {
|
|||
// 补押金
|
||||
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 {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
@ -452,7 +452,7 @@ func UpgradeMemberInfo(c *gin.Context) {
|
|||
// 补押金
|
||||
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 {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
|
|
@ -4,6 +4,7 @@ package model
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/jinzhu/gorm"
|
||||
|
@ -29,6 +30,15 @@ func (qs RedeemCodeQuerySet) w(db *gorm.DB) RedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) CodeTypeEq(codeType string) RedeemCodeQuerySet {
|
||||
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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) Count() (int, error) {
|
||||
|
@ -381,6 +463,18 @@ func (qs RedeemCodeQuerySet) One(ret *RedeemCode) 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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) OrderAscByCreatedAt() RedeemCodeQuerySet {
|
||||
|
@ -411,12 +505,42 @@ func (qs RedeemCodeQuerySet) OrderAscByID() RedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) OrderAscByUpdatedAt() RedeemCodeQuerySet {
|
||||
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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) OrderDescByCreatedAt() RedeemCodeQuerySet {
|
||||
|
@ -447,6 +571,24 @@ func (qs RedeemCodeQuerySet) OrderDescByID() RedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) StatusEq(status string) RedeemCodeQuerySet {
|
||||
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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs RedeemCodeQuerySet) UpdatedAtEq(updatedAt time.Time) RedeemCodeQuerySet {
|
||||
|
@ -616,6 +886,13 @@ func (u RedeemCodeUpdater) SetStatus(status string) RedeemCodeUpdater {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (u RedeemCodeUpdater) SetUpdatedAt(updatedAt time.Time) RedeemCodeUpdater {
|
||||
|
@ -658,6 +935,7 @@ var RedeemCodeDBSchema = struct {
|
|||
SerialCode RedeemCodeDBSchemaField
|
||||
CodeType RedeemCodeDBSchemaField
|
||||
Status RedeemCodeDBSchemaField
|
||||
StoreId RedeemCodeDBSchemaField
|
||||
CodeSecret RedeemCodeDBSchemaField
|
||||
EffectiveTime RedeemCodeDBSchemaField
|
||||
ExpirationTime RedeemCodeDBSchemaField
|
||||
|
@ -670,6 +948,7 @@ var RedeemCodeDBSchema = struct {
|
|||
SerialCode: RedeemCodeDBSchemaField("serial_code"),
|
||||
CodeType: RedeemCodeDBSchemaField("code_type"),
|
||||
Status: RedeemCodeDBSchemaField("status"),
|
||||
StoreId: RedeemCodeDBSchemaField("store_id"),
|
||||
CodeSecret: RedeemCodeDBSchemaField("code_secret"),
|
||||
EffectiveTime: RedeemCodeDBSchemaField("effective_time"),
|
||||
ExpirationTime: RedeemCodeDBSchemaField("expiration_time"),
|
||||
|
@ -686,6 +965,7 @@ func (o *RedeemCode) Update(db *gorm.DB, fields ...RedeemCodeDBSchemaField) erro
|
|||
"serial_code": o.SerialCode,
|
||||
"code_type": o.CodeType,
|
||||
"status": o.Status,
|
||||
"store_id": o.StoreId,
|
||||
"code_secret": o.CodeSecret,
|
||||
"effective_time": o.EffectiveTime,
|
||||
"expiration_time": o.ExpirationTime,
|
||||
|
@ -742,6 +1022,15 @@ func (qs UserRedeemCodeQuerySet) w(db *gorm.DB) UserRedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
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
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs UserRedeemCodeQuerySet) OrderAscByConvertTime() UserRedeemCodeQuerySet {
|
||||
|
@ -1050,6 +1443,24 @@ func (qs UserRedeemCodeQuerySet) OrderAscByID() UserRedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs UserRedeemCodeQuerySet) OrderAscByUid() UserRedeemCodeQuerySet {
|
||||
|
@ -1062,6 +1473,18 @@ func (qs UserRedeemCodeQuerySet) OrderAscByUpdatedAt() UserRedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs UserRedeemCodeQuerySet) OrderDescByConvertTime() UserRedeemCodeQuerySet {
|
||||
|
@ -1086,6 +1509,24 @@ func (qs UserRedeemCodeQuerySet) OrderDescByID() UserRedeemCodeQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs UserRedeemCodeQuerySet) StatusEq(status string) UserRedeemCodeQuerySet {
|
||||
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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
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))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (u UserRedeemCodeUpdater) SetCodeType(codeType string) UserRedeemCodeUpdater {
|
||||
|
@ -1303,6 +1879,13 @@ func (u UserRedeemCodeUpdater) SetStatus(status string) UserRedeemCodeUpdater {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (u UserRedeemCodeUpdater) SetUid(uid uint32) UserRedeemCodeUpdater {
|
||||
|
@ -1345,41 +1928,47 @@ func (f UserRedeemCodeDBSchemaField) String() string {
|
|||
|
||||
// UserRedeemCodeDBSchema stores db field names of UserRedeemCode
|
||||
var UserRedeemCodeDBSchema = struct {
|
||||
ID UserRedeemCodeDBSchemaField
|
||||
CreatedAt UserRedeemCodeDBSchemaField
|
||||
UpdatedAt UserRedeemCodeDBSchemaField
|
||||
DeletedAt UserRedeemCodeDBSchemaField
|
||||
Uid UserRedeemCodeDBSchemaField
|
||||
Status UserRedeemCodeDBSchemaField
|
||||
SerialCode UserRedeemCodeDBSchemaField
|
||||
CodeType UserRedeemCodeDBSchemaField
|
||||
ConvertTime UserRedeemCodeDBSchemaField
|
||||
ID UserRedeemCodeDBSchemaField
|
||||
CreatedAt UserRedeemCodeDBSchemaField
|
||||
UpdatedAt UserRedeemCodeDBSchemaField
|
||||
DeletedAt UserRedeemCodeDBSchemaField
|
||||
Uid UserRedeemCodeDBSchemaField
|
||||
Status UserRedeemCodeDBSchemaField
|
||||
StoreId UserRedeemCodeDBSchemaField
|
||||
SerialCode UserRedeemCodeDBSchemaField
|
||||
CodeType UserRedeemCodeDBSchemaField
|
||||
ConvertTime UserRedeemCodeDBSchemaField
|
||||
ActivityType UserRedeemCodeDBSchemaField
|
||||
}{
|
||||
|
||||
ID: UserRedeemCodeDBSchemaField("id"),
|
||||
CreatedAt: UserRedeemCodeDBSchemaField("created_at"),
|
||||
UpdatedAt: UserRedeemCodeDBSchemaField("updated_at"),
|
||||
DeletedAt: UserRedeemCodeDBSchemaField("deleted_at"),
|
||||
Uid: UserRedeemCodeDBSchemaField("uid"),
|
||||
Status: UserRedeemCodeDBSchemaField("status"),
|
||||
SerialCode: UserRedeemCodeDBSchemaField("serial_code"),
|
||||
CodeType: UserRedeemCodeDBSchemaField("code_type"),
|
||||
ConvertTime: UserRedeemCodeDBSchemaField("convert_time"),
|
||||
ID: UserRedeemCodeDBSchemaField("id"),
|
||||
CreatedAt: UserRedeemCodeDBSchemaField("created_at"),
|
||||
UpdatedAt: UserRedeemCodeDBSchemaField("updated_at"),
|
||||
DeletedAt: UserRedeemCodeDBSchemaField("deleted_at"),
|
||||
Uid: UserRedeemCodeDBSchemaField("uid"),
|
||||
Status: UserRedeemCodeDBSchemaField("status"),
|
||||
StoreId: UserRedeemCodeDBSchemaField("store_id"),
|
||||
SerialCode: UserRedeemCodeDBSchemaField("serial_code"),
|
||||
CodeType: UserRedeemCodeDBSchemaField("code_type"),
|
||||
ConvertTime: UserRedeemCodeDBSchemaField("convert_time"),
|
||||
ActivityType: UserRedeemCodeDBSchemaField("activity_type"),
|
||||
}
|
||||
|
||||
// Update updates UserRedeemCode fields by primary key
|
||||
// nolint: dupl
|
||||
func (o *UserRedeemCode) Update(db *gorm.DB, fields ...UserRedeemCodeDBSchemaField) error {
|
||||
dbNameToFieldName := map[string]interface{}{
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"status": o.Status,
|
||||
"serial_code": o.SerialCode,
|
||||
"code_type": o.CodeType,
|
||||
"convert_time": o.ConvertTime,
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"status": o.Status,
|
||||
"store_id": o.StoreId,
|
||||
"serial_code": o.SerialCode,
|
||||
"code_type": o.CodeType,
|
||||
"convert_time": o.ConvertTime,
|
||||
"activity_type": o.ActivityType,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
|
|
@ -6093,6 +6093,74 @@ func (qs UserQuerySet) One(ret *User) 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
|
||||
// nolint: dupl
|
||||
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"))
|
||||
}
|
||||
|
||||
// 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
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderAscByOpenMemberTime() UserQuerySet {
|
||||
|
@ -6387,6 +6461,12 @@ func (qs UserQuerySet) OrderDescByMemberLevel() UserQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderDescByOpenMemberTime() UserQuerySet {
|
||||
|
@ -7294,6 +7374,13 @@ func (u UserUpdater) SetMemberLevel(memberLevel uint32) UserUpdater {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (u UserUpdater) SetOpenMemberTime(openMemberTime time.Time) UserUpdater {
|
||||
|
@ -7413,98 +7500,101 @@ func (f UserDBSchemaField) String() string {
|
|||
|
||||
// UserDBSchema stores db field names of User
|
||||
var UserDBSchema = struct {
|
||||
ID UserDBSchemaField
|
||||
CreatedAt UserDBSchemaField
|
||||
UpdatedAt UserDBSchemaField
|
||||
DeletedAt UserDBSchemaField
|
||||
Uid UserDBSchemaField
|
||||
MemberLevel UserDBSchemaField
|
||||
MemberExpire UserDBSchemaField
|
||||
OpenMemberTime UserDBSchemaField
|
||||
Bond UserDBSchemaField
|
||||
WxName UserDBSchemaField
|
||||
WxAvatar UserDBSchemaField
|
||||
WxOpenID UserDBSchemaField
|
||||
AppOpenID UserDBSchemaField
|
||||
WxUnionID UserDBSchemaField
|
||||
Tel UserDBSchemaField
|
||||
Gender UserDBSchemaField
|
||||
City UserDBSchemaField
|
||||
Province UserDBSchemaField
|
||||
Country UserDBSchemaField
|
||||
Deposit UserDBSchemaField
|
||||
UserType UserDBSchemaField
|
||||
StoreId UserDBSchemaField
|
||||
InviteCodeUrl UserDBSchemaField
|
||||
LastLoginAt UserDBSchemaField
|
||||
IP UserDBSchemaField
|
||||
InBlack UserDBSchemaField
|
||||
StoreType UserDBSchemaField
|
||||
Version UserDBSchemaField
|
||||
ID UserDBSchemaField
|
||||
CreatedAt UserDBSchemaField
|
||||
UpdatedAt UserDBSchemaField
|
||||
DeletedAt UserDBSchemaField
|
||||
Uid UserDBSchemaField
|
||||
MemberLevel UserDBSchemaField
|
||||
MemberExpire UserDBSchemaField
|
||||
OpenMemberTime UserDBSchemaField
|
||||
Bond UserDBSchemaField
|
||||
WxName UserDBSchemaField
|
||||
WxAvatar UserDBSchemaField
|
||||
WxOpenID UserDBSchemaField
|
||||
AppOpenID UserDBSchemaField
|
||||
WxUnionID UserDBSchemaField
|
||||
Tel UserDBSchemaField
|
||||
Gender UserDBSchemaField
|
||||
City UserDBSchemaField
|
||||
Province UserDBSchemaField
|
||||
Country UserDBSchemaField
|
||||
Deposit UserDBSchemaField
|
||||
UserType UserDBSchemaField
|
||||
OpenMemberChannel UserDBSchemaField
|
||||
StoreId UserDBSchemaField
|
||||
InviteCodeUrl UserDBSchemaField
|
||||
LastLoginAt UserDBSchemaField
|
||||
IP UserDBSchemaField
|
||||
InBlack UserDBSchemaField
|
||||
StoreType UserDBSchemaField
|
||||
Version UserDBSchemaField
|
||||
}{
|
||||
|
||||
ID: UserDBSchemaField("id"),
|
||||
CreatedAt: UserDBSchemaField("created_at"),
|
||||
UpdatedAt: UserDBSchemaField("updated_at"),
|
||||
DeletedAt: UserDBSchemaField("deleted_at"),
|
||||
Uid: UserDBSchemaField("uid"),
|
||||
MemberLevel: UserDBSchemaField("member_level"),
|
||||
MemberExpire: UserDBSchemaField("member_expire"),
|
||||
OpenMemberTime: UserDBSchemaField("open_member_time"),
|
||||
Bond: UserDBSchemaField("bond"),
|
||||
WxName: UserDBSchemaField("wx_name"),
|
||||
WxAvatar: UserDBSchemaField("wx_avatar"),
|
||||
WxOpenID: UserDBSchemaField("wx_open_id"),
|
||||
AppOpenID: UserDBSchemaField("app_open_id"),
|
||||
WxUnionID: UserDBSchemaField("wx_union_id"),
|
||||
Tel: UserDBSchemaField("tel"),
|
||||
Gender: UserDBSchemaField("gender"),
|
||||
City: UserDBSchemaField("city"),
|
||||
Province: UserDBSchemaField("province"),
|
||||
Country: UserDBSchemaField("country"),
|
||||
Deposit: UserDBSchemaField("deposit"),
|
||||
UserType: UserDBSchemaField("user_type"),
|
||||
StoreId: UserDBSchemaField("store_id"),
|
||||
InviteCodeUrl: UserDBSchemaField("invite_code_url"),
|
||||
LastLoginAt: UserDBSchemaField("last_login_at"),
|
||||
IP: UserDBSchemaField("ip"),
|
||||
InBlack: UserDBSchemaField("in_black"),
|
||||
StoreType: UserDBSchemaField("store_type"),
|
||||
Version: UserDBSchemaField("version"),
|
||||
ID: UserDBSchemaField("id"),
|
||||
CreatedAt: UserDBSchemaField("created_at"),
|
||||
UpdatedAt: UserDBSchemaField("updated_at"),
|
||||
DeletedAt: UserDBSchemaField("deleted_at"),
|
||||
Uid: UserDBSchemaField("uid"),
|
||||
MemberLevel: UserDBSchemaField("member_level"),
|
||||
MemberExpire: UserDBSchemaField("member_expire"),
|
||||
OpenMemberTime: UserDBSchemaField("open_member_time"),
|
||||
Bond: UserDBSchemaField("bond"),
|
||||
WxName: UserDBSchemaField("wx_name"),
|
||||
WxAvatar: UserDBSchemaField("wx_avatar"),
|
||||
WxOpenID: UserDBSchemaField("wx_open_id"),
|
||||
AppOpenID: UserDBSchemaField("app_open_id"),
|
||||
WxUnionID: UserDBSchemaField("wx_union_id"),
|
||||
Tel: UserDBSchemaField("tel"),
|
||||
Gender: UserDBSchemaField("gender"),
|
||||
City: UserDBSchemaField("city"),
|
||||
Province: UserDBSchemaField("province"),
|
||||
Country: UserDBSchemaField("country"),
|
||||
Deposit: UserDBSchemaField("deposit"),
|
||||
UserType: UserDBSchemaField("user_type"),
|
||||
OpenMemberChannel: UserDBSchemaField("open_member_channel"),
|
||||
StoreId: UserDBSchemaField("store_id"),
|
||||
InviteCodeUrl: UserDBSchemaField("invite_code_url"),
|
||||
LastLoginAt: UserDBSchemaField("last_login_at"),
|
||||
IP: UserDBSchemaField("ip"),
|
||||
InBlack: UserDBSchemaField("in_black"),
|
||||
StoreType: UserDBSchemaField("store_type"),
|
||||
Version: UserDBSchemaField("version"),
|
||||
}
|
||||
|
||||
// Update updates User fields by primary key
|
||||
// nolint: dupl
|
||||
func (o *User) Update(db *gorm.DB, fields ...UserDBSchemaField) error {
|
||||
dbNameToFieldName := map[string]interface{}{
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"member_level": o.MemberLevel,
|
||||
"member_expire": o.MemberExpire,
|
||||
"open_member_time": o.OpenMemberTime,
|
||||
"bond": o.Bond,
|
||||
"wx_name": o.WxName,
|
||||
"wx_avatar": o.WxAvatar,
|
||||
"wx_open_id": o.WxOpenID,
|
||||
"app_open_id": o.AppOpenID,
|
||||
"wx_union_id": o.WxUnionID,
|
||||
"tel": o.Tel,
|
||||
"gender": o.Gender,
|
||||
"city": o.City,
|
||||
"province": o.Province,
|
||||
"country": o.Country,
|
||||
"deposit": o.Deposit,
|
||||
"user_type": o.UserType,
|
||||
"store_id": o.StoreId,
|
||||
"invite_code_url": o.InviteCodeUrl,
|
||||
"last_login_at": o.LastLoginAt,
|
||||
"ip": o.IP,
|
||||
"in_black": o.InBlack,
|
||||
"store_type": o.StoreType,
|
||||
"version": o.Version,
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"member_level": o.MemberLevel,
|
||||
"member_expire": o.MemberExpire,
|
||||
"open_member_time": o.OpenMemberTime,
|
||||
"bond": o.Bond,
|
||||
"wx_name": o.WxName,
|
||||
"wx_avatar": o.WxAvatar,
|
||||
"wx_open_id": o.WxOpenID,
|
||||
"app_open_id": o.AppOpenID,
|
||||
"wx_union_id": o.WxUnionID,
|
||||
"tel": o.Tel,
|
||||
"gender": o.Gender,
|
||||
"city": o.City,
|
||||
"province": o.Province,
|
||||
"country": o.Country,
|
||||
"deposit": o.Deposit,
|
||||
"user_type": o.UserType,
|
||||
"open_member_channel": o.OpenMemberChannel,
|
||||
"store_id": o.StoreId,
|
||||
"invite_code_url": o.InviteCodeUrl,
|
||||
"last_login_at": o.LastLoginAt,
|
||||
"ip": o.IP,
|
||||
"in_black": o.InBlack,
|
||||
"store_type": o.StoreType,
|
||||
"version": o.Version,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
|
|
@ -423,6 +423,7 @@ func TestLeng(t *testing.T) {
|
|||
// B61E1104C989D4E2F453EB6253A06A3721094DDF76FF468EB679CEA046403D3F7B963A8FBED0CB70C1EB9B17BB684DAFB700F966676D
|
||||
}
|
||||
|
||||
// 生成会员兑换码
|
||||
func TestRedeemCodeCreate(t *testing.T) {
|
||||
RedeemCodeCreate()
|
||||
}
|
||||
|
@ -431,7 +432,7 @@ func RedeemCodeCreate() {
|
|||
//InitTestDB()
|
||||
InitDBProd()
|
||||
|
||||
for i := 0; i < 1000; i++ {
|
||||
for i := 0; i < 7; i++ {
|
||||
redeem := NewRedeemCode()
|
||||
|
||||
fmt.Println("redeemCode:", redeem)
|
||||
|
@ -442,12 +443,13 @@ func RedeemCodeCreate() {
|
|||
if !IsRedeemCodeExist(redeem) {
|
||||
redeemCode := &RedeemCode{
|
||||
SerialCode: redeem,
|
||||
CodeType: CodeTypeMemberCard30,
|
||||
CodeType: CodeTypeMemberGoldMember,
|
||||
Status: RedeemCodeStatusStock,
|
||||
CodeSecret: secretCode,
|
||||
EffectiveTime: time.Now(),
|
||||
ExpirationTime: time.Time{},
|
||||
ExpirationTime: time.Now().AddDate(1, 0, 0),
|
||||
}
|
||||
//err := DBDev.Create(redeemCode).Error
|
||||
err := DBProd.Create(redeemCode).Error
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
|
@ -462,6 +464,7 @@ func RedeemCodeCreate() {
|
|||
func IsRedeemCodeExist(code string) bool {
|
||||
var isExist uint32
|
||||
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)
|
||||
if err != nil {
|
||||
fmt.Println("err:", err)
|
||||
|
|
|
@ -15,7 +15,10 @@ const (
|
|||
RedeemCodeStatusUsed = "used" // 已使用
|
||||
)
|
||||
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 (
|
||||
|
@ -41,6 +44,7 @@ type RedeemCode struct {
|
|||
SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码
|
||||
CodeType string `json:"code_type"` // memberCard
|
||||
Status string `json:"status" gorm:"index;comment:'兑换状态'"` // stocking user-hold used
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
CodeSecret string `json:"code_secret"` // 兑换密码
|
||||
EffectiveTime time.Time `json:"effective_time"` // 生效时间
|
||||
ExpirationTime time.Time `json:"expiration_time"` // 过期时间
|
||||
|
@ -51,6 +55,7 @@ type UserRedeemCode struct {
|
|||
Model
|
||||
Uid uint32 `json:"uid" gorm:"index;comment:'用户id'"`
|
||||
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:'兑换编码'"` // 兑换编码
|
||||
CodeType string `json:"code_type"` // memberCard
|
||||
ConvertTime time.Time `json:"convert_time"` // 绑定时间
|
||||
|
@ -123,6 +128,10 @@ func UserRedeemCodeConvert(uid uint32, serialCode string) error {
|
|||
begin.Rollback()
|
||||
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().
|
||||
SetStatus(UserRedeemCodeStatusUsed).SetConvertTime(time.Now()).UpdateNum()
|
||||
if err != nil {
|
||||
|
@ -137,15 +146,45 @@ func UserRedeemCodeConvert(uid uint32, serialCode string) error {
|
|||
}
|
||||
user := GetUserByUid(uid)
|
||||
qs := NewUserQuerySet(begin).UidEq(uid).GetUpdater()
|
||||
if user.MemberLevel == 1 {
|
||||
qs = qs.SetMemberLevel(3)
|
||||
if user.MemberLevel != 1 && user.MemberLevel != 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()) {
|
||||
qs = qs.SetMemberExpire(user.MemberExpire.AddDate(0, 0, 30))
|
||||
} else {
|
||||
qs = qs.SetMemberExpire(time.Now().AddDate(0, 0, 30))
|
||||
addDates := 0
|
||||
memberLevel := uint32(0)
|
||||
switch userRedeem.CodeType {
|
||||
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()
|
||||
if err != nil {
|
||||
logger.Error("user redeem code err:", err)
|
||||
|
|
|
@ -15,31 +15,32 @@ import (
|
|||
type User struct {
|
||||
Model
|
||||
|
||||
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
|
||||
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
OpenMemberTime time.Time `json:"open_member_time"` // 开通会员
|
||||
Bond uint32 `json:"bond"` // 保证金
|
||||
WxName string `json:"wx_name"` // 昵称
|
||||
WxAvatar string `json:"wx_avatar"` // 头像
|
||||
WxOpenID string `json:"wx_open_id"`
|
||||
AppOpenID string `json:"app_open_id"`
|
||||
WxUnionID string `json:"wx_union_id"`
|
||||
Tel string `json:"tel"` // 电话
|
||||
Gender uint8 `json:"gender"` // 性别
|
||||
City string `json:"city"` // 城市
|
||||
Province string `json:"province"` // 省
|
||||
Country string `json:"country"` // 市
|
||||
Deposit uint32 `json:"deposit"` //
|
||||
UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员
|
||||
StoreId uint64 `json:"store_id"` // 门店id
|
||||
InviteCodeUrl string `json:"invite_code_url"` // 分享二维码
|
||||
LastLoginAt time.Time `json:"last_login_at"` // 最近登录时间
|
||||
IP string `json:"-" gorm:"type:varchar(60)"` // ip
|
||||
InBlack bool `json:"in_black"` // 是否在黑名单
|
||||
StoreType uint8 `json:"store_type"` // 1-订单门店
|
||||
Version uint32 `json:"-"`
|
||||
UserVm *UserVm `json:"user_vm" gorm:"-"` //
|
||||
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
|
||||
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
OpenMemberTime time.Time `json:"open_member_time"` // 开通会员
|
||||
Bond uint32 `json:"bond"` // 保证金
|
||||
WxName string `json:"wx_name"` // 昵称
|
||||
WxAvatar string `json:"wx_avatar"` // 头像
|
||||
WxOpenID string `json:"wx_open_id"`
|
||||
AppOpenID string `json:"app_open_id"`
|
||||
WxUnionID string `json:"wx_union_id"`
|
||||
Tel string `json:"tel"` // 电话
|
||||
Gender uint8 `json:"gender"` // 性别
|
||||
City string `json:"city"` // 城市
|
||||
Province string `json:"province"` // 省
|
||||
Country string `json:"country"` // 市
|
||||
Deposit uint32 `json:"deposit"` // 押金
|
||||
UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员
|
||||
OpenMemberChannel string `json:"open_member_channel" ` // 开通会员渠道 -门店推广 -用户邀请 -兑换码
|
||||
StoreId uint64 `json:"store_id"` // 门店id
|
||||
InviteCodeUrl string `json:"invite_code_url"` // 分享二维码
|
||||
LastLoginAt time.Time `json:"last_login_at"` // 最近登录时间
|
||||
IP string `json:"-" gorm:"type:varchar(60)"` // ip
|
||||
InBlack bool `json:"in_black"` // 是否在黑名单
|
||||
StoreType uint8 `json:"store_type"` // 1-订单门店
|
||||
Version uint32 `json:"-"`
|
||||
UserVm *UserVm `json:"user_vm" gorm:"-"` //
|
||||
}
|
||||
|
||||
func (o *User) TableName() string {
|
||||
|
@ -54,7 +55,7 @@ const (
|
|||
const (
|
||||
MemberLevelConsumer = 1 // 普通用户
|
||||
MemberLevelGold = 2 // 黄金会员
|
||||
MemberLevelPeriod = 3
|
||||
MemberLevelPeriod = 3 // 短期会员
|
||||
MemberLevelPlatinum = 4 // 白金会员
|
||||
MemberLevelBlackGold = 5 // 黑金会员
|
||||
)
|
||||
|
@ -63,6 +64,11 @@ const (
|
|||
DateTimeFormat = "2006-01-02"
|
||||
TimeFormat = "2006-01-02 15:04:05"
|
||||
)
|
||||
const (
|
||||
OpenMemberChannelStorePromotion = "store_promotion"
|
||||
OpenMemberChannelUserInvite = "user_invite"
|
||||
OpenMemberChannelRedeemCode = "redeem_code"
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type UserInvite struct {
|
||||
|
|
Loading…
Reference in New Issue
Block a user