package com.hxzk.gps.service.impl.ThreeModel; 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.MarsResult; import com.hxzk.gps.controller.System.SystemLogUtil; import com.hxzk.gps.controller.ThreeModel.Results.ThreeModelResult; import com.hxzk.gps.controller.ThreeModel.deo.ThreeModelDeo; import com.hxzk.gps.entity.Company.TbCompany; import com.hxzk.gps.entity.Map.TbMarsHomeset; import com.hxzk.gps.entity.ThreeModel.TbThreemodel; import com.hxzk.gps.mapper.ThreeModel.TbThreemodelMapper; import com.hxzk.gps.service.Company.TbCompanyService; import com.hxzk.gps.service.ThreeModel.TbThreemodelService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hxzk.gps.util.GetUser.UserInfoUtil; import com.hxzk.gps.util.MessageUtils.MessageUtils; import com.hxzk.gps.util.Result.ReturnMessage; import com.hxzk.gps.util.Result.TableDto; import com.hxzk.gps.util.Time.TimeUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.File; import java.util.List; /** *

* 服务实现类 *

* * @author YuZhiTong * @since 2025-09-03 */ @Service public class TbThreemodelServiceImpl extends ServiceImpl implements TbThreemodelService { @Autowired TbCompanyService companyService; @Value("${upload.dir-Map-Three}") private String dirMapThree; @Override public ThreeModelResult FindThreemodel(ThreeModelDeo threeModelDeo) { // 开启分页 PageHelper.startPage(threeModelDeo.getPageNum(), threeModelDeo.getPageSize()); // 创建查询包装器 QueryWrapper queryWrapperCompany = new QueryWrapper<>(); // 处理部门 ID 为空的情况 if ("".equals(threeModelDeo.getDepartmentId())) { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); queryWrapperCompany.in("companyid", list); } else { List list = companyService.getChildCompanyIds(threeModelDeo.getDepartmentId()); queryWrapperCompany.in("companyid", list); } // 查询三维地图列表 List Threemodel = baseMapper.selectList(queryWrapperCompany); PageInfo info = new PageInfo<>(Threemodel); // 封装角色列表 TableDto tableDto = new TableDto(info.getList(), info.getPageNum(), info.getPageSize(), info.getTotal()); // 获取成功消息 String message = MessageUtils.getMessage("Success"); // 返回结果 return new ThreeModelResult(200, message, tableDto); } @Override public ReturnMessage add(TbThreemodel tbThreemodel) { /* 声明操作状态 * */ boolean isSuccess = false; try { // 检查是否已存在相同公司ID的记录 QueryWrapper checkWrapper = new QueryWrapper<>(); checkWrapper.eq("filename", tbThreemodel.getFilename()); if (baseMapper.selectCount(checkWrapper) > 0) { return ReturnMessage.ReturnMessageError("ThreeModelExist"); } if(tbThreemodel.getCompanyid() == null){ tbThreemodel.setCompanyid(UserInfoUtil.getUserCompanyId()); } TbCompany company = companyService.getBaseMapper().selectOne(new QueryWrapper().eq("id",tbThreemodel.getCompanyid())); tbThreemodel.setCompany(company.getSystemname()); tbThreemodel.setAddtime(TimeUtil.GetTime()); isSuccess = true; baseMapper.insert(tbThreemodel); String fileAdress = dirMapThree+tbThreemodel.getCompany()+"_"+tbThreemodel.getFilename(); // 创建文件夹 File folder = new File(fileAdress); if (!folder.exists()) { folder.mkdirs(); } } catch (Exception e) { log.error("添加三维模型失败"); } return SystemLogUtil.handleUpdateResult(isSuccess,"MapModelAdd",tbThreemodel.getCompany()); } @Override public ReturnMessage update(TbThreemodel tbThreemodel) { /* 声明操作状态 * */ boolean isSuccess = false; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("id",tbThreemodel.getId()); try { isSuccess= true; baseMapper.update(tbThreemodel,queryWrapper); }catch (Exception e){ } return SystemLogUtil.handleUpdateResult(isSuccess,"MapModelUpdate",tbThreemodel.getCompany()); } }