user_msg.go
3.9 KB
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package models
import (
"fmt"
"oppmg/utils"
"time"
"github.com/astaxie/beego/orm"
)
type UserMsg struct {
Id int64 `orm:"column(id);pk" description:"消息表id"`
CompanyId int64 `orm:"column(company_id)" description:"公司编号"`
ReceiveUserId int64 `orm:"column(receive_user_id)" description:"接收用户id"`
MsgType int `orm:"column(msg_type)" description:"消息类型 1.公司公告 2.表彰通知 4.互动消息 8.机会审核"`
Message string `orm:"column(message)" description:"消息内容"`
SourceType int `orm:"column(source_type)" description:"来源类型 1:机会 2:评论 "`
SourceId int64 `orm:"column(source_id)" description:"来源id (机会编号 /评论编号)"`
IsPublic int8 `orm:"column(is_public)" description:"1:公开 0:不公开"`
IsRead int8 `orm:"column(is_read)" description:"1:已读 0:未读"`
CreateAt time.Time `orm:"column(create_at);type(timestamp);auto_now" description:"创建时间"`
}
const (
MsgTypeBulletin = 1 //公告
MsgTypeCommend = 2 //表彰
MsgTypeInteraction = 4 //互动消息
MsgTypeAudit = 8 //机会审核
)
const (
SourceTypeChance = 1
SourceTypeComment = 2
SourceTypeBulletin = 3
)
//列表是否展示(公告列表)
const (
Public = 1 //公开
NoPublic = 0 //不公开
)
const (
SqlDeleteUserMsg = "delete from user_msg where company_id=? and msg_type=? and source_id=?"
SqlUpdateUserMsgPublic = "update user_msg set is_public=? where company_id=? and msg_type=? and source_id=?"
SqlUpdateUserMsgPublicInUsers = "update user_msg set is_public=? where company_id=? and msg_type=? and source_id=? and receive_user_id in (%v)"
)
func (t *UserMsg) TableName() string {
return "user_msg"
}
func init() {
orm.RegisterModel(new(UserMsg))
}
// AddUserMsg insert a new UserMsg into database and returns
// last inserted Id on success.
func AddUserMsg(m *UserMsg) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserMsgById retrieves UserMsg by Id. Returns error if
// Id doesn't exist
func GetUserMsgById(id int64) (v *UserMsg, err error) {
o := orm.NewOrm()
v = &UserMsg{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// UpdateUserMsg updates UserMsg by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserMsgById(m *UserMsg) (err error) {
o := orm.NewOrm()
v := UserMsg{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserMsg deletes UserMsg by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserMsg(id int64) (err error) {
o := orm.NewOrm()
v := UserMsg{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserMsg{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
//获取userMsg
func GetUserMsgBy(userCompanyId int64, msgType int, sourceType int, sourceId int64) (v *UserMsg, err error) {
sql := "select * from user_msg where receive_user_id=? and msg_type=? and source_type=? and source_id=?"
o := orm.NewOrm()
if err = o.Raw(sql, userCompanyId, msgType, sourceType, sourceId).QueryRow(&v); err != nil {
//log.Error(err.Error())
return
}
return
}
func NewUserMsg(companId, userCompanyId int64, msgType int, sourceType int, sourceId int64, message string) *UserMsg {
return &UserMsg{
Id: utils.GenerateIDBySonyflake(),
CompanyId: companId,
ReceiveUserId: userCompanyId,
MsgType: msgType,
SourceType: sourceType,
SourceId: sourceId,
Message: message,
CreateAt: time.Now(),
IsPublic: Public,
}
}