/** * Provide card * * <b>Request Type</b>: POST<br/><br/> * <b>Request Endpoint</b>:http://{server-domain}/api/member/card/provide-card<br/><br/> * <b>Response Content-type</b>: application/json<br/><br/> * <b>Summary</b>: This api is used for provide card. * <br/><br/> * * <b>Request Params</b>:<br/> * cardId: string<br/> * cardNumbers: Array, card number<br/> * names: Array * tags: Array<br/> * cardExpiredAt: timestamp<br/> * <br/><br/> * * <b>Response Params:</b><br/> * message: * <br/><br/> * * <br/><br/> * * <b>Response Example</b>:<br/> * <pre> * {"message" : "OK"} * </pre> */ public function actionProvideCard() { $params = $this->getParams(); $accountId = $this->getAccountId(); $params['accountId'] = $accountId . ''; if (empty($params['cardId'])) { throw new BadRequestHttpException('param error'); } if (empty($params['cardExpiredAt'])) { throw new InvalidParameterException(['schedule-picker' => \Yii::t('common', 'required_filed')]); } $cardId = new \MongoId($params['cardId']); $card = MemberShipCard::findByPk($cardId); if (empty($card)) { throw new BadRequestHttpException(\Yii::t('member', 'no_card_find')); } if ($card->isAutoUpgrade) { throw new InvalidParameterException(Yii::t('member', 'error_issue_auto_card')); } if ($params['cardExpiredAt'] < TimeUtil::msTime()) { throw new InvalidParameterException(['schedule-picker' => \Yii::t('member', 'not_less_than_current')]); } $members = []; if (!empty($params['cardNumbers']) && is_array($params['cardNumbers'])) { $members = Member::getByCardNumbers($params['cardNumbers']); if (empty($members)) { throw new InvalidParameterException(['cardNumber' => \Yii::t('member', 'no_member_find')]); } } else { if (!empty($params['names']) && is_array($params['names'])) { $members = Member::getByNames($params['names']); if (empty($members)) { throw new InvalidParameterException(['memberNames' => \Yii::t('member', 'no_member_find')]); } } else { if (!empty($params['tags']) && is_array($params['tags'])) { $members = Member::getByTags($params['tags']); if (empty($members)) { throw new InvalidParameterException(['memberTags' => \Yii::t('member', 'no_member_find')]); } } } } $memberIds = Member::getIdList($members); Member::updateAll(['$set' => ['cardId' => $cardId, 'cardExpiredAt' => $params['cardExpiredAt']]], ['_id' => ['$in' => $memberIds]]); return ['message' => 'OK']; }