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)
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)

View File

@ -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 {

View File

@ -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 {

View File

@ -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)

View File

@ -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)

View File

@ -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 {