package plant import ( "sundynix-go/global" "sundynix-go/model/commom/response" "sundynix-go/model/plant/request" "sundynix-go/utils/auth" "github.com/gin-gonic/gin" "go.uber.org/zap" ) type UserProfileApi struct{} // UpdateProfile 修改用户信息 // @Tags 个人中心 // @Summary 修改用户信息 // @Security BearerAuth // @accept application/json // @Produce application/json // @Param data body request.UpdateProfile true "修改用户信息" // @Success 200 {string} string "{"success":true,"data":{},"msg":"修改成功"}" // @Router /profile/update [post] func (a *UserProfileApi) UpdateProfile(c *gin.Context) { var req request.UpdateProfile if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMsg("请求参数错误", c) return } userId := auth.GetUserId(c) if err := userProfileService.UpdateProfile(req, userId); err != nil { response.FailWithMsg("更新失败", c) return } response.OkWithMsg("更新成功", c) } // ProfileDetail 用户详情 // @Tags 个人中心 // @Summary 用户详情 // @Security BearerAuth // @Produce application/json // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" // @Router /profile/detail [get] func (a *UserProfileApi) ProfileDetail(c *gin.Context) { userId := auth.GetUserId(c) res, err := userProfileService.ProfileDetail(userId) if err != nil { response.FailWithMsg("查询失败", c) return } response.OkWithData(res, c) } // MyStars 我的收藏 // @Tags 个人中心 // @Summary 我的收藏 // @Security BearerAuth // @accept application/json // @Produce application/json // @Param data body request.StarsPageReq true "分页获取收藏列表" // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" // @Router /profile/star [post] func (a *UserProfileApi) MyStars(c *gin.Context) { var req request.StarsPageReq err := c.ShouldBindJSON(&req) if err != nil { response.FailWithMsg("请求参数错误", c) return } userId := auth.GetUserId(c) list, total, err := userProfileService.MyStars(req, userId) if err != nil { global.Logger.Error("获取收藏失败", zap.Error(err)) response.FailWithMsg("获取收藏失败", c) return } response.OkWithData(response.PageResult{ List: list, Total: total, Page: req.Current, PageSize: req.PageSize, }, c) } // MyBadges 我的徽章 // @Tags 个人中心 // @Summary 我的徽章 // @Security BearerAuth // @Produce application/json // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" // @Router /profile/badge [get] func (a *UserProfileApi) MyBadges(c *gin.Context) { userId := auth.GetUserId(c) list, err := userProfileService.MyBadges(userId) if err != nil { global.Logger.Error("获取用户徽章失败", zap.Error(err)) response.FailWithMsg("获取用户徽章失败", c) return } response.OkWithData(response.ListResult{ List: list, }, c) }