From 24806c5d80eaa80655486c7afbb3177870d79963 Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 27 Dec 2021 13:39:17 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=AE=8C=E5=96=84=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/website/api/user.go | 22 +++++++++++ app/api/website/controller/user/collect.go | 42 +++++++++++++++++++++ app/api/website/controller/user/instance.go | 3 ++ router/address.go | 6 +++ 4 files changed, 73 insertions(+) create mode 100644 app/api/website/api/user.go create mode 100644 app/api/website/controller/user/collect.go create mode 100644 app/api/website/controller/user/instance.go diff --git a/app/api/website/api/user.go b/app/api/website/api/user.go new file mode 100644 index 0000000..2b10a55 --- /dev/null +++ b/app/api/website/api/user.go @@ -0,0 +1,22 @@ +package api + +import ( + "SciencesServer/app/api/website/controller/user" + "SciencesServer/app/basic/api" + "github.com/gin-gonic/gin" +) + +type User struct{} + +func (*User) Collect(c *gin.Context) { + form := &struct { + Kind int `json:"kind" form:"kind" binding:"required"` + ObjectID uint64 `json:"object_id" form:"object_id" binding:"required"` + }{} + if err := api.Bind(form)(c); err != nil { + api.APIFailure(err.(error))(c) + return + } + err := user.NewCollect()(nil).Launch(form.Kind, form.ObjectID) + api.APIResponse(err)(c) +} diff --git a/app/api/website/controller/user/collect.go b/app/api/website/controller/user/collect.go new file mode 100644 index 0000000..92a37b0 --- /dev/null +++ b/app/api/website/controller/user/collect.go @@ -0,0 +1,42 @@ +package user + +import ( + "SciencesServer/app/api/website/model" + model2 "SciencesServer/app/common/model" + "SciencesServer/app/session" +) + +type Collect struct { + *session.Enterprise +} + +type CollectHandle func(session *session.Enterprise) *Collect + +// Launch 收藏发起 +func (c *Collect) Launch(kind int, objectID uint64) error { + mUserCollect := model.NewUserCollect() + + where := []*model2.ModelWhere{ + model2.NewWhere("uid", c.UID), + model2.NewWhere("kind", kind), + model2.NewWhere("object_id", objectID), + } + isExist, err := model2.FirstField(mUserCollect.UserCollect, []string{"id"}, where...) + + if err != nil { + return err + } + if isExist { + return model2.Delete(mUserCollect.UserCollect) + } + mUserCollect.UID = c.UID + mUserCollect.Kind = model2.UserCollectKind(kind) + mUserCollect.ObjectID = objectID + return model2.Create(mUserCollect.UserCollect) +} + +func NewCollect() CollectHandle { + return func(session *session.Enterprise) *Collect { + return &Collect{session} + } +} diff --git a/app/api/website/controller/user/instance.go b/app/api/website/controller/user/instance.go new file mode 100644 index 0000000..63b89ec --- /dev/null +++ b/app/api/website/controller/user/instance.go @@ -0,0 +1,3 @@ +package user + +type User func() diff --git a/router/address.go b/router/address.go index a08f8ea..372e8f0 100644 --- a/router/address.go +++ b/router/address.go @@ -28,6 +28,12 @@ func registerAPI(app *gin.Engine) { _api := new(api2.Index) indexV1.GET("", _api.Instance) } + // User 用户信息管理 + userV1 := v1.Group("/user") + { + _api := new(api2.User) + userV1.POST("/collect/launch", _api.Collect) + } // Activity 活动信息管理 activityV1 := v1.Group("/activity") {