From 5a9ab02b54ca861fd44e63a17a3c1ce6371ad46e Mon Sep 17 00:00:00 2001 From: "DESKTOP-5RP3AKU\\Jisol" <2858626794@qq.com> Date: Tue, 28 Nov 2023 02:38:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/battle/mode/GOnHookManager.ts | 8 +++-- .../game/mode/GOnHookController.java | 13 +++++-- .../service/impl/ResourceServiceImpl.java | 36 ++++++++++++++----- 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/JisolGameCocos/assets/script/manager/battle/mode/GOnHookManager.ts b/JisolGameCocos/assets/script/manager/battle/mode/GOnHookManager.ts index ef5c5d7b..bbf42f5b 100644 --- a/JisolGameCocos/assets/script/manager/battle/mode/GOnHookManager.ts +++ b/JisolGameCocos/assets/script/manager/battle/mode/GOnHookManager.ts @@ -107,11 +107,13 @@ export default class GOnHookManager extends Singleton{ //删除 this.killSreeps.splice(index,1); - //通知添加野怪被删除 app.event.emit(GOnHookManagerEvent.DEL_KILL_SREEP,creeps); - + // //通知添加野怪被删除 + // if(await GAPI.GOnHookSellCreeps(creeps.key)){ + // return true; + // }else{ + // } return await GAPI.GOnHookSellCreeps(creeps.key); - } } diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java index 4e2a8828..51e81297 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java @@ -21,6 +21,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; +import org.springframework.retry.RetryException; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -98,9 +99,17 @@ public class GOnHookController { //找到野怪删除 if(Objects.isNull(creeps = CREEPS.get(player.getPlayerId()))) return NewsResource.onFail("卖出失败",false); - if(Objects.nonNull(creeps.remove(creepId))){ + GOnHookMessage.GOnHookPet onHookPet = creeps.remove(creepId); + if(Objects.nonNull(onHookPet)){ + Resource res; //增加玩家金币 (默认添加100) - Resource res = resourceService.addResourceValue(player.getPlayerId(), ResourceId.Gold.id, 100L); + try{ + res = resourceService.addResourceValue(player.getPlayerId(), ResourceId.Gold.id, 100L); + }catch (RetryException e){ + //出售失败 + creeps.put(creepId,onHookPet); //放回去 + throw new RetryException(""); + } return NewsResource.onSuccess( "卖出成功", true, diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java index 05d6a2e9..d4958ad1 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java @@ -40,17 +40,37 @@ public class ResourceServiceImpl extends ServiceImpl i res = this.initResource(playerId,type); } - //添加资源 - res.setResourceValue(res.getResourceValue() + value); + if(value > 0){ - if(res.getResourceValue() <= 0){ - return null; + //如果是累加 则 执行累加sql + if(this.update( + Wrappers.lambdaUpdate(Resource.class) + .eq(Resource::getPlayerId, playerId) //玩家 + .eq(Resource::getResourceTbId, type) //资源 + .setSql("resource_value = resource_value + "+value) + )){ + //添加资源 + res.setResourceValue(res.getResourceValue() + value); + return res; + }else{ + throw new RetryException(""); + } + + }else{ + + //添加资源 + res.setResourceValue(res.getResourceValue() + value); + + if(res.getResourceValue() <= 0){ + return null; + } + + //保存资源 (保存失败重试) + if (!this.saveOrUpdate(res)) throw new RetryException(""); + + return res; } - //保存资源 (保存失败重试) - if (!this.saveOrUpdate(res)) throw new RetryException(""); - - return res; } //初始化某个资源