Ejemplo n.º 1
0
 private function _savePushMessages($messageId, $phoneNums)
 {
     $pushUsers = [];
     if (empty($phoneNums)) {
         $query = new Query();
         $result = $query->from(PushUser::collectionName())->select(['token', 'deviceType', 'mobile'])->where(['accountId' => $this->getAccountId()])->all();
         $pushUsers = array_merge($pushUsers, $result);
     } else {
         foreach ($phoneNums as $phone) {
             $query = new Query();
             $result = $query->from(PushUser::collectionName())->select(['token', 'deviceType', 'mobile'])->where(['mobile' => $phone, 'accountId' => $this->getAccountId()])->all();
             $pushUsers = array_merge($pushUsers, $result);
         }
     }
     $pushUsers = $this->_uniquePushUsers($pushUsers);
     foreach ($pushUsers as $pushUser) {
         $pushMessage = new PushMessage();
         if (!empty($pushUser['mobile'])) {
             $pushMessage->mobile = $pushUser['mobile'];
         }
         $pushMessage->token = $pushUser['token'];
         $pushMessage->deviceType = $pushUser['deviceType'];
         $pushMessage->messageId = $messageId;
         if (!empty($this->getAccountId())) {
             $pushMessage->accountId = $this->getAccountId();
         }
         $pushMessage->insert();
     }
 }
Ejemplo n.º 2
0
 public static function saveToken($query)
 {
     $token = $query->token;
     $mobile = null;
     if (isset($query->mobile) && !empty($query->mobile)) {
         $mobile = $query->mobile;
     }
     $deviceType = $query->deviceType;
     $accountId = $query->accountId;
     $item = self::findOne(['mobile' => $mobile, 'token' => $token, 'deviceType' => $deviceType, 'accountId' => new \MongoId($accountId)]);
     if ($item == null) {
         $item = new PushUser();
         $item->mobile = $mobile;
         $item->deviceType = $deviceType;
         $item->accountId = $accountId;
         $item->token = $token;
         $item->save();
     }
     return $item;
 }
Ejemplo n.º 3
0
 private function getRegistrationIdListByMobile($mobile, $accountId)
 {
     $list = PushUser::getListByMobile($mobile, PushUser::DEVICE_ANDROID, $accountId);
     $registrationList = [];
     if (!empty($list)) {
         foreach ($list as $item) {
             array_push($registrationList, $item->token);
         }
     }
     return $registrationList;
 }
Ejemplo n.º 4
0
 public function actionSave()
 {
     \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     $accountId = $this->getAccountId();
     if (empty($accountId)) {
         return ['code' => 400, 'msg' => 'missing accountId'];
     }
     $body = Yii::$app->request->getRawBody();
     $query = json_decode($body);
     if (empty($query)) {
         return ['code' => 400, 'msg' => 'bad request'];
     }
     if (!isset($query->token)) {
         return ['code' => 400, 'msg' => 'missing token'];
     }
     $query->accountId = new \MongoId($accountId);
     $user = PushUser::saveToken($query);
     return ['code' => 200, 'msg' => 'ok'];
 }