package friend import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "go_dreamfactory/utils" ) // 领取点赞奖励 func (this *apiComp) ZanAndReceiveCheck(session comm.IUserSession, req *pb.FriendZanAndReceiveReq) (errdata *pb.ErrorData) { return } func (this *apiComp) ZanAndReceive(session comm.IUserSession, req *pb.FriendZanAndReceiveReq) (errdata *pb.ErrorData) { if errdata = this.ZanAndReceiveCheck(session, req); errdata != nil { return } var ( self *pb.DBFriend err error atno []*pb.UserAtno update map[string]interface{} pointTotal int32 // 累计友情值 ) self, err = this.module.modelFriend.GetFriend(session.GetUserId()) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_FriendSelfNoData, Title: pb.ErrorCode_FriendSelfNoData.ToString(), } return } // 是否已领取点赞 for _, v := range req.Receiveid { if _, ok := utils.Find(self.GetZandIds, v); ok { self.GetZandIds = utils.Deletex(self.GetZandIds, v) pointTotal += 1 } } // 修改获赞Id if err = this.module.modelFriend.Change(self.Uid, map[string]interface{}{ "getZandIds": self.GetZandIds, }); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } //设置自己的友情值 ue, err := this.module.ModuleUser.GetUserExpand(session.GetUserId()) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } // 今日获赠的友情点是否达到上限 if ue.FriendPointID >= int32(this.module.globalConf.FriendMaxgetnum) { errdata = &pb.ErrorData{ Code: pb.ErrorCode_FriendPointLimit, Title: pb.ErrorCode_FriendPointLimit.ToString(), } return } res := &pb.UserAtno{ A: "attr", T: "friendPoint", N: pointTotal, } atno = append(atno, res) update = map[string]interface{}{ "friendPoint": ue.FriendPoint + pointTotal, "friendPointID": ue.FriendPointID + pointTotal, } if true { // 处理接受列表 var ( target *pb.DBFriend selfId string pointTotal int32 //友情值累加 ) uid := session.GetUserId() selfId = session.GetUserId() // 不能给自己点赞 for _, v := range req.Zanid { if v == selfId { errdata = &pb.ErrorData{ Code: pb.ErrorCode_FriendZanSelf, Title: pb.ErrorCode_FriendZanSelf.ToString(), } return } } // 是否已给好友点赞 for _, v := range req.Zanid { target, err = this.module.modelFriend.GetFriend(v) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_FriendSelfNoData, Title: pb.ErrorCode_FriendSelfNoData.ToString(), } return } if _, ok := utils.Find(target.ZanIds, selfId); !ok { pointTotal += 1 target.ZanIds = append(target.ZanIds, selfId) target.GetZandIds = append(target.GetZandIds, selfId) //设置被点赞玩家 if err = this.module.modelFriend.Change(target.GetUid(), map[string]interface{}{ "zanIds": target.ZanIds, "getZandIds": target.GetZandIds, }); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } this.module.Error("点赞", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}, ) return } } } // 今日送出的友情点是否达到上限 if ue.FriendPointOD >= this.module.globalConf.FriendMaxsendnum { errdata = &pb.ErrorData{ Code: pb.ErrorCode_FriendPointLimit, Title: pb.ErrorCode_FriendPointLimit.ToString(), Message: err.Error(), } return } update["friendPointOD"] = ue.FriendPointOD + pointTotal // 赠送X次友情点 go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { this.module.ModuleBuried.TriggerBuried(session, comm.GetBuriedParam(comm.Rtype11, 1)) }) } if len(update) > 0 { if err := this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } } session.SendMsg(string(this.module.GetType()), "zanandreceive", &pb.FriendZanAndReceiveResp{ Atno: atno, }) return }