Commit 66865b3f authored by brent's avatar brent

modify client interface

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