From 0adbba7450f6537adb8b5b1a542a761d18e8f766 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sat, 1 Nov 2025 23:26:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AF=BE=E7=A8=8B=E5=86=85?= =?UTF-8?q?=E5=AE=B9Handler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/internal/admin/etc/admin-api.yaml | 3 + .../admin/handler/admin/createadminhandler.go | 20 +++- .../admin/handler/admin/deleteadminhandler.go | 20 +++- .../admin/handler/admin/getadminhandler.go | 20 +++- .../admin/handler/admin/listadminhandler.go | 20 +++- .../admin/handler/admin/updateadminhandler.go | 20 +++- server/internal/admin/internal/types/types.go | 97 +++++++++++++------ .../logic/course_content/addcontentlogic.go | 3 +- 8 files changed, 167 insertions(+), 36 deletions(-) create mode 100644 server/internal/admin/etc/admin-api.yaml diff --git a/server/internal/admin/etc/admin-api.yaml b/server/internal/admin/etc/admin-api.yaml new file mode 100644 index 00000000..d7c0751b --- /dev/null +++ b/server/internal/admin/etc/admin-api.yaml @@ -0,0 +1,3 @@ +Name: admin-api +Host: 0.0.0.0 +Port: 8888 diff --git a/server/internal/admin/handler/admin/createadminhandler.go b/server/internal/admin/handler/admin/createadminhandler.go index 31f7da2d..175b94cb 100644 --- a/server/internal/admin/handler/admin/createadminhandler.go +++ b/server/internal/admin/handler/admin/createadminhandler.go @@ -4,11 +4,14 @@ package admin import ( + "fmt" "net/http" "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/logic/admin" + "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/model" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/types" + "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest/httpx" ) @@ -20,7 +23,22 @@ func CreateAdminHandler(cfg *config.Config) http.HandlerFunc { return } - l := admin.NewCreateAdminLogic(r.Context(), svcCtx) + mysqlCfg := cfg.MySQL + dsn := fmt.Sprintf( + "%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=true&loc=Local", + mysqlCfg.Username, + mysqlCfg.Password, + mysqlCfg.Host, + mysqlCfg.Port, + mysqlCfg.Database, + mysqlCfg.Charset, + ) + fmt.Println("接收到articlePost请求") + + conn := sqlx.NewSqlConn("mysql", dsn) + AdminModel := model.NewAdminModel(conn) + + l := admin.NewCreateAdminLogic(r.Context(), cfg, AdminModel) resp, err := l.CreateAdmin(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) diff --git a/server/internal/admin/handler/admin/deleteadminhandler.go b/server/internal/admin/handler/admin/deleteadminhandler.go index f421c664..c424c22a 100644 --- a/server/internal/admin/handler/admin/deleteadminhandler.go +++ b/server/internal/admin/handler/admin/deleteadminhandler.go @@ -4,11 +4,14 @@ package admin import ( + "fmt" "net/http" "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/logic/admin" + "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/model" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/types" + "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest/httpx" ) @@ -20,7 +23,22 @@ func DeleteAdminHandler(cfg *config.Config) http.HandlerFunc { return } - l := admin.NewDeleteAdminLogic(r.Context(), svcCtx) + mysqlCfg := cfg.MySQL + dsn := fmt.Sprintf( + "%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=true&loc=Local", + mysqlCfg.Username, + mysqlCfg.Password, + mysqlCfg.Host, + mysqlCfg.Port, + mysqlCfg.Database, + mysqlCfg.Charset, + ) + fmt.Println("接收到articlePost请求") + + conn := sqlx.NewSqlConn("mysql", dsn) + AdminModel := model.NewAdminModel(conn) + + l := admin.NewDeleteAdminLogic(r.Context(), cfg, AdminModel) resp, err := l.DeleteAdmin(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) diff --git a/server/internal/admin/handler/admin/getadminhandler.go b/server/internal/admin/handler/admin/getadminhandler.go index a5050380..751667c1 100644 --- a/server/internal/admin/handler/admin/getadminhandler.go +++ b/server/internal/admin/handler/admin/getadminhandler.go @@ -4,11 +4,14 @@ package admin import ( + "fmt" "net/http" "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/logic/admin" + "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/model" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/types" + "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest/httpx" ) @@ -20,7 +23,22 @@ func GetAdminHandler(cfg *config.Config) http.HandlerFunc { return } - l := admin.NewGetAdminLogic(r.Context(), svcCtx) + mysqlCfg := cfg.MySQL + dsn := fmt.Sprintf( + "%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=true&loc=Local", + mysqlCfg.Username, + mysqlCfg.Password, + mysqlCfg.Host, + mysqlCfg.Port, + mysqlCfg.Database, + mysqlCfg.Charset, + ) + fmt.Println("接收到articlePost请求") + + conn := sqlx.NewSqlConn("mysql", dsn) + AdminModel := model.NewAdminModel(conn) + + l := admin.NewGetAdminLogic(r.Context(), cfg, AdminModel) resp, err := l.GetAdmin(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) diff --git a/server/internal/admin/handler/admin/listadminhandler.go b/server/internal/admin/handler/admin/listadminhandler.go index 0a2a467e..09b7ae3e 100644 --- a/server/internal/admin/handler/admin/listadminhandler.go +++ b/server/internal/admin/handler/admin/listadminhandler.go @@ -4,11 +4,14 @@ package admin import ( + "fmt" "net/http" "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/logic/admin" + "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/model" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/types" + "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest/httpx" ) @@ -20,7 +23,22 @@ func ListAdminHandler(cfg *config.Config) http.HandlerFunc { return } - l := admin.NewListAdminLogic(r.Context(), svcCtx) + mysqlCfg := cfg.MySQL + dsn := fmt.Sprintf( + "%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=true&loc=Local", + mysqlCfg.Username, + mysqlCfg.Password, + mysqlCfg.Host, + mysqlCfg.Port, + mysqlCfg.Database, + mysqlCfg.Charset, + ) + fmt.Println("接收到articlePost请求") + + conn := sqlx.NewSqlConn("mysql", dsn) + AdminModel := model.NewAdminModel(conn) + + l := admin.NewListAdminLogic(r.Context(), cfg, AdminModel) resp, err := l.ListAdmin(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) diff --git a/server/internal/admin/handler/admin/updateadminhandler.go b/server/internal/admin/handler/admin/updateadminhandler.go index 4a5d7d03..13ec0448 100644 --- a/server/internal/admin/handler/admin/updateadminhandler.go +++ b/server/internal/admin/handler/admin/updateadminhandler.go @@ -4,11 +4,14 @@ package admin import ( + "fmt" "net/http" "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/logic/admin" + "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/model" "github.com/JACKYMYPERSON/hldrCenter/internal/admin/internal/types" + "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest/httpx" ) @@ -20,7 +23,22 @@ func UpdateAdminHandler(cfg *config.Config) http.HandlerFunc { return } - l := admin.NewUpdateAdminLogic(r.Context(), svcCtx) + mysqlCfg := cfg.MySQL + dsn := fmt.Sprintf( + "%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=true&loc=Local", + mysqlCfg.Username, + mysqlCfg.Password, + mysqlCfg.Host, + mysqlCfg.Port, + mysqlCfg.Database, + mysqlCfg.Charset, + ) + fmt.Println("接收到articlePost请求") + + conn := sqlx.NewSqlConn("mysql", dsn) + AdminModel := model.NewAdminModel(conn) + + l := admin.NewUpdateAdminLogic(r.Context(), cfg, AdminModel) resp, err := l.UpdateAdmin(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) diff --git a/server/internal/admin/internal/types/types.go b/server/internal/admin/internal/types/types.go index df422583..e94d82a0 100644 --- a/server/internal/admin/internal/types/types.go +++ b/server/internal/admin/internal/types/types.go @@ -3,48 +3,85 @@ package types -type CreateCourseFileReq struct { - ContentId int `json:"content_id" form:"content_id" validate:"required"` // 关联的内容ID(必填) - Title string `json:"title" form:"title" validate:"required,max=255"` // 文件标题(必填,最长255字符) - FileType string `json:"file_type" form:"file_type" validate:"required,max=30"` // 文件类型(必填,最长30字符) - FileUrl string `json:"file_url" form:"file_url" validate:"required,max=255"` // 文件URL(必填,最长255字符) +type AdminInfo struct { + Id int64 `json:"id"` // 用户ID + Username string `json:"username"` // 用户名 + Password string `json:"password"` // 密码(仅创建/更新时传递) + CoverUrl string `json:"cover_url"` // 封面URL + Intro string `json:"intro"` // 简介 + CreateTime string `json:"create_time"` // 创建时间 + UpdateTime string `json:"update_time"` // 更新时间 + Role string `json:"role"` // 角色(super_admin/normal_admin) + Status int32 `json:"status"` // 1启用,0禁用 } -type CreateCourseFileResp struct { - Id int `json:"id"` // 新增文件的ID - Message string `json:"message"` // 操作结果信息 +type BaseResp struct { + Code int32 `json:"code"` // 0成功,非0失败 + Message string `json:"message"` // 提示信息 } -type DeleteCourseFileReq struct { - Id int `json:"id" form:"id" param:"id" validate:"required"` // 文件ID(必填,从路径参数获取) +type CreateAdminData struct { + Id int64 `json:"id"` // 新增的管理员ID } -type DeleteCourseFileResp struct { - Message string `json:"message"` // 操作结果信息 +type CreateAdminReq struct { + Username string `json:"username" form:"username"` // 用户名(必填) + Password string `json:"password" form:"password"` // 密码(必填,需加密) + CoverUrl string `json:"cover_url,optional" form:"cover_url"` // 封面URL(可选) + Intro string `json:"intro,optional" form:"intro"` // 简介(可选) + Role string `json:"role,optional" form:"role"` // 角色(默认normal_admin) + Status int32 `json:"status,optional" form:"status"` // 状态(默认1) } -type GetCourseFileReq struct { - Id int `json:"id" form:"id" param:"id" validate:"required"` // 文件ID(必填,从路径参数获取) +type CreateAdminResp struct { + BaseResp + Data CreateAdminData `json:"data,optional"` // 业务数据(可选) } -type GetCourseFileResp struct { - Id int `json:"id"` // 文件ID - ContentId int `json:"content_id"` // 关联的内容ID - Title string `json:"title"` // 文件标题 - FileType string `json:"file_type"` // 文件类型 - FileUrl string `json:"file_url"` // 文件URL - CreateTime string `json:"create_time"` // 创建时间(格式化字符串) - UpdateTime string `json:"update_time"` // 更新时间(格式化字符串) +type DeleteAdminReq struct { + Id int64 `json:"id" form:"id"` // 用户ID(必填) } -type UpdateCourseFileReq struct { - Id int `json:"id" form:"id" validate:"required"` // 文件ID(必填) - ContentId int `json:"content_id" form:"content_id"` // 可选:更新关联的内容ID - Title string `json:"title" form:"title" validate:"omitempty,max=255"` // 可选:更新标题 - FileType string `json:"file_type" form:"file_type" validate:"omitempty,max=30"` // 可选:更新文件类型 - FileUrl string `json:"file_url" form:"file_url" validate:"omitempty,max=255"` // 可选:更新文件URL +type DeleteAdminResp struct { + BaseResp } -type UpdateCourseFileResp struct { - Message string `json:"message"` // 操作结果信息 +type GetAdminReq struct { + Id int64 `json:"id" form:"id"` // 用户ID(必填) +} + +type GetAdminResp struct { + BaseResp + Data AdminInfo `json:"data"` // 管理员详情数据 +} + +type ListAdminData struct { + Total int64 `json:"total"` // 总条数 + List []AdminInfo `json:"list"` // 管理员列表 +} + +type ListAdminReq struct { + Page int32 `json:"page,optional" form:"page"` // 页码,默认1 + Size int32 `json:"size,optional" form:"size"` // 每页条数,默认10 + Role string `json:"role,optional" form:"role"` // 按角色筛选 + Status int32 `json:"status,optional" form:"status"` // 按状态筛选 +} + +type ListAdminResp struct { + BaseResp + Data ListAdminData `json:"data"` // 业务数据 +} + +type UpdateAdminReq struct { + Id int64 `json:"id" form:"id"` // 用户ID(必填) + Username string `json:"username,optional" form:"username"` // 用户名(可选) + Password string `json:"password,optional" form:"password"` // 密码(可选) + CoverUrl string `json:"cover_url,optional" form:"cover_url"` // 封面URL(可选) + Intro string `json:"intro,optional" form:"intro"` // 简介(可选) + Role string `json:"role,optional" form:"role"` // 角色(可选) + Status int32 `json:"status,optional" form:"status"` // 状态(可选) +} + +type UpdateAdminResp struct { + BaseResp } diff --git a/server/internal/course_content/internal/logic/course_content/addcontentlogic.go b/server/internal/course_content/internal/logic/course_content/addcontentlogic.go index 675d256d..ac08fd62 100644 --- a/server/internal/course_content/internal/logic/course_content/addcontentlogic.go +++ b/server/internal/course_content/internal/logic/course_content/addcontentlogic.go @@ -24,7 +24,8 @@ func NewAddContentLogic(ctx context.Context, cfg *config.Config, model model.Cou return &AddContentLogic{ Logger: logx.WithContext(ctx), ctx: ctx, - svcCtx: svcCtx, + cfg: cfg, + model: model, } }