/** * [点赞] * @param [type] $token [description] * @param [type] $mobi [description] * @return [type] [description] */ public function hit($token, $locusId) { $redis = RedisLib::getRedis($this->di); $userInfo = $redis->get('token:' . $token); $locusInfo = $this->locusmodel->getLocateInfo($locusId); if (empty($locusInfo)) { return self::NON_LOCUS; } //检查用户是否有权限进行操作 if (!$this->_checkRelation($userInfo['uid'], $locusInfo['baby_id'])) { return self::NO_FAMILY; } $praisesCheck = $this->praisesmodel->getLsidByUid($userInfo['uid'], $locusId); if (!empty($praisesCheck)) { return self::PRAISED; } //获取宝贝昵称 $babyInfo = $this->babymodel->getBabyInfoById($locusInfo['baby_id']); if (empty($babyInfo)) { return self::NON_LOCUS; } $familymodel = $this->initModel('\\Appserver\\Mdu\\Models\\FamilyModel'); //获取角色名 $rolename = $familymodel->getRelationByUidBabyId($userInfo['uid'], $locusInfo['baby_id']); if (!empty($rolename)) { $relName = $rolename['family_rolename']; } else { $relName = $userInfo['mobi']; } $this->di['db']->begin(); if ($this->praisesmodel->hit($userInfo['uid'], $relName, $_SERVER['REQUEST_TIME'], $locusId)) { if ($this->locusmodel->hit($locusId)) { if ($familymodel->hit($userInfo['uid'], $locusInfo['baby_id'], $_SERVER['REQUEST_TIME'])) { $this->di['db']->commit(); //type = 1001到代表赞, type = 1003代表评论 $result = array('rel_id' => (string) $userInfo['uid'], 'type' => '1001', 'addtime' => (string) $_SERVER['REQUEST_TIME'], 'content' => '', 'rel_name' => $relName, 'rel_pic' => $userInfo['pic'], 'baby_id' => (string) $locusInfo['baby_id'], 'locus_id' => (string) $locusId); // $uid是宝贝对应的主号,或者监护号或者是主号和监护号的集合;如果uid为空,则不执行推送的操作 $uid = Common::getPushUid($locusId, $userInfo['uid']); if (!empty($uid)) { for ($i = 0; $i < sizeof($uid); $i++) { if ($uid[$i] != '') { $result['uid'] = $uid[$i]; $result['alert'] = sprintf($this->di['sysconfig']['praPush'], $babyInfo['baby_nick'], $relName, $babyInfo['baby_nick'], date('m月d日', $locusInfo['locus_date'])); $redis->lPush($this->di['sysconfig']['pushForActive'], json_encode($result)); } } } return array('flag' => '1', 'praises' => (string) ($locusInfo['praises'] + 1)); } $this->di['db']->rollback(); return self::FAILED_PRAISE; } $this->di['db']->rollback(); return self::FAILED_PRAISE; } return self::FAILED_PRAISE; }