server/laf-cloud/functions/redeem.ts
2026-09-01 16:04:15 +08:00

105 lines
2.9 KiB
TypeScript

import cloud from '@lafjs/cloud'
const db = cloud.database();
import Utils from "@/Utils";
const CDKreward = {
wucaixiaoxiaole666: {
1001: 1000,
2001: 1,
2002: 1,
2003: 1,
}
}
export default async function (ctx: FunctionContext) {
let uid = ctx.body.uid;
if (!uid) {
return { code: 0, data: null, msg: "参数错误" };
}
let cdk = ctx.body.cdk;
if (!cdk) {
return { code: 0, data: null, msg: "未获取到cdk" }
}
cdk = cdk.toLowerCase();
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 redeem = res.data.redeem || [];
if (redeem.includes(cdk)) {
return { code: 0, data: null, msg: "已获取奖励" };
}
if (cdk.length == 5) {
let infos = await db.collection("cdk").where({ code: cdk }).getOne();
if (infos.data == null) {
return { code: 0, data: null, msg: "cdk无效" }
}
let start = new Date(infos.data.start).getTime() - 8 * 3600000;
if (Date.now() < start) {
return { code: 0, data: null, msg: "活动未开始" }
}
let end = new Date(infos.data.end_time).getTime() - 8 * 3600000;
if (Date.now() > end) {
return { code: 0, data: null, msg: "活动已结束" }
}
redeem.push(cdk);
db.collection(dbname).where({ _id: uid }).update({ redeem: redeem });
return {
code: 1, data: {
reward: {
2001: 1,
2002: 1,
2003: 1,
}
}, msg: "可以购买"
};
}
let info = await db.collection("idcount").where({ _id: "69fac04fb4d89b170da4bf64" }).getOne();
let count = info.data.count;
if (count.includes(cdk)) {
let index = count.indexOf(cdk);
count.splice(index, 1);
redeem.push(cdk);
db.collection(dbname).where({ _id: uid }).update({ redeem: redeem });
await db.collection("idcount").where({ _id: "69fac04fb4d89b170da4bf64" }).update({ count: count });
let money = 600;
let num = 1;
if (cdk.length == 6) {
money = 1500;
num = 3;
} else if (cdk.length == 8) {
money = 600;
num = 1;
}
return {
code: 1, data: {
reward: {
1001: money,
2001: num,
2002: num,
2003: num,
}
}, msg: "可以购买"
};
} else {
let reward = CDKreward[cdk];
if (!reward) {
return { code: 0, data: null, msg: "未获取到奖励信息" };
}
redeem.push(cdk);
db.collection(dbname).where({ _id: uid }).update({ redeem: redeem });
return { code: 1, data: { reward: reward }, msg: "可以购买" };
}
}