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 ...@@ -125,7 +125,7 @@ func (c *CacheData) checkQueryForFreeTimes(uid int64, userLevel *model.UserLevel
taskFreeMax = 0 taskFreeMax = 0
) )
if taskAndUserLevel != nil { if taskAndUserLevel != nil {
taskFreeMax = int(taskAndUserLevel.FreeCallCount) taskFreeMax = int(taskAndUserLevel.FreeCallCountDay)
} }
var ( var (
...@@ -198,11 +198,9 @@ func (c *CacheData) checkQueryForFreeTimes(uid int64, userLevel *model.UserLevel ...@@ -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) { func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *model.UserLevel, task *model.TaskType) (bool, error) {
chargeKey := fmt.Sprintf("charge-%d:", uid) chargeKey := fmt.Sprintf("charge-%d:", uid)
balKey := fmt.Sprintf("bal-%d:", uid) balKey := fmt.Sprintf("bal-%d:", uid)
creditKey := fmt.Sprintf("credit-%d:", uid)
pip := c.rdb.Pipeline() pip := c.rdb.Pipeline()
chargeCmd := pip.Get(c.ctx, chargeKey) chargeCmd := pip.Get(c.ctx, chargeKey)
balCmd := pip.Get(c.ctx, balKey) balCmd := pip.Get(c.ctx, balKey)
creditCmd := pip.Get(c.ctx, creditKey)
_, err := pip.Exec(c.ctx) _, err := pip.Exec(c.ctx)
if err != nil { if err != nil {
return false, err return false, err
...@@ -210,7 +208,7 @@ func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *mode ...@@ -210,7 +208,7 @@ func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *mode
var ( var (
charge = int64(0) charge = int64(0)
bal = int64(0) bal = int64(0)
credit = int64(0) credit = userLevel.CreditQuota
) )
if chargeCmd.Err() == nil { if chargeCmd.Err() == nil {
charge, _ = strconv.ParseInt(chargeCmd.Val(), 10, 64) charge, _ = strconv.ParseInt(chargeCmd.Val(), 10, 64)
...@@ -224,12 +222,6 @@ func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *mode ...@@ -224,12 +222,6 @@ func (c *CacheData) checkQueryForCost(uid int64, user *UserInfo, userLevel *mode
bal = 0 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) { if (charge + task.Price) <= (bal + credit) {
return true, nil return true, nil
} }
......
...@@ -190,7 +190,7 @@ func (c *CacheData) UpdateUserCharge(uid int64, value int) error { ...@@ -190,7 +190,7 @@ func (c *CacheData) UpdateUserCharge(uid int64, value int) error {
func (c *CacheData) SetUserInfo(user *model.User) error { func (c *CacheData) SetUserInfo(user *model.User) error {
info := UserInfo{ info := UserInfo{
Deleted: int(user.Deleted), Deleted: int(user.Deleted),
Level: int(user.LevelId), Level: int(user.Level),
Balance: user.Balance, Balance: user.Balance,
Charge: 0, Charge: 0,
} }
...@@ -241,7 +241,7 @@ func (c *CacheData) GetUserInfo(uid int64) (*UserInfo, error) { ...@@ -241,7 +241,7 @@ func (c *CacheData) GetUserInfo(uid int64) (*UserInfo, error) {
// get user from db. // get user from db.
if user, err := c.userRepo.GetById(uid); err == nil { if user, err := c.userRepo.GetById(uid); err == nil {
info.Deleted = int(user.Deleted) info.Deleted = int(user.Deleted)
info.Level = int(user.LevelId) info.Level = int(user.Level)
info.Balance = user.Balance info.Balance = user.Balance
info.Charge = 0 info.Charge = 0
......
...@@ -6,8 +6,8 @@ import ( ...@@ -6,8 +6,8 @@ import (
"strconv" "strconv"
) )
func (c *CacheData) getUserLevelAndTaskTypeFromRedis(levelId int64, taskTypeId int64) (*model.UserLevelTaskType, error) { func (c *CacheData) getUserLevelAndTaskTypeFromRedis(level int64, taskTypeId int64) (*model.UserLevelTaskType, error) {
ulk := "level-task-type:" + strconv.FormatInt(levelId, 10) + "-" + strconv.FormatInt(taskTypeId, 10) ulk := "level-task-type:" + strconv.FormatInt(level, 10) + "-" + strconv.FormatInt(taskTypeId, 10)
if data, err := c.rdb.Get(c.ctx, ulk).Result(); err == nil { if data, err := c.rdb.Get(c.ctx, ulk).Result(); err == nil {
var userLevelAndTaskType = new(model.UserLevelTaskType) var userLevelAndTaskType = new(model.UserLevelTaskType)
if err = json.Unmarshal([]byte(data), userLevelAndTaskType); err == nil { if err = json.Unmarshal([]byte(data), userLevelAndTaskType); err == nil {
...@@ -19,8 +19,8 @@ func (c *CacheData) getUserLevelAndTaskTypeFromRedis(levelId int64, taskTypeId i ...@@ -19,8 +19,8 @@ func (c *CacheData) getUserLevelAndTaskTypeFromRedis(levelId int64, taskTypeId i
} }
} }
func (c *CacheData) getUserLevelAndTaskTypeFromDb(levelId int64, taskTypeId int64) (*model.UserLevelTaskType, error) { func (c *CacheData) getUserLevelAndTaskTypeFromDb(level int64, taskTypeId int64) (*model.UserLevelTaskType, error) {
if userLevelAndTaskType, err := c.userAndTaskRepo.GetByTaskTypeAndUserLevelId(taskTypeId, levelId); err == nil { if userLevelAndTaskType, err := c.userAndTaskRepo.GetByTaskTypeAndUserLevel(taskTypeId, level); err == nil {
return userLevelAndTaskType, nil return userLevelAndTaskType, nil
} else { } else {
return nil, err return nil, err
...@@ -28,7 +28,7 @@ func (c *CacheData) getUserLevelAndTaskTypeFromDb(levelId int64, taskTypeId int6 ...@@ -28,7 +28,7 @@ func (c *CacheData) getUserLevelAndTaskTypeFromDb(levelId int64, taskTypeId int6
} }
func (c *CacheData) setUserLevelAndTaskTypeToRedis(d *model.UserLevelTaskType) error { 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 data, err := json.Marshal(d); err == nil {
if err = c.rdb.Set(c.ctx, ulk, string(data), 0).Err(); err == nil { if err = c.rdb.Set(c.ctx, ulk, string(data), 0).Err(); err == nil {
return nil return nil
......
...@@ -17,7 +17,7 @@ type User struct { ...@@ -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"` // 三方账户描述 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"` // 开发者平台用户名 Username string `gorm:"column:username" db:"username" json:"username" form:"username"` // 开发者平台用户名
Balance int64 `gorm:"column:balance" db:"balance" json:"balance" form:"balance"` // 用户账户余额 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 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"` 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"` ProfileImage string `gorm:"column:profile_image" db:"profile_image" json:"profile_image" form:"profile_image"`
......
...@@ -9,7 +9,7 @@ type UserLevel struct { ...@@ -9,7 +9,7 @@ type UserLevel struct {
ID int64 `gorm:"column:id" db:"id" json:"id" form:"id"` // 信用等级id ID int64 `gorm:"column:id" db:"id" json:"id" form:"id"` // 信用等级id
Level int64 `gorm:"column:level" db:"level" json:"level" form:"level"` // 等级 Level int64 `gorm:"column:level" db:"level" json:"level" form:"level"` // 等级
Desc string `gorm:"column:desc" db:"desc" json:"desc" form:"desc"` // 描述 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"` // 免费调用次数 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"` 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"` FreeCallCountYear int64 `gorm:"column:free_call_count_year" db:"free_call_count_year" json:"free_call_count_year" form:"free_call_count_year"`
......
...@@ -8,10 +8,12 @@ import ( ...@@ -8,10 +8,12 @@ import (
type UserLevelTaskType struct { type UserLevelTaskType struct {
ID int64 `gorm:"column:id" db:"id" json:"id" form:"id"` 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"` FreeCallCountDay int64 `gorm:"column:free_call_count_day" db:"free_call_count_day" json:"free_call_count_day" form:"free_call_count_day"`
UserLevelId int64 `gorm:"column:user_level_id" db:"user_level_id" json:"user_level_id" form:"user_level_id"` 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"` 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"` 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"` 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"` Deleted int64 `gorm:"column:deleted" db:"deleted" json:"deleted" form:"deleted"`
...@@ -25,7 +27,7 @@ type UserLevelTaskTypeRepository interface { ...@@ -25,7 +27,7 @@ type UserLevelTaskTypeRepository interface {
Create(user *UserLevelTaskType) error Create(user *UserLevelTaskType) error
GetById(uid int64) (*UserLevelTaskType, error) GetById(uid int64) (*UserLevelTaskType, error)
GetListByFilter(filters ...interface{}) []*UserLevelTaskType GetListByFilter(filters ...interface{}) []*UserLevelTaskType
GetByTaskTypeAndUserLevelId(taskType int64, userLevel int64) (*UserLevelTaskType, error) GetByTaskTypeAndUserLevel(taskType int64, userLevel int64) (*UserLevelTaskType, error)
Update(user *UserLevelTaskType) error Update(user *UserLevelTaskType) error
Delete(user *UserLevelTaskType) error Delete(user *UserLevelTaskType) error
} }
...@@ -58,8 +60,8 @@ func (repo *userLevelTaskTypeRepositoryImpl) GetListByFilter(filters ...interfac ...@@ -58,8 +60,8 @@ func (repo *userLevelTaskTypeRepositoryImpl) GetListByFilter(filters ...interfac
return list return list
} }
func (repo *userLevelTaskTypeRepositoryImpl) GetByTaskTypeAndUserLevelId(taskType int64, userLevelId int64) (*UserLevelTaskType, error) { func (repo *userLevelTaskTypeRepositoryImpl) GetByTaskTypeAndUserLevel(taskType int64, userLevel int64) (*UserLevelTaskType, error) {
user := UserLevelTaskType{TaskTypeId: taskType, UserLevelId: userLevelId} user := UserLevelTaskType{TaskTypeId: taskType, UserLevel: userLevel}
err := repo.o.Read(&user) err := repo.o.Read(&user)
if err != nil { if err != nil {
return nil, err 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