master_ob2
PC-202302260912\Administrator 2023-08-07 16:09:00 +08:00
parent d909a31e20
commit 6d8b910c28
2 changed files with 29 additions and 5 deletions

View File

@ -1,6 +1,7 @@
{
"version":"7",
"version":"8",
"classes":[
{"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"}
{"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"},
{"name":"StoreLogic.class","fullName":"com.ljsd.jieling.logic.store.StoreLogic"}
]
}

View File

@ -656,9 +656,9 @@ public class StoreLogic {
if(relatedtoVIP == 1){
if(limit == 6){
int goodsNum = sStoreConfig.getGoods()[0][1]*itemNum;
check = PlayerLogic.getInstance().check(user,limit, goodsNum);
check = PlayerLogic.getInstance().check(user, limit, goodsNum);
}else{
check = PlayerLogic.getInstance().check(user,limit, itemNum);
check = PlayerLogic.getInstance().check(user, limit, itemNum);
}
}else{
check = limit > buyTimes;
@ -700,12 +700,23 @@ public class StoreLogic {
StoreInfo storeInfo = storeInfoMap.get(storeId);
Map<Integer, Integer> itemNumMap = storeInfo.getItemNumMap();
int buyTimes = itemNumMap.get(itemId);
// 校验道具小孩
// 校验道具消耗
int[][] cost = getCost(buyTimes ,itemNum, sStoreConfig.getCost(), sStoreConfig.getPremiumType(),sStoreConfig.getIsDiscount(),sStoreConfig.getDiscountDegree());
boolean result = ItemUtil.itemCost(user, cost, BIReason.BUY_GOODS_CONSUME, storeId);
if (!result){
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
// 特权处理
int relatedtoVIP = sStoreConfig.getRelatedtoVIP();
int vipId = sStoreConfig.getLimit();
if(relatedtoVIP == 1 && vipId != 0){
int num = itemNum;
if(vipId == 6){
num = sStoreConfig.getGoods()[0][1]*itemNum;
}
PlayerLogic.getInstance().checkAndUpdate(user, vipId, num);
}
itemNumMap.put(itemId,buyTimes + itemNum);
storeInfo.setItemNumMap(itemNumMap);
KtEventUtils.onKtEvent(user, ParamEventBean.UserStoreEvent,storeId,itemId,cost[0][0],itemNum,cost[0][1]);
@ -948,6 +959,7 @@ public class StoreLogic {
Map<Integer, Integer> itemNumMap = storeInfo.getItemNumMap();
ArrayList<int[][]> list = new ArrayList<>();
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()) {
// 道具消耗
Integer id = entry.getKey();
Integer num = entry.getValue();
int buyTimes = itemNumMap.get(id);
@ -955,6 +967,17 @@ public class StoreLogic {
int[][] cost = getCost(buyTimes ,num, sStoreConfig.getCost(), sStoreConfig.getPremiumType(),sStoreConfig.getIsDiscount(),sStoreConfig.getDiscountDegree());
list.add(cost);
itemNumMap.put(id,buyTimes + num);
// 特权处理
int relatedtoVIP = sStoreConfig.getRelatedtoVIP();
int vipId = sStoreConfig.getLimit();
if(relatedtoVIP == 1 && vipId != 0){
int vipNum = num;
if(vipId == 6){
vipNum = sStoreConfig.getGoods()[0][1]*num;
}
PlayerLogic.getInstance().checkAndUpdate(user, vipId, vipNum);
}
}
// 消耗并存储
ItemUtil.itemCost(user, list, BIReason.BUY_GOODS_CONSUME, 0);