81 lines
2.1 KiB
TypeScript
81 lines
2.1 KiB
TypeScript
import cloud from '@lafjs/cloud'
|
|
const db = cloud.database();
|
|
import Utils from "@/Utils";
|
|
const taskTarget = {
|
|
levelPass: 3,
|
|
share: 1,
|
|
useEnergy: 10,
|
|
useProp: 3,
|
|
}
|
|
export default async function (ctx: FunctionContext) {
|
|
const uid = ctx.body.uid;
|
|
const taskType= JSON.parse(ctx.body.taskType);
|
|
if (!uid) {
|
|
return { code: 0, data: null, msg: "未获取到uid" };
|
|
}
|
|
if(!taskType){
|
|
return { code: 0, data:null, msg:"未获取到taskType"}
|
|
}
|
|
let dbname = "users";
|
|
const gameName = ctx.body.gameName;
|
|
if (gameName == "iaa") {
|
|
dbname = "usersAd";
|
|
}
|
|
let res = await db.collection(dbname).where({ _id: uid }).getOne();
|
|
if (res.data == null) {
|
|
return { code: 0, data: null, msg: "未获取到用户信息" };
|
|
}
|
|
const token1 = ctx.body.token;
|
|
if (res.data && res.data.token) {
|
|
let istoken = Utils.checkToken(token1, res.data.token);
|
|
if (!istoken) {
|
|
return { code: 0, data: null, msg: "token校验失败" };
|
|
}
|
|
}
|
|
let task = res.data.task;
|
|
if (task) {
|
|
task = JSON.parse(task);
|
|
} else {
|
|
task = {
|
|
levelPass: {
|
|
value: 0,
|
|
state: 0,
|
|
},
|
|
share: {
|
|
value: 0,
|
|
state: 0,
|
|
},
|
|
useEnergy: {
|
|
value: 0,
|
|
state: 0,
|
|
},
|
|
useProp: {
|
|
value: 0,
|
|
state: 0,
|
|
}
|
|
}
|
|
}
|
|
for (var key in task) {
|
|
task[key].target = taskTarget[key];
|
|
}
|
|
for( let i=0;i<taskType.length;i++){
|
|
if (!task[taskType[i]]) {
|
|
return { code: 0, data: null, msg: "请输入正确task类型" };
|
|
}
|
|
if (task[taskType[i]].value < task[taskType[i]].target) {
|
|
return { code: 0, data: null, msg: "请先完成任务" };
|
|
}
|
|
if (task[taskType[i]].state == 2) {
|
|
return { code: 0, data: null, msg: "不能重复领取奖励" };
|
|
}
|
|
task[taskType[i]].state = 2;
|
|
}
|
|
|
|
let data = {
|
|
task:task,
|
|
taskTime: Date.now() + 8 * 3600000
|
|
}
|
|
await db.collection(dbname).where({ _id: uid }).update({ task: JSON.stringify(task), taskTime: Date.now() + 8 * 3600000 });
|
|
return {code:1,data:data,msg:"领取成功"};
|
|
}
|