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

101 lines
2.8 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:"694e064b35004ffb5aba0dc6"}).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: "694e064b35004ffb5aba0dc6" }).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: "可以购买" };
}
}