34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import cloud from "@lafjs/cloud";
|
|
import Utils from "@/Utils";
|
|
import { mergeClientProgress, refreshTaskData } from "@/dailyTaskService";
|
|
|
|
const db = cloud.database();
|
|
|
|
export default async function (ctx: FunctionContext) {
|
|
const action = ctx.body.action;
|
|
const uid = ctx.body.uid;
|
|
if (action !== "read" && action !== "save") return { code: 400, data: null, msg: "无效的操作类型,请使用 save 或 read" };
|
|
if (!uid) return { code: 0, data: null, msg: "未获取到uid" };
|
|
|
|
const dbname = ctx.body.gameName === "iaa" ? "usersAd" : "users";
|
|
const result = await db.collection(dbname).where({ _id: uid }).getOne();
|
|
if (!result.data) return { code: 0, data: null, msg: "未获取到用户信息" };
|
|
if (result.data.token && !Utils.checkToken(ctx.body.token, result.data.token)) {
|
|
return { code: 0, data: null, msg: "token校验失败" };
|
|
}
|
|
|
|
const refreshed = refreshTaskData(result.data.task, uid, Number(result.data.levelAmount) + 1 || 1);
|
|
if (action === "save") {
|
|
if (!ctx.body.task) return { code: 0, data: null, msg: "请输入task数据" };
|
|
mergeClientProgress(refreshed.data, ctx.body.task);
|
|
}
|
|
|
|
if (refreshed.changed || action === "save") {
|
|
await db.collection(dbname).where({ _id: uid }).update({
|
|
task: JSON.stringify(refreshed.data),
|
|
taskTime: Date.now(),
|
|
});
|
|
}
|
|
return { code: 1, data: { task: refreshed.data }, msg: action === "save" ? "用户数据更新成功" : "成功" };
|
|
}
|