cb/server/laf-cloud/functions/getTaskReward.ts
2026-07-02 11:22:24 +08:00

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