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) } }