43 lines
1009 B
Go
43 lines
1009 B
Go
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) (bool, 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 false, err
|
|
}
|
|
if isExist {
|
|
return false, model2.Delete(mUserCollect.UserCollect)
|
|
}
|
|
mUserCollect.UID = c.UID
|
|
mUserCollect.Kind = model2.UserCollectKind(kind)
|
|
mUserCollect.ObjectID = objectID
|
|
return true, model2.Create(mUserCollect.UserCollect)
|
|
}
|
|
|
|
func NewCollect() CollectHandle {
|
|
return func(session *session.Enterprise) *Collect {
|
|
return &Collect{session}
|
|
}
|
|
}
|