Ejemplo n.º 1
0
 /**
  * Get channel by channelId, if the $one is true,this api only return a array,otherwise it will return multi arrays
  * @param $channelId, array, channel id array
  * @param $one, boolean,
  * @return array
  */
 public function getById($channelId, $one = true)
 {
     if ($one) {
         return ModelChannel::findOne(['channelId' => ['$in' => $channelId]]);
     } else {
         return ModelChannel::findAll(['channelId' => ['$in' => $channelId]]);
     }
 }
Ejemplo n.º 2
0
 /**
  * Get channel_id -> name map
  * @return array
  * @example ['54dbfc44e4b09d7f7799e96d' => 'hankliu62', '54d9c475e4b0abe717853ee6' => '群游汇']
  */
 private function _getChannelNameMap()
 {
     $channelNameMap = [];
     $channels = Channel::findAll([]);
     foreach ($channels as $channel) {
         $channelNameMap[$channel->channelId] = $channel->name;
     }
     return $channelNameMap;
 }
Ejemplo n.º 3
0
 /**
  * get coupon qrcode info,this function will return three arrays,
  * 1.old qrcode,2.new qrcode,3.show qrcode to fronted
  * @param $params, array
  * @param $coupon, object
  * @param $exitsQrcode, array
  */
 public static function getCouponQrcode($params, $coupon, $existsQrcode)
 {
     $data = $result = [];
     $channels = array_unique($params['channels']);
     $channelInfos = Channel::findAll(['channelId' => ['$in' => $channels]]);
     $existsChannelInfos = [];
     foreach ($channelInfos as $channelInfo) {
         $existsChannelInfos[$channelInfo['channelId']] = $channelInfo;
     }
     foreach ($channels as $channel) {
         //if the qrcode is exists in any channel,not need to create a new qrcode for this channel
         if (isset($existsQrcode[$channel])) {
             $qrcodeId = $existsQrcode[$channel]['id'];
             $origin = $existsQrcode[$channel]['origin'];
             $channelName = $existsQrcode[$channel]['channelName'];
             $qiniuKey = $existsQrcode[$channel]['qiniuKey'];
             unset($existsQrcode[$channel]);
         } else {
             //redirect url
             $mainDomain = Yii::$app->request->hostInfo;
             $content = $mainDomain . '/api/mobile/coupon?channelId=' . $channel . '&couponId=' . $params['couponId'];
             $qrcode = Yii::$app->qrcode->create($content, Coupon::COUPON_QRCODE_RECEIVED, $coupon->_id, $coupon->accountId, false);
             $qrcodeId = $qrcode->_id;
             $origin = $existsChannelInfos[$channel]['origin'];
             $channelName = $existsChannelInfos[$channel]['name'];
             $qiniuKey = $qrcode->qiniuKey;
         }
         $data[] = ['id' => $qrcodeId, 'origin' => $origin, 'channelName' => $channelName, 'channelId' => $channel, 'qiniuKey' => $qiniuKey];
         $result[$origin][] = ['id' => (string) $qrcodeId, 'origin' => $origin, 'channelName' => $channelName, 'fileName' => $qiniuKey, 'channelId' => $channel, 'url' => Yii::$app->qrcode->getUrl($qiniuKey)];
     }
     return [$existsQrcode, $data, $result];
 }