diff --git a/server/internal/course_resource/courseresourceapi.go b/server/internal/course_resource/courseresourceapi.go new file mode 100644 index 00000000..f4022e40 --- /dev/null +++ b/server/internal/course_resource/courseresourceapi.go @@ -0,0 +1,34 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package main + +import ( + "flag" + "fmt" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/config" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/handler" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + + "github.com/zeromicro/go-zero/core/conf" + "github.com/zeromicro/go-zero/rest" +) + +var configFile = flag.String("f", "etc/courseresourceapi.yaml", "the config file") + +func main() { + flag.Parse() + + var c config.Config + conf.MustLoad(*configFile, &c) + + server := rest.MustNewServer(c.RestConf) + defer server.Stop() + + ctx := svc.NewServiceContext(c) + handler.RegisterHandlers(server, ctx) + + fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port) + server.Start() +} diff --git a/server/internal/course_resource/etc/courseresourceapi.yaml b/server/internal/course_resource/etc/courseresourceapi.yaml new file mode 100644 index 00000000..7778e343 --- /dev/null +++ b/server/internal/course_resource/etc/courseresourceapi.yaml @@ -0,0 +1,3 @@ +Name: course_resource_api +Host: 0.0.0.0 +Port: 8888 diff --git a/server/internal/course_resource/internal/config/config.go b/server/internal/course_resource/internal/config/config.go new file mode 100644 index 00000000..7fbd0898 --- /dev/null +++ b/server/internal/course_resource/internal/config/config.go @@ -0,0 +1,10 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package config + +import "github.com/zeromicro/go-zero/rest" + +type Config struct { + rest.RestConf +} diff --git a/server/internal/course_resource/internal/handler/course_resource/createcourseresourcehandler.go b/server/internal/course_resource/internal/handler/course_resource/createcourseresourcehandler.go new file mode 100644 index 00000000..ca8a2632 --- /dev/null +++ b/server/internal/course_resource/internal/handler/course_resource/createcourseresourcehandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/logic/course_resource" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func CreateCourseResourceHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.CreateCourseResourceReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_resource.NewCreateCourseResourceLogic(r.Context(), svcCtx) + resp, err := l.CreateCourseResource(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_resource/internal/handler/course_resource/deletecourseresourcehandler.go b/server/internal/course_resource/internal/handler/course_resource/deletecourseresourcehandler.go new file mode 100644 index 00000000..61177c0f --- /dev/null +++ b/server/internal/course_resource/internal/handler/course_resource/deletecourseresourcehandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/logic/course_resource" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func DeleteCourseResourceHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.DeleteCourseResourceReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_resource.NewDeleteCourseResourceLogic(r.Context(), svcCtx) + resp, err := l.DeleteCourseResource(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_resource/internal/handler/course_resource/getcourseresourcehandler.go b/server/internal/course_resource/internal/handler/course_resource/getcourseresourcehandler.go new file mode 100644 index 00000000..b1b82a18 --- /dev/null +++ b/server/internal/course_resource/internal/handler/course_resource/getcourseresourcehandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/logic/course_resource" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func GetCourseResourceHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.GetCourseResourceReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_resource.NewGetCourseResourceLogic(r.Context(), svcCtx) + resp, err := l.GetCourseResource(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_resource/internal/handler/course_resource/listcourseresourcehandler.go b/server/internal/course_resource/internal/handler/course_resource/listcourseresourcehandler.go new file mode 100644 index 00000000..87b2dddf --- /dev/null +++ b/server/internal/course_resource/internal/handler/course_resource/listcourseresourcehandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/logic/course_resource" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func ListCourseResourceHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.ListCourseResourceReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_resource.NewListCourseResourceLogic(r.Context(), svcCtx) + resp, err := l.ListCourseResource(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_resource/internal/handler/course_resource/updatecourseresourcehandler.go b/server/internal/course_resource/internal/handler/course_resource/updatecourseresourcehandler.go new file mode 100644 index 00000000..4aac7460 --- /dev/null +++ b/server/internal/course_resource/internal/handler/course_resource/updatecourseresourcehandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/logic/course_resource" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func UpdateCourseResourceHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.UpdateCourseResourceReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_resource.NewUpdateCourseResourceLogic(r.Context(), svcCtx) + resp, err := l.UpdateCourseResource(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_resource/internal/handler/routes.go b/server/internal/course_resource/internal/handler/routes.go new file mode 100644 index 00000000..d80573ec --- /dev/null +++ b/server/internal/course_resource/internal/handler/routes.go @@ -0,0 +1,46 @@ +// Code generated by goctl. DO NOT EDIT. +// goctl 1.9.1 + +package handler + +import ( + "net/http" + + course_resource "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/handler/course_resource" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + + "github.com/zeromicro/go-zero/rest" +) + +func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { + server.AddRoutes( + []rest.Route{ + { + Method: http.MethodPost, + Path: "/", + Handler: course_resource.CreateCourseResourceHandler(serverCtx), + }, + { + Method: http.MethodPut, + Path: "/", + Handler: course_resource.UpdateCourseResourceHandler(serverCtx), + }, + { + Method: http.MethodGet, + Path: "/:id", + Handler: course_resource.GetCourseResourceHandler(serverCtx), + }, + { + Method: http.MethodDelete, + Path: "/:id", + Handler: course_resource.DeleteCourseResourceHandler(serverCtx), + }, + { + Method: http.MethodPost, + Path: "/list", + Handler: course_resource.ListCourseResourceHandler(serverCtx), + }, + }, + rest.WithPrefix("/api/course-resource"), + ) +} diff --git a/server/internal/course_resource/internal/logic/course_resource/createcourseresourcelogic.go b/server/internal/course_resource/internal/logic/course_resource/createcourseresourcelogic.go new file mode 100644 index 00000000..7b783b0e --- /dev/null +++ b/server/internal/course_resource/internal/logic/course_resource/createcourseresourcelogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateCourseResourceLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewCreateCourseResourceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateCourseResourceLogic { + return &CreateCourseResourceLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *CreateCourseResourceLogic) CreateCourseResource(req *types.CreateCourseResourceReq) (resp *types.CreateCourseResourceResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_resource/internal/logic/course_resource/deletecourseresourcelogic.go b/server/internal/course_resource/internal/logic/course_resource/deletecourseresourcelogic.go new file mode 100644 index 00000000..99a257e0 --- /dev/null +++ b/server/internal/course_resource/internal/logic/course_resource/deletecourseresourcelogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteCourseResourceLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewDeleteCourseResourceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteCourseResourceLogic { + return &DeleteCourseResourceLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *DeleteCourseResourceLogic) DeleteCourseResource(req *types.DeleteCourseResourceReq) (resp *types.DeleteCourseResourceResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_resource/internal/logic/course_resource/getcourseresourcelogic.go b/server/internal/course_resource/internal/logic/course_resource/getcourseresourcelogic.go new file mode 100644 index 00000000..6573809b --- /dev/null +++ b/server/internal/course_resource/internal/logic/course_resource/getcourseresourcelogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetCourseResourceLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewGetCourseResourceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetCourseResourceLogic { + return &GetCourseResourceLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *GetCourseResourceLogic) GetCourseResource(req *types.GetCourseResourceReq) (resp *types.GetCourseResourceResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_resource/internal/logic/course_resource/listcourseresourcelogic.go b/server/internal/course_resource/internal/logic/course_resource/listcourseresourcelogic.go new file mode 100644 index 00000000..224ca0cd --- /dev/null +++ b/server/internal/course_resource/internal/logic/course_resource/listcourseresourcelogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListCourseResourceLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewListCourseResourceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListCourseResourceLogic { + return &ListCourseResourceLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *ListCourseResourceLogic) ListCourseResource(req *types.ListCourseResourceReq) (resp *types.ListCourseResourceResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_resource/internal/logic/course_resource/updatecourseresourcelogic.go b/server/internal/course_resource/internal/logic/course_resource/updatecourseresourcelogic.go new file mode 100644 index 00000000..b1bf3e8b --- /dev/null +++ b/server/internal/course_resource/internal/logic/course_resource/updatecourseresourcelogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_resource + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UpdateCourseResourceLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewUpdateCourseResourceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateCourseResourceLogic { + return &UpdateCourseResourceLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *UpdateCourseResourceLogic) UpdateCourseResource(req *types.UpdateCourseResourceReq) (resp *types.UpdateCourseResourceResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_resource/internal/svc/servicecontext.go b/server/internal/course_resource/internal/svc/servicecontext.go new file mode 100644 index 00000000..f923e333 --- /dev/null +++ b/server/internal/course_resource/internal/svc/servicecontext.go @@ -0,0 +1,18 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package svc + +import ( + "github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/internal/config" +) + +type ServiceContext struct { + Config config.Config +} + +func NewServiceContext(c config.Config) *ServiceContext { + return &ServiceContext{ + Config: c, + } +} diff --git a/server/internal/course_resource/internal/types/types.go b/server/internal/course_resource/internal/types/types.go new file mode 100644 index 00000000..f0bb3825 --- /dev/null +++ b/server/internal/course_resource/internal/types/types.go @@ -0,0 +1,64 @@ +// Code generated by goctl. DO NOT EDIT. +// goctl 1.9.1 + +package types + +type CreateCourseResourceReq struct { + CourseId int `json:"course_id" form:"course_id" validate:"required"` + Title string `json:"title" form:"title" validate:"required,max=255"` + ResourceUrl string `json:"resource_url" form:"resource_url" validate:"required,max=512"` + Size int `json:"size" form:"size" validate:"omitempty,min=0"` + Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` +} + +type CreateCourseResourceResp struct { + Id int `json:"id"` + Message string `json:"message"` +} + +type DeleteCourseResourceReq struct { + Id int `path:"id" validate:"required"` +} + +type DeleteCourseResourceResp struct { + Message string `json:"message"` +} + +type GetCourseResourceReq struct { + Id int `path:"id" validate:"required"` +} + +type GetCourseResourceResp struct { + Id int `json:"id"` + CourseId int `json:"course_id"` + Title string `json:"title"` + ResourceUrl string `json:"resource_url"` + Size int `json:"size"` + Sort int `json:"sort"` +} + +type ListCourseResourceReq struct { + CourseId int `form:"course_id" validate:"omitempty"` + Page int `form:"page" validate:"required,min=1"` + PageSize int `form:"page_size" validate:"required,min=1,max=100"` +} + +type ListCourseResourceResp struct { + Total int `json:"total"` + List []GetCourseResourceResp `json:"list"` + Page int `json:"page"` + PageSize int `json:"page_size"` +} + +type UpdateCourseResourceReq struct { + Id int `json:"id" validate:"required"` + CourseId int `json:"course_id" validate:"omitempty"` + Title string `json:"title" validate:"omitempty,max=255"` + ResourceUrl string `json:"resource_url" validate:"omitempty,max=512"` + Size int `json:"size" validate:"omitempty,min=0"` + Sort int `json:"sort" validate:"omitempty,min=0"` +} + +type UpdateCourseResourceResp struct { + Message string `json:"message"` +} diff --git a/server/internal/course_teacher/courseteacherapi.go b/server/internal/course_teacher/courseteacherapi.go new file mode 100644 index 00000000..e53375a5 --- /dev/null +++ b/server/internal/course_teacher/courseteacherapi.go @@ -0,0 +1,34 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package main + +import ( + "flag" + "fmt" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/config" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/handler" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + + "github.com/zeromicro/go-zero/core/conf" + "github.com/zeromicro/go-zero/rest" +) + +var configFile = flag.String("f", "etc/courseteacherapi.yaml", "the config file") + +func main() { + flag.Parse() + + var c config.Config + conf.MustLoad(*configFile, &c) + + server := rest.MustNewServer(c.RestConf) + defer server.Stop() + + ctx := svc.NewServiceContext(c) + handler.RegisterHandlers(server, ctx) + + fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port) + server.Start() +} diff --git a/server/internal/course_teacher/etc/courseteacherapi.yaml b/server/internal/course_teacher/etc/courseteacherapi.yaml new file mode 100644 index 00000000..cca67a9a --- /dev/null +++ b/server/internal/course_teacher/etc/courseteacherapi.yaml @@ -0,0 +1,3 @@ +Name: course_teacher_api +Host: 0.0.0.0 +Port: 8888 diff --git a/server/internal/course_teacher/internal/config/config.go b/server/internal/course_teacher/internal/config/config.go new file mode 100644 index 00000000..7fbd0898 --- /dev/null +++ b/server/internal/course_teacher/internal/config/config.go @@ -0,0 +1,10 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package config + +import "github.com/zeromicro/go-zero/rest" + +type Config struct { + rest.RestConf +} diff --git a/server/internal/course_teacher/internal/handler/course_teacher/createcourseteacherhandler.go b/server/internal/course_teacher/internal/handler/course_teacher/createcourseteacherhandler.go new file mode 100644 index 00000000..803575a5 --- /dev/null +++ b/server/internal/course_teacher/internal/handler/course_teacher/createcourseteacherhandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/logic/course_teacher" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func CreateCourseTeacherHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.CreateCourseTeacherReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_teacher.NewCreateCourseTeacherLogic(r.Context(), svcCtx) + resp, err := l.CreateCourseTeacher(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_teacher/internal/handler/course_teacher/deletecourseteacherhandler.go b/server/internal/course_teacher/internal/handler/course_teacher/deletecourseteacherhandler.go new file mode 100644 index 00000000..f8e46dc5 --- /dev/null +++ b/server/internal/course_teacher/internal/handler/course_teacher/deletecourseteacherhandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/logic/course_teacher" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func DeleteCourseTeacherHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.DeleteCourseTeacherReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_teacher.NewDeleteCourseTeacherLogic(r.Context(), svcCtx) + resp, err := l.DeleteCourseTeacher(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_teacher/internal/handler/course_teacher/getcourseteacherhandler.go b/server/internal/course_teacher/internal/handler/course_teacher/getcourseteacherhandler.go new file mode 100644 index 00000000..ddfb8994 --- /dev/null +++ b/server/internal/course_teacher/internal/handler/course_teacher/getcourseteacherhandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/logic/course_teacher" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func GetCourseTeacherHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.GetCourseTeacherReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_teacher.NewGetCourseTeacherLogic(r.Context(), svcCtx) + resp, err := l.GetCourseTeacher(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_teacher/internal/handler/course_teacher/listcourseteacherhandler.go b/server/internal/course_teacher/internal/handler/course_teacher/listcourseteacherhandler.go new file mode 100644 index 00000000..76c78a0b --- /dev/null +++ b/server/internal/course_teacher/internal/handler/course_teacher/listcourseteacherhandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/logic/course_teacher" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func ListCourseTeacherHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.ListCourseTeacherReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_teacher.NewListCourseTeacherLogic(r.Context(), svcCtx) + resp, err := l.ListCourseTeacher(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_teacher/internal/handler/course_teacher/updatecourseteacherhandler.go b/server/internal/course_teacher/internal/handler/course_teacher/updatecourseteacherhandler.go new file mode 100644 index 00000000..f3f59a73 --- /dev/null +++ b/server/internal/course_teacher/internal/handler/course_teacher/updatecourseteacherhandler.go @@ -0,0 +1,31 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "net/http" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/logic/course_teacher" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func UpdateCourseTeacherHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.UpdateCourseTeacherReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := course_teacher.NewUpdateCourseTeacherLogic(r.Context(), svcCtx) + resp, err := l.UpdateCourseTeacher(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/server/internal/course_teacher/internal/handler/routes.go b/server/internal/course_teacher/internal/handler/routes.go new file mode 100644 index 00000000..6573fdc4 --- /dev/null +++ b/server/internal/course_teacher/internal/handler/routes.go @@ -0,0 +1,46 @@ +// Code generated by goctl. DO NOT EDIT. +// goctl 1.9.1 + +package handler + +import ( + "net/http" + + course_teacher "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/handler/course_teacher" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + + "github.com/zeromicro/go-zero/rest" +) + +func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { + server.AddRoutes( + []rest.Route{ + { + Method: http.MethodPost, + Path: "/", + Handler: course_teacher.CreateCourseTeacherHandler(serverCtx), + }, + { + Method: http.MethodPut, + Path: "/", + Handler: course_teacher.UpdateCourseTeacherHandler(serverCtx), + }, + { + Method: http.MethodGet, + Path: "/:id", + Handler: course_teacher.GetCourseTeacherHandler(serverCtx), + }, + { + Method: http.MethodDelete, + Path: "/:id", + Handler: course_teacher.DeleteCourseTeacherHandler(serverCtx), + }, + { + Method: http.MethodPost, + Path: "/list", + Handler: course_teacher.ListCourseTeacherHandler(serverCtx), + }, + }, + rest.WithPrefix("/api/course-teacher"), + ) +} diff --git a/server/internal/course_teacher/internal/logic/course_teacher/createcourseteacherlogic.go b/server/internal/course_teacher/internal/logic/course_teacher/createcourseteacherlogic.go new file mode 100644 index 00000000..31880fbf --- /dev/null +++ b/server/internal/course_teacher/internal/logic/course_teacher/createcourseteacherlogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateCourseTeacherLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewCreateCourseTeacherLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateCourseTeacherLogic { + return &CreateCourseTeacherLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *CreateCourseTeacherLogic) CreateCourseTeacher(req *types.CreateCourseTeacherReq) (resp *types.CreateCourseTeacherResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_teacher/internal/logic/course_teacher/deletecourseteacherlogic.go b/server/internal/course_teacher/internal/logic/course_teacher/deletecourseteacherlogic.go new file mode 100644 index 00000000..dea6765d --- /dev/null +++ b/server/internal/course_teacher/internal/logic/course_teacher/deletecourseteacherlogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteCourseTeacherLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewDeleteCourseTeacherLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteCourseTeacherLogic { + return &DeleteCourseTeacherLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *DeleteCourseTeacherLogic) DeleteCourseTeacher(req *types.DeleteCourseTeacherReq) (resp *types.DeleteCourseTeacherResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_teacher/internal/logic/course_teacher/getcourseteacherlogic.go b/server/internal/course_teacher/internal/logic/course_teacher/getcourseteacherlogic.go new file mode 100644 index 00000000..cf03d677 --- /dev/null +++ b/server/internal/course_teacher/internal/logic/course_teacher/getcourseteacherlogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetCourseTeacherLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewGetCourseTeacherLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetCourseTeacherLogic { + return &GetCourseTeacherLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *GetCourseTeacherLogic) GetCourseTeacher(req *types.GetCourseTeacherReq) (resp *types.GetCourseTeacherResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_teacher/internal/logic/course_teacher/listcourseteacherlogic.go b/server/internal/course_teacher/internal/logic/course_teacher/listcourseteacherlogic.go new file mode 100644 index 00000000..0056d143 --- /dev/null +++ b/server/internal/course_teacher/internal/logic/course_teacher/listcourseteacherlogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListCourseTeacherLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewListCourseTeacherLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListCourseTeacherLogic { + return &ListCourseTeacherLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *ListCourseTeacherLogic) ListCourseTeacher(req *types.ListCourseTeacherReq) (resp *types.ListCourseTeacherResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_teacher/internal/logic/course_teacher/updatecourseteacherlogic.go b/server/internal/course_teacher/internal/logic/course_teacher/updatecourseteacherlogic.go new file mode 100644 index 00000000..7da1ef32 --- /dev/null +++ b/server/internal/course_teacher/internal/logic/course_teacher/updatecourseteacherlogic.go @@ -0,0 +1,33 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package course_teacher + +import ( + "context" + + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UpdateCourseTeacherLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewUpdateCourseTeacherLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateCourseTeacherLogic { + return &UpdateCourseTeacherLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *UpdateCourseTeacherLogic) UpdateCourseTeacher(req *types.UpdateCourseTeacherReq) (resp *types.UpdateCourseTeacherResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/server/internal/course_teacher/internal/svc/servicecontext.go b/server/internal/course_teacher/internal/svc/servicecontext.go new file mode 100644 index 00000000..689c5f88 --- /dev/null +++ b/server/internal/course_teacher/internal/svc/servicecontext.go @@ -0,0 +1,18 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package svc + +import ( + "github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/internal/config" +) + +type ServiceContext struct { + Config config.Config +} + +func NewServiceContext(c config.Config) *ServiceContext { + return &ServiceContext{ + Config: c, + } +} diff --git a/server/internal/course_teacher/internal/types/types.go b/server/internal/course_teacher/internal/types/types.go new file mode 100644 index 00000000..acd52169 --- /dev/null +++ b/server/internal/course_teacher/internal/types/types.go @@ -0,0 +1,71 @@ +// Code generated by goctl. DO NOT EDIT. +// goctl 1.9.1 + +package types + +type CreateCourseTeacherReq struct { + CourseId int `json:"course_id" form:"course_id" validate:"required"` // 关联课程ID(必填,外键) + TeacherId int `json:"teacher_id" form:"teacher_id" validate:"required"` // 教师ID(必填,关联用户表) + Name string `json:"name" form:"name" validate:"required,max=100"` // 教师姓名(必填,最长100字符) + Title string `json:"title" form:"title" validate:"omitempty,max=200"` // 教师头衔(可选,最长200字符) + Avatar string `json:"avatar" form:"avatar" validate:"omitempty,max=512"` // 头像URL(可选,最长512字符) + Intro string `json:"intro" form:"intro"` // 教师简介(可选,文本) + Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` // 排序(可选,默认0) +} + +type CreateCourseTeacherResp struct { + Id int `json:"id"` // 新增关联ID + Message string `json:"message"` // 操作结果信息 +} + +type DeleteCourseTeacherReq struct { + Id int `json:"id" form:"id" path:"id" validate:"required"` // 关联ID(必填,路径参数) +} + +type DeleteCourseTeacherResp struct { + Message string `json:"message"` // 操作结果信息 +} + +type GetCourseTeacherReq struct { + Id int `json:"id" form:"id" path:"id" validate:"required"` // 关联ID(必填,路径参数) +} + +type GetCourseTeacherResp struct { + Id int `json:"id"` // 关联ID(主键) + CourseId int `json:"course_id"` // 关联课程ID + TeacherId int `json:"teacher_id"` // 教师ID + Name string `json:"name"` // 教师姓名 + Title string `json:"title"` // 教师头衔 + Avatar string `json:"avatar"` // 头像URL + Intro string `json:"intro"` // 教师简介 + Sort int `json:"sort"` // 排序 +} + +type ListCourseTeacherReq struct { + CourseId int `json:"course_id" form:"course_id" validate:"omitempty"` // 可选筛选:按课程ID查询 + TeacherId int `json:"teacher_id" form:"teacher_id" validate:"omitempty"` // 可选筛选:按教师ID查询 + Page int `json:"page" form:"page" validate:"required,min=1"` // 页码(必填,从1开始) + PageSize int `json:"page_size" form:"page_size" validate:"required,min=1,max=100"` // 每页条数(1-100) +} + +type ListCourseTeacherResp struct { + Total int `json:"total"` // 总条数 + List []GetCourseTeacherResp `json:"list"` // 教学团队列表 + Page int `json:"page"` // 当前页码 + PageSize int `json:"page_size"` // 每页条数 +} + +type UpdateCourseTeacherReq struct { + Id int `json:"id" form:"id" validate:"required"` // 关联ID(必填) + CourseId int `json:"course_id" form:"course_id" validate:"omitempty"` // 可选更新:课程ID + TeacherId int `json:"teacher_id" form:"teacher_id" validate:"omitempty"` // 可选更新:教师ID + Name string `json:"name" form:"name" validate:"omitempty,max=100"` // 可选更新:教师姓名 + Title string `json:"title" form:"title" validate:"omitempty,max=200"` // 可选更新:教师头衔 + Avatar string `json:"avatar" form:"avatar" validate:"omitempty,max=512"` // 可选更新:头像URL + Intro string `json:"intro" form:"intro"` // 可选更新:教师简介 + Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` // 可选更新:排序 +} + +type UpdateCourseTeacherResp struct { + Message string `json:"message"` // 操作结果信息 +}