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: "领取成功" }; }