Commit 67ab48a5 authored by qimiao's avatar qimiao

change api

parent 6068da2c
const {AESEncrypt} = require("../Crypto");
const { AESEncrypt } = require("../Crypto");
module.exports = {
"GET /home/index.do": {
code: null,
"GET /game/index.do": {
success: true,
code: "",
message: "",
data: {
startTime: +new Date() - 34234234, /// 活动开始时间戳
endTime: +new Date() + 34234234, /// 活动结束时间戳
remainAnswerTimes: 324, /// 剩余答题机会
nickname: null,
avatar: null,
salesman: true, // 是否代理人
shareCode: '326534', // 分享code
actStartTimestamp: +new Date() - 34234234,
actEndTimestamp: +new Date() + 34234234,
currentTimestamp: +new Date(),
userId: "9527",
shareCode: "9527",
salesmanFlag: true,
rewardDailyFreeGameTimes: 1,
leftGameTimes: 1,
},
message: null,
success: true,
timeStamp: +new Date(),
},
"GET /game/startGame.do": {
code: null,
data: AESEncrypt(JSON.stringify({
recordId: 231123,
}), "1c5f9cab3460e316", "cDOiBC1n2QrkAY2P"),
data: AESEncrypt(
JSON.stringify({
recordId: 231123,
}),
"1c5f9cab3460e316",
"cDOiBC1n2QrkAY2P"
),
message: null,
success: true,
timeStamp: 1723602734176,
......@@ -28,11 +31,11 @@ module.exports = {
"GET /game/submitGame.do": {
code: null,
data: {
"rewardDrawTimes": 1,
"leftGameTimes": 2
rewardDrawTimes: 1,
leftGameTimes: 2,
},
message: null,
success: true,
timeStamp: 1723602734176,
}
},
};
module.exports = {
"/task_1/queryTasks.do": {
"/customTask1/queryTasks.do": {
"code": null,
"message": null,
"success": true,
......@@ -252,7 +252,7 @@ module.exports = {
"timestamp": 1619590450914
}
},
"POST /task_1/doCompleted.do": {
"GET /customTask1/finishTask.do": {
"code": null,
"data": {
"buttonText": "1",
......@@ -284,7 +284,7 @@ module.exports = {
"message": null,
"success": true
},
"POST /task_1/sendPrize.do": {
"POST /customTask1/sendPrize.do": {
"code": null,
"data": {
"extra": null,
......
module.exports = {
"GET /home/drawIndex.do": {
"success": true,
"message": "报错了~",
"code": null,
timeStamp: Date.now(),
"data": {
"startTime": +new Date() - 123, //活动开始时间戳
"endTime": +new Date() + 123, //活动结束时间戳
"remainDrawTimes": 1, // 抽奖次数
"actPrizeList": [
{
prizeName: `奖品名称奖品名称奖品名称奖品名称1`,
prizeImg: `//yun.duiba.com.cn/polaris/jinmoqiang.9e5bbc004f69ab6a3f34d93daeda028616a9f00d.png`,
prizeId: `thanks1`,
},
{
prizeName: `奖品名称奖品名称`,
prizeImg: `//yun.duiba.com.cn/polaris/kouzhao.dc55dac6db1ff94c4666c2602d6cb0ac84139982.png`,
prizeId: `thanks2`,
},
{
prizeName: `奖品名称奖品`,
prizeImg: `//yun.duiba.com.cn/polaris/mac.fe55aa43e5a231d568973dcdd0b91e0263d5a12c.png`,
prizeId: `thanks3`,
},
{
prizeName: `奖品名称4`,
prizeImg: `//yun.duiba.com.cn/polaris/mgtv.e5f0709a2a4083bc57ce52ff200a50a2e56b2658.png`,
prizeId: `thanks4`,
},
{
prizeName: `奖品名称5`,
prizeImg: `//yun.duiba.com.cn/polaris/qq.73ad13cd0c6fd705327d12957c12e9d5b2e77baa.png`,
prizeId: `thanks5`,
},
{
prizeName: `奖品名称6`,
prizeImg: `//yun.duiba.com.cn/polaris/xx.e2f6a49a2954673d16d956d7b3bba25c2b6c667e.png`,
prizeId: `thanks6`,
},
{
prizeName: `奖品名称7`,
prizeImg: `//yun.duiba.com.cn/polaris/xx.e2f6a49a2954673d16d956d7b3bba25c2b6c667e.png`,
prizeId: `thanks7`,
},
{
prizeName: `谢谢参与lll`,
prizeImg: `https://yun.duiba.com.cn/spark/assets/f77861647e7b55e9c95e9c49d891a21526157a76.jpg`,
prizeId: `thanks`,
},
]
}
},
"GET /home/doDraw.do": {
"success": true,
"message": "报错了~",
"code": null,
"data": {
prizeId: `thanks`, // 奖品id thanks
prizeName: `奖品名称6gggggggggggggggggggvvvbbbbhsgxhsghshxbhsxbhs`,
prizeImg: `//yun.duiba.com.cn/polaris/xx.e2f6a49a2954673d16d956d7b3bba25c2b6c667e.png`,
"GET /draw/info.do": {
success: true,
code: "",
message: "",
data: {
actStartTimestamp: 11111,
actEndTimestamp: 33333,
currentTimestamp: 22222,
optionInfoList: [
{
id: "ccccaaaa",
name: "华为Mate70",
icon: "https://www.baidu.com/hw4.png",
prizeId: "sss_34",
prizeType: 2,
},
{
id: "ccccbbbb",
name: "华为Pura70",
icon: "https://www.baidu.com/hw3.png",
prizeId: "sss_33",
prizeType: 2,
},
{
id: "cccccccc",
name: "华为Mate60",
icon: "https://www.baidu.com/hw2.png",
prizeId: "sss_32",
prizeType: 2,
},
{
id: "ccccdddd",
name: "华为手环",
icon: "https://www.baidu.com/hw1.png",
prizeId: "sss_31",
prizeType: 2,
},
],
leftDrawTimes: 0,
},
},
"GET /draw/doDraw.do": {
success: true,
code: "",
message: "",
data: {
prize: {
ruleId: "ru_draw",
optionId: "ccccdddd",
optionName: "华为手环",
optionImg: "https://www.baidu.com/hw1.png",
prizeId: "sss_3",
prizeType: 2,
position: 1,
userRecordId: 666,
url: "https://www.baidu.com/order/666",
sendCount: 1,
extra: "{}",
},
},
}
\ No newline at end of file
},
};
......@@ -32,7 +32,7 @@ const API = generateAPI({
showMsg: false,
},
home: 'home/index.do',
home: 'game/index.do',
startAnswer: {
uri: 'game/startGame.do',
withToken: true, // 携带token
......@@ -43,10 +43,11 @@ const API = generateAPI({
},
/** 抽奖首页 */
drawIndex: "home/drawIndex.do",
drawIndex: "draw/info.do",
/** 抽奖 */
drawJoin: {
uri: "home/doDraw.do",
method: "get",
uri: "draw/doDraw.do",
withToken: true,
},
......@@ -54,17 +55,17 @@ const API = generateAPI({
queryUserInfo: "common/queryUserInfo.do",
/** 查询任务列表 */
queryTasks: "task_1/queryTasks.do",
queryTasks: "customTask1/queryTasks.do",
/** 完成任务 */
doCompleted: {
method: "post",
uri: "task_1/doCompleted.do",
method: "get",
uri: "customTask1/finishTask.do",
withToken: true,
},
/** 任务发奖 */
sendPrize: {
method: "post",
uri: "task_1/sendPrize.do",
uri: "customTask1/sendPrize.do",
withToken: true,
},
......
......@@ -31,15 +31,15 @@ class Drawsucpop extends React.Component {
location.href = CFG.prize;
});
render() {
const { prizeName, prizeImg } = this.props.popData || {};
const { optionName, optionImg } = this.props.popData?.prize || {};
return (
<div className="drawsucpop modal_center">
<SvgaPlayer className="light" src={RES_PATH + "svga/pop.svga"} />
<span className="title"></span>
{/* <span className="leaves"></span> */}
{/* <span className="bg"></span> */}
<img className="prize_img" src={prizeImg} />
<span className="prize_name">{prizeName}</span>
<img className="prize_img" src={optionImg} />
<span className="prize_name">{optionName}</span>
<Button className="happy_btn md11" onClick={this.jumpPrize}></Button>
<span className="tips">奖品可在首页 我的奖品 中查看</span>
</div>
......
......@@ -14,6 +14,8 @@ import { Button } from "../Button";
import { miniGoUrl } from "@src/utils/share";
import { SvgaPlayer } from "@spark/svgaplayer";
import { RES_PATH } from "../../../sparkrc";
import store from "@src/store";
import { MD5 } from "crypto-js";
@observer
class Taskpop extends React.Component {
......@@ -54,7 +56,15 @@ class Taskpop extends React.Component {
// 按钮点击事件
completeHandle = _throttle(async (item) => {
const { userId } = store.homeInfo || {};
const { code, jumpUrl } = item || {};
const systemTime = Date.now();
const sign = MD5(`${userId}_${code}_${systemTime}_1c5f9cab3460e316`);
const params = {
sign,
taskCode: code,
timestamp: systemTime,
};
if (code.indexOf(TASK_CODE.THIRD_RETAIN) > -1) {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "留资咨询" });
setTimeout(() => {
......@@ -65,14 +75,13 @@ class Taskpop extends React.Component {
modalStore.pushPop("LongImgPop", {
imgUrl: jumpUrl,
taskSucCb: async () => {
const param = { taskCode: code };
await API.doCompleted(param);
await API.doCompleted(params);
},
});
} else if (code.indexOf(TASK_CODE.SIGN) > -1) {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "每日签到" });
} else if (code.indexOf(TASK_CODE.BROWSE_MINI) > -1) {
await API.doCompleted({ taskCode: code });
await API.doCompleted(params);
watchPageVisibility(this.pageVChange);
if (jumpUrl.indexOf("http") === 0) {
setTimeout(() => {
......@@ -86,8 +95,7 @@ class Taskpop extends React.Component {
modalStore.pushPop("Videopop", {
url: jumpUrl,
taskSucCb: async () => {
const param = { taskCode: code };
await API.doCompleted(param);
await API.doCompleted(params);
},
});
}
......@@ -96,7 +104,7 @@ class Taskpop extends React.Component {
/** 任务领奖 */
receiveHandle = _asyncThrottle(async (task) => {
const { success, data } = await API.sendPrize({
taskId: task.id,
// taskId: task.id,
taskCode: task.code,
prizePendingCode: task?.prizePendingCode,
});
......
......@@ -41,11 +41,11 @@ class Drawpage extends React.Component {
};
// 开始抽奖
lottteryHandle = _asyncThrottle(async () => {
const { actPrizeList, remainDrawTimes } = this.state.drawInfo;
lotteryHandle = _asyncThrottle(async () => {
const { optionInfoList, leftDrawTimes } = this.state.drawInfo;
sensorMdClick("activityClick", { pageName: "抽奖页点击", buttonName: "开始抽奖" });
// 无抽奖次数
if (!remainDrawTimes) {
if (!leftDrawTimes) {
return modalStore.pushPop("Drawchancepop", {
refresh: () => this.getDrawInfo(),
});
......@@ -60,7 +60,7 @@ class Drawpage extends React.Component {
this.drawResultInfo = data || {};
// 转盘停止转动,指针停在index
const index = actPrizeList?.findIndex((item) => item.prizeId === this.drawResultInfo.prizeId);
const index = optionInfoList?.findIndex((item) => item.prizeId === this.drawResultInfo.prizeId);
console.info("index", index);
// !important 注意:randomOffset设置为false,这样每次旋转的偏移量就不是随机滴啦
this.turntableRef.braking(index, { immediately: false, randomOffset: false });
......@@ -113,7 +113,7 @@ class Drawpage extends React.Component {
});
});
render() {
const { actPrizeList, remainDrawTimes } = this.state.drawInfo;
const { optionInfoList, leftDrawTimes } = this.state.drawInfo;
return (
<div className="drawpage modal_center">
<span className="beiJing"></span>
......@@ -128,7 +128,7 @@ class Drawpage extends React.Component {
<CircleTurntable
className="turntable_box"
ref={(ref) => (this.turntableRef = ref)}
options={actPrizeList || []}
options={optionInfoList || []}
angleOffset={23} // 角度偏移量
radian={80} // 奖项半径
launchDuration={1000} // 启动时间
......@@ -156,8 +156,8 @@ class Drawpage extends React.Component {
<Button className="rule_btn" onClick={this.ruleHandle}></Button>
<Button className="prize_btn" onClick={this.prizeHandle}></Button>
<Button className="task_btn" onClick={this.taskHandle}></Button>
<div className="draw_btn md10" onClick={this.lottteryHandle}></div>
<span className="left_num">剩余次数:{remainDrawTimes || 0}</span>
<div className="draw_btn md10" onClick={this.lotteryHandle}></div>
<span className="left_num">剩余次数:{leftDrawTimes || 0}</span>
</div>
);
}
......
......@@ -22,7 +22,6 @@ class Homepage extends React.Component {
}
async componentDidMount() {
// modalStore.pushPop("Bindpop");
await store.getHomeInfo();
// 初始化神策埋点 得在首页接口之后 首页接口会打上业务员绑定标记
await store.initSensorsMd();
......@@ -31,8 +30,6 @@ class Homepage extends React.Component {
// 初始化首页分享信息
shareStore.initShareInfo();
// modalStore.pushPop("Bindpop");
sensorMdExpouse("activityPage", { pageName: "端午活动首页", follow_action: 1 });
pageLeave("端午节活动首页点击", 5);
}
......@@ -79,6 +76,7 @@ class Homepage extends React.Component {
});
render() {
const { leftGameTimes, rewardDailyFreeGameTimes } = store.homeInfo || {};
return (
<div className="homepage modal_center">
<span className="bg"></span>
......@@ -90,7 +88,7 @@ class Homepage extends React.Component {
<Button className="task_btn md6" onClick={this.openTask}></Button>
<Button className="draw_btn md4" onClick={this.goDraw}></Button>
<div className="main_btn md5" onClick={this.goTest}></div>
<span className="test_times">剩余次数:{store.homeInfo?.remainAnswerTimes || 0}</span>
<span className="test_times">剩余次数:{leftGameTimes + rewardDailyFreeGameTimes ?? 0}</span>
{/* <span className="title"></span> */}
<SvgaPlayer className="home_svga" src={RES_PATH + "svga/home.svga"} />
{/* <div className="subtitle">
......
import { ACT_STATUS, ACT_STATUS_TOAST, PAGE_MAP, TOPIC_LIST } from '@src/utils/constants';
import { makeAutoObservable } from 'mobx';
import API from '../api/index';
import { ACT_STATUS, ACT_STATUS_TOAST, PAGE_MAP, TOPIC_LIST } from "@src/utils/constants";
import { makeAutoObservable } from "mobx";
import API from "../api/index";
import { GetCurrSkinId, getCustomShareId } from "@src/utils/utils";
import { initSensors } from '@src/utils/sensorMd';
import { Toast } from '@spark/ui';
import {AESDecrypt} from "@src/utils/Crypto";
import { initSensors } from "@src/utils/sensorMd";
import { Toast } from "@spark/ui";
import { AESDecrypt } from "@src/utils/Crypto";
const skinId = GetCurrSkinId() || getCustomShareId();
const store = makeAutoObservable({
/** 活动规则 */
ruleInfo: '',
ruleInfo: "",
/** 前端开发配置 */
frontVariable: {},
/** 当前页面 */
curPage: {
index: PAGE_MAP.HOME_PAGE,
myPrize: PAGE_MAP.PRIZE_PAGE,
// 免登中间页-线上测试
Did1NjA4NjM: PAGE_MAP.MID_PAGE,
// 免登中间页-线上正式
Did1NjA4NzE: PAGE_MAP.MID_PAGE,
}[skinId] || PAGE_MAP.HOME_PAGE,
curPage:
{
index: PAGE_MAP.HOME_PAGE,
myPrize: PAGE_MAP.PRIZE_PAGE,
// 免登中间页-线上测试
Did1NjA4NjM: PAGE_MAP.MID_PAGE,
// 免登中间页-线上正式
Did1NjA4NzE: PAGE_MAP.MID_PAGE,
}[skinId] || PAGE_MAP.HOME_PAGE,
pageData: {},
......@@ -47,21 +48,21 @@ const store = makeAutoObservable({
const resData = data || {};
if (resData.shareInfo) resData.shareInfo = JSON.parse(resData.shareInfo);
this.frontVariable = resData;
console.log('前端开发配置', data)
console.log("前端开发配置", data);
},
/** 首页信息 */
homeInfo: {},
async getHomeInfo() {
let params = {}
const shareCode = getUrlParam("shareCode") && getUrlParam("shareCode") !== 'null' ? getUrlParam("shareCode") : '';
let params = {};
const shareCode = getUrlParam("shareCode") && getUrlParam("shareCode") !== "null" ? getUrlParam("shareCode") : "";
if (shareCode) {
params.shareCode = shareCode
params.shareCode = shareCode;
}
const { success, data, timeStamp } = await API.home(params);
if (success) {
const resData = data || {}
const { startTime, endTime } = resData
const resData = data || {};
const { startTime, endTime } = resData;
if (timeStamp >= startTime && timeStamp < endTime) {
resData._actStatus = ACT_STATUS.ING;
} else if (timeStamp < startTime) {
......@@ -70,18 +71,24 @@ const store = makeAutoObservable({
resData._actStatus = ACT_STATUS.ENDED;
}
this.homeInfo = resData;
console.log('首页数据', this.homeInfo);
console.log("首页数据", this.homeInfo);
}
},
/**
* 校验活动状态
*/
* 校验活动状态
*/
checkActStatus(isSpecial) {
if (this.homeInfo._actStatus && this.homeInfo._actStatus !== ACT_STATUS.ING) {
// 活动已结束:【奖品】、【规则】按钮可点
if (isSpecial && this.homeInfo._actStatus === ACT_STATUS.ENDED) return true;
const { actStartTimestamp, actEndTimestamp, currentTimestamp } = this.homeInfo || {};
// 活动已结束:【奖品】、【规则】按钮可点
if (isSpecial && (actEndTimestamp < currentTimestamp)) return true;
Toast(ACT_STATUS_TOAST[this.homeInfo._actStatus]);
if (actStartTimestamp > currentTimestamp) {
Toast("活动尚未开始");
return false;
}
if (actEndTimestamp < currentTimestamp) {
Toast("活动已经结束");
return false;
}
return true;
......@@ -97,20 +104,20 @@ const store = makeAutoObservable({
}
},
async submitTest(answer) {
let roleId = ''
let roleId = "";
answer.map((item, index) => {
const itemRuleId = store.startInfo.topicList[index]?.options?.[item]?.split("$$$")?.[1]
if (itemRuleId) roleId = itemRuleId
})
this.roleId = roleId
const itemRuleId = store.startInfo.topicList[index]?.options?.[item]?.split("$$$")?.[1];
if (itemRuleId) roleId = itemRuleId;
});
this.roleId = roleId;
const { success, data } = await API.submitAnswer({
chooses: roleId, // 人设Id
startId: this.startInfo.startId
startId: this.startInfo.startId,
});
if (success) {
this.changePage(PAGE_MAP.RESU_PAGE, {
awardTimes: data.awardTimes || 0
})
awardTimes: data.awardTimes || 0,
});
}
},
......@@ -128,5 +135,5 @@ const store = makeAutoObservable({
initSensors(unionId, openId, newEmpNo);
}
},
})
});
export default store;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment