コード例 #1
0
ファイル: PraisesModule.php プロジェクト: nicklos17/appserver
 /**
  * [点赞]
  * @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;
 }