Commit e3edd5eb authored by brent's avatar brent

add favorite interface and modify task type interface

parent 7f6d87a6
......@@ -4,6 +4,8 @@ import (
"ai_developer_admin/libs/mysql"
"ai_developer_admin/models"
"encoding/json"
"fmt"
"github.com/beego/beego/orm"
"github.com/beego/beego/v2/core/logs"
"net/http"
"time"
......@@ -76,7 +78,10 @@ func (server *FavoriteController) Cancel() {
server.respond(models.BusinessFailed, "You have not followed this model")
return
}
_, err = mysql.GetMysqlInstace().Ormer.Delete(checkFavorite)
checkFavorite.UpdatedTime = time.Now()
checkFavorite.Deleted = 1
_, err = mysql.GetMysqlInstace().Ormer.Update(checkFavorite)
if err != nil {
server.respond(models.BusinessFailed, "failed")
return
......@@ -117,15 +122,15 @@ func (server *FavoriteController) IsFavorite() {
server.respond(http.StatusOK, "", responseData)
}
func (server *FavoriteController) Favorites() {
info, err := server.Check()
if err != nil {
server.respond(http.StatusUnauthorized, err.Error())
return
}
func (server *FavoriteController) Lists() {
//info, err := server.Check()
//if err != nil {
// server.respond(http.StatusUnauthorized, err.Error())
// return
//}
body := server.Ctx.Input.RequestBody
appRequest := models.AppRequest{}
err = json.Unmarshal(body, &appRequest) //解析body中数据
_ = json.Unmarshal(body, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest, string(body))
if appRequest.Page == 0 {
......@@ -137,21 +142,48 @@ func (server *FavoriteController) Favorites() {
}
offset := (appRequest.Page - 1) * appRequest.Size
qs := mysql.GetMysqlInstace().Ormer.QueryTable("favorite").Filter("deleted", 0)
if !(info.Role == 1 || info.Role == 2) {
qs.Filter("user_id", info.UserID)
}
infoQs := qs.Offset(offset).Limit(appRequest.Size)
count, err := infoQs.Count()
logs.Debug("Levels = ", count)
var favorites []*models.Favorite
if count > 0 {
infoQs.All(&favorites)
//for _,value := favorites {
//
type ResponseType struct {
Id int `json:"id"`
TaskTypeId int `json:"task_type_id,omitempty"`
UserId int `json:"user_id"`
Name string `json:"name"`
CreatedTime time.Time `json:"created_time"`
}
var favorites []*ResponseType
countQB, _ := orm.NewQueryBuilder("mysql")
queryQB, _ := orm.NewQueryBuilder("mysql")
countQB.Select("count(*) AS total").
From("favorite").
InnerJoin("task_type").On("favorite.task_type_id = task_type.id")
queryQB.Select("favorite.id", "favorite.task_type_id", "favorite.user_id", "favorite.created_time",
"task_type.name").
From("favorite").
InnerJoin("task_type").On("favorite.task_type_id = task_type.id")
countQB.Where("favorite.deleted = 0")
queryQB.Where("favorite.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))
queryQB.And(fmt.Sprintf("name like '%s'", keyword))
}
total, err := qs.Count()
queryQB.OrderBy("created_time").Desc().
Limit(int(appRequest.Size)).Offset(int(offset))
sql := countQB.String()
var total int64
_ = mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRow(&total)
// 导出 SQL 语句
sql = queryQB.String()
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&favorites)
responseData := struct {
Total int64 `json:"total"`
Data interface{} `json:"data,omitempty"`
......
This diff is collapsed.
......@@ -60,6 +60,7 @@ type AppRequest struct {
// 模型模糊查询
Keyword string `json:"keyword,omitempty"`
Category int `json:"category,omitempty"`
Kind int `json:"kind,omitempty"`
//显卡列表
Type int `json:"type,omitempty"`
......
......@@ -86,8 +86,8 @@ type TaskType struct {
Category int `json:"category";orm:"column(category)"`
Form string `json:"form";orm:"column(form)"`
ResultFileExpires int `json:"result_file_expires";orm:"column(result_file_expires)"`
AccessStatus int `json:"access_status,omitempty"`
PublishStatus int `json:"publish_status,omitempty"`
AccessStatus int `json:"access_status,omitempty";orm:"column(access_status)"`
PublishStatus int `json:"publish_status,omitempty";orm:"column(publish_status)"`
Unit string `json:"unit";orm:"column(unit)"`
Sort int `json:"sort";orm:"column(sort)"`
EstimatExeTime int `json:"estimat_exe_time";orm:"column(estimat_exe_time)"`
......@@ -164,6 +164,7 @@ type Model struct {
Unit string `json:"unit";orm:"column(unit)"`
Sort int `json:"sort";orm:"column(sort)"`
EstimatExeTime int `json:"estimat_exe_time";orm:"column(estimat_exe_time)"`
IsFavorite int `json:"is_favorite"`
}
type ResonseModel struct {
......@@ -189,6 +190,7 @@ type ResonseModel struct {
Unit string `json:"unit";orm:"column(unit)"`
Sort int `json:"sort";orm:"column(sort)"`
EstimatExeTime int `json:"estimat_exe_time";orm:"column(estimat_exe_time)"`
IsFavorite int `json:"is_favorite"`
}
type Bills struct {
......
......@@ -15,4 +15,5 @@ func init() {
beego.AutoPrefix("admin/api", &controllers.MonitorController{})
beego.AutoPrefix("admin/api", &controllers.WhitelistController{})
beego.AutoPrefix("admin/api", &controllers.FileController{})
beego.AutoPrefix("admin/api", &controllers.FavoriteController{})
}
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