getBuoyMsg.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package common
  2. import (
  3. "app.yhyue.com/moapp/MessageCenter/entity"
  4. "app.yhyue.com/moapp/MessageCenter/rpc/type/message"
  5. "app.yhyue.com/moapp/MessageCenter/util"
  6. qutil "app.yhyue.com/moapp/jybase/common"
  7. "app.yhyue.com/moapp/jybase/redis"
  8. "fmt"
  9. "log"
  10. "strconv"
  11. "strings"
  12. )
  13. func FindUserBuoyMsg(this *message.FindUserBuoyMsgReq) *message.FindUserBuoyMsgRes {
  14. var err error
  15. data := message.FindUserBuoyMsgRes{}
  16. res := entity.Mysql.SelectBySql(fmt.Sprintf(`SELECT * FROM message WHERE receive_userid = "%s" and isdel = 1 and appid = %s and isRead =0 and show_buoy = 1 and show_content != "" ORDER BY createtime DESC LIMIT 0,%d`, this.UserId, this.Appid, int(this.PageSize)))
  17. //log.Println("数据:", res)
  18. if res != nil && len(*res) > 0 {
  19. for _, v := range *res {
  20. _id := util.Int64All(v["id"])
  21. id := strconv.FormatInt(_id, 10)
  22. links2 := util.ObjToString((v["link"]))
  23. link2, androidUrl2, iosUrl2, weChatUrl2 := LinkSplit(links2)
  24. data.Data = append(data.Data, &message.BuoyMessages{
  25. Id: id,
  26. BuoyDetail: util.ObjToString(v["show_content"]),
  27. PcUrl: link2,
  28. AndroidUrl: androidUrl2,
  29. IosUrl: iosUrl2,
  30. WeChatUrl: weChatUrl2,
  31. })
  32. }
  33. }
  34. if err == nil {
  35. data.Code = 0
  36. data.Message = "查询成功"
  37. } else {
  38. data.Code = 1
  39. data.Message = "查询失败"
  40. }
  41. return &data
  42. }
  43. func LinkSplit(url string) (link, androidUrl, iosUrl, weChatUrl string) {
  44. if url != "" {
  45. arr := strings.Split(url, ",")
  46. if len(arr) == 4 {
  47. link = arr[0]
  48. androidUrl = arr[1]
  49. iosUrl = arr[2]
  50. weChatUrl = arr[3]
  51. } else {
  52. if len(arr) > 0 {
  53. link = arr[0]
  54. } else {
  55. link = ""
  56. }
  57. androidUrl = ""
  58. iosUrl = ""
  59. weChatUrl = ""
  60. }
  61. }
  62. return link, androidUrl, iosUrl, weChatUrl
  63. }
  64. func ClearUnreadMsg(in *message.ClearUnreadMsgReq) error {
  65. if in.Userid != "" {
  66. query := map[string]interface{}{
  67. "receive_userid": in.Userid,
  68. "appid": in.AppId,
  69. "isdel": 1,
  70. "isRead": 0,
  71. }
  72. //更新服务未读数
  73. if !entity.Mysql.Update("message", query, map[string]interface{}{"isRead": 1}) {
  74. log.Println("更新服务未读数失败")
  75. }
  76. // p436 清空消息时 "msg_class_count_%s_%d" 下的消息数量也清空
  77. for _, classes := range entity.ClassSearchMap {
  78. for i := 0; i < len(classes); i++ {
  79. classKeyString := fmt.Sprintf(MsgClassCountKey, in.Userid, classes[i].MsgType)
  80. redis.Put(redisModule, classKeyString, 0, -1)
  81. }
  82. }
  83. for _, v := range entity.MessageColumn {
  84. go MsgCountZero(in.Userid, in.AppId, qutil.Int64All(v["group_id"]))
  85. }
  86. }
  87. //更新私信未读数
  88. if in.PositionId > 0 {
  89. sQuery := map[string]interface{}{
  90. "my_position_id": in.PositionId,
  91. //"ent_id": in.EntId,
  92. }
  93. if !entity.BaseMysql.Update("socialize_summary", sQuery, map[string]interface{}{"unread": 0}) {
  94. log.Println("更新用户聊天未读数失败")
  95. }
  96. }
  97. if in.NewUserId > 0 {
  98. sQuery := map[string]interface{}{
  99. "user_id": in.NewUserId,
  100. //"ent_id": in.EntId,
  101. }
  102. if !entity.BaseMysql.Update("socialize_summary", sQuery, map[string]interface{}{"unread": 0}) {
  103. log.Println("更新客服私信未读数失败")
  104. }
  105. }
  106. return nil
  107. }