Authored by hf

code review by hf: do final sale huodong

* {
margin: 0;
padding: 0;
}
.coupon-christmas img {
display: block;
max-width: 100%;
}
.coupon-top {
position: relative;
}
.coupon-top .go-check {
position: absolute;
top: 5.375rem;
width: 100%;
height: 6.85rem;
}
.coupon-top .share-btn {
position: absolute;
width: 14.1rem;
height: 2.25rem;
bottom: 0.65rem;
left: 50%;
margin: 0 0 0 -6.875rem;
background-size: 100%;
}
.coupon-bottom {
height: 10.2rem;
background: url(../../img/newyear/bottom-bg.png) no-repeat bottom center;
background-size: 100% 100%;
}
.coupon-banner {
text-align: center;
font-size: 0;
}
.coupon-banner a {
display: inline-block;
width: 6.825rem;
height: 3.55rem;
margin: 0 0.175rem 0.4rem;
}
.coupon-banner img {
display: block;
width: 100%;
height: 100%;
}
.bottom-btn {
position: relative;
margin: 0.1rem auto 0;
width: 14.05rem;
height: 1.575rem;
font-size: 0;
}
.bottom-btn a{
position: absolute;
top: 0;
width: 8.525rem;
height: 100%;
}
.bottom-btn a.follow-yoho {
width: 5.275rem;
left: 0;
}
.bottom-btn a.download-yoho {
right: 0;
}
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: url(../../img/newyear/share.png) center top no-repeat;
-webkit-background-size: 100%;
-moz-background-size: 100%;
background-size: 100%;
display: none;
}
.has-done {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.4) url(../../img/newyear/11.png);
background-repeat: no-repeat;
background-size: 80% auto;
background-position: center center;
overflow: hidden;
display: none;
}
.dialog-box {
display: none;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.4);
z-index: 999;
}
.dialog-inner {
position: absolute;
width: 13.375rem;
height: 9.625rem;
top: 50%;
left: 50%;
margin: -4.8125rem 0 0 -6.6875rem;
}
.dialog-inner img {
max-width: 100%;
}
.dialog-inner span {
position: absolute;
width: 8.225rem;
height: 1.85rem;
bottom: 1.475rem;
left: 50%;
margin: 0 0 0 -4.1125rem;
cursor: pointer;
}
\ No newline at end of file
... ...
* {
margin: 0;
padding: 0;
}
.coupon-christmas img {
display: block;
max-width: 100%;
}
.coupon-top {
position: relative;
}
.coupon-top .go-check {
position: absolute;
top: 8.75rem;
width: 100%;
height: 6.05rem;
}
.coupon-top .share-btn {
position: absolute;
width: 14.075rem;
height: 2.275rem;
bottom: 0.9rem;
left: 50%;
margin: 0 0 0 -7.0375rem;
background-size: 100%;
}
.coupon-bottom {
height: 10.825rem;
background: url(../images/bottom-bg.png) no-repeat bottom center;
background-size: 100% 100%;
}
.coupon-banner {
text-align: center;
font-size: 0;
}
.coupon-banner a {
display: inline-block;
width: 6.85rem;
height: 3.85rem;
margin: 0 0.175rem 0.1rem;
}
.coupon-banner img {
display: block;
width: 100%;
height: 100%;
}
.bottom-btn {
position: relative;
margin: 0.375rem auto 0;
width: 14.05rem;
height: 1.775rem;
font-size: 0;
}
.bottom-btn a{
position: absolute;
top: 0;
width: 7.65rem;
height: 100%;
}
.bottom-btn a.follow-yoho {
width: 6.0rem;
left: 0;
}
.bottom-btn a.download-yoho {
right: 0;
}
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: url(../images/share.png) center top no-repeat;
-webkit-background-size: 100%;
-moz-background-size: 100%;
background-size: 100%;
display: none;
}
.has-done {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.4) url(../images/11.png);
background-repeat: no-repeat;
background-size: 80% auto;
background-position: center center;
overflow: hidden;
display: none;
}
.dialog-box {
display: none;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.4);
z-index: 999;
}
.dialog-inner {
position: absolute;
width: 13.425rem;
height: 8.9rem;
top: 50%;
left: 50%;
margin: -4.45rem 0 0 -6.7125rem;
}
.dialog-inner img {
max-width: 100%;
}
.dialog-inner span {
position: absolute;
width: 6.85rem;
height: 1.45rem;
bottom: 0.9rem;
left: 50%;
margin: 0 0 0 -3.425rem;
cursor: pointer;
}
\ No newline at end of file
... ...
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>{{staticTitle}}</title>
<meta name="apple-mobile-web-app-title" content="SUMMER SALE">
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui" media="(device-height: 568px)">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="grey">
<link rel="stylesheet" href="{{imgUrl}}/cuxiao/css/final/index.css">
<script>
(function(doc, win) {
var docEl = doc.documentElement;
(function() {
var clientWidth = docEl.clientWidth;
if (!clientWidth) {
return;
}
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
}());
})(document, window);
</script>
</head>
<body class="keBody">
<div class="coupon-christmas" show="{{showPopupFlag}}">
<div class="coupon-top">
<img src="{{imgUrl}}/cuxiao/img/final/top-bg.png" alt="">
<a class="go-check" href="{{myCouponUrl}}"></a>
<a class="share-btn" href="javascript:;"></a>
</div>
<div class="coupon-bottom">
<div class="coupon-banner">
<a href="{{bannerUrl_1}}"></a>
<a href="{{bannerUrl_2}}"></a>
<a href="{{bannerUrl_3}}"></a>
<a href="{{bannerUrl_4}}"></a>
</div>
<div class="bottom-btn">
<a class="follow-yoho" href="http://mp.weixin.qq.com/s?__biz=MjM5ODI5MDA4MA==&amp;mid=201849402&amp;idx=1&amp;sn=c0089812f9769d82e0075f69d771f6e1#rd"></a>
<a class="download-yoho" href="{{downAppUrl}}"></a>
</div>
</div>
<div class="coupon-ft">
<img src="{{imgUrl}}/cuxiao/img/final/14.png">
</div>
</div>
<div class="modal"></div>
<div class="dialog-box geted">
<div class="dialog-inner">
<img src="{{imgUrl}}/cuxiao/img/final/geted.png" alt=""/>
<span class="dialog-close"></span>
</div>
</div>
<div class="dialog-box fail">
<div class="dialog-inner">
<img src="{{imgUrl}}/cuxiao/img/final/fail.png" alt=""/>
<span class="refresh-btn"></span>
</div>
</div>
<input id="shareLink" type="hidden" value="{{shareLink}}">
<input id="shareImg" type="hidden" value="{{shareImg}}">
<input id="shareTitle" type="hidden" value="{{shareTitle}}">
<input id="shareDesc" type="hidden" value="{{shareDesc}}">
<script type="text/javascript" src="{{imgUrl}}/cuxiao/js/jquery.min.js"></script>
<script>
//提示分享
$('.share-btn').click(function () {
$('.modal').fadeIn();
});
//关闭提示分享
$('.modal').click(function () {
$(this).fadeOut();
});
//提示已领过券
if ($('.coupon-christmas').attr('show') === '1') {
$('.dialog-box.geted').show();
}
//提示领券失败
else if ($('.coupon-christmas').attr('show') === '2') {
$('.dialog-box.fail').show();
}
//关闭提示
$('.dialog-close').click(function(){
$(this).parents('.dialog-box').fadeOut();
});
//刷新页面
$('.refresh-btn').click(function() {
location.reload();
});
</script>
{{#if weixinShare}}
<script type="text/javascript" charset="utf-8" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="{{jsUrl}}/cuxiao/js/share.weixin.js"></script>
{{/if}}
{{> layout/analysis}}
</body>
</html><!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>{{staticTitle}}</title>
<meta name="apple-mobile-web-app-title" content="SUMMER SALE">
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui" media="(device-height: 568px)">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="grey">
<link rel="stylesheet" href="{{imgUrl}}/cuxiao/css/christmas/index4.css">
<script>
(function(doc, win) {
var docEl = doc.documentElement;
(function() {
var clientWidth = docEl.clientWidth;
if (!clientWidth) {
return;
}
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
}());
})(document, window);
</script>
</head>
<body class="keBody">
<div class="coupon-christmas" show="{{showPopupFlag}}">
<div class="coupon-top">
<img src="{{imgUrl}}/cuxiao/img/final/top-bg.png" alt="">
<a class="go-check" href="{{myCouponUrl}}"></a>
<a class="share-btn" href="javascript:;"></a>
</div>
<div class="coupon-bottom">
<div class="coupon-banner">
<a href="{{bannerUrl_1}}">
<img src="{{imgUrl}}/cuxiao/img/final/banner01.png" alt="">
</a>
<a href="{{bannerUrl_2}}">
<img src="{{imgUrl}}/cuxiao/img/final/banner02.png" alt="">
</a>
<a href="{{bannerUrl_3}}">
<img src="{{imgUrl}}/cuxiao/img/final/banner03.png" alt="">
</a>
<a href="{{bannerUrl_4}}">
<img src="{{imgUrl}}/cuxiao/img/final/banner04.png" alt="">
</a>
</div>
<div class="bottom-btn">
<a class="follow-yoho" href="http://mp.weixin.qq.com/s?__biz=MjM5ODI5MDA4MA==&amp;mid=201849402&amp;idx=1&amp;sn=c0089812f9769d82e0075f69d771f6e1#rd"></a>
<a class="download-yoho" href="http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho&amp;g_f=995445"></a>
</div>
</div>
<div class="coupon-ft">
<img src="{{imgUrl}}/cuxiao/img/final/14.png">
</div>
</div>
<div class="modal"></div>
<div class="dialog-box geted">
<div class="dialog-inner">
<img src="{{imgUrl}}/cuxiao/img/final/geted.png" alt=""/>
<span class="dialog-close"></span>
</div>
</div>
<div class="dialog-box fail">
<div class="dialog-inner">
<img src="{{imgUrl}}/cuxiao/img/final/fail.png" alt=""/>
<span class="refresh-btn"></span>
</div>
</div>
<input id="shareLink" type="hidden" value="{{shareLink}}">
<input id="shareImg" type="hidden" value="{{shareImg}}">
<input id="shareTitle" type="hidden" value="{{shareTitle}}">
<input id="shareDesc" type="hidden" value="{{shareDesc}}">
<script type="text/javascript" src="{{imgUrl}}/cuxiao/js/jquery.min.js"></script>
<script>
//提示分享
$('.share-btn').click(function () {
$('.modal').fadeIn();
});
//关闭提示分享
$('.modal').click(function () {
$(this).fadeOut();
});
//提示已领过券
if ($('.coupon-christmas').attr('show') === '1') {
$('.dialog-box.geted').show();
}
//提示领券失败
else if ($('.coupon-christmas').attr('show') === '2') {
$('.dialog-box.fail').show();
}
//关闭提示
$('.dialog-close').click(function(){
$(this).parents('.dialog-box').fadeOut();
});
//刷新页面
$('.refresh-btn').click(function() {
location.reload();
});
</script>
{{#if weixinShare}}
<script type="text/javascript" charset="utf-8" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="{{jsUrl}}/cuxiao/js/share.weixin.js"></script>
{{/if}}
{{> layout/analysis}}
</body>
</html>
\ No newline at end of file
... ...
... ... @@ -619,6 +619,59 @@ class CouponController extends HuodongAction
'staticTitle' => '如何使用优惠券'
));
}
/**
* Final Sale 领券活动
*
* 上线时间2016/01/12
*/
public function finalAction()
{
//获取登录者ID,未登录返回false
$uid = $this->getLoggedUid();
if (!$uid || !is_numeric($uid)) {
//未登录的用户访问,跳转到登录页面。并且在登陆后跳转回本页面
$this->go(Helpers::url('/signin.html', array('refer' => Helpers::url('/cuxiao/coupon/final')), 'default'));
}
// 该变量用来控制和显示页面的弹出提示
$showPopupFlag = '0';
//获取跳转到个人中心-我的优惠券链接,并调用接口,完成领券操作
$myCouponUrl = Helpers::url('/home/coupons', null, 'default') . '?openby:yohobuy={"action":"go.coupon"}';
$activityId = $this->getActivityId();
$result = ActivityData::getCouponAll($uid, $activityId);
if (isset($result['code'])) {
switch (intval($result['code'])) {
case 200: // 领取成功, 发送站内信消息
$showPopupFlag = '0';
$this->sendMessage($uid, '【优惠券】您获得350元套券', '尊敬的客户:恭喜您成功获得350元套券!您可以在个人中心查看优惠券信息。');
break;
case 201: // 已领取过, 提示重复领券
$showPopupFlag = '1';
break;
default: // 领取失败, 提示领券失败
$showPopupFlag = '2';
break;
}
}
$this->_view->display('final', array(
'staticTitle' => 'YOHO!BUY有货【Final Sale】',
'weixinShare' => $this->_isApp ? false : true, // 是否需要微信分享
'shareLink' => 'http://feature.yohobuy.com/0/0/767/index.html',
'shareTitle' => 'YOHO!BUY有货【Final Sale】年终热促,重磅升级!全场3折起,折上最高直减¥1000!',
'shareDesc' => '350元优惠券限时派送~购物满额即赠价值千元的有货限量猴年利是封!',
'shareImg' => 'http://img11.static.yhbimg.com/couponImg/2016/01/07/07/016f63f5bb1f12cdb19402371323d26798.png',
'showPopupFlag' => $showPopupFlag,
'myCouponUrl' => $myCouponUrl,
'bannerUrl_1' => 'http://feature.yoho.cn/0112/0112APPHOMEBOY/index.html?openby:yohobuy={"action":"go.h5","params":{"title":"FINAL SALE重磅升级","url":"http://feature.yoho.cn/0112/0112APPHOMEBOY/index.html?","share":"\/operations\/api\/v5\/webshare\/getShare","shareparam":{"share_id":"536"},"param":{"share_id":"536"}}',
'bannerUrl_2' => 'http://feature.yoho.cn/0112/0112APPHOMEGIRL/index.html?openby:yohobuy={"action":"go.h5","params":{"title":"FINAL SALE重磅升级","url":"http://feature.yoho.cn/0112/0112APPHOMEGIRL/index.html?","share":"\/operations\/api\/v5\/webshare\/getShare","shareparam":{"share_id":"534"},"param":{"share_id":"534"}}}',
'bannerUrl_3' => 'http://feature.yoho.cn/0112/0112APPHOMEKIDS/index.html?openby:yohobuy={"action":"go.h5","params":{"title":"FINAL SALE重磅升级","url":"http://feature.yoho.cn/0112/0112APPHOMEKIDS/index.html?","share":"\/operations\/api\/v5\/webshare\/getShare","shareparam":{"share_id":"532"},"param":{"share_id":"532"}}}',
'bannerUrl_4' => 'http://feature.yoho.cn/0112/0112APPHOMELIFE/index.html?openby:yohobuy={"action":"go.h5","params":{"title":"FINAL SALE重磅升级","url":"http://feature.yoho.cn/0112/0112APPHOMELIFE/index.html?","share":"\/operations\/api\/v5\/webshare\/getShare","shareparam":{"share_id":"530"},"param":{"share_id":"530"}}}',
'downAppUrl' => 'http://www.yohoshow.com/about/index/yohobuyqr',
));
}
/**
* 领取指定的优惠券
... ... @@ -731,5 +784,57 @@ class CouponController extends HuodongAction
return false;
}
/**
* 检测登录状态
*
* @return int
*/
private function getLoggedUid()
{
// 判断是否是应用访问, 拼接APP需要的URL参数
$this->_isApp = (null !== $this->get('app_version') || null !== $this->get('uid'));
$uid = false;
if ($this->_isApp) {
$uid = $this->get('uid');
} else {
$uid = $this->getUid();
}
return $uid;
}
/**
* 发送站内信
*
* @param int $uid 用户ID
*/
private function sendMessage($uid, $title, $content)
{
try {
ActivityData::message($uid, $title, $content);
} catch (Exception $e) {
// do nothing
}
}
/**
* 根据环境来获取活动ID
*
* @return int
*/
private function getActivityId()
{
// 设置环境变量
switch (APPLICATION_ENV) {
case 'production': // 生产
return 466;
case 'preview': // 预览
case 'testing': // 测试
case 'develop': // 开发
default:
return 89;
}
}
}
... ...