zhitong.yu
7 天以前 7fc9c42987a13c1d8d2159591a5803e70518827f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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;
 
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author YuZhiTong
 * @since 2025-09-03
 */
@Service
public class TbThreemodelServiceImpl extends ServiceImpl<TbThreemodelMapper, TbThreemodel> 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<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
            queryWrapperCompany.in("companyid", list);
        } else {
            List<Long> list = companyService.getChildCompanyIds(threeModelDeo.getDepartmentId());
            queryWrapperCompany.in("companyid", list);
        }
        // 查询三维地图列表
        List<TbThreemodel> Threemodel = baseMapper.selectList(queryWrapperCompany);
        PageInfo<TbThreemodel> 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<TbThreemodel> 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<TbCompany>().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());
    }
}