Commit 66865b3f authored by brent's avatar brent

modify client interface

parent 6282daf5
...@@ -2,7 +2,7 @@ package controllers ...@@ -2,7 +2,7 @@ package controllers
import ( import (
"ai_developer_admin/libs/ipgeo" "ai_developer_admin/libs/ipgeo"
"ai_developer_admin/libs/odysseus" "ai_developer_admin/libs/mysql"
"ai_developer_admin/libs/postgres" "ai_developer_admin/libs/postgres"
"ai_developer_admin/libs/registry" "ai_developer_admin/libs/registry"
"ai_developer_admin/models" "ai_developer_admin/models"
...@@ -12,7 +12,6 @@ import ( ...@@ -12,7 +12,6 @@ import (
"github.com/beego/beego/orm" "github.com/beego/beego/orm"
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
beego "github.com/beego/beego/v2/server/web" beego "github.com/beego/beego/v2/server/web"
"github.com/odysseus/cache/model"
"io" "io"
"math/big" "math/big"
"net/http" "net/http"
...@@ -442,6 +441,7 @@ func (server *ClientController) TaskReward() { ...@@ -442,6 +441,7 @@ func (server *ClientController) TaskReward() {
// 遍历对象数组,按照日期进行分组 // 遍历对象数组,按照日期进行分组
var dates []string var dates []string
dateString := "" dateString := ""
ids := ""
for _, item := range data { for _, item := range data {
// 将日期转换为当天的 0 点 // 将日期转换为当天的 0 点
date := time.Date(item.Time.Year(), item.Time.Month(), item.Time.Day(), 0, 0, 0, 0, time.UTC) date := time.Date(item.Time.Year(), item.Time.Month(), item.Time.Day(), 0, 0, 0, 0, time.UTC)
...@@ -456,15 +456,8 @@ func (server *ClientController) TaskReward() { ...@@ -456,15 +456,8 @@ func (server *ClientController) TaskReward() {
baseModel := "" baseModel := ""
typeDe := 0 typeDe := 0
taskId := item.Type taskId := item.Type
var taskType *model.TaskType
if err == nil {
taskType, _ = odysseus.GetTaskType(int64(taskId))
if taskType != nil {
baseModel = taskType.BaseModel
typeDe = taskType.Type
}
}
ids = ids + "'" + strconv.Itoa(taskId) + "'" + ","
reTask := &models.Revenues{ reTask := &models.Revenues{
Id: item.Id, Id: item.Id,
Type: models.ModelType(typeDe).String(), Type: models.ModelType(typeDe).String(),
...@@ -472,6 +465,7 @@ func (server *ClientController) TaskReward() { ...@@ -472,6 +465,7 @@ func (server *ClientController) TaskReward() {
BaseModel: baseModel, BaseModel: baseModel,
Workload: item.Workload, Workload: item.Workload,
ProfitAcc: item.ProfitAcc, ProfitAcc: item.ProfitAcc,
TaskId: taskId,
} }
responseTasks = append(responseTasks, reTask) responseTasks = append(responseTasks, reTask)
groupedItems[key] = append(groupedItems[key], reTask) groupedItems[key] = append(groupedItems[key], reTask)
...@@ -479,6 +473,18 @@ func (server *ClientController) TaskReward() { ...@@ -479,6 +473,18 @@ func (server *ClientController) TaskReward() {
if len(dates) > 0 { if len(dates) > 0 {
dateString = dateString[:len(dateString)-1] dateString = dateString[:len(dateString)-1]
} }
if len(ids) > 2 {
ids = ids[:len(ids)-1]
}
queryTaskQB, _ := orm.NewQueryBuilder("mysql")
queryTaskQB.Select("task_type.id",
"task_type.base_model",
"task_type.type").
From("task_type").Where(fmt.Sprintf("id in(%s)", ids))
var types []*models.Model
sql = queryTaskQB.String()
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&types)
//wei, err := getWeiPerWorkload(dates) //wei, err := getWeiPerWorkload(dates)
//wei := []models.WeiPerWorkloadStruct{ //wei := []models.WeiPerWorkloadStruct{
...@@ -496,6 +502,12 @@ func (server *ClientController) TaskReward() { ...@@ -496,6 +502,12 @@ func (server *ClientController) TaskReward() {
key := value.Time.Format(format) key := value.Time.Format(format)
bills := groupedItems[key] bills := groupedItems[key]
for _, item := range bills { for _, item := range bills {
for _, task := range types {
if task.Id == item.TaskId {
item.Type = models.ModelType(task.Type).String()
item.BaseModel = task.BaseModel
}
}
workload := big.NewInt(item.Workload) workload := big.NewInt(item.Workload)
weiPerWorkload, _ := strconv.Atoi(value.Wei) weiPerWorkload, _ := strconv.Atoi(value.Wei)
weiPerWorkloadBig := big.NewInt(int64(weiPerWorkload)) weiPerWorkloadBig := big.NewInt(int64(weiPerWorkload))
...@@ -626,6 +638,7 @@ func (server *ClientController) IncomeRecord() { ...@@ -626,6 +638,7 @@ func (server *ClientController) IncomeRecord() {
// 遍历对象数组,按照日期进行分组 // 遍历对象数组,按照日期进行分组
var dates []string var dates []string
dateString := ""
for _, item := range revenues { for _, item := range revenues {
// 将日期转换为当天的 0 点 // 将日期转换为当天的 0 点
date := time.Date(item.Time.Year(), item.Time.Month(), item.Time.Day(), 0, 0, 0, 0, time.UTC) date := time.Date(item.Time.Year(), item.Time.Month(), item.Time.Day(), 0, 0, 0, 0, time.UTC)
...@@ -633,6 +646,7 @@ func (server *ClientController) IncomeRecord() { ...@@ -633,6 +646,7 @@ func (server *ClientController) IncomeRecord() {
key := date.Format("2006-01-02") key := date.Format("2006-01-02")
if !contains(dates, key) { if !contains(dates, key) {
dates = append(dates, key) dates = append(dates, key)
dateString = dateString + "'" + key + "'" + ","
} }
reTask := &models.Revenues{ reTask := &models.Revenues{
...@@ -644,8 +658,11 @@ func (server *ClientController) IncomeRecord() { ...@@ -644,8 +658,11 @@ func (server *ClientController) IncomeRecord() {
responseTasks = append(responseTasks, reTask) responseTasks = append(responseTasks, reTask)
groupedItems[key] = append(groupedItems[key], reTask) groupedItems[key] = append(groupedItems[key], reTask)
} }
if len(dates) > 0 {
dateString = dateString[:len(dateString)-1]
}
wei, err := getWeiPerWorkload(dates) //wei, err := getWeiPerWorkload(dates)
//wei := []models.WeiPerWorkloadStruct{ //wei := []models.WeiPerWorkloadStruct{
// { // {
// Date: "2024-05-08", // Date: "2024-05-08",
...@@ -654,11 +671,14 @@ func (server *ClientController) IncomeRecord() { ...@@ -654,11 +671,14 @@ func (server *ClientController) IncomeRecord() {
// Reward: "10000", // Reward: "10000",
// }, // },
//} //}
sql = fmt.Sprintf("SELECT * FROM reward_multiplier WHERE time in(%s) ORDER BY time DESC;", dateString)
wei, err := postgres.QueryWei(sql)
for _, value := range wei { for _, value := range wei {
bills := groupedItems[value.Date] key := value.Time.Format(format)
bills := groupedItems[key]
for _, item := range bills { for _, item := range bills {
workload := big.NewInt(item.Workload) workload := big.NewInt(item.Workload)
weiPerWorkload, _ := strconv.Atoi(value.WeiPerWorkload) weiPerWorkload, _ := strconv.Atoi(value.Wei)
weiPerWorkloadBig := big.NewInt(int64(weiPerWorkload)) weiPerWorkloadBig := big.NewInt(int64(weiPerWorkload))
incomeWei := new(big.Int).Mul(workload, weiPerWorkloadBig) incomeWei := new(big.Int).Mul(workload, weiPerWorkloadBig)
income := weiToAGI(incomeWei) income := weiToAGI(incomeWei)
......
...@@ -2,7 +2,7 @@ package controllers ...@@ -2,7 +2,7 @@ package controllers
import ( import (
"ai_developer_admin/libs/ipgeo" "ai_developer_admin/libs/ipgeo"
"ai_developer_admin/libs/odysseus" "ai_developer_admin/libs/mysql"
"ai_developer_admin/libs/postgres" "ai_developer_admin/libs/postgres"
"ai_developer_admin/libs/registry" "ai_developer_admin/libs/registry"
"ai_developer_admin/models" "ai_developer_admin/models"
...@@ -11,6 +11,7 @@ import ( ...@@ -11,6 +11,7 @@ import (
"github.com/beego/beego/orm" "github.com/beego/beego/orm"
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
"net/http" "net/http"
"strconv"
"time" "time"
) )
...@@ -191,6 +192,23 @@ func (server *ExplorerController) Tasks() { ...@@ -191,6 +192,23 @@ func (server *ExplorerController) Tasks() {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
return return
} }
ids := ""
for _, task := range data {
taskId := task.Type
ids = ids + "'" + strconv.Itoa(taskId) + "'" + ","
}
if len(ids) > 2 {
ids = ids[:len(ids)-1]
}
queryTaskQB, _ := orm.NewQueryBuilder("mysql")
queryTaskQB.Select("task_type.id",
"task_type.base_model",
"task_type.type").
From("task_type").Where(fmt.Sprintf("id in(%s)", ids))
var types []*models.Model
sql = queryTaskQB.String()
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&types)
for _, task := range data { for _, task := range data {
//apiPath := "" //apiPath := ""
...@@ -199,14 +217,10 @@ func (server *ExplorerController) Tasks() { ...@@ -199,14 +217,10 @@ func (server *ExplorerController) Tasks() {
//kind := 1 //kind := 1
typeDe := 1 typeDe := 1
taskId := task.Type taskId := task.Type
if err == nil { for _, taskType := range types {
taskType, _ := odysseus.GetTaskType(int64(taskId)) if taskType.Id == taskId {
if taskType != nil {
//apiPath = taskType.ApiPath
//model = taskType.Model
baseModel = taskType.BaseModel
//kind = taskType.Kind
typeDe = taskType.Type typeDe = taskType.Type
baseModel = taskType.BaseModel
} }
} }
...@@ -221,6 +235,7 @@ func (server *ExplorerController) Tasks() { ...@@ -221,6 +235,7 @@ func (server *ExplorerController) Tasks() {
} }
responseTasks = append(responseTasks, reTask) responseTasks = append(responseTasks, reTask)
} }
responseData := struct { responseData := struct {
Total int64 `json:"total"` Total int64 `json:"total"`
Data interface{} `json:"data,omitempty"` Data interface{} `json:"data,omitempty"`
......
...@@ -122,6 +122,55 @@ func (server *TaskController) Bills() { ...@@ -122,6 +122,55 @@ func (server *TaskController) Bills() {
server.respond(http.StatusOK, "", responseData) server.respond(http.StatusOK, "", responseData)
} }
func queryTaskTypeByBills(data []models.Bills) []*models.TaskType {
ids := ""
for _, task := range data {
taskId := task.Type
ids = ids + "'" + strconv.Itoa(taskId) + "'" + ","
}
if len(ids) > 2 {
ids = ids[:len(ids)-1]
}
queryTaskQB, _ := orm.NewQueryBuilder("mysql")
queryTaskQB.Select("task_type.id",
"task_type.base_model",
"task_type.type",
"task_type.api_path",
"task_type.model",
"task_type.kind").
From("task_type").Where(fmt.Sprintf("id in(%s)", ids))
var types []*models.TaskType
sql := queryTaskQB.String()
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&types)
return types
}
func queryTaskTypeTaskCount(data []models.TaskCount) []*models.TaskType {
ids := ""
for _, task := range data {
taskId := task.Type
ids = ids + "'" + taskId + "'" + ","
}
if len(ids) > 2 {
ids = ids[:len(ids)-1]
}
queryTaskQB, _ := orm.NewQueryBuilder("mysql")
queryTaskQB.Select("task_type.id",
"task_type.base_model",
"task_type.type",
"task_type.api_path",
"task_type.model",
"task_type.kind").
From("task_type").Where(fmt.Sprintf("id in(%s)", ids))
var types []*models.TaskType
sql := queryTaskQB.String()
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&types)
return types
}
func (server *TaskController) BillDetails() { func (server *TaskController) BillDetails() {
token, err := server.Check() token, err := server.Check()
if err != nil { if err != nil {
...@@ -213,17 +262,17 @@ func (server *TaskController) BillDetails() { ...@@ -213,17 +262,17 @@ func (server *TaskController) BillDetails() {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
return return
} }
types := queryTaskTypeByBills(data)
for _, task := range data { for _, task := range data {
apiPath := "" apiPath := ""
desc := ""
typeDesc := "" typeDesc := ""
taskId := task.Type taskId := task.Type
if err == nil { for _, taskType := range types {
taskType, err1 := odysseus.GetTaskType(int64(taskId)) if taskType.Id == taskId {
if err1 == nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
typeDesc = models.ModelType(taskType.Type).String() typeDesc = models.ModelType(taskType.Type).String()
//desc = taskType.Desc
} }
} }
...@@ -236,7 +285,6 @@ func (server *TaskController) BillDetails() { ...@@ -236,7 +285,6 @@ func (server *TaskController) BillDetails() {
Time: task.Time, Time: task.Time,
Result: task.Result, Result: task.Result,
ApiPath: apiPath, ApiPath: apiPath,
Desc: desc,
} }
responseTasks = append(responseTasks, reTask) responseTasks = append(responseTasks, reTask)
} }
...@@ -351,6 +399,8 @@ func (server *TaskController) Tasks() { ...@@ -351,6 +399,8 @@ func (server *TaskController) Tasks() {
return return
} }
types := queryTaskTypeByBills(data)
for _, task := range data { for _, task := range data {
apiPath := "" apiPath := ""
model := "" model := ""
...@@ -358,9 +408,8 @@ func (server *TaskController) Tasks() { ...@@ -358,9 +408,8 @@ func (server *TaskController) Tasks() {
kind := 1 kind := 1
typeDe := 1 typeDe := 1
taskId := task.Type taskId := task.Type
if err == nil { for _, taskType := range types {
taskType, _ := odysseus.GetTaskType(int64(taskId)) if taskType.Id == taskId {
if taskType != nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
model = taskType.Model model = taskType.Model
baseModel = taskType.BaseModel baseModel = taskType.BaseModel
...@@ -602,15 +651,15 @@ func (server *TaskController) UserTasks() { ...@@ -602,15 +651,15 @@ func (server *TaskController) UserTasks() {
return return
} }
types := queryTaskTypeByBills(tasks)
for _, task := range tasks { for _, task := range tasks {
apiPath := "" apiPath := ""
desc := "" desc := ""
taskId := task.Type taskId := task.Type
if err == nil { for _, taskType := range types {
taskType, err1 := odysseus.GetTaskType(int64(taskId)) if taskType.Id == taskId {
if err1 == nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
//desc = taskType.Desc
} }
} }
...@@ -879,13 +928,13 @@ func (server *TaskController) UserTaskTypePerDay() { ...@@ -879,13 +928,13 @@ func (server *TaskController) UserTaskTypePerDay() {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
return return
} }
types := queryTaskTypeTaskCount(counts)
var responseTasks []models.TaskCount var responseTasks []models.TaskCount
for _, task := range counts { for _, task := range counts {
apiPath := "" apiPath := ""
taskId, err := strconv.Atoi(task.Type) taskId, _ := strconv.Atoi(task.Type)
if err == nil { for _, taskType := range types {
taskType, err1 := odysseus.GetTaskType(int64(taskId)) if taskId == taskType.Id {
if err1 == nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
} }
} }
...@@ -1000,13 +1049,14 @@ func (server *TaskController) UserTaskTypePercentage() { ...@@ -1000,13 +1049,14 @@ func (server *TaskController) UserTaskTypePercentage() {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
return return
} }
types := queryTaskTypeTaskCount(counts)
var responseTasks []models.TaskCount var responseTasks []models.TaskCount
for _, task := range counts { for _, task := range counts {
apiPath := "" apiPath := ""
taskId, err := strconv.Atoi(task.Type) taskId, _ := strconv.Atoi(task.Type)
if err == nil { for _, taskType := range types {
taskType, err1 := odysseus.GetTaskType(int64(taskId)) if taskId == taskType.Id {
if err1 == nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
} }
} }
...@@ -1267,13 +1317,15 @@ func (server *TaskController) UserTaskTypeFeePerDay() { ...@@ -1267,13 +1317,15 @@ func (server *TaskController) UserTaskTypeFeePerDay() {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
return return
} }
types := queryTaskTypeTaskCount(counts)
var responseTasks []models.TaskCount var responseTasks []models.TaskCount
for _, task := range counts { for _, task := range counts {
apiPath := "" apiPath := ""
taskId, err := strconv.Atoi(task.Type) taskId, _ := strconv.Atoi(task.Type)
if err == nil { for _, taskType := range types {
taskType, err1 := odysseus.GetTaskType(int64(taskId)) if taskId == taskType.Id {
if err1 == nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
} }
} }
...@@ -1371,13 +1423,14 @@ func (server *TaskController) UserTaskTypeFeePercentage() { ...@@ -1371,13 +1423,14 @@ func (server *TaskController) UserTaskTypeFeePercentage() {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
return return
} }
types := queryTaskTypeTaskCount(counts)
var responseTasks []models.TaskCount var responseTasks []models.TaskCount
for _, task := range counts { for _, task := range counts {
apiPath := "" apiPath := ""
taskId, err := strconv.Atoi(task.Type) taskId, _ := strconv.Atoi(task.Type)
if err == nil { for _, taskType := range types {
taskType, err1 := odysseus.GetTaskType(int64(taskId)) if taskId == taskType.Id {
if err1 == nil {
apiPath = taskType.ApiPath apiPath = taskType.ApiPath
} }
} }
......
...@@ -14,6 +14,7 @@ type Revenues struct { ...@@ -14,6 +14,7 @@ type Revenues struct {
WorkerAcc string `json:"worker_acc,omitempty";orm:"column(worker_acc)"` WorkerAcc string `json:"worker_acc,omitempty";orm:"column(worker_acc)"`
Workload int64 `json:"workload,omitempty";orm:"column(workload)"` Workload int64 `json:"workload,omitempty";orm:"column(workload)"`
Income *big.Float `json:"income,omitempty";orm:"column(income)"` Income *big.Float `json:"income,omitempty";orm:"column(income)"`
TaskId int `json:"task_type_id,omitempty"`
} }
type WeiStruct struct { type WeiStruct struct {
......
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