simulation-backend/src/main/java/com/hivekion/scenario/service/impl/ScenarioResourceServiceImpl.java
2025-09-15 08:50:32 +08:00

110 lines
4.2 KiB
Java

package com.hivekion.scenario.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hivekion.baseData.domain.TblEntity;
import com.hivekion.baseData.service.ITblEntityService;
import com.hivekion.icon.service.IconService;
import com.hivekion.scenario.entity.ScenarioResource;
import com.hivekion.scenario.mapper.ScenarioResourceMapper;
import com.hivekion.scenario.service.IResourceService;
import com.hivekion.scenario.service.ScenarioResourceService;
import com.hivekion.team.entity.Teaminfo;
import com.hivekion.team.service.ITeaminfoService;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* <p>
* 想定资源表 服务实现类
* </p>
*
* @author liDongYu
* @since 2025-09-09
*/
@Service
public class ScenarioResourceServiceImpl extends
ServiceImpl<ScenarioResourceMapper, ScenarioResource> implements
ScenarioResourceService {
@Resource
private IconService iconService;
@Resource
private ITblEntityService iTblEntityService;
@Resource
private ITeaminfoService teamInfoService;
@Resource
private IResourceService resourceService;
@Override
public List<ScenarioResource> getResourceList(ScenarioResource resource) {
//图标Map
Map<String, String> iconMap = iconService.iconMap();
//装备Map
Map<Integer, TblEntity> entityMap = iTblEntityService.entityMap();
//分队Map
Map<Integer, Teaminfo> teamInfoMap = teamInfoService.teamInfoMap();
Map<Integer,com.hivekion.scenario.entity.Resource> hResourceMap = resourceService.listBuildResourceByType(7);
Map<Integer,com.hivekion.scenario.entity.Resource> wResourceMap = resourceService.listBuildResourceByType(8);
QueryWrapper<ScenarioResource> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("scenario_id", resource.getScenarioId());
if (resource.getType() != null) {
queryWrapper.eq("type", resource.getType());
}
List<ScenarioResource> scenarioResourceList = baseMapper.selectList(queryWrapper);
//设置图标信息
for (ScenarioResource scenarioResource : scenarioResourceList) {
switch (scenarioResource.getResourceType()) {
case 1:
case 2:
case 3:
case 4:
if (entityMap.get(scenarioResource.getResourceId()) != null) {
TblEntity entity = entityMap.get(scenarioResource.getResourceId());
scenarioResource.setTitle(entity.getEntityName());
scenarioResource.setImgBase64(
iconMap.get(entity.getIconId()) == null ? "" : iconMap.get(entity.getIconId()));
}
break;
case 5:
case 6:
if (teamInfoMap.get(scenarioResource.getResourceId()) != null) {
Teaminfo teaminfo = teamInfoMap.get(scenarioResource.getResourceId());
scenarioResource.setTitle(teaminfo.getName());
scenarioResource.setImgBase64(
iconMap.get(teaminfo.getIconId()) == null ? "" : iconMap.get(teaminfo.getIconId()));
}
break;
case 7:
if(hResourceMap.get(scenarioResource.getResourceId()) != null){
com.hivekion.scenario.entity.Resource resource1 = hResourceMap.get(scenarioResource.getResourceId());
scenarioResource.setTitle(resource1.getResourceName());
scenarioResource.setImgBase64(
iconMap.get(resource1.getIcon()) == null ? "" : iconMap.get(resource1.getIcon()));
}
break;
case 8:
if(wResourceMap.get(scenarioResource.getResourceId()) != null){
com.hivekion.scenario.entity.Resource resource1 = wResourceMap.get(scenarioResource.getResourceId());
scenarioResource.setTitle(resource1.getResourceName());
scenarioResource.setImgBase64(
iconMap.get(resource1.getIcon()) == null ? "" : iconMap.get(resource1.getIcon()));
}
break;
}
}
return scenarioResourceList;
}
@Override
public Map<String, ScenarioResource> resourceMap() {
return this.list().stream().collect(Collectors.toMap(ScenarioResource::getId, r -> r));
}
}