| | |
| | | package com.ycl.platform.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | 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; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.io.IOException; |
| | | import java.net.InetAddress; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService { |
| | | |
| | | private final PlatformMapper platformMapper; |
| | | private final SysDictDataServiceImpl dictDataService; |
| | | private final ISysDictTypeService dictTypeService; |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | |
| | | 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("添加成功"); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | String area = form.getAreaList().stream().collect(Collectors.joining(",")); |
| | | entity.setArea(area); |
| | | baseMapper.updateById(entity); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result page(PlatformQuery query) { |
| | | IPage<PlatformVO> page = PageUtil.getPage(query, PlatformVO.class); |
| | | baseMapper.getPage(page, query); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | List<PlatformVO> list = baseMapper.getPage(query); |
| | | // 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(list).total(0); |
| | | } |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |
| | |
| | | .collect(Collectors.toList()); |
| | | return Result.ok().data(vos); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Map<String, Object>> dashboard(DashboardQuery dashboardQuery) { |
| | | //先默认所有区县平台在线,初始化map数据 |
| | | 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; |
| | | } |
| | | } |