Browse Source

Merge branch 'lijikun' into dev

# Conflicts:
#	hack/config.yaml
#	internal/model/dto/Result.go
#	internal/model/entity/go_channel_subscriptions.go
#	internal/model/entity/go_channels.go
#	internal/model/entity/go_live_reservations.go
#	internal/model/entity/go_lives.go
#	internal/model/entity/go_shows.go
dev
lijikun 7 months ago
parent
commit
19818c205a
  1. 1
      go.mod
  2. 27
      internal/cmd/cmd.go
  3. 26
      internal/controller/clubPage/clubPage.go
  4. 113
      internal/controller/mainPage/mainPage.go
  5. 60
      internal/model/dto/Result.go
  6. 3
      internal/model/entity/go_shows.go

1
go.mod

@ -5,6 +5,7 @@ go 1.18
require (
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.1
github.com/gogf/gf/v2 v2.8.1
github.com/rs/cors v1.11.1
)
require (

27
internal/cmd/cmd.go

@ -15,6 +15,23 @@ import (
"github.com/gogf/gf/v2/os/gcmd"
)
/*自定义的允许跨域请求中间件*/
func MiddlewareCORS(r *ghttp.Request) {
/* 没有起到应起到的作用,还是所有的都可以访问
//自定义授权跨域的Origin
corsOptions := r.Response.DefaultCORSOptions()
corsOptions.AllowDomain = []string{"localhost"} //数组中的为允许访问的
if !r.Response.CORSAllowedOrigin(corsOptions) {
r.Response.WriteStatus(http.StatusForbidden)
return
}
r.Response.CORS(corsOptions)
r.Middleware.Next()*/
//默认的跨域设置
r.Response.CORSDefault()
r.Middleware.Next()
}
var (
Main = gcmd.Command{
Name: "main",
@ -32,10 +49,15 @@ var (
)
})
s.BindHandler("/*any", func(r *ghttp.Request) {
r.Response.CORSDefault()
})
// 定义一个路由组,路径为/mainpage
s.Group("/mainpage", func(group *ghttp.RouterGroup) {
// 添加中间件,用于处理响应
group.Middleware(ghttp.MiddlewareHandlerResponse)
//group.Middleware(ghttp.MiddlewareHandlerResponse)
group.Middleware(MiddlewareCORS)
// 绑定路由,将mainPage.NewMainPage()绑定到该路由组
group.Bind(
mainPage.NewMainPage(),
@ -45,7 +67,8 @@ var (
// 定义一个路由组,路径为/clubpage
s.Group("/clubpage", func(group *ghttp.RouterGroup) {
// 添加中间件,用于处理响应
group.Middleware(ghttp.MiddlewareHandlerResponse)
//group.Middleware(ghttp.MiddlewareHandlerResponse)
group.Middleware(MiddlewareCORS)
// 绑定路由,将mainPage.NewMainPage()绑定到该路由组
group.Bind(
clubPage.NewClubPage(),

26
internal/controller/clubPage/clubPage.go

@ -2,6 +2,7 @@ package clubPage
import (
"github.com/gogf/gf/v2/net/ghttp"
"practice_Go/internal/model/dto"
"practice_Go/internal/service"
)
@ -13,19 +14,36 @@ func NewClubPage() *ClubPage {
// GetClub 获取俱乐部信息
func (c ClubPage) GetClub(req *ghttp.Request) {
club, err := service.GetClubs().GetClubs(req.Context())
if err == nil {
req.Response.WriteJson(club)
req.Response.WriteJson(dto.Result{
Code: 200,
Message: "success",
Data: club,
})
} else {
req.Response.WriteJson(err)
req.Response.WriteJson(dto.Result{
Code: 500,
Message: "error",
Data: err,
})
}
}
func (c ClubPage) GetClubShows(req *ghttp.Request) {
shows, err := service.GetClubs().GetClubShows(req.Context())
if err == nil {
req.Response.WriteJson(shows)
req.Response.WriteJson(dto.Result{
Code: 200,
Message: "success",
Data: shows,
})
} else {
req.Response.WriteJson(err)
req.Response.WriteJson(dto.Result{
Code: 500,
Message: "error",
Data: err,
})
}
}

113
internal/controller/mainPage/mainPage.go

@ -1,8 +1,11 @@
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结构体
@ -17,9 +20,17 @@ func NewMainPage() *MainPage {
func (c *MainPage) GetShows(req *ghttp.Request) {
shows, err := service.GetShows().GetShows(req.Context())
if err == nil {
req.Response.WriteJson(shows)
req.Response.WriteJson(dto.Result{
Code: 200,
Message: "success",
Data: shows,
})
} else {
req.Response.WriteJson(err)
req.Response.WriteJson(dto.Result{
Code: 500,
Message: "error",
Data: err,
})
}
}
@ -27,7 +38,103 @@ func (c *MainPage) GetShows(req *ghttp.Request) {
func (c *MainPage) GetVideos(req *ghttp.Request) {
shows, err := service.GetShows().GetVideos(req.Context())
if err == nil {
req.Response.WriteJson(shows)
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)
}

60
internal/model/dto/Result.go

@ -4,39 +4,63 @@ import (
"github.com/gogf/gf/v2/frame/g"
)
// 定义Result结构体
// 定义响应结构
type Result struct {
Code int `json:"code"` // 响应码,200 代表成功;401 代表未授权
Msg string `json:"msg"` // 响应消息
Data interface{} `json:"data"` // 返回的数据
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data"` // 修改为实体类型
}
// Success 创建一个表示成功的 Result 实例(不需要数据)
/*成功,没有数据*/
func Success() *Result {
return &Result{Code: 200, Msg: "success", Data: g.Map{}}
return &Result{
Code: 200,
Message: "success",
Data: g.Map{},
}
}
// SuccessWithData 创建一个表示成功的 Result 实例,并包含数据
/*成功,有数据*/
func SuccessWithData(data interface{}) *Result {
return &Result{Code: 200, Msg: "success", Data: data}
return &Result{
Code: 200,
Message: "success",
Data: data,
}
}
// Error 创建一个表示错误的 Result 实例
/*错误,只有错误信息,错误码0*/
func Error(msg string) *Result {
return &Result{Code: 0, Msg: msg, Data: g.Map{}}
return &Result{
Code: 0, // 错误码
Message: msg, // 错误信息
Data: g.Map{},
}
}
// ErrorWithCode 创建一个表示错误的 Result 实例,并允许自定义错误码
/*错误,有错误信息,有错误码*/
func ErrorWithCode(code int, msg string) *Result {
return &Result{Code: code, Msg: msg, Data: g.Map{}}
return &Result{
Code: code, // 错误码
Message: msg, // 错误信息
Data: g.Map{},
}
}
// UnauthorizedWithCode 创建一个表示未授权的 Result 实例,并允许自定义错误码
func UnauthorizedWithCode(code int, msg string) *Result {
return &Result{Code: code, Msg: msg, Data: g.Map{}}
/*未授权,有错误信息,错误码为401*/
func Unauthorized(msg string) *Result {
return &Result{
Code: 401, // 错误码
Message: msg, // 错误信息
Data: g.Map{},
}
}
// Unauthorized 创建一个表示未授权的 Result 实例,默认错误码为 401
func Unauthorized(msg string) *Result {
return &Result{Code: 401, Msg: msg, Data: g.Map{}}
/*未授权,有错误信息,允许自定义错误码*/
func UnauthorizedWithCode(code int, msg string) *Result {
return &Result{
Code: code, // 错误码
Message: msg, // 错误信息
Data: g.Map{},
}
}

3
internal/model/entity/go_shows.go

@ -14,7 +14,6 @@ type GoShows struct {
Cover string `json:"cover" orm:"cover" description:"展示内容封面路径或相关标识,可为空"` // 展示内容封面路径或相关标识,可为空
Name string `json:"name" orm:"name" description:"展示内容名称,最大长度255字符,不能为空"` // 展示内容名称,最大长度255字符,不能为空
UserId int `json:"userId" orm:"user_id" description:"关联的用户ID,指向go_users表的id,长度为8位整数,不能为空"` // 关联的用户ID,指向go_users表的id,长度为8位整数,不能为空
User *GoUsers `json:"user" orm:"with:id=user_id" description:"关联的用户信息"` // 关联的用户信息
ReleaseTime *gtime.Time `json:"releaseTime" orm:"release_time" description:"展示内容发布时间,可为空"` // 展示内容发布时间,可为空
VideoDuration *gtime.Time `json:"videoDuration" orm:"video_duration" description:"展示内容视频时长,格式根据实际情况定,可为空"` // 展示内容视频时长,格式根据实际情况定,可为空
ViewCount int `json:"viewCount" orm:"view_count" description:"展示内容观看数量,初始值为0,可累加"` // 展示内容观看数量,初始值为0,可累加
@ -23,5 +22,7 @@ type GoShows struct {
FlagType int `json:"flagType" orm:"flag_type" description:"展示内容标识类型,按业务规则确定,可为空"` // 展示内容标识类型,按业务规则确定,可为空
ClubId int `json:"clubId" orm:"club_id" description:"关联的俱乐部ID,指向go_clubs表的id,可为空"` // 关联的俱乐部ID,指向go_clubs表的id,可为空
ChannelId int `json:"channelId" orm:"channel_id" description:"关联的频道ID,指向go_channels表的id,可为空"` // 关联的频道ID,指向go_channels表的id,可为空
User *GoUsers `json:"user" orm:"with:id=user_id"`
Club *GoClubs `json:"club" orm:"with:id=club_id"`
}
Loading…
Cancel
Save