diff --git a/docs/docs.go b/docs/docs.go index 1660ee72f..f0d447e22 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -7507,11 +7507,6 @@ const docTemplate = `{ "type": "string", "maxLength": 4096 }, - "bio_html": { - "description": "bio", - "type": "string", - "maxLength": 4096 - }, "display_name": { "description": "display_name", "type": "string", diff --git a/docs/swagger.json b/docs/swagger.json index 91ca0f4c0..ec2b0db01 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -7495,11 +7495,6 @@ "type": "string", "maxLength": 4096 }, - "bio_html": { - "description": "bio", - "type": "string", - "maxLength": 4096 - }, "display_name": { "description": "display_name", "type": "string", diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 232fe8502..8e5ccf5b4 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1587,10 +1587,6 @@ definitions: description: bio maxLength: 4096 type: string - bio_html: - description: bio - maxLength: 4096 - type: string display_name: description: display_name maxLength: 30 diff --git a/internal/repo/collection/collection_repo.go b/internal/repo/collection/collection_repo.go index f73c74b76..396398c59 100644 --- a/internal/repo/collection/collection_repo.go +++ b/internal/repo/collection/collection_repo.go @@ -11,6 +11,7 @@ import ( collectioncommon "github.com/answerdev/answer/internal/service/collection_common" "github.com/answerdev/answer/internal/service/unique" "github.com/segmentfault/pacman/errors" + "xorm.io/xorm" ) // collectionRepo collection repository @@ -29,15 +30,28 @@ func NewCollectionRepo(data *data.Data, uniqueIDRepo unique.UniqueIDRepo) collec // AddCollection add collection func (cr *collectionRepo) AddCollection(ctx context.Context, collection *entity.Collection) (err error) { - id, err := cr.uniqueIDRepo.GenUniqueIDStr(ctx, collection.TableName()) - if err == nil { - collection.ID = id - _, err = cr.data.DB.Insert(collection) + _, err = cr.data.DB.Transaction(func(session *xorm.Session) (result any, err error) { + var has bool + dbcollection := &entity.Collection{} + result = nil + has, err = session.Where("user_id = ? and object_id = ?", collection.UserID, collection.ObjectID).Get(dbcollection) if err != nil { - return errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() + return } - } - return nil + if has { + return + } + id, err := cr.uniqueIDRepo.GenUniqueIDStr(ctx, collection.TableName()) + if err == nil { + collection.ID = id + _, err = session.Insert(collection) + if err != nil { + return result, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() + } + } + return + }) + return err } // RemoveCollection delete collection