41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import HQJGFun from "./fun";
|
|
import { ApiCall } from "tsrpc";
|
|
import { PlayerFun } from "../../../public/player";
|
|
import { ReqDuiHuan, ResDuiHuan } from "../../../shared/protocols/event/huangqijiuguan/PtlDuiHuan";
|
|
|
|
|
|
|
|
export default async function (call: ApiCall<ReqDuiHuan, ResDuiHuan>) {
|
|
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
|
|
if (!hd || Object.keys(hd).length <= 0) {
|
|
// 无此活动
|
|
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
|
|
}
|
|
|
|
let need = [];
|
|
let prize = [];
|
|
let mydata = await HQJGFun.getMydata(call, call.req.hdid);
|
|
for (let id in call.req.dh) {
|
|
let con = hd.data.duihuan.filter(x => x.id == Number(id))[0];
|
|
|
|
if ((mydata.duihuan[id] || 0) + call.req.dh[id] > con.buyNum) {
|
|
return call.error("", { code: -2, message: globalThis.lng.hqjgtips_28 })
|
|
}
|
|
|
|
for (let i = 0; i < call.req.dh[id]; i++) {
|
|
need.push(...con.need);
|
|
prize.push(...con.prize);
|
|
}
|
|
|
|
mydata.duihuan[id] = (mydata.duihuan[id] || 0) + call.req.dh[id];
|
|
}
|
|
|
|
// 检查消耗
|
|
await PlayerFun.checkNeedIsMeet(call, need);
|
|
// 发送奖励
|
|
await PlayerFun.sendPrize(call, prize);
|
|
// 记录兑换次数
|
|
await HQJGFun.setMyData(call.uid, hd.hdid, { duihuan: mydata.duihuan });
|
|
|
|
call.succ({ prize: prize, data: mydata })
|
|
} |