websocket接收msg

This commit is contained in:
wangwenhua 2025-09-20 09:16:27 +08:00
parent 6a117c0a79
commit 41e82f91c1
10 changed files with 104 additions and 10 deletions

View File

@ -227,11 +227,15 @@ public class BattleRootTask extends AbtParentTask {
respObj.setData(JSON.toJSONString(supplierRequest));
respObj.setRoom(roomId);
respObj.setScenarioId(scenarioTask.getScenarioId());
respObj.setCmdType("");
Global.sendCmdInfoQueue.add(respObj);
suppleFlagMap.put("ammunition",true) ;
}
Long restDeath = Long.valueOf(battleConsumeMap.get("death").toString());
Long deathConsumeRate = restDeath*100/battleResourceStat.getPerson().getTotal();
Long deathConsumeRate = 0L;
if(battleResourceStat.getPerson().getTotal() !=0) {
deathConsumeRate = restDeath * 100 / battleResourceStat.getPerson().getTotal();
}
if(deathConsumeRate >= Long.valueOf(death) && suppleFlagMap.get("death") == false){
SupplierRequest supplierRequest = new SupplierRequest();
supplierRequest.setId(IdUtils.simpleUUID());

View File

@ -0,0 +1,24 @@
package com.hivekion.scenario.bean;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
@Data
public class BattleSuppleVo implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String battleResourceId;
private String supplierResourceId;
private String supplierResourceName;
private String battleResourceName;
}

View File

