12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package service
- import (
- "context"
- "go-common/app/interface/main/dm2/model"
- account "go-common/app/service/main/account/api"
- thumbUpApi "go-common/app/service/main/thumbup/api"
- "go-common/library/ecode"
- "go-common/library/log"
- "go-common/library/net/metadata"
- )
- // ThumbupDM like or cancel like a dm
- func (s *Service) ThumbupDM(c context.Context, oid, dmid, mid int64, op int8) (err error) {
- if !model.CheckThumbup(op) {
- err = ecode.RequestErr
- return
- }
- // check dm state
- idxMap, _, err := s.dao.IndexsByid(c, model.SubTypeVideo, oid, []int64{dmid})
- if err != nil {
- log.Error("s.dao.IndexsByid(tp:%d,oid:%d,dmid:%d), error(%v)", 1, oid, dmid, err)
- return
- }
- if len(idxMap) <= 0 || !model.IsDMVisible(idxMap[dmid].State) {
- err = ecode.DMNotFound
- return
- }
- reply, err := s.accountRPC.Profile3(c, &account.MidReq{
- Mid: mid,
- })
- if err != nil {
- log.Error("s.accountRPC.Profile3(arg:%+v), error(%v)", mid, err)
- return
- }
- if reply.GetProfile().GetEmailStatus() == 0 && reply.GetProfile().GetTelStatus() == 0 {
- err = ecode.UserCheckNoPhone
- return
- }
- if reply.GetProfile().GetSilence() == 1 {
- err = ecode.DMActSilence
- return
- }
- sub, err := s.subject(c, model.SubTypeVideo, oid)
- if err != nil {
- return
- }
- arg2 := &thumbUpApi.LikeReq{
- Mid: mid,
- UpMid: sub.Mid,
- Business: "danmu",
- OriginID: oid,
- MessageID: dmid,
- Action: thumbUpApi.Action(op),
- }
- _, err = s.thumbupRPC.Like(c, arg2)
- if err != nil {
- log.Error("dmAct s.thumbupRPC.Like(arg:%+v), error(%v)", arg2, err)
- return
- }
- return
- }
- // ThumbupList get list
- func (s *Service) ThumbupList(c context.Context, oid, mid int64, dmids []int64) (res map[int64]*model.ThumbupStat, err error) {
- var (
- statsReply *thumbUpApi.StatsReply
- )
- if statsReply, err = s.thumbupRPC.Stats(c, &thumbUpApi.StatsReq{
- Business: "danmu",
- OriginID: oid,
- MessageIds: dmids,
- Mid: mid,
- IP: metadata.String(c, metadata.RemoteIP),
- }); err != nil {
- log.Error("dmAct s.thumbupRPC.StatsWithLike(oid:%+v,dmids:%+v), error(%v)", oid, dmids, err)
- return
- }
- res = make(map[int64]*model.ThumbupStat)
- if statsReply == nil {
- return
- }
- for id, li := range statsReply.Stats {
- st := new(model.ThumbupStat)
- st.Likes = li.LikeNumber
- st.UserLike = int8(li.LikeState)
- res[id] = st
- }
- return
- }
|