init: init refactor

This commit is contained in:
Blizzard
2026-04-27 00:02:18 +08:00
commit e515f6a287
360 changed files with 30713 additions and 0 deletions
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package ai
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/ai"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// AI问答
func AiChatHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AiChatReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := ai.NewAiChatLogic(r.Context(), svcCtx)
err := l.AiChat(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,25 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package ai
import (
"net/http"
"sundynix-micro-go/app/plant/api/internal/logic/ai"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/common/response"
)
// 聊天历史
func GetAiChatHistoryHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := ai.NewGetAiChatHistoryLogic(r.Context(), svcCtx)
err := l.GetAiChatHistory()
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,25 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package callback
import (
"net/http"
"sundynix-micro-go/app/plant/api/internal/logic/callback"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/common/response"
)
// 微信支付回调
func WechatPayCallbackHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := callback.NewWechatPayCallbackLogic(r.Context(), svcCtx)
err := l.WechatPayCallback()
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package config
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/config"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 徽章配置列表
func GetBadgeConfigListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.BadgeConfigListReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := config.NewGetBadgeConfigListLogic(r.Context(), svcCtx)
err := l.GetBadgeConfigList(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package config
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/config"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 等级配置列表
func GetLevelConfigListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.LevelConfigListReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := config.NewGetLevelConfigListLogic(r.Context(), svcCtx)
err := l.GetLevelConfigList(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package exchange
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/exchange"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 兑换商品
func CreateExchangeOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.ExchangeOrderReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := exchange.NewCreateExchangeOrderLogic(r.Context(), svcCtx)
err := l.CreateExchangeOrder(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package exchange
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/exchange"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 兑换商品列表
func GetExchangeItemListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.ExchangeItemListReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := exchange.NewGetExchangeItemListLogic(r.Context(), svcCtx)
err := l.GetExchangeItemList(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 添加养护计划
func AddCarePlanHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CarePlanReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewAddCarePlanLogic(r.Context(), svcCtx)
err := l.AddCarePlan(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 添加养护记录
func AddCareRecordHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CareRecordReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewAddCareRecordLogic(r.Context(), svcCtx)
err := l.AddCareRecord(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 添加成长记录
func AddGrowthRecordHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GrowthRecordReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewAddGrowthRecordLogic(r.Context(), svcCtx)
err := l.AddGrowthRecord(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 创建植物
func CreatePlantHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreatePlantReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewCreatePlantLogic(r.Context(), svcCtx)
err := l.CreatePlant(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 删除植物
func DeletePlantHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdsReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewDeletePlantLogic(r.Context(), svcCtx)
err := l.DeletePlant(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 我的植物列表
func GetMyPlantListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PlantListReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewGetMyPlantListLogic(r.Context(), svcCtx)
resp, err := l.GetMyPlantList(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.OkWithData(w, resp)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 植物详情
func GetPlantDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdPathReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewGetPlantDetailLogic(r.Context(), svcCtx)
resp, err := l.GetPlantDetail(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.OkWithData(w, resp)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package myPlant
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/myPlant"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 更新植物
func UpdatePlantHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdatePlantReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := myPlant.NewUpdatePlantLogic(r.Context(), svcCtx)
err := l.UpdatePlant(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package ocr
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/ocr"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// OCR植物识别
func OcrClassifyHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.OcrReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := ocr.NewOcrClassifyLogic(r.Context(), svcCtx)
err := l.OcrClassify(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package post
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/post"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 评论帖子
func CommentPostHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PostCommentReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := post.NewCommentPostLogic(r.Context(), svcCtx)
err := l.CommentPost(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package post
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/post"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 发布帖子
func CreatePostHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreatePostReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := post.NewCreatePostLogic(r.Context(), svcCtx)
err := l.CreatePost(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package post
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/post"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 删除帖子
func DeletePostHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdsReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := post.NewDeletePostLogic(r.Context(), svcCtx)
err := l.DeletePost(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package post
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/post"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 帖子详情
func GetPostDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdPathReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := post.NewGetPostDetailLogic(r.Context(), svcCtx)
err := l.GetPostDetail(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package post
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/post"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 帖子列表
func GetPostListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PostListReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := post.NewGetPostListLogic(r.Context(), svcCtx)
err := l.GetPostList(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package post
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/post"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 点赞帖子
func LikePostHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := post.NewLikePostLogic(r.Context(), svcCtx)
err := l.LikePost(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
+285
View File
@@ -0,0 +1,285 @@
// Code generated by goctl. DO NOT EDIT.
// goctl 1.10.1
package handler
import (
"net/http"
ai "sundynix-micro-go/app/plant/api/internal/handler/ai"
callback "sundynix-micro-go/app/plant/api/internal/handler/callback"
config "sundynix-micro-go/app/plant/api/internal/handler/config"
exchange "sundynix-micro-go/app/plant/api/internal/handler/exchange"
myPlant "sundynix-micro-go/app/plant/api/internal/handler/myPlant"
ocr "sundynix-micro-go/app/plant/api/internal/handler/ocr"
post "sundynix-micro-go/app/plant/api/internal/handler/post"
topic "sundynix-micro-go/app/plant/api/internal/handler/topic"
userProfile "sundynix-micro-go/app/plant/api/internal/handler/userProfile"
wiki "sundynix-micro-go/app/plant/api/internal/handler/wiki"
"sundynix-micro-go/app/plant/api/internal/svc"
"github.com/zeromicro/go-zero/rest"
)
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
server.AddRoutes(
[]rest.Route{
{
// AI问答
Method: http.MethodPost,
Path: "/ai/chat",
Handler: ai.AiChatHandler(serverCtx),
},
{
// 聊天历史
Method: http.MethodGet,
Path: "/ai/history",
Handler: ai.GetAiChatHistoryHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 微信支付回调
Method: http.MethodPost,
Path: "/callback/wechatpay",
Handler: callback.WechatPayCallbackHandler(serverCtx),
},
},
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 徽章配置列表
Method: http.MethodPost,
Path: "/config/badge/list",
Handler: config.GetBadgeConfigListHandler(serverCtx),
},
{
// 等级配置列表
Method: http.MethodPost,
Path: "/config/level/list",
Handler: config.GetLevelConfigListHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 兑换商品列表
Method: http.MethodPost,
Path: "/exchange/list",
Handler: exchange.GetExchangeItemListHandler(serverCtx),
},
{
// 兑换商品
Method: http.MethodPost,
Path: "/exchange/order",
Handler: exchange.CreateExchangeOrderHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 植物详情
Method: http.MethodGet,
Path: "/my/:id",
Handler: myPlant.GetPlantDetailHandler(serverCtx),
},
{
// 添加养护计划
Method: http.MethodPost,
Path: "/my/carePlan",
Handler: myPlant.AddCarePlanHandler(serverCtx),
},
{
// 添加养护记录
Method: http.MethodPost,
Path: "/my/careRecord",
Handler: myPlant.AddCareRecordHandler(serverCtx),
},
{
// 创建植物
Method: http.MethodPost,
Path: "/my/create",
Handler: myPlant.CreatePlantHandler(serverCtx),
},
{
// 删除植物
Method: http.MethodDelete,
Path: "/my/delete",
Handler: myPlant.DeletePlantHandler(serverCtx),
},
{
// 添加成长记录
Method: http.MethodPost,
Path: "/my/growthRecord",
Handler: myPlant.AddGrowthRecordHandler(serverCtx),
},
{
// 我的植物列表
Method: http.MethodPost,
Path: "/my/list",
Handler: myPlant.GetMyPlantListHandler(serverCtx),
},
{
// 更新植物
Method: http.MethodPut,
Path: "/my/update",
Handler: myPlant.UpdatePlantHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// OCR植物识别
Method: http.MethodPost,
Path: "/ocr/classify",
Handler: ocr.OcrClassifyHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 帖子详情
Method: http.MethodGet,
Path: "/post/:id",
Handler: post.GetPostDetailHandler(serverCtx),
},
{
// 评论帖子
Method: http.MethodPost,
Path: "/post/comment",
Handler: post.CommentPostHandler(serverCtx),
},
{
// 发布帖子
Method: http.MethodPost,
Path: "/post/create",
Handler: post.CreatePostHandler(serverCtx),
},
{
// 删除帖子
Method: http.MethodDelete,
Path: "/post/delete",
Handler: post.DeletePostHandler(serverCtx),
},
{
// 点赞帖子
Method: http.MethodPost,
Path: "/post/like",
Handler: post.LikePostHandler(serverCtx),
},
{
// 帖子列表
Method: http.MethodPost,
Path: "/post/list",
Handler: post.GetPostListHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 创建话题
Method: http.MethodPost,
Path: "/topic/create",
Handler: topic.CreateTopicHandler(serverCtx),
},
{
// 删除话题
Method: http.MethodDelete,
Path: "/topic/delete",
Handler: topic.DeleteTopicHandler(serverCtx),
},
{
// 话题列表
Method: http.MethodGet,
Path: "/topic/list",
Handler: topic.GetTopicListHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 获取用户资料
Method: http.MethodGet,
Path: "/profile/info",
Handler: userProfile.GetUserProfileHandler(serverCtx),
},
{
// 更新用户资料
Method: http.MethodPut,
Path: "/profile/update",
Handler: userProfile.UpdateUserProfileHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
server.AddRoutes(
[]rest.Route{
{
// 百科详情
Method: http.MethodGet,
Path: "/wiki/:id",
Handler: wiki.GetWikiDetailHandler(serverCtx),
},
{
// 创建百科分类
Method: http.MethodPost,
Path: "/wiki/class/create",
Handler: wiki.CreateWikiClassHandler(serverCtx),
},
{
// 百科分类列表
Method: http.MethodGet,
Path: "/wiki/class/list",
Handler: wiki.GetWikiClassListHandler(serverCtx),
},
{
// 百科列表
Method: http.MethodPost,
Path: "/wiki/list",
Handler: wiki.GetWikiListHandler(serverCtx),
},
{
// 收藏/取消收藏百科
Method: http.MethodPost,
Path: "/wiki/star",
Handler: wiki.ToggleWikiStarHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/plant"),
)
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package topic
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/topic"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 创建话题
func CreateTopicHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.TopicReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := topic.NewCreateTopicLogic(r.Context(), svcCtx)
err := l.CreateTopic(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package topic
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/topic"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 删除话题
func DeleteTopicHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdsReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := topic.NewDeleteTopicLogic(r.Context(), svcCtx)
err := l.DeleteTopic(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,25 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package topic
import (
"net/http"
"sundynix-micro-go/app/plant/api/internal/logic/topic"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/common/response"
)
// 话题列表
func GetTopicListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := topic.NewGetTopicListLogic(r.Context(), svcCtx)
err := l.GetTopicList()
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,25 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package userProfile
import (
"net/http"
"sundynix-micro-go/app/plant/api/internal/logic/userProfile"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/common/response"
)
// 获取用户资料
func GetUserProfileHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := userProfile.NewGetUserProfileLogic(r.Context(), svcCtx)
err := l.GetUserProfile()
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package userProfile
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/userProfile"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 更新用户资料
func UpdateUserProfileHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdateProfileReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := userProfile.NewUpdateUserProfileLogic(r.Context(), svcCtx)
err := l.UpdateUserProfile(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package wiki
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/wiki"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 创建百科分类
func CreateWikiClassHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.WikiClassReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := wiki.NewCreateWikiClassLogic(r.Context(), svcCtx)
err := l.CreateWikiClass(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,25 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package wiki
import (
"net/http"
"sundynix-micro-go/app/plant/api/internal/logic/wiki"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/common/response"
)
// 百科分类列表
func GetWikiClassListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := wiki.NewGetWikiClassListLogic(r.Context(), svcCtx)
err := l.GetWikiClassList()
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package wiki
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/wiki"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 百科详情
func GetWikiDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdPathReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := wiki.NewGetWikiDetailLogic(r.Context(), svcCtx)
err := l.GetWikiDetail(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package wiki
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/wiki"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 百科列表
func GetWikiListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.WikiListReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := wiki.NewGetWikiListLogic(r.Context(), svcCtx)
err := l.GetWikiList(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}
@@ -0,0 +1,33 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.10.1
package wiki
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"sundynix-micro-go/app/plant/api/internal/logic/wiki"
"sundynix-micro-go/app/plant/api/internal/svc"
"sundynix-micro-go/app/plant/api/internal/types"
"sundynix-micro-go/common/response"
)
// 收藏/取消收藏百科
func ToggleWikiStarHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.IdReq
if err := httpx.Parse(r, &req); err != nil {
response.Fail(w, err.Error())
return
}
l := wiki.NewToggleWikiStarLogic(r.Context(), svcCtx)
err := l.ToggleWikiStar(&req)
if err != nil {
response.Fail(w, err.Error())
} else {
response.Ok(w)
}
}
}