import cloud from '@lafjs/cloud' const db = cloud.database(); import Utils from "@/Utils"; export default async function (ctx: FunctionContext) { const action = ctx.body.action; const uid = ctx.body.uid; let dbname ="users"; const gameName=ctx.body.gameName; if(gameName=="iaa"){ dbname ="usersAd"; } if (!action) { return { code: 0, data: null, msg: "未获取到action" }; } if (!uid) { return { code: 0, data: null, msg: "未获取到uid" }; } let data={ freezeAmount:0, hammerAmount:0, magicAmount:0, timestamp:Date.now() } switch (action) { case 'save': let user = await db.collection(dbname).where({ _id: uid }).getOne(); const token = ctx.body.token; if (user.data && user.data.token) { let istoken = Utils.checkToken(token, user.data.token); if (!istoken) { return { code: 0, data: null, msg:"token校验失败"}; } } data.freezeAmount=user.data?.freezeAmount||0; data.hammerAmount=user.data?.hammerAmount||0; data.magicAmount=user.data?.magicAmount||0; let propType = Number(ctx.body.propType); let propData = ctx.body.propData; if (!propType&&propType!=0) { return { code: 0, data: null, msg: "未获取到propType" }; } if (!propData) { return { code: 0, data: null, msg: "未获取到propData" } } if (propType === 2001) { data.freezeAmount = Number(propData); } else if (propType === 2002) { data.hammerAmount = Number(propData); } else if (propType === 2003) { data.magicAmount = Number(propData); } else if (propType === 0) { // 处理 all 类型,从 propData 中分别赋值 propData=JSON.parse(propData); if (propData.freeze) { data.freezeAmount = Number(propData.freeze); } if (propData.hammer) { data.hammerAmount = Number(propData.hammer); } if (propData.magic_wand) { data.magicAmount = Number(propData.magic_wand); } } let ret = await db.collection(dbname).where({ _id: uid }).update(data); return { code: 1, data: { freeze: data.freezeAmount, hammer: data.hammerAmount, magic_wand: data.magicAmount, timestamp:data.timestamp, }, msg: "用户数据更新成功" } case 'read': let res = await db.collection(dbname).where({ _id: uid }).getOne(); 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校验失败" }; } } return { code: 1, data: { freeze: res.data.freezeAmount||0, hammer: res.data.hammerAmount||0, magic_wand: res.data.magicAmount||0, timestamp: res.data.timestamp ||0, }, msg: "成功" } default: return { code: 400, message: '无效的操作类型,请使用 save 或 read' } } }