Commit 06a61d52 authored by vicotor's avatar vicotor

update sql

parent 9e4240a0
......@@ -125,7 +125,7 @@ func (c *CacheData) checkQueryForFreeTimes(uid int64, userLevel *model.UserLevel
taskFreeMax = 0
)
if taskAndUserLevel != nil {
taskFreeMax = int(taskAndUserLevel.FreeCallCount)
taskFreeMax = int(taskAndUserLevel.FreeCallCountDay)
}
var (
......@@ -198,11 +198,9 @@ func (c *CacheData) checkQueryForFreeTimes(uid int64, userLevel *model.UserLevel
func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *model.UserLevel, task *model.TaskType) (bool, error) {
chargeKey := fmt.Sprintf("charge-%d:", uid)
balKey := fmt.Sprintf("bal-%d:", uid)
creditKey := fmt.Sprintf("credit-%d:", uid)
pip := c.rdb.Pipeline()
chargeCmd := pip.Get(c.ctx, chargeKey)
balCmd := pip.Get(c.ctx, balKey)
creditCmd := pip.Get(c.ctx, creditKey)
_, err := pip.Exec(c.ctx)
if err != nil {
return false, err
......@@ -210,7 +208,7 @@ func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *mode
var (
charge = int64(0)
bal = int64(0)
credit = int64(0)
credit = userLevel.CreditQuota
)
if chargeCmd.Err() == nil {
charge, _ = strconv.ParseInt(chargeCmd.Val(), 10, 64)
......@@ -224,12 +222,6 @@ func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *mode
bal = 0
}
if creditCmd.Err() == nil {
credit, _ = strconv.ParseInt(creditCmd.Val(), 10, 64)
} else if creditCmd.Err() == goredislib.Nil {
credit = 0
}
if (charge + task.Price) <= (bal + credit) {
return true, nil
}
......
......@@ -190,7 +190,7 @@ func (c *CacheData) UpdateUserCharge(uid int64, value int) error {
func (c *CacheData) SetUserInfo(user *model.User) error {
info := UserInfo{
Deleted: int(user.Deleted),
Level: int(user.LevelId),
Level: int(user.Level),
Balance: user.Balance,
Charge: 0,
}
......@@ -241,7 +241,7 @@ func (c *CacheData) GetUserInfo(uid int64) (*UserInfo, error) {
// get user from db.
if user, err := c.userRepo.GetById(uid); err == nil {
info.Deleted = int(user.Deleted)
info.Level = int(user.LevelId)
info.Level = int(user.Level)
info.Balance = user.Balance
info.Charge = 0
......
......@@ -6,8 +6,8 @@ import (
"strconv"
)
func (c *CacheData) getUserLevelAndTaskTypeFromRedis(levelId int64, taskTypeId int64) (*model.UserLevelTaskType, error) {
ulk := "level-task-type:" + strconv.FormatInt(levelId, 10) + "-" + strconv.FormatInt(taskTypeId, 10)
func (c *CacheData) getUserLevelAndTaskTypeFromRedis(level int64, taskTypeId int64) (*model.UserLevelTaskType, error) {
ulk := "level-task-type:" + strconv.FormatInt(level, 10) + "-" + strconv.FormatInt(taskTypeId, 10)
if data, err := c.rdb.Get(c.ctx, ulk).Result(); err == nil {
var userLevelAndTaskType = new(model.UserLevelTaskType)
if err = json.Unmarshal([]byte(data), userLevelAndTaskType); err == nil {
......@@ -19,8 +19,8 @@ func (c *CacheData) getUserLevelAndTaskTypeFromRedis(levelId int64, taskTypeId i
}
}
func (c *CacheData) getUserLevelAndTaskTypeFromDb(levelId int64, taskTypeId int64) (*model.UserLevelTaskType, error) {
if userLevelAndTaskType, err := c.userAndTaskRepo.GetByTaskTypeAndUserLevelId(taskTypeId, levelId); err == nil {
func (c *CacheData) getUserLevelAndTaskTypeFromDb(level int64, taskTypeId int64) (*model.UserLevelTaskType, error) {
if userLevelAndTaskType, err := c.userAndTaskRepo.GetByTaskTypeAndUserLevel(taskTypeId, level); err == nil {
return userLevelAndTaskType, nil
} else {
return nil, err
......@@ -28,7 +28,7 @@ func (c *CacheData) getUserLevelAndTaskTypeFromDb(levelId int64, taskTypeId int6
}
func (c *CacheData) setUserLevelAndTaskTypeToRedis(d *model.UserLevelTaskType) error {
ulk := "level-task-type:" + strconv.FormatInt(d.UserLevelId, 10) + "-" + strconv.FormatInt(d.TaskTypeId, 10)
ulk := "level-task-type:" + strconv.FormatInt(d.UserLevel, 10) + "-" + strconv.FormatInt(d.TaskTypeId, 10)
if data, err := json.Marshal(d); err == nil {
if err = c.rdb.Set(c.ctx, ulk, string(data), 0).Err(); err == nil {
return nil
......
......@@ -17,7 +17,7 @@ type User struct {
RegisterFromDesc string `gorm:"column:register_from_desc" db:"register_from_desc" json:"register_from_desc" form:"register_from_desc"` // 三方账户描述
Username string `gorm:"column:username" db:"username" json:"username" form:"username"` // 开发者平台用户名
Balance int64 `gorm:"column:balance" db:"balance" json:"balance" form:"balance"` // 用户账户余额
LevelId int64 `gorm:"column:level_id" db:"level_id" json:"level_id" form:"level_id"` // 信用等级,决定免费调用额度
Level int64 `gorm:"column:level" db:"level" json:"level" form:"level"` // 信用等级,决定免费调用额度
CustomId string `gorm:"column:custom_id" db:"custom_id" json:"custom_id" form:"custom_id"` // 自定义kong的id
VerifierId string `gorm:"column:verifier_id" db:"verifier_id" json:"verifier_id" form:"verifier_id"`
ProfileImage string `gorm:"column:profile_image" db:"profile_image" json:"profile_image" form:"profile_image"`
......
......@@ -9,7 +9,7 @@ type UserLevel struct {
ID int64 `gorm:"column:id" db:"id" json:"id" form:"id"` // 信用等级id
Level int64 `gorm:"column:level" db:"level" json:"level" form:"level"` // 等级
Desc string `gorm:"column:desc" db:"desc" json:"desc" form:"desc"` // 描述
FreeQuota int64 `gorm:"column:free_quota" db:"free_quota" json:"free_quota" form:"free_quota"` // 该等级免费额度
CreditQuota int64 `gorm:"column:credit_quota" db:"credit_quota" json:"credit_quota" form:"credit_quota"` // 该等级免费额度
FreeCallCountDay int64 `gorm:"column:free_call_count_day" db:"free_call_count_day" json:"free_call_count_day" form:"free_call_count_day"` // 免费调用次数
FreeCallCountMonth int64 `gorm:"column:free_call_count_month" db:"free_call_count_month" json:"free_call_count_month" form:"free_call_count_month"`
FreeCallCountYear int64 `gorm:"column:free_call_count_year" db:"free_call_count_year" json:"free_call_count_year" form:"free_call_count_year"`
......
......@@ -7,14 +7,16 @@ import (
)
type UserLevelTaskType struct {
ID int64 `gorm:"column:id" db:"id" json:"id" form:"id"`
FreeCallCount int64 `gorm:"column:free_call_count" db:"free_call_count" json:"free_call_count" form:"free_call_count"`
UserLevelId int64 `gorm:"column:user_level_id" db:"user_level_id" json:"user_level_id" form:"user_level_id"`
TaskTypeId int64 `gorm:"column:task_type_id" db:"task_type_id" json:"task_type_id" form:"task_type_id"`
FreeCallCountPeriod int64 `gorm:"column:free_call_count_period" db:"free_call_count_period" json:"free_call_count_period" form:"free_call_count_period"`
CreatedTime time.Time `gorm:"column:created_time" db:"created_time" json:"created_time" form:"created_time"`
UpdatedTime time.Time `gorm:"column:updated_time" db:"updated_time" json:"updated_time" form:"updated_time"`
Deleted int64 `gorm:"column:deleted" db:"deleted" json:"deleted" form:"deleted"`
ID int64 `gorm:"column:id" db:"id" json:"id" form:"id"`
FreeCallCountDay int64 `gorm:"column:free_call_count_day" db:"free_call_count_day" json:"free_call_count_day" form:"free_call_count_day"`
FreeCallCountMonth int64 `gorm:"column:free_call_count_month" db:"free_call_count_month" json:"free_call_count_month" form:"free_call_count_month"`
FreeCallCountYear int64 `gorm:"column:free_call_count_year" db:"free_call_count_year" json:"free_call_count_year" form:"free_call_count_year"`
FreeCallCountTotal int64 `gorm:"column:free_call_count_total" db:"free_call_count_total" json:"free_call_count_total" form:"free_call_count_total"`
UserLevel int64 `gorm:"column:user_level" db:"user_level" json:"user_level" form:"user_level"`
TaskTypeId int64 `gorm:"column:task_type_id" db:"task_type_id" json:"task_type_id" form:"task_type_id"`
CreatedTime time.Time `gorm:"column:created_time" db:"created_time" json:"created_time" form:"created_time"`
UpdatedTime time.Time `gorm:"column:updated_time" db:"updated_time" json:"updated_time" form:"updated_time"`
Deleted int64 `gorm:"column:deleted" db:"deleted" json:"deleted" form:"deleted"`
}
func (UserLevelTaskType) TableName() string {
......@@ -25,7 +27,7 @@ type UserLevelTaskTypeRepository interface {
Create(user *UserLevelTaskType) error
GetById(uid int64) (*UserLevelTaskType, error)
GetListByFilter(filters ...interface{}) []*UserLevelTaskType
GetByTaskTypeAndUserLevelId(taskType int64, userLevel int64) (*UserLevelTaskType, error)
GetByTaskTypeAndUserLevel(taskType int64, userLevel int64) (*UserLevelTaskType, error)
Update(user *UserLevelTaskType) error
Delete(user *UserLevelTaskType) error
}
......@@ -58,8 +60,8 @@ func (repo *userLevelTaskTypeRepositoryImpl) GetListByFilter(filters ...interfac
return list
}
func (repo *userLevelTaskTypeRepositoryImpl) GetByTaskTypeAndUserLevelId(taskType int64, userLevelId int64) (*UserLevelTaskType, error) {
user := UserLevelTaskType{TaskTypeId: taskType, UserLevelId: userLevelId}
func (repo *userLevelTaskTypeRepositoryImpl) GetByTaskTypeAndUserLevel(taskType int64, userLevel int64) (*UserLevelTaskType, error) {
user := UserLevelTaskType{TaskTypeId: taskType, UserLevel: userLevel}
err := repo.o.Read(&user)
if err != nil {
return nil, err
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment