package friend import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/utils" "google.golang.org/protobuf/proto" ) // 领取点赞奖励 func (this *apiComp) ZanreceiveCheck(session comm.IUserSession, req *pb.FriendZanreceiveReq) (code pb.ErrorCode) { if len(req.FriendIds) == 0 { code = pb.ErrorCode_ReqParameterError } return } func (this *apiComp) Zanreceive(session comm.IUserSession, req *pb.FriendZanreceiveReq) (code pb.ErrorCode, data proto.Message) { if code = this.ZanreceiveCheck(session, req); code != pb.ErrorCode_Success { return } globalCnf := this.moduleFriend.configure.GetGlobalConf() if globalCnf == nil { code = pb.ErrorCode_ConfigNoFound return } var ( self *pb.DBFriend err error ) self = this.moduleFriend.modelFriend.GetFriend(session.GetUserId()) if self == nil { code = pb.ErrorCode_FriendSelfNoData return } var ( pointTotal int32 // 累计友情值 ) // 是否已领取点赞 for _, v := range req.FriendIds { if _, ok := utils.Find(self.GetZandIds, v); !ok { self.GetZandIds = append(self.GetZandIds, v) pointTotal += 1 } } // 修改获赞Id if err = this.moduleFriend.modelFriend.Change(self.Uid, map[string]interface{}{ "getZandIds": self.GetZandIds, }); err != nil { code = pb.ErrorCode_DBError return } //设置自己的友情值 ue, err := this.moduleFriend.ModuleUser.GetUserExpand(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } // 今日获赠的友情点是否达到上限 if ue.FriendPointID >= int32(globalCnf.FriendMaxgetnum) { code = pb.ErrorCode_FriendPointLimit return } update := map[string]interface{}{ "friendPoint": ue.FriendPoint + pointTotal, "friendPointID": ue.FriendPointID + pointTotal, } if err := this.moduleFriend.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil { code = pb.ErrorCode_DBError return } if err := session.SendMsg(string(this.moduleFriend.GetType()), FriendSubTypeZanreceive, &pb.FriendZanreceiveResp{Flag: true}); err != nil { code = pb.ErrorCode_SystemError return } return }