From 7a33c5b558e7e4ab5760261accbd32c7f2056c4a Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 23 九月 2024 19:16:13 +0800 Subject: [PATCH] 大屏分离平台在线和考核成绩接口 --- ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java | 105 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 82 insertions(+), 23 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java index b1bb3f9..50a8d45 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java @@ -5,12 +5,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.Platform; import com.ycl.platform.domain.form.PlatformForm; +import com.ycl.platform.domain.query.DashboardQuery; import com.ycl.platform.domain.query.PlatformQuery; import com.ycl.platform.domain.vo.PlatformVO; import com.ycl.platform.mapper.PlatformMapper; import com.ycl.platform.service.PlatformService; import com.ycl.system.Result; +import com.ycl.system.entity.SysDictData; import com.ycl.system.page.PageUtil; +import com.ycl.system.service.ISysDictTypeService; +import com.ycl.system.service.impl.SysDictDataServiceImpl; +import com.ycl.system.service.impl.SysDictTypeServiceImpl; +import enumeration.general.AreaDeptEnum; import org.ehcache.core.util.CollectionUtil; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; @@ -18,10 +24,11 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.io.IOException; +import java.net.InetAddress; +import java.util.*; import java.util.stream.Collectors; /** @@ -35,6 +42,8 @@ public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService { private final PlatformMapper platformMapper; + private final SysDictDataServiceImpl dictDataService; + private final ISysDictTypeService dictTypeService; /** * 娣诲姞 @@ -49,18 +58,21 @@ Date now = new Date(); entity.setCreateTime(now); entity.setUpdateTime(now); + String area = form.getAreaList().stream().collect(Collectors.joining(",")); + entity.setArea(area); baseMapper.insert(entity); - if (! CollectionUtils.isEmpty(form.getDeployList())) { - List<Platform> childList = form.getDeployList().stream().map(deploy -> { - Platform child = new Platform(); - BeanUtils.copyProperties(deploy, child); - child.setParentId(entity.getId()); - child.setCreateTime(now); - child.setUpdateTime(now); - return child; - }).collect(Collectors.toList()); - this.saveBatch(childList); - } +// if (! CollectionUtils.isEmpty(form.getDeployList())) { +// List<Platform> childList = form.getDeployList().stream().map(deploy -> { +// Platform child = new Platform(); +// BeanUtils.copyProperties(deploy, child); +// child.setPlatformName(entity.getPlatformName()); +// child.setParentId(entity.getId()); +// child.setCreateTime(now); +// child.setUpdateTime(now); +// return child; +// }).collect(Collectors.toList()); +// this.saveBatch(childList); +// } return Result.ok("娣诲姞鎴愬姛"); } @@ -76,6 +88,8 @@ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); BeanUtils.copyProperties(form, entity); + String area = form.getAreaList().stream().collect(Collectors.joining(",")); + entity.setArea(area); baseMapper.updateById(entity); return Result.ok("淇敼鎴愬姛"); } @@ -110,17 +124,28 @@ @Override public Result page(PlatformQuery query) { List<PlatformVO> list = baseMapper.getPage(query); - List<PlatformVO> parentList = list.stream().filter(item -> item.getParentId() == 0).collect(Collectors.toList()); - List<PlatformVO> resultList = new ArrayList<>(4); - for (PlatformVO parent : parentList) { - List<PlatformVO> childList = list.stream().filter(item -> item.getParentId().equals(parent.getId())).collect(Collectors.toList()); - - parent.setChildNum(childList.size()); - resultList.add(parent); - resultList.addAll(childList); +// List<PlatformVO> parentList = list.stream().filter(item -> item.getParentId() == 0).collect(Collectors.toList()); + List<SysDictData> areaCodeList = dictTypeService.selectDictDataByType("area_code"); + Map<String, String> dictMap = areaCodeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); + for (PlatformVO platform : list) { + String[] areaList = platform.getArea().split(","); + List<String> areas = new ArrayList<>(); + for (String s : areaList) { + String label = dictMap.get(s); + if (StringUtils.hasText(label)) { + areas.add(label); + } + } + platform.setAreaList(areaList); + platform.setArea(areas.stream().collect(Collectors.joining("銆�"))); +// List<PlatformVO> childList = list.stream().filter(item -> item.getParentId().equals(parent.getId())).collect(Collectors.toList()); +// +// parent.setChildNum(childList.size()); +// resultList.add(parent); +// resultList.addAll(childList); } // 鍓嶇涓嶇敤灞曠ず鍒嗛〉 - return Result.ok().data(resultList).total(0); + return Result.ok().data(list).total(0); } /** @@ -147,4 +172,38 @@ .collect(Collectors.toList()); return Result.ok().data(vos); } + + @Override + public Map<String, Map<String, Object>> dashboard(DashboardQuery dashboardQuery) { + //鍏堥粯璁ゆ墍鏈夊尯鍘垮钩鍙板湪绾匡紝鍒濆鍖杕ap鏁版嵁 + Map<String, Map<String, Object>> resultMap = new HashMap<>(); + for (AreaDeptEnum value : AreaDeptEnum.values()) { + Map<String, Object> map = new HashMap<>(); + map.put("platformOnline",Boolean.TRUE); + resultMap.put(value.getName(),map); + } + //骞冲彴鍦ㄧ嚎鐘舵�� 榛樿鍦ㄧ嚎锛屽鏋滀竴涓笉鍦ㄧ嚎鏀逛负false銆� + List<Platform> platformList = new LambdaQueryChainWrapper<>(platformMapper) + .isNotNull(Platform::getPlatformIP) + .list(); + Boolean reachable = Boolean.FALSE; + try { + for (Platform platform : platformList) { + reachable = InetAddress.getByName(platform.getPlatformIP()).isReachable(3000); + //涓嶅湪绾� + if(!reachable) { + //鑾峰彇骞冲彴绠$悊鐨勫尯鍩熺紪鐮侀泦鍚� + List<String> areaCodes = Arrays.asList(com.ycl.utils.StringUtils.split(platform.getArea(), ",")); + resultMap.forEach((deptName, map) -> { + if(areaCodes.contains(AreaDeptEnum.fromName(deptName).getCode())){ + map.put("platformOnline",Boolean.FALSE); + } + }); + } + } + } catch (Exception e) { + log.error("妫�鏌ュ钩鍙拌繛閫氭�ф椂鍙戠敓閿欒", e); + } + return resultMap; + } } -- Gitblit v1.8.0