Closed joelin109 closed 6 years ago
DROP TABLE IF EXISTS `stats_promote_activity_course`;
CREATE TABLE `stats_promote_activity_course` (
`id` varchar(30) NOT NULL COMMENT '编号',
`user_id` varchar(30) NOT NULL COMMENT '用户ID',
`activity_id` varchar(30) NOT NULL COMMENT '活动ID',
`course_id` varchar(30) NOT NULL COMMENT '课程ID',
`help_users` text COMMENT '助力用户列表',
`coupon_id` varchar(30) DEFAULT NULL COMMENT '优惠券ID',
`draw_price` varchar(50) DEFAULT NULL COMMENT '抽奖金额',
`create_at` varchar(24) DEFAULT NULL COMMENT '创建日期',
`create_by` varchar(30) DEFAULT NULL COMMENT '创建者',
`update_at` varchar(24) DEFAULT NULL COMMENT '修改日期',
`update_by` varchar(30) DEFAULT NULL COMMENT '修改者',
`delete_at` varchar(24) DEFAULT NULL COMMENT '删除日期',
`delete_by` varchar(30) DEFAULT NULL COMMENT '删除者,',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='活动参与用户纪录表';
/api/stats/activity/course/info
课程活动参与用户纪录信息
#### 2. `/api/stats/activity/course/update` 更新课程活动参与用户纪录
curl
curl 'https://dev.bstcine.com/api/stats/activity/course/update' -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json, text/plain, */*' -H 'Cache-Control: private, no-cache, no-store, must-revalidate' -H 'Referer: https://dev.bstcine.com/' -H 'Connection: keep-alive' -H 'DNT: 1' --data-binary '{"channel":"","locale":"zh_CN","appver":"2.3.1","sitecode":"cine.web.pc","data":{"cid":"t01154054802192586m1CsuN01"}}' --compressed
function doLuckyDraw(isSelf, coursePrice, couponPrice) {
let formula = {
self: [
{minPrice: 5, ratio: 0.02},
{minPrice: 5, ratio: 0.03},
{minPrice: 5, ratio: 0.03},
{minPrice: 5, ratio: 0.03},
{minPrice: 5, ratio: 0.04}
],
other: [
{minPrice: 1, ratio: 0.002},
{minPrice: 2, ratio: 0.003},
{minPrice: 2, ratio: 0.003},
{minPrice: 2, ratio: 0.003},
{minPrice: 5, ratio: 0.004},
],
maxRatio: 0.1
};
let temp_formula = isSelf ? formula.self : formula.other;
//抽奖容器
let drawContainer = temp_formula.map(item => {
let ratio = item['ratio'];
let minPrice = item['minPrice'];
let callPrice = StringUtil.toNumberFix(coursePrice) * ratio;
callPrice = Math.ceil(callPrice);
if (callPrice <= minPrice) callPrice = minPrice;
return callPrice;
});
//奖池总金额
let maxDrawPrice = StringUtil.toNumberFix(coursePrice) * formula.maxRatio;
maxDrawPrice = Math.ceil(maxDrawPrice);
console.log('奖池总金额', maxDrawPrice);
//奖池剩余金额
let remainDrawPrice = maxDrawPrice - StringUtil.toNumberFix(couponPrice);
console.log('奖池剩余金额', remainDrawPrice);
if (remainDrawPrice < 1) return 0;
//当前抽奖金额
let curDrawPrice = drawContainer[Math.floor(Math.random() * drawContainer.length)];
console.log('当前抽奖金额', curDrawPrice);
//校验当前抽奖金额的合法性
if (curDrawPrice >= remainDrawPrice) curDrawPrice = remainDrawPrice;
return curDrawPrice;
}
queryUserActivity
整个界面中有三个用户可点击Button:
点击抽奖,(在图片上,目前图片样式还未定) -第一次点击:弹出系统提示,文字:恭喜您抽中XXX元视频课程专用优惠券!(系统提示UI待提供) UI样式:
-第二次点击:弹出系统提示,文字:已抽过,立即邀请更多好友一起抽!(系统提示UI待提供) -活动结束后点击:弹出系统提示,文字:活动已结束,感谢参与! -该用户已使用过该抽奖优惠券购买课程:弹出系统提示,文字:您已使用过该优惠券!
邀请更多好友帮你抽: -点击弹出微信分享流程,可选择分享给好友,或朋友圈,或其他方式
立即使用(功能同详情页中的“立即购买”button): -点击后跳转下单页面,本章优惠券自动填入优惠券位置。
界面中三处金额提示,会随抽奖金额变动而改变。
课程信息区域:
抽奖button不同情况弹出系统提示:
抽奖下放抽奖金额提示文字:
2018-10-31
“立即使用”
Solution1:
- 立即使用(功能同详情页中的“立即购买”button)
Solution2:
- 微信新页面:调整到课程详情页
- APP课程详情页弹框中:点击“立即使用”,关闭当前弹框
以上2Solution都可接受,技术选个简单的
[ ] 营销活动-优惠活动:双十一活动课程管理日期 - bug
[ ] 1、活动日期到期后延期无效
[ ] 2、活动课程管理页面勾选课程提示***课程已参与同类型活动
step1: https://dev.bstcine.com/table/PromoteActivity step2: 配置
{
"coupon": {
"expire_at": "2019-01-04 23:59:59"
},
"title": "善恩英语神奇树屋#8优惠券大派送!",
"share": {
"title": "我正在参加善恩英语神奇树屋#8优惠券大派送活动!",
"desc": "快来帮我抽优惠券!"
},
"errMessage": {
"share": {
"activity_is_expire": "活动已结束,感谢参与!",
"repeat_draw": "已抽过,感谢您的助力!",
"coupon_is_used": "感谢您的助力,好友已成功购买!",
"draw_max_coupon": "'感谢您的助力,优惠总金额已达上限!"
},
"self": {
"activity_is_expire": "活动已结束,感谢参与!",
"repeat_draw": "已抽过,立即点击下方按钮,邀请更多好友一起帮你抽奖!",
"coupon_is_used": "您已使用过该优惠券!",
"draw_max_coupon": "'感谢您的参与,优惠总金额已达上限!"
}
}
}
需求
David
澄清:
技术
反馈
Deadline
澄清
感谢您的助力,好友已成功购买!