public function actionSendRedemptionMessage()
 {
     $params = $this->getParams();
     $name = MessageTemplate::getTemplateName($params['type']);
     $mobileParams = MessageTemplate::getMobileVar($params);
     $accountId = $this->getAccountId();
     $specialParams = MessageTemplate::getProductList($params);
     $template = MessageTemplate::getMobileTemplate($name, $accountId, $mobileParams, $specialParams);
     $params['memberId'] = new \MongoId($params['memberId']);
     $member = Member::getMemberInfo($params['memberId'], 'tel');
     if (!empty($member['tel']) && !empty($template)) {
         return MessageUtil::sendMobileMessage($member['tel'], $template);
     } else {
         return false;
     }
 }
 public function operationCoupon($membershipDiscount)
 {
     //record log when get coupon
     $memberItem = Member::getMemberInfo($membershipDiscount->member['id'], ['tel']);
     $memberInfo = ['id' => $membershipDiscount->member['id'], 'name' => $membershipDiscount->member['name'], 'phone' => empty($memberItem['tel']) ? '' : $memberItem['tel'], 'receiveType' => $membershipDiscount->coupon['receiveType']];
     $couponLog = new CouponLog();
     $couponLog->couponId = $membershipDiscount->coupon['id'];
     $couponLog->membershipDiscountId = $membershipDiscount->_id;
     $couponLog->type = $membershipDiscount->coupon['type'];
     $couponLog->title = $membershipDiscount->coupon['title'];
     $couponLog->status = CouponLog::RECIEVED;
     $couponLog->member = $memberInfo;
     $couponLog->total = 1;
     $couponLog->operationTime = $couponLog->createdAt = new MongoDate();
     $couponLog->accountId = $membershipDiscount->accountId;
     if (false === $couponLog->save()) {
         //to avoid the error show to user
         LogUtil::error(['message' => 'Failed to save couponLog error:' . $couponLog->getErrors()], 'product');
     }
 }
Esempio n. 3
0
 /**
  * Conversion format for couponLog.
  * @param $coupon Object
  * @param $member Object
  * @param $tokenInfo Object
  */
 public static function transformCouponLog($coupon, $member, $membershipDiscountId)
 {
     $memberItem = Member::getMemberInfo($member->_id, ['name', 'tel']);
     $memberInfo = ['id' => $member->_id, 'name' => empty($memberItem['name']) ? '' : $memberItem['name'], 'phone' => empty($memberItem['tel']) ? '' : $memberItem['tel']];
     $couponLog = new CouponLog();
     $couponLog->couponId = $coupon->_id;
     $couponLog->membershipDiscountId = $membershipDiscountId;
     $couponLog->type = $coupon->type;
     $couponLog->title = $coupon->title;
     $couponLog->status = self::RECIEVED;
     $couponLog->member = $memberInfo;
     $couponLog->total = 1;
     $couponLog->operationTime = new \MongoDate();
     $couponLog->createdAt = new \MongoDate();
     $couponLog->accountId = $coupon->accountId;
     return $couponLog;
 }
Esempio n. 4
0
 public function getProperty($memberId, $name = 'name')
 {
     if (is_string($memberId)) {
         $memberId = new MongoId($memberId);
     }
     return ModelMember::getMemberInfo($memberId, $name);
 }
Esempio n. 5
0
 public static function getMobileVar($params)
 {
     if (empty($params['memberId'])) {
         throw new BadRequestHttpException('missing params');
     }
     $type = $params['type'];
     if (!in_array($type, [self::REDEMPTION_TYPE, self::PROMOCODE_TYPE])) {
         throw new BadRequestHttpException('type is invaild');
     }
     $params['memberId'] = new \MongoId($params['memberId']);
     $member = Member::getMemberInfo($params['memberId'], ['name', 'gender', 'email', 'tel', 'birthday', 'score']);
     if ('male' == $member['gender']) {
         $gender = '男';
     } else {
         $gender = '女';
     }
     $product = $promoCode = '';
     if (!empty($params['data'])) {
         //create product list
         foreach ($params['data'] as $data) {
             if (isset($data['productName'])) {
                 $product .= $data['productName'] . ',';
             } else {
                 $promoCode = implode(',', $params['data']);
                 break;
             }
         }
         $product = rtrim($product, ',');
     }
     $memberInfo = Member::findByPk($params['memberId']);
     $vars = ['address' => !empty($params['address']) ? $params['address'] : '', 'pointBalance' => !isset($memberInfo->score) ? 0 : $memberInfo->score, 'product' => $product, 'promoCode' => $promoCode, 'username' => $member['name'], 'gender' => $gender, 'email' => $member['email'], 'phone' => $member['tel'], 'birthday' => date('Y-m-d', $member['birthday'] / TimeUtil::MILLI_OF_SECONDS), 'total' => empty($params['total']) ? 0 : $params['total'], 'totalScore' => empty($params['totalScore']) ? 0 : $params['totalScore'], 'number' => count($params['data']), 'amount' => empty($params['usedScore']) ? 0 : $params['usedScore']];
     //to suport member propertyId
     $properties = MemberProperty::getMemberProperty($memberInfo->accountId, $memberInfo->properties);
     $vars = array_merge($vars, $properties);
     return $vars;
 }