/
blog_article.go
85 lines (78 loc) · 2.43 KB
/
blog_article.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package dao
import (
"context"
"errors"
"github.com/krilie/lico_alone/common/com-model"
"github.com/krilie/lico_alone/common/errs"
"github.com/krilie/lico_alone/common/utils/id_util"
"github.com/krilie/lico_alone/module/module-blog-article/model"
"gorm.io/gorm"
"time"
)
type IBlogArticleDao interface {
CreateArticle(ctx context.Context, article *model.Article) error
DeleteArticleById(ctx context.Context, id string) (bool, error)
UpdateArticle(ctx context.Context, article *model.Article) error
UpdateArticleSample(ctx context.Context, article *model.UpdateArticleModel) error
GetArticleById(ctx context.Context, id string) (*model.Article, error)
}
func (b *BlogArticleDao) CreateArticle(ctx context.Context, article *model.Article) error {
if article.Id == "" {
article.Id = id_util.GetUuid()
}
err := b.GetDb(ctx).Model(new(model.Article)).Create(article).Error
return err
}
func (b *BlogArticleDao) DeleteArticleById(ctx context.Context, id string) (bool, error) {
err := b.GetDb(ctx).Delete(&model.Article{
Model: com_model.Model{
Id: id,
},
}).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
return false, nil
} else if err != nil {
return false, err
} else {
return true, nil
}
}
func (b *BlogArticleDao) UpdateArticle(ctx context.Context, article *model.Article) error {
result := b.GetDb(ctx).Model(new(model.Article)).Select("*").Updates(article)
if result.Error != nil {
return result.Error
}
if result.RowsAffected <= 0 {
return errs.NewNotExistsError().WithMsg("没有作出修改")
}
return nil
}
func (b *BlogArticleDao) UpdateArticleSample(ctx context.Context, article *model.UpdateArticleModel) error {
result := b.GetDb(ctx).Model(new(model.Article)).Where("id=?", article.Id).
UpdateColumns(map[string]interface{}{
"title": article.Title,
"content": article.Content,
"picture": article.Picture,
"sort": article.Sort,
"description": article.Description,
"updated_at": time.Now(),
})
if result.Error != nil {
return result.Error
}
if result.RowsAffected <= 0 {
return errs.NewNotExistsError().WithMsg("没有作出修改")
}
return nil
}
func (b *BlogArticleDao) GetArticleById(ctx context.Context, id string) (article *model.Article, err error) {
article = new(model.Article)
err = b.GetDb(ctx).First(article, "id=?", id).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, nil
}
return nil, err
}
return article, err
}