|
@@ -72,54 +72,95 @@ func (service *MessageService) CountUnread(userId string, appId string) (int64,
|
|
}
|
|
}
|
|
|
|
|
|
// 获取指定用户指定分类最新一条未读消息
|
|
// 获取指定用户指定分类最新一条未读消息
|
|
-func (service *MessageService)LastMessage(userId string, appId string, msgType int64) ( *message.Messages,error) {
|
|
|
|
|
|
+func (service *MessageService) LastMessage(userId string, appId string, msgType int64) (*message.Messages, error) {
|
|
orm := entity.Engine.NewSession()
|
|
orm := entity.Engine.NewSession()
|
|
log.Println("123")
|
|
log.Println("123")
|
|
defer orm.Close()
|
|
defer orm.Close()
|
|
m1 := []*entity.Message{}
|
|
m1 := []*entity.Message{}
|
|
//m := []*message.Messages{}
|
|
//m := []*message.Messages{}
|
|
- err := orm.Select("*").Where("receive_userid=? and isdel=1 and appid=? and isRead=0 and msg_type=?", userId, appId, msgType).OrderBy("createtime desc").Limit(1,0).Find(&m1)
|
|
|
|
|
|
+ err := orm.Select("*").Where("receive_userid=? and isdel=1 and appid=? and isRead=0 and msg_type=?", userId, appId, msgType).OrderBy("createtime desc").Limit(1, 0).Find(&m1)
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Println(err)
|
|
log.Println(err)
|
|
log.Println("咋回事")
|
|
log.Println("咋回事")
|
|
- return nil ,errors.New("查询未读消息失败")
|
|
|
|
|
|
+ return nil, errors.New("查询未读消息失败")
|
|
}
|
|
}
|
|
- //msg := message.Messages{
|
|
|
|
- // Appid: m.AppId,
|
|
|
|
- // ReceiveUserId: m.ReceiveUserid,
|
|
|
|
- // ReceiveName: m.ReceiveName,
|
|
|
|
- // SendUserId: m.SendUserid,
|
|
|
|
- // SendName: m.SendName,
|
|
|
|
- // Createtime: m.CreateTime.Format("2006-01-02 15:04:05"),
|
|
|
|
- // Title: m.Title,
|
|
|
|
- // MsgType: int64(m.MsgType),
|
|
|
|
- // Link: m.Link,
|
|
|
|
- // CiteId: int64(m.CiteId),
|
|
|
|
- // Content: m.Content,
|
|
|
|
- // IsRead: int64(m.IsRead),
|
|
|
|
- //}
|
|
|
|
- //log.Println(count)
|
|
|
|
- if len(m1)>0{
|
|
|
|
|
|
+ if len(m1) > 0 {
|
|
m := m1[0]
|
|
m := m1[0]
|
|
msg := message.Messages{
|
|
msg := message.Messages{
|
|
- Appid: m.AppId,
|
|
|
|
- ReceiveUserId: m.ReceiveUserid,
|
|
|
|
- ReceiveName: m.ReceiveName,
|
|
|
|
- SendUserId: m.SendUserid,
|
|
|
|
- SendName: m.SendName,
|
|
|
|
- Createtime: m.CreateTime.Format("2006-01-02 15:04:05"),
|
|
|
|
- Title: m.Title,
|
|
|
|
- MsgType: int64(m.MsgType),
|
|
|
|
- Link: m.Link,
|
|
|
|
- CiteId: int64(m.CiteId),
|
|
|
|
- Content: m.Content,
|
|
|
|
- IsRead: int64(m.IsRead),
|
|
|
|
|
|
+ Appid: m.AppId,
|
|
|
|
+ ReceiveUserId: m.ReceiveUserid,
|
|
|
|
+ ReceiveName: m.ReceiveName,
|
|
|
|
+ SendUserId: m.SendUserid,
|
|
|
|
+ SendName: m.SendName,
|
|
|
|
+ Createtime: m.CreateTime.Format("2006-01-02 15:04:05"),
|
|
|
|
+ Title: m.Title,
|
|
|
|
+ MsgType: int64(m.MsgType),
|
|
|
|
+ Link: m.Link,
|
|
|
|
+ CiteId: int64(m.CiteId),
|
|
|
|
+ Content: m.Content,
|
|
|
|
+ IsRead: int64(m.IsRead),
|
|
}
|
|
}
|
|
- return &msg,nil
|
|
|
|
- }else {
|
|
|
|
- return nil,nil
|
|
|
|
|
|
+ return &msg, nil
|
|
|
|
+ } else {
|
|
|
|
+ return nil, nil
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// 获取用户未读消息分类及数量 及分类下的最新一条消息
|
|
|
|
+func (service *MessageService) ClassCountAndMessage(userId string, appId string) ([]message.ResCount, []*message.Messages, error) {
|
|
|
|
+ orm := entity.Engine.NewSession()
|
|
|
|
+ log.Println("123")
|
|
|
|
+ defer orm.Close()
|
|
|
|
+ //m := []*message.Messages{}
|
|
|
|
+ query, err := orm.QueryInterface("select count(*) as count,msg_type from message where receive_userid=? and isdel=1 and appid=? and isRead=0", userId, appId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, nil, err
|
|
|
|
+ }
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Println(err)
|
|
|
|
+ log.Println("咋回事")
|
|
|
|
+ return nil, nil, errors.New("查询未读消息失败")
|
|
|
|
+ }
|
|
|
|
+ typeCount := []message.ResCount{}
|
|
|
|
+ // 未读消息分类及数量
|
|
|
|
+ if query != nil && len(query) > 0 {
|
|
|
|
+ for _, v := range query {
|
|
|
|
+ log.Println(v)
|
|
|
|
+ typeCount = append(typeCount, message.ResCount{MsgType: v["msg_type"].(int64), Count: v["count"].(int64)})
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var m1 []*entity.Message
|
|
|
|
+ var m2 []*message.Messages
|
|
|
|
+ // 已经有的消息类型
|
|
|
|
+ existType := map[int64]bool{}
|
|
|
|
+ // 分类下最新一条消息 先查出来所有所有的 然后再取出来最新的一条
|
|
|
|
+ err = orm.Select("*").Where("receive_userid=? and isdel=1 and appid=? ", userId, appId).OrderBy("createtime desc").Find(&m1)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return typeCount, m2, errors.New("获取类型下最新消息失败")
|
|
|
|
+ }
|
|
|
|
+ if m1 != nil && (len(m1) > 0) {
|
|
|
|
+ for _, v1 := range m1 {
|
|
|
|
+ if !existType[int64(v1.MsgType)] {
|
|
|
|
+ existType[int64(v1.MsgType)] = true
|
|
|
|
+ m2 = append(m2, &message.Messages{
|
|
|
|
+ Appid: v1.AppId,
|
|
|
|
+ ReceiveUserId: v1.ReceiveUserid,
|
|
|
|
+ ReceiveName: v1.ReceiveName,
|
|
|
|
+ SendUserId: v1.SendUserid,
|
|
|
|
+ SendName: v1.SendName,
|
|
|
|
+ Createtime: v1.CreateTime.Format("2006-01-02 15:04:05"),
|
|
|
|
+ Title: v1.Title,
|
|
|
|
+ MsgType: int64(v1.MsgType),
|
|
|
|
+ Link: v1.Link,
|
|
|
|
+ CiteId: int64(v1.CiteId),
|
|
|
|
+ Content: v1.Content,
|
|
|
|
+ IsRead: int64(v1.IsRead),
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return typeCount, m2, nil
|
|
|
|
+}
|