ts + $this->praise * glc()->Hero_Discuss_Praise_weight; // } // //} // ///** // * 英雄评论模块 // * @version // * 1.0.0 Created at 2017-3-24. by --gwang // * @author gwang (mail@wanggangzero.cn) // * @copyright ? 2017-3-24, SJZ LoyalSoft Corporation & gwang. All rights reserved. // */ //class HeroDiscussProc { // // /** // * 每次请求返回的评论数量 // */ // const PageItemCount = 50; // // /** // * [6317]发表评价 // * @param Req $req // */ // static function Post($req) { // $mem = $req->mem; // $uid = $req->uid; // $heroId = $req->paras[0]; # 英雄ID // $content = $req->paras[1]; # 评价内容 // $item = new DiscussItem(array(# # 创建一条评论 // 'uid' => $uid, // 'name' => $req->userInfo->game->baseInfo->name, // 'msg' => $content, // 'ts' => now(), // 'praise' => 0, # # 赞 // 'praised_uids' => ArrayInit() // )); // if ($mem->hexists(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $uid)) { // $item = self::_GetDiscussItem($mem, $heroId, $uid); // } else { // self::_SaveDiscussItem($heroId, $uid, $item); # 保存评论 // $mem->zadd(MemKey_GameRun::HeroDiscusses_score_zset($heroId), # // array($uid => $item->Score())); # # 写入排行数据 // } // // todo: 添加总评论数量限制, 超过一定数量清理部分评论 // return Resp::ok(array("ret" => $item)); # 成功后返回评论内容, // // ps.客户端可以对比返回的内容是否和发送的内容一致,不一致代表已经有过评论了,不可以再发布新评论, 这个设定有跟待策划商议. // } // // /** // * [6319] 删除评价 // * @param Req $req // */ // static function DeletePost($req) { // $uid = $req->uid; // $heroId = $req->paras[0]; # 英雄ID // $msg = ""; // if ($req->mem->hdel(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $uid)) { // $msg = "success"; // } // return Resp::ok(array('ret' => $msg)); // } // // /** // * [6320] 给英雄打分(同一个英雄只能打一次分) // * @param Req $req // */ // static function Score($req) { // $uid = $req->uid; // list($heroId, $score) = $req->paras; # 提取参数: 英雄ID, 打分值 // my_Assert($score > 0 && $score <= 5, ErrCode::paras_err); # 参数非法: 打分区间不对 //// $pubifno = $req->mem->get(MemKey_User::Union_PublicState_hash($uid)); # 玩家各区共享的数据 // $pubifno = new PublicStateModel(); # 玩家各区共享的数据 // $pubifno->readDataFromMem(MemKey_User::Union_PublicState_hash($uid)); // $scoredlist = $pubifno->scoredheros; // if (is_null($scoredlist) || !is_array($scoredlist)) { // $scoredlist = ArrayInit(); // } // if (CommUtil::isInArray($scoredlist, $heroId)) { # 判断玩家是否给此英雄打过分了 // return Resp::ok(array('err' => 1, 'msg' => 'has scored!')); # -- 业务逻辑内部错误码 // } // // 添加打分数据, // // 取英雄的打分数据 {cnt:xxx,totalscore:xxx} // $heroscore = $req->mem->get(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId)); // if (is_null($heroscore)) { // $heroscore = ObjectInit(); // $heroscore->amt = 0; // $heroscore->totalscore = 0; // } // $heroscore->amt += 1; // $heroscore->totalscore += $score; // $scoredlist[] = $heroId; # 玩家记录打分记录 // $pubifno->scoredheros = $scoredlist; # 回存数据 // $pubifno->updateData(MemKey_User::Union_PublicState_hash($uid)); // // $req->mem->set(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId), $heroscore); // $newscore = $heroscore->amt > 0 ? $heroscore->totalscore / $heroscore->amt : 0; // return Resp::ok(array('err' => 0, # # 返回 // 'score' => round($newscore, 2))); // } // // /** // * [6316]查看评价 // * @param Req $req // */ // static function GetDiscusses($req) { // $heroId = $req->paras[0]; # 英雄ID // $start = $req->paras[1]; # 起始索引 // $indexs = $req->mem->zrange(MemKey_GameRun::HeroDiscusses_score_zset($heroId), # // $start, $start + self::PageItemCount); // $arr = $req->mem->hmget(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $indexs); // // $heroscore = $req->mem->get(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId)); // if (is_null($heroscore)) { // $heroscore = ObjectInit(); // $heroscore->amt = 0; // $heroscore->totalscore = 0; // } // $score = $heroscore->amt > 0 ? $heroscore->totalscore / $heroscore->amt : 0; // return Resp::ok(array("ret" => $arr, 'score' => round($score, 2))); // } // // /** // * [6318]给评论点赞 // * @param Req $req // */ // static function PriaseMsg($req) { // $mem = $req->mem; // $uid = $req->uid; // $heroId = $req->paras[0]; # 英雄ID // $discussId = $req->paras[1]; # 评论ID // // $msg = self::_GetDiscussItem($mem, $heroId, $discussId); # 取数据 // if (!$msg) { // return Resp::ok(array("err" => -1)); # 评论不存在 // } // if (isset($msg->praised_uids) && in_array($uid, $msg->praised_uids)) { // return Resp::ok(array("err" => 1, # # 已赞过 // 'praise' => $msg->praise)); // } // $msg->praise += 1; # 点赞 // $msg->praised_uids[] = $uid; # 添加点赞记录 // self ::_SaveDiscussItem($heroId, $discussId, $msg); # 回写数据 // $mem->zadd(MemKey_GameRun::HeroDiscusses_score_zset($heroId), # // array($discussId => $msg->Score())); # 更新排名 // return Resp::ok(array("err" => 0, # # 返回最新的被赞数量 // 'praise' => $msg->praise)); // } // //// // // /** // * 取评论 // * @param CRedisUtil $mem // * @param string $heroId // * @param string $discussId // * @return DiscussItem Description // */ // static private function _GetDiscussItem($mem, $heroId, $discussId) { // $ret = $mem->hget(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $discussId); // if ($ret) { // return new DiscussItem($ret); // } // return null; // } // // /** // * 回写评论 // * @param type $heroId // * @param type $discussId // * @param type $item // */ // static private function _SaveDiscussItem($heroId, $discussId, $item) { // gMem()->hset(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $discussId, $item); // 回写数据 // } // //// //}