@ -1,16 +1,21 @@
package com.hivekion.scenario.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hivekion.common.entity.ResponseData;
import com.hivekion.common.uuid.IdUtils;
import com.hivekion.scenario.bean.BattleSuppleVo;
import com.hivekion.scenario.entity.BattleSupplier;
import com.hivekion.scenario.entity.ScenarioResource;
import com.hivekion.scenario.service.IBattleSupplierService;
import com.hivekion.scenario.service.ScenarioResourceService;
import com.hivekion.team.entity.Teaminfo;
import com.hivekion.team.service.ITeaminfoService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@ -42,7 +47,10 @@ public class BattleSupplierController {
public ResponseData<Void> save(@RequestBody BattleSupplier battleSupplier) {
if (battleSupplier.getId() == null) {
battleSupplier.setId(IdUtils.simpleUUID());
battleSupplierService.save(battleSupplier);
BattleSupplier tmp = battleSupplierService.getOne(new QueryWrapper<BattleSupplier>().eq("BATTLE_RESOURCE_ID",battleSupplier.getBattleResourceId()).or().eq("SUPPLIER_RESOURCE_ID",battleSupplier.getSupplierResourceId()));
if(Objects.isNull(tmp)) {
battleSupplierService.save(battleSupplier);
}
} else {
battleSupplierService.updateById(battleSupplier);
}
@ -56,20 +64,24 @@ public class BattleSupplierController {
}
@GetMapping("/list")
public ResponseData<List<BattleSupplier>> list(String supplierId) {
public ResponseData<List<BattleSuppleVo>> list(String supplierId) {
Map<Integer, Teaminfo> map = teamInfoService.teamInfoMap();
Map<String, ScenarioResource> resourceMap = resourceService.resourceMap();
QueryWrapper<BattleSupplier> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("supplier_resource_id", supplierId);
List<BattleSupplier> list = battleSupplierService.list(queryWrapper);
List<BattleSuppleVo> qryList = new ArrayList<>();
list.forEach(item -> {
BattleSuppleVo battleSuppleVo = new BattleSuppleVo();
BeanUtil.copyProperties(item,battleSuppleVo);
if (resourceMap.get(item.getBattleResourceId()) != null) {
ScenarioResource resource = resourceMap.get(item.getBattleResourceId());
if (map.get(resource.getResourceId()) != null) {
item.setSupplierResourceName(map.get(resource.getResourceId()).getName());
battleSuppleVo.setSupplierResourceName(map.get(resource.getResourceId()).getName());
}
}
qryList.add(battleSuppleVo);
});
return ResponseData.success(list);
return ResponseData.success(qryList);
}
}

View File

@ -48,6 +48,7 @@ public class BattleConsume implements Serializable {
private String lng;
@TableField(value="CONSUME_DATE")
private LocalDateTime consumeDate;
public String getId() {

View File

@ -29,6 +29,5 @@ public class BattleSupplier implements Serializable {
@TableField(value = "supplier_resource_id")
private String supplierResourceId;
private String supplierResourceName;
}

View File

@ -1,7 +1,11 @@
package com.hivekion.statistic.bean;
import com.hivekion.scenario.bean.BattleSuppleVo;
import com.hivekion.scenario.entity.BattleSupplier;
import lombok.Data;
import java.util.List;
/**
* [类的简要说明]
* <p>
@ -26,4 +30,6 @@ public class StatisticBean {
//药材
private MedicalInfo medical = new MedicalInfo();
private String status = "init";
private List<BattleSuppleVo> battleSuppliers;
}

View File

@ -23,7 +23,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Component
@Component("WebsocketScenarioService")
public class ScenarioServiceImpl implements ScenarioService {
@Resource
@ -65,7 +65,7 @@ public class ScenarioServiceImpl implements ScenarioService {
scenarioTask.setResourceId(resourceId);
List<ScenarioTask> scenarioTasks = scenarioTaskService.queryTaskList(scenarioTask);
List<SupplierRequest> supplierRequests = supplierRequestService.list(new QueryWrapper<SupplierRequest>().eq("resource_id",resourceId));
List<SupplierRequest> supplierRequests = supplierRequestService.list(new QueryWrapper<SupplierRequest>().eq("FROM_RESOURCE_ID",resourceId));
ScenarioInfo scenarioInfo = new ScenarioInfo();
scenarioInfo.setScenarioTasks(scenarioTasks);
scenarioInfo.setStaffList(staffList);

View File

@ -1,22 +1,32 @@
package com.hivekion.statistic.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hivekion.baseData.entity.Fightpowerstaff;
import com.hivekion.baseData.entity.OrgSupplier;
import com.hivekion.baseData.service.FightpowerstaffService;
import com.hivekion.baseData.service.OrgSupplierService;
import com.hivekion.scenario.bean.BattleSuppleVo;
import com.hivekion.scenario.entity.BattleSupplier;
import com.hivekion.scenario.entity.ScenarioOrgPost;
import com.hivekion.scenario.entity.ScenarioResource;
import com.hivekion.scenario.service.IBattleSupplierService;
import com.hivekion.scenario.service.IScenarioOrgPostService;
import com.hivekion.scenario.service.ScenarioResourceService;
import com.hivekion.statistic.bean.StatisticBean;
import com.hivekion.statistic.service.StatisticService;
import com.hivekion.supplier.entity.SuppliesDict;
import com.hivekion.supplier.service.SuppliesDictService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.hivekion.team.entity.Teaminfo;
import com.hivekion.team.service.ITeaminfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -43,6 +53,17 @@ public class StatisticServiceImpl implements StatisticService {
private IScenarioOrgPostService scenarioOrgPostService;
@Resource
private FightpowerstaffService fightpowerstaffService;
@Resource
private IBattleSupplierService battleSupplierService;
@Resource
private ITeaminfoService teamInfoService;
@Resource
private ScenarioResourceService resourceService;
@Override
public StatisticBean statistic(String resourceId) {
StatisticBean statisticBean = new StatisticBean();
@ -51,7 +72,33 @@ public class StatisticServiceImpl implements StatisticService {
if(resourceInstance == null){
return statisticBean;
}
Map<Integer, Teaminfo> map = teamInfoService.teamInfoMap();
Map<String, ScenarioResource> resourceMap = resourceService.resourceMap();
List<BattleSupplier> battleSuppliers = battleSupplierService.list(new QueryWrapper<BattleSupplier>()
.eq("BATTLE_RESOURCE_ID",resourceId).or().eq("SUPPLIER_RESOURCE_ID",resourceId));
if(CollectionUtil.isEmpty(battleSuppliers)) {
battleSuppliers = new ArrayList<>();
}
List<BattleSuppleVo> qryList = new ArrayList<>();
battleSuppliers.stream().forEach(battleSupplier -> {
BattleSuppleVo battleSuppleVo = new BattleSuppleVo();
BeanUtil.copyProperties(battleSupplier,battleSuppleVo);
if (resourceMap.get(battleSupplier.getBattleResourceId()) != null) {
ScenarioResource resource = resourceMap.get(battleSupplier.getBattleResourceId());
if (map.get(resource.getResourceId()) != null) {
battleSuppleVo.setBattleResourceName(map.get(resource.getResourceId()).getName());
}
}
if (resourceMap.get(battleSupplier.getSupplierResourceId()) != null) {
ScenarioResource resource = resourceMap.get(battleSupplier.getSupplierResourceId());
if (map.get(resource.getResourceId()) != null) {
battleSuppleVo.setSupplierResourceName(map.get(resource.getResourceId()).getName());
}
}
qryList.add(battleSuppleVo);
});
statisticBean.setBattleSuppliers(qryList);
statisticBean.getTeam().setType(resourceInstance.getType());
statisticBean.getTeam().setLat(resourceInstance.getLat());
statisticBean.getTeam().setLng(resourceInstance.getLng());

View File

@ -20,7 +20,8 @@ public class WebsocketMsgWrapper {
responseCmdInfo.setRoom(roomId);
try {
JSONObject msgObj = (JSONObject) JSON.parse(msg);
if(msgObj.getString("msgType").equals("scenarioInfo")){
if(msgObj.getString("cmdType").equals("scenarioInfo")){
ScenarioService scenarioService = SpringUtil.getBean(ScenarioService.class);
if(scenarioService != null){
ScenarioInfo scenarioInfo= scenarioService.listScenarioInfo(scenarioId,roomId,resourceId);

View File

@ -6,7 +6,7 @@ spring.datasource.dynamic.datasource.dm.username=simulation
spring.datasource.dynamic.datasource.dm.password=Simulation001
spring.redis.database=0
spring.redis.host=192.168.0.53
spring.redis.host=192.168.0.225
spring.redis.port=6379
#spring.redis.password=123
spring.redis.timeout=5000