|
|
package mainPage
import ( "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "practice_Go/internal/model/dto" "practice_Go/internal/service" "time" )
// 定义一个MainPage结构体
type MainPage struct{}
// 创建一个新的MainPage实例 初始化
func NewMainPage() *MainPage { return &MainPage{} }
// 获取文章,视频
func (c *MainPage) GetShows(req *ghttp.Request) { shows, err := service.GetShows().GetShows(req.Context()) if err == nil { req.Response.WriteJson(dto.Result{ Code: 200, Message: "success", Data: shows, }) } else { req.Response.WriteJson(dto.Result{ Code: 500, Message: "error", Data: err, }) } }
// 获取视频
func (c *MainPage) GetVideos(req *ghttp.Request) { shows, err := service.GetShows().GetVideos(req.Context()) if err == nil { req.Response.WriteJson(dto.Result{ Code: 200, Message: "success", Data: shows, }) } else { req.Response.WriteJson(dto.Result{ Code: 500, Message: "error", Data: err, }) } }
// 新增数据
func (c *MainPage) AddShow(req *ghttp.Request) {
type Show struct { Id int `json:"id"` Name string `json:"name"` Cover string `json:"cover"` UserId int `json:"userId"` ReleaseTime time.Time `json:"releaseTime"` VideoDuration time.Duration `json:"videoDuration"` ViewCount int `json:"viewCount"` Comments int `json:"comments"` Likes int `json:"likes"` FlagType int `json:"flagType"` ChannelId int `json:"channelId"` }
////通过map
//data := g.Map{
// "name": "视频1",
// "userId": 1,
// "likes": 6,
// "comments": 3,
// "viewCount": 10,
//}
//
////通过结构体对象
//data := Show{
// Name: "视频1",
// UserId: 1,
// Likes: 6,
// Comments: 3,
// ReleaseTime: gtime.New("2024/10/23"),
//}
//
md := g.Model("show") //
//批量插入多条数据
////通过map
//data := g.List{
// g.Map{
// "name": "视频1",
// "userId": 1,
// "likes": 6,
// "comments": 3,
// "viewCount": 23,
// },
// g.Map{
// "name": "视频2",
// "userId": 2,
// "likes": 6,
// "comments": 3,
// "viewCount": 20,
// },
// g.Map{
// "name": "文章1",
// "userId": 3,
// "likes": 6,
// "comments": 3,
// "viewCount": 15,
// },
//}
//通过结构体对象
data := g.Array{ //里边是结构体集合
}
////写法一 插入
////result, err := md.Data(data).Insert()
////写法二 插入 主键冲突,报错
////result, err := md.Insert(data) //insert into ...
////写法三 主键冲突,就新数据 替换 旧数据
////result, err := md.Replace(data) //replace into ...
////写法四 主键冲突,就根据主键 更新 数据
//result, err := md.Save(data) //insert into into ... on duplicate key update ...
//插入并获取id
result, err := md.InsertAndGetId(data)
if err == nil { req.Response.WriteJson(result) } else { req.Response.WriteJson(err) } }
|