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