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'); } }
/** * 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; }
public function getProperty($memberId, $name = 'name') { if (is_string($memberId)) { $memberId = new MongoId($memberId); } return ModelMember::getMemberInfo($memberId, $name); }
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; }