package com.hxzk.gps.service.impl.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hxzk.gps.controller.Map.Results.MapResult;
import com.hxzk.gps.controller.Map.Results.MarsResult;
import com.hxzk.gps.controller.Map.dto.MapTreeTableDto;
import com.hxzk.gps.entity.Department.TbDepartMentIcon;
import com.hxzk.gps.entity.Department.TbDepartment;
import com.hxzk.gps.entity.Map.TbMap;
import com.hxzk.gps.mapper.Map.TbMapMapper;
import com.hxzk.gps.service.Company.TbCompanyService;
import com.hxzk.gps.service.Map.TbMapService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hxzk.gps.util.AuToComplete;
import com.hxzk.gps.util.GetUser.UserInfoUtil;
import com.hxzk.gps.util.MessageUtils.MessageUtils;
import com.hxzk.gps.util.Result.TableDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author YuZhiTong
* @since 2025-05-23
*/
@Service
public class TbMapServiceImpl extends ServiceImpl implements TbMapService {
@Autowired
TbCompanyService companyService;
@Value("${upload.dir-IP}")
private String uploadIp;
@Override
public MapResult FindMapInfo(MapTreeTableDto mapTreeTableDto) {
// 开启分页
PageHelper.startPage(mapTreeTableDto.getPageNum(), mapTreeTableDto.getPageSize());
// 创建查询包装器
QueryWrapper queryWrapperCompany = new QueryWrapper<>();
// 处理部门 ID 为空的情况
if ("".equals(mapTreeTableDto.getDepartmentId())) {
List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
queryWrapperCompany.in("companyid", list);
} else {
queryWrapperCompany.eq("companyid", mapTreeTableDto.getDepartmentId());
}
// 查询二维地图列表
List maps = baseMapper.selectList(queryWrapperCompany);
PageInfo info = new PageInfo<>(maps);
// 封装角色列表
TableDto tableDto = new TableDto(info.getList(), info.getPageNum(), info.getPageSize(), info.getTotal());
// 获取成功消息
String message = MessageUtils.getMessage("Success");
// 返回结果
return new MapResult(200, message, tableDto, mapTreeTableDto.getPageNum(), mapTreeTableDto.getPageSize(), info.getTotal());
}
@Override
public List FindUserCompanyMap() {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("company", UserInfoUtil.getUserCompany());
List mapList = baseMapper.selectList(queryWrapper);
List addCustomerList = mapList.stream()
.map(map -> {
String[] mapname = map.getMapname().split("\\.");
AuToComplete addCustomer = new AuToComplete();
addCustomer.setLabel(mapname[0]);
addCustomer.setValue(mapname[0]);
return addCustomer;
})
.collect(Collectors.toList());
return addCustomerList;
}
@Override
public Map FindUserCompanyMapSelect() {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("company", UserInfoUtil.getUserCompany());
List mapList = baseMapper.selectList(queryWrapper);
// 创建Map,key为地图名称,value为图片URL
Map resultMap = new HashMap<>();
for (TbMap map : mapList) {
String[] mapname = map.getMapname().split("\\.");
resultMap.put(mapname[0], uploadIp+"Map/"+mapname[0]+"."+mapname[1]); // 假设TbMap有getMapUrl方法
}
return resultMap;
}
}