diff --git a/server/article.go b/server/article.go deleted file mode 100644 index 175de6ac..00000000 --- a/server/article.go +++ /dev/null @@ -1,34 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package main - -import ( - "flag" - "fmt" - - "github.com/JACKYMYPERSON/hldrCenter/internal/config" - "github.com/JACKYMYPERSON/hldrCenter/internal/handler" - "github.com/JACKYMYPERSON/hldrCenter/internal/svc" - - "github.com/zeromicro/go-zero/core/conf" - "github.com/zeromicro/go-zero/rest" -) - -var configFile = flag.String("f", "etc/article-api.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/handler/article/createarticlehandler.go b/server/internal/handler/article/createarticlehandler.go deleted file mode 100644 index 563fcc64..00000000 --- a/server/internal/handler/article/createarticlehandler.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package article - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/internal/logic/article" - "github.com/JACKYMYPERSON/hldrCenter/internal/svc" - "github.com/JACKYMYPERSON/hldrCenter/internal/types" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func CreateArticleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req types.CreateArticleReq - if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) - return - } - - l := article.NewCreateArticleLogic(r.Context(), svcCtx) - resp, err := l.CreateArticle(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/handler/article/deletearticlehandler.go b/server/internal/handler/article/deletearticlehandler.go deleted file mode 100644 index 11d98002..00000000 --- a/server/internal/handler/article/deletearticlehandler.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package article - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/internal/logic/article" - "github.com/JACKYMYPERSON/hldrCenter/internal/svc" - "github.com/JACKYMYPERSON/hldrCenter/internal/types" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func DeleteArticleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req types.DeleteArticleReq - if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) - return - } - - l := article.NewDeleteArticleLogic(r.Context(), svcCtx) - resp, err := l.DeleteArticle(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/handler/article/detailarticlehandler.go b/server/internal/handler/article/detailarticlehandler.go deleted file mode 100644 index b92c83bc..00000000 --- a/server/internal/handler/article/detailarticlehandler.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package article - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/internal/logic/article" - "github.com/JACKYMYPERSON/hldrCenter/internal/svc" - "github.com/JACKYMYPERSON/hldrCenter/internal/types" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func DetailArticleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req types.DetailArticleReq - if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) - return - } - - l := article.NewDetailArticleLogic(r.Context(), svcCtx) - resp, err := l.DetailArticle(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/handler/article/listarticlehandler.go b/server/internal/handler/article/listarticlehandler.go deleted file mode 100644 index 7973d8bb..00000000 --- a/server/internal/handler/article/listarticlehandler.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package article - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/internal/logic/article" - "github.com/JACKYMYPERSON/hldrCenter/internal/svc" - "github.com/JACKYMYPERSON/hldrCenter/internal/types" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func ListArticleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req types.ListArticleReq - if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) - return - } - - l := article.NewListArticleLogic(r.Context(), svcCtx) - resp, err := l.ListArticle(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/handler/article/updatearticlehandler.go b/server/internal/handler/article/updatearticlehandler.go deleted file mode 100644 index 2deca693..00000000 --- a/server/internal/handler/article/updatearticlehandler.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package article - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/internal/logic/article" - "github.com/JACKYMYPERSON/hldrCenter/internal/svc" - "github.com/JACKYMYPERSON/hldrCenter/internal/types" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func UpdateArticleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req types.UpdateArticleReq - if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) - return - } - - l := article.NewUpdateArticleLogic(r.Context(), svcCtx) - resp, err := l.UpdateArticle(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/handler/ping/pinghandler.go b/server/internal/handler/ping/pinghandler.go deleted file mode 100644 index a733bc43..00000000 --- a/server/internal/handler/ping/pinghandler.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package ping - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/config" - "github.com/JACKYMYPERSON/hldrCenter/internal/logic/ping" - "github.com/JACKYMYPERSON/hldrCenter/internal/types" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func PingHandler(cfg *config.Config) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req types.PingReq - if err := httpx.Parse(r, &req); err != nil { - httpx.ErrorCtx(r.Context(), w, err) - return - } - - l := ping.NewPingLogic(r.Context(), cfg) - resp, err := l.Ping(&req) - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/handler/uploadimg/upload.go b/server/internal/handler/uploadimg/upload.go deleted file mode 100644 index 2eb99842..00000000 --- a/server/internal/handler/uploadimg/upload.go +++ /dev/null @@ -1,113 +0,0 @@ -package handler - -import ( - "fmt" - "net/http" - "strings" - "time" - - "github.com/JACKYMYPERSON/hldrCenter/config" - "github.com/aliyun/aliyun-oss-go-sdk/oss" - "github.com/gin-gonic/gin" -) - -// UploadImageHandler 处理图片上传到OSS -func UploadImageHandler(cfg *config.Config) gin.HandlerFunc { - // 闭包:内部函数可以访问 cfg 参数 - return func(c *gin.Context) { - // 获取上传的图片文件 - fileHeader, err := c.FormFile("image") - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{ - "code": 400, - "message": "获取图片失败,请重新上传", - "error": err.Error(), - }) - return - } - - // 打开文件 - file, err := fileHeader.Open() - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ - "code": 500, - "message": "打开图片文件失败", - "error": err.Error(), - }) - return - } - defer file.Close() - - // 检查文件大小(使用配置中的max_file_size) - if fileHeader.Size > cfg.Upload.MaxFileSize { - c.JSON(http.StatusBadRequest, gin.H{ - "code": 400, - "message": fmt.Sprintf("图片大小不能超过 %dMB", cfg.Upload.MaxFileSize>>20), - }) - return - } - - // 检查文件类型(使用配置中的allow_image_types) - fileType := fileHeader.Header.Get("Content-Type") - if !strings.Contains(cfg.Upload.AllowImageTypes, fileType) { - c.JSON(http.StatusBadRequest, gin.H{ - "code": 400, - "message": fmt.Sprintf("不支持的图片类型,仅允许:%s", cfg.Upload.AllowImageTypes), - }) - return - } - - // 初始化OSS客户端(使用配置中的OSS参数) - client, err := oss.New( - cfg.OSS.Endpoint, - cfg.OSS.AccessKeyID, - cfg.OSS.AccessKeySecret, - ) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ - "code": 500, - "message": "初始化OSS客户端失败", - "error": err.Error(), - }) - return - } - - // 获取Bucket - bucket, err := client.Bucket(cfg.OSS.BucketName) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ - "code": 500, - "message": "获取Bucket失败", - "error": err.Error(), - }) - return - } - - // 生成唯一文件名 - timestamp := time.Now().Format("20060102150405") - filename := fmt.Sprintf("%s_%s", timestamp, fileHeader.Filename) - objectKey := cfg.OSS.ObjectPrefix + filename // OSS中的完整对象键 - - // 上传文件到OSS - err = bucket.PutObject(objectKey, file) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ - "code": 500, - "message": "上传图片到OSS失败", - "error": err.Error(), - }) - return - } - - // 生成图片访问URL - host := strings.TrimPrefix(cfg.OSS.Endpoint, "https://") - imageURL := fmt.Sprintf("https://%s.%s/%s", cfg.OSS.BucketName, host, objectKey) - - // 返回成功响应 - c.JSON(http.StatusOK, gin.H{ - "code": 200, - "message": "图片上传成功", - "data": gin.H{"url": imageURL}, - }) - } -} diff --git a/server/internal/ping/etc/ping-api.yaml b/server/internal/ping/etc/ping-api.yaml deleted file mode 100644 index 9a961b83..00000000 --- a/server/internal/ping/etc/ping-api.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Name: ping-api -Host: 0.0.0.0 -Port: 8888 diff --git a/server/internal/ping/internal/handler/ping/pinghandler.go b/server/internal/ping/handler/ping/pinghandler.go similarity index 77% rename from server/internal/ping/internal/handler/ping/pinghandler.go rename to server/internal/ping/handler/ping/pinghandler.go index ebb5227b..1a89e1a9 100644 --- a/server/internal/ping/internal/handler/ping/pinghandler.go +++ b/server/internal/ping/handler/ping/pinghandler.go @@ -7,12 +7,11 @@ import ( "net/http" "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/logic/ping" - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/svc" "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/types" "github.com/zeromicro/go-zero/rest/httpx" ) -func PingHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { +func PingHandler() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { var req types.PingReq if err := httpx.Parse(r, &req); err != nil { @@ -20,7 +19,7 @@ func PingHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return } - l := ping.NewPingLogic(r.Context(), svcCtx) + l := ping.NewPingLogic(r.Context()) resp, err := l.Ping(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) diff --git a/server/internal/ping/internal/config/config.go b/server/internal/ping/internal/config/config.go deleted file mode 100644 index 7fbd0898..00000000 --- a/server/internal/ping/internal/config/config.go +++ /dev/null @@ -1,10 +0,0 @@ -// 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/ping/internal/handler/routes.go b/server/internal/ping/internal/handler/routes.go deleted file mode 100644 index 917035a9..00000000 --- a/server/internal/ping/internal/handler/routes.go +++ /dev/null @@ -1,25 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. -// goctl 1.9.1 - -package handler - -import ( - "net/http" - - ping "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/handler/ping" - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/svc" - - "github.com/zeromicro/go-zero/rest" -) - -func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { - server.AddRoutes( - []rest.Route{ - { - Method: http.MethodGet, - Path: "/ping", - Handler: ping.PingHandler(serverCtx), - }, - }, - ) -} diff --git a/server/internal/ping/internal/logic/ping/pinglogic.go b/server/internal/ping/internal/logic/ping/pinglogic.go index e298564f..d6bf483b 100644 --- a/server/internal/ping/internal/logic/ping/pinglogic.go +++ b/server/internal/ping/internal/logic/ping/pinglogic.go @@ -6,7 +6,6 @@ package ping import ( "context" - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/svc" "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/types" "github.com/zeromicro/go-zero/core/logx" @@ -14,20 +13,19 @@ import ( type PingLogic struct { logx.Logger - ctx context.Context - svcCtx *svc.ServiceContext + ctx context.Context } -func NewPingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PingLogic { +func NewPingLogic(ctx context.Context) *PingLogic { return &PingLogic{ Logger: logx.WithContext(ctx), ctx: ctx, - svcCtx: svcCtx, } } func (l *PingLogic) Ping(req *types.PingReq) (resp *types.PingResp, err error) { - // todo: add your logic here and delete this line - return + return &types.PingResp{ + Msg: "success", + }, nil } diff --git a/server/internal/ping/internal/svc/servicecontext.go b/server/internal/ping/internal/svc/servicecontext.go deleted file mode 100644 index 1ec18d53..00000000 --- a/server/internal/ping/internal/svc/servicecontext.go +++ /dev/null @@ -1,18 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package svc - -import ( - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/config" -) - -type ServiceContext struct { - Config config.Config -} - -func NewServiceContext(c config.Config) *ServiceContext { - return &ServiceContext{ - Config: c, - } -} diff --git a/server/internal/ping/ping.go b/server/internal/ping/ping.go deleted file mode 100644 index d7482e78..00000000 --- a/server/internal/ping/ping.go +++ /dev/null @@ -1,34 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package main - -import ( - "flag" - "fmt" - - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/config" - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/handler" - "github.com/JACKYMYPERSON/hldrCenter/internal/ping/internal/svc" - - "github.com/zeromicro/go-zero/core/conf" - "github.com/zeromicro/go-zero/rest" -) - -var configFile = flag.String("f", "etc/ping-api.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/upload/handler/upload/uploadimagehandler.go b/server/internal/upload/handler/upload/uploadimagehandler.go new file mode 100644 index 00000000..24dccc8d --- /dev/null +++ b/server/internal/upload/handler/upload/uploadimagehandler.go @@ -0,0 +1,27 @@ +// Code scaffolded by goctl. Safe to edit. +// goctl 1.9.1 + +package upload + +import ( + "github.com/JACKYMYPERSON/hldrCenter/config" + "github.com/JACKYMYPERSON/hldrCenter/internal/upload/internal/logic/upload" + "github.com/gin-gonic/gin" +) + +func UploadImageHandler(cfg *config.Config) gin.HandlerFunc { + return func(c *gin.Context) { + // 1. 传递上下文:直接用 Gin 上下文的 c.Context()(包含超时、取消等信息,比 c.Request.Context() 更完整) + ctx := c.Request.Context() + + // 2. 创建 Logic 实例:参数顺序/类型与 Logic 层构造函数完全匹配(ctx, cfg, c) + // 注意:此处第三个参数是 Gin 上下文 c,与你 Logic 层的 `c *gin.Context` 字段对应 + l := upload.NewUploadImageLogic(ctx, cfg, c) + + // 3. 调用 Logic 层方法:无需处理返回的 resp/err(因为 Logic 层已通过 l.c.JSON 返回响应) + // 即使返回 err,Logic 层也已提前返回错误响应,此处仅需调用方法即可 + _, _ = l.UploadImage() + + // 4. 无需额外响应处理!!!(关键:避免重复调用 c.JSON/httpx 导致错误) + } +} diff --git a/server/internal/upload/internal/handler/upload/uploadimagehandler.go b/server/internal/upload/internal/handler/upload/uploadimagehandler.go deleted file mode 100644 index 0eb64222..00000000 --- a/server/internal/upload/internal/handler/upload/uploadimagehandler.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code scaffolded by goctl. Safe to edit. -// goctl 1.9.1 - -package upload - -import ( - "net/http" - - "github.com/JACKYMYPERSON/hldrCenter/internal/upload/internal/logic/upload" - "github.com/JACKYMYPERSON/hldrCenter/internal/upload/internal/svc" - "github.com/zeromicro/go-zero/rest/httpx" -) - -func UploadImageHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - l := upload.NewUploadImageLogic(r.Context(), svcCtx) - resp, err := l.UploadImage() - if err != nil { - httpx.ErrorCtx(r.Context(), w, err) - } else { - httpx.OkJsonCtx(r.Context(), w, resp) - } - } -} diff --git a/server/internal/upload/internal/logic/upload/uploadimagelogic.go b/server/internal/upload/internal/logic/upload/uploadimagelogic.go index 00fe7fd7..cb527590 100644 --- a/server/internal/upload/internal/logic/upload/uploadimagelogic.go +++ b/server/internal/upload/internal/logic/upload/uploadimagelogic.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "github.com/JACKYMYPERSON/hldrCenter/internal/upload/internal/svc" + "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/upload/internal/types" "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/gin-gonic/gin" @@ -20,23 +20,25 @@ import ( type UploadImageLogic struct { logx.Logger - ctx context.Context - svcCtx *svc.ServiceContext + ctx context.Context + cfg *config.Config + c *gin.Context } -func NewUploadImageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UploadImageLogic { +func NewUploadImageLogic(ctx context.Context, cfg *config.Config, c *gin.Context) *UploadImageLogic { return &UploadImageLogic{ Logger: logx.WithContext(ctx), ctx: ctx, - svcCtx: svcCtx, + cfg: cfg, + c: c, } } func (l *UploadImageLogic) UploadImage() (resp *types.UploadImageResp, err error) { // 获取上传的图片文件 - fileHeader, err := c.FormFile("image") + fileHeader, err := l.c.FormFile("image") if err != nil { - c.JSON(http.StatusBadRequest, gin.H{ + l.c.JSON(http.StatusBadRequest, gin.H{ "code": 400, "message": "获取图片失败,请重新上传", "error": err.Error(), @@ -47,7 +49,7 @@ func (l *UploadImageLogic) UploadImage() (resp *types.UploadImageResp, err error // 打开文件 file, err := fileHeader.Open() if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ + l.c.JSON(http.StatusInternalServerError, gin.H{ "code": 500, "message": "打开图片文件失败", "error": err.Error(), @@ -57,32 +59,32 @@ func (l *UploadImageLogic) UploadImage() (resp *types.UploadImageResp, err error defer file.Close() // 检查文件大小(使用配置中的max_file_size) - if fileHeader.Size > cfg.Upload.MaxFileSize { - c.JSON(http.StatusBadRequest, gin.H{ + if fileHeader.Size > l.cfg.Upload.MaxFileSize { + l.c.JSON(http.StatusBadRequest, gin.H{ "code": 400, - "message": fmt.Sprintf("图片大小不能超过 %dMB", cfg.Upload.MaxFileSize>>20), + "message": fmt.Sprintf("图片大小不能超过 %dMB", l.cfg.Upload.MaxFileSize>>20), }) return } // 检查文件类型(使用配置中的allow_image_types) fileType := fileHeader.Header.Get("Content-Type") - if !strings.Contains(cfg.Upload.AllowImageTypes, fileType) { - c.JSON(http.StatusBadRequest, gin.H{ + if !strings.Contains(l.cfg.Upload.AllowImageTypes, fileType) { + l.c.JSON(http.StatusBadRequest, gin.H{ "code": 400, - "message": fmt.Sprintf("不支持的图片类型,仅允许:%s", cfg.Upload.AllowImageTypes), + "message": fmt.Sprintf("不支持的图片类型,仅允许:%s", l.cfg.Upload.AllowImageTypes), }) return } // 初始化OSS客户端(使用配置中的OSS参数) client, err := oss.New( - cfg.OSS.Endpoint, - cfg.OSS.AccessKeyID, - cfg.OSS.AccessKeySecret, + l.cfg.OSS.Endpoint, + l.cfg.OSS.AccessKeyID, + l.cfg.OSS.AccessKeySecret, ) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ + l.c.JSON(http.StatusInternalServerError, gin.H{ "code": 500, "message": "初始化OSS客户端失败", "error": err.Error(), @@ -91,9 +93,9 @@ func (l *UploadImageLogic) UploadImage() (resp *types.UploadImageResp, err error } // 获取Bucket - bucket, err := client.Bucket(cfg.OSS.BucketName) + bucket, err := client.Bucket(l.cfg.OSS.BucketName) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ + l.c.JSON(http.StatusInternalServerError, gin.H{ "code": 500, "message": "获取Bucket失败", "error": err.Error(), @@ -104,12 +106,12 @@ func (l *UploadImageLogic) UploadImage() (resp *types.UploadImageResp, err error // 生成唯一文件名 timestamp := time.Now().Format("20060102150405") filename := fmt.Sprintf("%s_%s", timestamp, fileHeader.Filename) - objectKey := cfg.OSS.ObjectPrefix + filename // OSS中的完整对象键 + objectKey := l.cfg.OSS.ObjectPrefix + filename // OSS中的完整对象键 // 上传文件到OSS err = bucket.PutObject(objectKey, file) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ + l.c.JSON(http.StatusInternalServerError, gin.H{ "code": 500, "message": "上传图片到OSS失败", "error": err.Error(), @@ -118,11 +120,11 @@ func (l *UploadImageLogic) UploadImage() (resp *types.UploadImageResp, err error } // 生成图片访问URL - host := strings.TrimPrefix(cfg.OSS.Endpoint, "https://") - imageURL := fmt.Sprintf("https://%s.%s/%s", cfg.OSS.BucketName, host, objectKey) + host := strings.TrimPrefix(l.cfg.OSS.Endpoint, "https://") + imageURL := fmt.Sprintf("https://%s.%s/%s", l.cfg.OSS.BucketName, host, objectKey) // 返回成功响应 - c.JSON(http.StatusOK, gin.H{ + l.c.JSON(http.StatusOK, gin.H{ "code": 200, "message": "图片上传成功", "data": gin.H{"url": imageURL}, diff --git a/server/router/router.go b/server/router/router.go index 25303291..3095b123 100644 --- a/server/router/router.go +++ b/server/router/router.go @@ -2,9 +2,8 @@ package router import ( "github.com/JACKYMYPERSON/hldrCenter/config" - "github.com/JACKYMYPERSON/hldrCenter/internal/handler/article" - ping "github.com/JACKYMYPERSON/hldrCenter/internal/handler/ping" - uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/handler/uploadimg" + ping "github.com/JACKYMYPERSON/hldrCenter/internal/ping/handler/ping" + uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/upload/handler/upload" "github.com/JACKYMYPERSON/hldrCenter/middleware" "github.com/gin-gonic/gin" ) @@ -21,25 +20,25 @@ func SetupRouter(cfg *config.Config) *gin.Engine { { api.POST("/upload/image", uploadimg.UploadImageHandler(cfg)) api.POST("/upload/cover", uploadimg.UploadImageHandler(cfg)) - api.GET("/ping", gin.WrapF(ping.PingHandler(cfg))) + api.GET("/ping", gin.WrapF(ping.PingHandler())) - articles := api.Group("/articles") - { - // 1. 创建文章(POST /api/articles) - articles.POST("", gin.WrapH(article.CreateArticleHandler(svcCtx))) - - // 2. 文章列表(GET /api/articles) - articles.GET("", gin.WrapH(article.ListArticleHandler(svcCtx))) - - // 3. 文章详情(GET /api/articles/:id) - articles.GET("/:id", gin.WrapH(article.DetailArticleHandler(svcCtx))) - - // 4. 更新文章(PUT /api/articles/:id) - articles.PUT("/:id", gin.WrapH(article.UpdateArticleHandler(svcCtx))) - - // 5. 删除文章(DELETE /api/articles/:id) - articles.DELETE("/:id", gin.WrapH(article.DeleteArticleHandler(svcCtx))) - } + //articles := api.Group("/articles") + //{ + // // 1. 创建文章(POST /api/articles) + // articles.POST("", gin.WrapH(article.CreateArticleHandler(svcCtx))) + // + // // 2. 文章列表(GET /api/articles) + // articles.GET("", gin.WrapH(article.ListArticleHandler(svcCtx))) + // + // // 3. 文章详情(GET /api/articles/:id) + // articles.GET("/:id", gin.WrapH(article.DetailArticleHandler(svcCtx))) + // + // // 4. 更新文章(PUT /api/articles/:id) + // articles.PUT("/:id", gin.WrapH(article.UpdateArticleHandler(svcCtx))) + // + // // 5. 删除文章(DELETE /api/articles/:id) + // articles.DELETE("/:id", gin.WrapH(article.DeleteArticleHandler(svcCtx))) + //} } return r