-
Notifications
You must be signed in to change notification settings - Fork 0
/
report.go
106 lines (92 loc) · 2.15 KB
/
report.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package model
import (
"github.com/json-iterator/go"
"github.com/mongodb/mongo-go-driver/bson"
"github.com/mongodb/mongo-go-driver/bson/primitive"
"github.com/mongodb/mongo-go-driver/mongo"
log "github.com/sirupsen/logrus"
)
// ReportResultObtained ...
const ReportResultObtained = "obtained"
// Report ...
type Report struct {
Model `bson:",inline"`
MediaID primitive.ObjectID `json:"media_id" bson:"media_id"` //举报视频ID
ExoID primitive.ObjectID `json:"exo_id" bson:"exo_id"` //用户ID
Types string `json:"types" bson:"types"` //举报类型
Detail string `json:"detail" bson:"detail"` //举报详情
ProcessResult string `json:"process_result" bson:"process_result"` //处理结果
}
// CreateIfNotExist ...
func (r *Report) CreateIfNotExist() error {
return CreateIfNotExist(r)
}
// Create ...
func (r *Report) Create() error {
return InsertOne(r)
}
// Update ...
func (r *Report) Update() error {
return UpdateOne(r)
}
// Delete ...
func (r *Report) Delete() error {
return DeleteByID(r)
}
// Find ...
func (r *Report) Find() error {
return FindByID(r)
}
// UnmarshalJSON ...
func (r *Report) UnmarshalJSON(b []byte) error {
m := map[string]string{}
err := jsoniter.Unmarshal(b, &m)
if err != nil {
return err
}
for key, val := range m {
switch key {
case "media_id":
r.MediaID = ID(val)
case "exo_id":
r.ExoID = ID(val)
case "types":
r.Types = val
case "detail":
r.Detail = val
}
}
return nil
}
func (r *Report) _Name() string {
return "report"
}
// All ...
func (r *Report) All() ([]*Report, error) {
var orgs []*Report
m := bson.M{}
err := Find(r, m, func(cursor mongo.Cursor) error {
log.Println(cursor.DecodeBytes())
var r Report
err := cursor.Decode(&r)
if err != nil {
return err
}
orgs = append(orgs, &r)
return nil
})
return orgs, err
}
// Media ...
func (r *Report) Media() (*Media, error) {
media := NewMedia()
media.ID = r.MediaID
err := media.Find()
return media, err
}
// NewReport ...
func NewReport() *Report {
return &Report{
Model: model(),
}
}