simulation-backend/src/main/java/com/hivekion/room/bean/SupplierTask.java

112 lines
2.8 KiB
Java
Raw Normal View History

2025-09-18 10:47:37 +08:00
package com.hivekion.room.bean;
2025-09-19 13:58:18 +08:00
import cn.hutool.extra.spring.SpringUtil;
import com.hivekion.common.redis.RedisUtil;
2025-09-18 10:47:37 +08:00
import com.hivekion.room.func.TaskAction;
import com.hivekion.scenario.entity.ScenarioTask;
2025-09-19 13:58:18 +08:00
import com.hivekion.statistic.bean.StatisticBean;
import com.hivekion.statistic.service.StatisticService;
2025-09-18 10:47:37 +08:00
/**
* [类的简要说明]
* <p>
* [详细描述可选]
* <p>
*
* @author LiDongYU
* @since 2025/7/22
*/
public class SupplierTask extends AbtParentTask implements TaskAction {
2025-09-19 12:14:09 +08:00
public SupplierTask(ScenarioTask scenarioTask, String roomId) {
super(scenarioTask, roomId);
2025-09-18 10:47:37 +08:00
}
@Override
public void doSomeThing() {
2025-09-19 13:58:18 +08:00
StatisticBean statistic = SpringUtil.getBean(StatisticService.class)
.statistic(scenarioTask.getResourceId());
initPath(); //初始化路径
updatePath(30, new TaskAction() {
@Override
public void doSomeThing() {
//达到终点点后,给目标补充物资
switch (scenarioTask.getTaskType()) {
case "4":
supplierAmmunition(statistic);
break;
case "5":
supplierWater(statistic);
break;
case "6":
supplierFuel(statistic);
break;
case "7":
supplierFood(statistic);
break;
case "8":
supplierMedical(statistic);
break;
}
//推送最新状态信息
}
@Override
public String getId() {
return "";
}
@Override
public String getType() {
return "";
}
});
}
private void supplierMedical(StatisticBean statistic) {
SpringUtil.getBean(RedisUtil.class)
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"medical", statistic.getMedical().getTotal());
}
private void supplierFuel(StatisticBean statistic) {
SpringUtil.getBean(RedisUtil.class)
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"fuel", statistic.getFuel().getTotal());
2025-09-18 10:47:37 +08:00
}
2025-09-19 13:58:18 +08:00
private void supplierAmmunition(StatisticBean statistic) {
SpringUtil.getBean(RedisUtil.class)
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"ammunition", statistic.getAmmunition().getTotal());
}
private void supplierWater(StatisticBean statistic) {
SpringUtil.getBean(RedisUtil.class)
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"water", statistic.getWater().getTotal());
}
private void supplierFood(StatisticBean statistic) {
SpringUtil.getBean(RedisUtil.class)
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"food", statistic.getFood().getTotal());
}
2025-09-18 10:47:37 +08:00
}