diff --git a/pom.xml b/pom.xml index 5de3ef9..12b9faa 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,18 @@ mysql-connector-java 5.1.47 - + + io.lettuce + lettuce-core + 6.2.4.RELEASE + + + org.apache.commons + commons-pool2 + 2.12.0 + + + @@ -179,6 +190,11 @@ org.springframework.boot spring-boot-starter-data-redis + + io.lettuce + lettuce-core + 6.2.4.RELEASE + com.baomidou dynamic-datasource-spring-boot-starter diff --git a/src/main/java/com/hivekion/room/bean/BattleRootTask.java b/src/main/java/com/hivekion/room/bean/BattleRootTask.java index 7170479..b14dae1 100644 --- a/src/main/java/com/hivekion/room/bean/BattleRootTask.java +++ b/src/main/java/com/hivekion/room/bean/BattleRootTask.java @@ -2,6 +2,7 @@ package com.hivekion.room.bean; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.hivekion.Global; import com.hivekion.common.entity.ResponseCmdInfo; @@ -41,8 +42,8 @@ public class BattleRootTask extends AbtParentTask { private ISupplierRequestService supplierRequestService; - private static final Double TEAM_SPREED = 1.2D; - private static final Double PERSON_SPREED = 3D; + private static final Integer DEATH_SPREED = 3; + private static final Integer INJURED_SPREED = 3; private static final Double AMMUNITION_SPREED = 2.6D; private static final Double FOOD_SPREED = 2.3D; private static final Double WATER_SPREED = 3.6D; @@ -84,30 +85,33 @@ public class BattleRootTask extends AbtParentTask { // statisticBean.getAmmunition().getCurrent() //初始化本次战斗任务各种资源数 - battleParams.put("ammunition",Double.valueOf(statisticBean.getAmmunition().getCurrent()).toString()); battleParams.put("food",Double.valueOf(statisticBean.getFood().getCurrent()).toString()); battleParams.put("fuel",Double.valueOf(statisticBean.getFuel().getCurrent()).toString()); battleParams.put("medical",Double.valueOf(statisticBean.getMedical().getCurrent()).toString()); battleParams.put("water",Double.valueOf(statisticBean.getWater().getCurrent()).toString()); - battleParams.put("person",Double.valueOf(statisticBean.getPerson().getCurrent()).toString()); + battleParams.put("death",Double.valueOf(statisticBean.getPerson().getDeath()).toString()); + battleParams.put("injured",Double.valueOf(statisticBean.getPerson().getInjured()).toString()); battleParams.put("teamLat",statisticBean.getTeam().getLat().toString()); battleParams.put("teamLng",statisticBean.getTeam().getLng().toString()); battleParams.put("duringTime",Long.valueOf(initDuringTime).toString()); redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),battleParams); log.info("===============================初始化本次战斗任务各种资源数===================================="); double suppleAmount =statisticBean.getAmmunition().getTotal(); - double supplePerson =statisticBean.getPerson().getTotal(); + int suppleDeath =statisticBean.getPerson().getDeath(); + int suppleInjured =statisticBean.getPerson().getInjured(); final Map suppleFlagMap = new HashMap<>(); suppleFlagMap.put("ammunition",false); - suppleFlagMap.put("person",false); + suppleFlagMap.put("death",false); + suppleFlagMap.put("injured",false); //定时检查统计各种资源消耗量 this.createBattleTaskOnTimingHandle(new BizTaskOnTiming() { @Override public void execTask() { log.info("===============================定时检查统计各种资源消耗量 begin===================================="); - Double personConsume = null; + Long deathConsume = null; + Long injuredConsume = null; Double ammunitionConsume = null; Double foodConsume = null; Double waterConsume = null; @@ -126,11 +130,13 @@ public class BattleRootTask extends AbtParentTask { double fuel = Double.valueOf(battleParams.get("fuel").toString()); double medical = Double.valueOf(battleParams.get("medical").toString()); double water = Double.valueOf(battleParams.get("water").toString()); - double person = Double.valueOf(battleParams.get("person").toString()); + long death = Long.valueOf(battleParams.get("death").toString()); + long injured = Long.valueOf(battleParams.get("injured").toString()); teamLat = battleParams.get( "teamLat").toString(); teamLng = battleParams.get( "teamLng").toString(); // - personConsume = intervalDuringTime * PERSON_SPREED; + deathConsume = DEATH_SPREED * intervalDuringTime; + injuredConsume = INJURED_SPREED * intervalDuringTime; ammunitionConsume = intervalDuringTime * AMMUNITION_SPREED; foodConsume = intervalDuringTime * FOOD_SPREED; waterConsume = intervalDuringTime * WATER_SPREED; @@ -142,7 +148,8 @@ public class BattleRootTask extends AbtParentTask { battleParams.put("fuel",Double.valueOf(fuel - fuelConsume).toString()); battleParams.put("medical",Double.valueOf(medical - medicalConsume).toString()); battleParams.put("water",Double.valueOf(water - waterConsume).toString()); - battleParams.put("person",Double.valueOf(person - personConsume).toString()); + battleParams.put("death",Long.valueOf(death - deathConsume).toString()); + battleParams.put("injured",Long.valueOf(injured - injuredConsume).toString()); battleParams.put("duringTime",Long.valueOf(duringTime).toString()); redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), battleParams); }catch (Exception ex){ @@ -151,7 +158,8 @@ public class BattleRootTask extends AbtParentTask { try { //推送消耗數據 ResponseCmdInfo sendConsumeMsg = new ResponseCmdInfo<>(); - jsonObject.put("personConsume", personConsume); + jsonObject.put("deathConsume", deathConsume); + jsonObject.put("injuredConsume", injuredConsume); jsonObject.put("ammunitionConsume", ammunitionConsume); jsonObject.put("foodConsume", foodConsume); jsonObject.put("waterConsume", waterConsume); @@ -167,9 +175,10 @@ public class BattleRootTask extends AbtParentTask { try { LocalDateTime currentDateTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); - String person = SpringUtil.getBean(Environment.class).getProperty("battle.person.warn"); + String death = SpringUtil.getBean(Environment.class).getProperty("battle.death.warn"); + String injured = SpringUtil.getBean(Environment.class).getProperty("battle.injured.warn"); String ammunition = SpringUtil.getBean(Environment.class).getProperty("battle.ammunition.warn"); - log.info("===========person ammunition======={}====={}========",person,ammunition); + log.info("===========person ammunition==={}===={}====={}========",death,injured,ammunition); // String food = SpringUtil.getBean(Environment.class).getProperty("battle.food.warn"); // String water = SpringUtil.getBean(Environment.class).getProperty("battle.water.warn"); // String fuel = SpringUtil.getBean(Environment.class).getProperty("battle.fuel.warn"); @@ -180,7 +189,7 @@ public class BattleRootTask extends AbtParentTask { SupplierRequest supplierRequest = new SupplierRequest(); supplierRequest.setId(IdUtils.simpleUUID()); supplierRequest.setFromResourceId(scenarioTask.getResourceId()); - supplierRequest.setSupplierNum(suppleAmount); + supplierRequest.setSupplierNum(String.valueOf(suppleAmount)); supplierRequest.setSupplierType("ammunition"); supplierRequest.setGeneralTime(currentDateTime); supplierRequest.setLat(jsonObject.get("teamLat").toString()); @@ -188,17 +197,29 @@ public class BattleRootTask extends AbtParentTask { supplierRequestService.save(supplierRequest); suppleFlagMap.put("ammunition",true) ; } - if(Double.valueOf(battleParams.get("person").toString()) <= Double.valueOf(person) && suppleFlagMap.get("person") == false){ + if(Long.valueOf(battleParams.get("death").toString()) <= Long.valueOf(death) && suppleFlagMap.get("death") == false){ SupplierRequest supplierRequest = new SupplierRequest(); supplierRequest.setId(IdUtils.simpleUUID()); supplierRequest.setFromResourceId(scenarioTask.getResourceId()); - supplierRequest.setSupplierNum(supplePerson); - supplierRequest.setSupplierType("person"); + supplierRequest.setSupplierNum(String.valueOf(suppleDeath)); + supplierRequest.setSupplierType("death"); supplierRequest.setGeneralTime(currentDateTime); supplierRequest.setLat(jsonObject.get("teamLat").toString()); supplierRequest.setLng(jsonObject.get("teamLng").toString()); supplierRequestService.save(supplierRequest); - suppleFlagMap.put("person",true) ; + suppleFlagMap.put("death",true) ; + } + if(Long.valueOf(battleParams.get("injured").toString()) <= Long.valueOf(injured) && suppleFlagMap.get("injured") == false){ + SupplierRequest supplierRequest = new SupplierRequest(); + supplierRequest.setId(IdUtils.simpleUUID()); + supplierRequest.setFromResourceId(scenarioTask.getResourceId()); + supplierRequest.setSupplierNum(String.valueOf(suppleInjured)); + supplierRequest.setSupplierType("injured"); + supplierRequest.setGeneralTime(currentDateTime); + supplierRequest.setLat(jsonObject.get("teamLat").toString()); + supplierRequest.setLng(jsonObject.get("teamLng").toString()); + supplierRequestService.save(supplierRequest); + suppleFlagMap.put("injured",true) ; } }catch (Exception ex){ ex.printStackTrace(); diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 524fbd0..3b749cf 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -6,11 +6,18 @@ spring.datasource.dynamic.datasource.dm.username=simulation spring.datasource.dynamic.datasource.dm.password=Simulation001 spring.redis.database=0 -spring.redis.host=127.0.0.1 +spring.redis.host=192.168.0.53 spring.redis.port=6379 -spring.redis.jedis.pool.max-idle=10 #spring.redis.password=123 spring.redis.timeout=5000 +spring.redis.lettuce.shutdown-timeout=5000 +#spring.redis.lettuce.timeout=5000 +spring.redis.lettuce.pool.max-active=8 +spring.redis.lettuce.pool.max-idle=8 +spring.redis.lettuce.pool.min-idle=0 +spring.redis.lettuce.pool.max-wait=2000ms +spring.redis.lettuce.pool.timeout=5000ms # ִгʱ +spring.redis.lettuce.pool.connect-timeout=10000ms # ӽʱ server.port=8099 diff --git a/src/main/resources/application-rule.properties b/src/main/resources/application-rule.properties index 094db2a..853a04d 100644 --- a/src/main/resources/application-rule.properties +++ b/src/main/resources/application-rule.properties @@ -1,6 +1,14 @@ -battle.person.warn = 2 -battle.ammunition.warn = 3 -battle.food.warn = 3 -battle.water.warn = 3 -battle.fuel.warn = 2 -battle.medical.warn = 1 \ No newline at end of file +injured.warn = 20 +death.warn = 10 +ammunition.warn = 3 +food.warn = 3 +water.warn = 3 +fuel.warn = 2 +medical.warn = 1 +death.spreed = 3; +injured.spreed = 3; +ammunition_spreed = 2.6; +food_spreed = 2.3; +water_spreed = 3.6; +fuel_spreed = 3.6; +medical_spreed = 1.6; \ No newline at end of file