Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
admin-backend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
admin-backend
Commits
10a396d2
Commit
10a396d2
authored
Apr 23, 2024
by
brent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify task type
parent
bfc209e0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
149 additions
and
19 deletions
+149
-19
.DS_Store
.DS_Store
+0
-0
user.go
controllers/user.go
+144
-14
odysseus.go
libs/odysseus/odysseus.go
+5
-5
No files found.
.DS_Store
View file @
10a396d2
No preview for this file type
controllers/user.go
View file @
10a396d2
...
...
@@ -5,6 +5,7 @@ import (
"ai_developer_admin/libs/kong"
"ai_developer_admin/libs/mysql"
"ai_developer_admin/libs/odysseus"
"ai_developer_admin/libs/postgres"
"ai_developer_admin/libs/redis"
"ai_developer_admin/libs/utils"
"ai_developer_admin/models"
...
...
@@ -248,19 +249,43 @@ func (server *UserController) FreeCallCount() {
}
offset
:=
(
appRequest
.
Page
-
1
)
*
appRequest
.
Size
checkUser
:=
&
models
.
User
{
Id
:
info
.
UserID
}
err
=
mysql
.
GetMysqlInstace
()
.
Ormer
.
Read
(
checkUser
)
if
err
!=
nil
{
server
.
respond
(
models
.
BusinessFailed
,
err
.
Error
())
return
}
checkUserLevel
:=
&
models
.
UserLevel
{
Level
:
checkUser
.
Level
}
err
=
mysql
.
GetMysqlInstace
()
.
Ormer
.
Read
(
checkUserLevel
,
"level"
)
if
err
!=
nil
{
server
.
respond
(
models
.
BusinessFailed
,
err
.
Error
())
return
}
countQB
,
_
:=
orm
.
NewQueryBuilder
(
"mysql"
)
queryQB
,
_
:=
orm
.
NewQueryBuilder
(
"mysql"
)
countQB
.
Select
(
"count(*) AS total"
)
.
From
(
"task_type"
)
queryQB
.
Select
(
"id"
,
"name"
,
"api_path"
)
.
From
(
"task_type"
)
if
!
(
info
.
Role
==
1
||
info
.
Role
==
2
)
{
countQB
.
And
(
fmt
.
Sprintf
(
"user_id = '%d'"
,
info
.
UserID
))
queryQB
.
And
(
fmt
.
Sprintf
(
"user_id = '%d'"
,
info
.
UserID
))
}
From
(
"task_type"
)
.
Where
(
"deleted = 0"
)
cond
:=
fmt
.
Sprintf
(
"user_level_task_type.task_type_id = task_type.id and user_level_task_type.user_level = %d"
,
checkUser
.
Level
)
queryQB
.
Select
(
"task_type.id"
,
"task_type.name"
,
"task_type.api_path"
,
"task_type.type"
,
"task_type.category"
,
"user_level_task_type.free_call_count_day"
,
"user_level_task_type.free_call_count_month"
,
"user_level_task_type.free_call_count_year"
,
"user_level_task_type.free_call_count_total"
)
.
From
(
"task_type"
)
.
LeftJoin
(
"user_level_task_type"
)
.
On
(
cond
)
queryQB
.
Where
(
"task_type.deleted = 0"
)
//if !(info.Role == 1 || info.Role == 2) {
//countQB.And(fmt.Sprintf("user_id = '%d'", info.UserID))
//queryQB.And(fmt.Sprintf("user_id = '%d'", info.UserID))
//}
if
appRequest
.
Keyword
!=
""
{
keyword
:=
"%"
+
appRequest
.
Keyword
+
"%"
countQB
.
And
(
fmt
.
Sprintf
(
"name like '%s'"
,
keyword
))
...
...
@@ -273,21 +298,126 @@ func (server *UserController) FreeCallCount() {
_
=
mysql
.
GetMysqlInstace
()
.
Ormer
.
Raw
(
sql
)
.
QueryRow
(
&
total
)
// 导出 SQL 语句
var
taskTypes
[]
*
models
.
TaskType
type
TempTaskType
struct
{
Id
int64
`json:"id"`
Name
string
`json:"name"`
Type
int
`json:"type"`
TypeDesc
string
`json:"type_desc"`
ApiPath
string
`json:"api_path"`
Category
int
`json:"category"`
FreeCallCountDay
int64
`json:"free_call_count_day"`
FreeCallCountMonth
int64
`json:"free_call_count_month"`
WeekCount
int
`json:"week_count"`
MonthCount
int
`json:"month_count"`
//FreeCallCountYear int64 `json:"free_call_count_year"`
//FreeCallCountTotal int64 `json:"free_call_count_total"`
}
var
taskTypes
[]
*
TempTaskType
sql
=
queryQB
.
String
()
mysql
.
GetMysqlInstace
()
.
Ormer
.
Raw
(
sql
)
.
QueryRows
(
&
taskTypes
)
var
ids
[]
int64
idsString
:=
""
for
_
,
value
:=
range
taskTypes
{
ids
=
append
(
ids
,
value
.
Id
)
idsString
=
idsString
+
"'"
+
strconv
.
Itoa
(
int
(
value
.
Id
))
+
"'"
+
","
value
.
TypeDesc
=
models
.
ModelType
(
value
.
Type
)
.
String
()
}
idsString
=
idsString
[
:
len
(
idsString
)
-
1
]
uids
:=
[]
int64
{
int64
(
info
.
UserID
),
}
totalDayUsed
:=
int64
(
0
)
totalMonthUsed
:=
int64
(
0
)
uesd
,
err
:=
odysseus
.
UserFreeUesd
(
uids
,
ids
)
if
err
==
nil
{
userdata
:=
uesd
[
int64
(
info
.
UserID
)]
totalDayUsed
=
userdata
.
TotalDayUsed
totalMonthUsed
=
userdata
.
TotalMonthUsed
for
_
,
value
:=
range
taskTypes
{
taskUesd
:=
userdata
.
TasksUsed
[
value
.
Id
]
value
.
FreeCallCountDay
=
value
.
FreeCallCountDay
-
taskUesd
.
TaskDayUsed
value
.
FreeCallCountMonth
=
value
.
FreeCallCountMonth
-
taskUesd
.
TaskMonthUsed
}
}
currentTime
:=
time
.
Now
()
end
:=
time
.
Date
(
currentTime
.
Year
(),
currentTime
.
Month
(),
currentTime
.
Day
(),
23
,
59
,
59
,
0
,
time
.
UTC
)
temp
:=
fmt
.
Sprintf
(
"-%dh"
,
24
*
7
)
m
,
_
:=
time
.
ParseDuration
(
temp
)
tempTime
:=
currentTime
.
Add
(
m
)
tempTime
=
time
.
Date
(
tempTime
.
Year
(),
tempTime
.
Month
(),
tempTime
.
Day
(),
0
,
0
,
0
,
0
,
time
.
UTC
)
startTime
:=
fmt
.
Sprintf
(
tempTime
.
Format
(
format
))
endTime
:=
fmt
.
Sprintf
(
end
.
Format
(
format
))
weekCountQB
,
_
:=
orm
.
NewQueryBuilder
(
"mysql"
)
weekCountQB
.
Select
(
"count(*)"
,
"type"
)
.
From
(
"tasks"
)
.
Where
(
fmt
.
Sprintf
(
"time >= '%s'"
,
startTime
))
.
And
(
fmt
.
Sprintf
(
"time <= '%s'"
,
endTime
))
.
And
(
fmt
.
Sprintf
(
"uid >= '%d'"
,
info
.
UserID
))
.
And
(
fmt
.
Sprintf
(
"type in(%s)"
,
idsString
))
sql
=
weekCountQB
.
String
()
weekCount
,
err
:=
postgres
.
CountTasks
(
sql
)
if
err
==
nil
&&
weekCount
!=
nil
&&
len
(
weekCount
)
>
0
{
for
_
,
value
:=
range
taskTypes
{
count
:=
findTaskCount
(
weekCount
,
int
(
value
.
Id
))
value
.
WeekCount
=
count
}
}
temp
=
fmt
.
Sprintf
(
"-%dh"
,
24
*
30
)
m
,
_
=
time
.
ParseDuration
(
temp
)
tempTime
=
currentTime
.
Add
(
m
)
tempTime
=
time
.
Date
(
tempTime
.
Year
(),
tempTime
.
Month
(),
tempTime
.
Day
(),
0
,
0
,
0
,
0
,
time
.
UTC
)
startTime
=
fmt
.
Sprintf
(
tempTime
.
Format
(
format
))
monthCountQB
,
_
:=
orm
.
NewQueryBuilder
(
"mysql"
)
monthCountQB
.
Select
(
"count(*)"
,
"type"
)
.
From
(
"tasks"
)
.
Where
(
fmt
.
Sprintf
(
"time >= '%s'"
,
startTime
))
.
And
(
fmt
.
Sprintf
(
"time <= '%s'"
,
endTime
))
.
And
(
fmt
.
Sprintf
(
"uid >= '%d'"
,
info
.
UserID
))
.
And
(
fmt
.
Sprintf
(
"type in(%s)"
,
idsString
))
sql
=
monthCountQB
.
String
()
monthCount
,
err
:=
postgres
.
CountTasks
(
sql
)
if
err
==
nil
&&
monthCount
!=
nil
&&
len
(
monthCount
)
>
0
{
for
_
,
value
:=
range
taskTypes
{
count
:=
findTaskCount
(
monthCount
,
int
(
value
.
Id
))
value
.
MonthCount
=
count
}
}
responseData
:=
struct
{
Total
int64
`json:"total"`
Data
interface
{}
`json:"data,omitempty"`
Total
int64
`json:"total"`
TotalDayUsed
int64
`json:"total_day_used"`
TotalMonthUsed
int64
`json:"total_month_used"`
FreeCallCountDay
int
`json:"free_call_count_day"`
FreeCallCountMonth
int
`json:"free_call_count_month"`
Data
interface
{}
`json:"data,omitempty"`
}{
Total
:
total
,
Data
:
taskTypes
,
Total
:
total
,
TotalDayUsed
:
totalDayUsed
,
TotalMonthUsed
:
totalMonthUsed
,
FreeCallCountDay
:
checkUserLevel
.
FreeCallCountDay
,
FreeCallCountMonth
:
checkUserLevel
.
FreeCallCountMonth
,
Data
:
taskTypes
,
}
server
.
respond
(
http
.
StatusOK
,
""
,
responseData
)
}
func
findTaskCount
(
counts
[]
models
.
TaskCount
,
id
int
)
int
{
idString
:=
strconv
.
Itoa
(
id
)
for
_
,
value
:=
range
counts
{
if
strings
.
Compare
(
value
.
Type
,
idString
)
==
0
{
count
,
_
:=
strconv
.
Atoi
(
value
.
Count
)
return
count
}
}
return
0
}
func
regisgerUser
(
user
models
.
User
)
(
*
models
.
User
,
error
)
{
var
err
error
qs
:=
mysql
.
GetMysqlInstace
()
.
Ormer
.
QueryTable
(
"user"
)
...
...
libs/odysseus/odysseus.go
View file @
10a396d2
...
...
@@ -58,11 +58,11 @@ func GetUserBalance(id int64) (int64, error) {
return
user
.
Balance
,
err
}
//func GetUserBalance(id int64) (int64
, error) {
// user, err := syncinfo.GetUserInfo(id
)
// logs.Debug("GetUserInfo = ", user
, err)
// return user.Balance
, err
//
}
func
UserFreeUesd
(
uids
[]
int64
,
tids
[]
int64
)
(
map
[
int64
]
cachedata
.
UserFreeUsedInfo
,
error
)
{
used
,
err
:=
syncinfo
.
GetUserFreeUsedInfo
(
uids
,
tids
)
logs
.
Debug
(
"GetUserInfo = "
,
used
,
err
)
return
used
,
err
}
func
SetTaskDataToRedis
(
task
*
model
.
TaskType
)
error
{
return
syncinfo
.
SetTaskDataToRedis
(
task
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment