商店: 修复消耗

This commit is contained in:
luying
2021-03-31 21:01:12 +08:00
parent 481d5b98f7
commit 612c8263eb
11 changed files with 168 additions and 119 deletions
@@ -112,6 +112,7 @@ export class RaceActivityHandler {
let events = obj.getEvents(guildCode, woodenHorse.distance);
let hasJoin = obj.hasJoin(guildCode, roleId);
let items = obj.getItem(roleId);
let woodenHorseList = await getWoodenHorseList(guildCode, serverId);
@@ -119,7 +120,8 @@ export class RaceActivityHandler {
...statusResult,
hasJoin,
woodenHorseList,
events
events,
items
});
}
@@ -144,7 +146,7 @@ export class RaceActivityHandler {
return resResult(STATUS.SUCCESS, {
timestamp: Date.now(),
event: obj.getEvents(guildCode, 0)
events: obj.getEvents(guildCode, 0)
});
}
@@ -10,6 +10,7 @@ import { handleCost, addItems } from "../../../services/rewardService";
import { GuildModel } from "../../../db/Guild";
import { SHOP } from "../../../pubUtils/dicParam";
import { getHonourObject } from "../../../pubUtils/itemUtils";
import { HeroModel } from "../../../db/Hero";
export default function(app: Application) {
return new ShopHandler(app);
@@ -94,6 +95,13 @@ export class ShopHandler {
}
}
let goodsId = dicShopItem.goodid;
let skinInfo = gameData.fashion.get(goodsId);
if (skinInfo) {
let hero = await HeroModel.findByHidAndRole(skinInfo.actorId, roleId);
if(!hero) return resResult(STATUS.SKIN_HAS_NOT_HERO);
}
let dbShop = await DicShopListModel.findByShopId(dicShopItem.shop);
let discount = 1;
@@ -105,8 +113,10 @@ export class ShopHandler {
}
let userShop = await UserShopModel.findByRoleAndItem(roleId, dicShopItem.id);
if(userShop && userShop.count + count > dicShopItem.purchaseLimit) {
return resResult(STATUS.BUY_COUNT_OVER);
if(dicShopItem.purchaseLimit != -1) {
if(userShop && userShop.count + count > dicShopItem.purchaseLimit) {
return resResult(STATUS.BUY_COUNT_OVER);
}
}
// 消耗
@@ -184,4 +194,12 @@ export class ShopHandler {
await DicShopListModel.createShop(dic.shop, true, { id, order: index--, discount: 1 })
}
}
// !测试接口。 去除限购次数
async clearPurchaseLimit(msg: { goodsId: number, count: number }, session: BackendSession) {
let roleId = session.get('roleId');
await UserShopModel.deleteAccount(roleId);
return resResult(STATUS.SUCCESS);
}
}
@@ -158,6 +158,7 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
let skinInfos = [];
let addSkinIds = [];
for (let skinId of skins) {//皮肤推送
let result = await addSkins(roleId, skinId);
if (!!result) {