吉安感知网项目-后端
xiebin
2026-01-06 d207a86cdf1ab52ef8cb7cd83bad8fceab8038cf
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
package org.sxkj.resource.feign;
 
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import lombok.AllArgsConstructor;
import org.springblade.core.tenant.annotation.NonDS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.sxkj.resource.entity.MediaFileEntity;
import org.sxkj.resource.mapper.IFileMapper;
import org.sxkj.resource.model.EventHistoryDto;
import org.sxkj.resource.model.MediaFileDTO;
import org.sxkj.resource.service.IFileService;
import org.sxkj.resource.vo.JobStatisticsTimeVoBo;
 
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
 
@NonDS
@RestController
@AllArgsConstructor
public class MediaFileClient implements IMediaFileClient {
    @Autowired
    private IFileService fileService;
    @Autowired
    private IFileMapper fileMapper;
 
 
    @GetMapping(CHECK_EXIST)
    public Boolean checkExist(@RequestParam String workspaceId, @RequestParam String fingerprint) {
        return fileService.checkExist(workspaceId, fingerprint);
    }
 
    @GetMapping(GET_MEDIA)
    public List<MediaFileEntity> getMedia(@RequestParam String jobId) {
        return fileService.getMedia(jobId);
    }
 
    @GetMapping(DELETE_LOCAL_FILE)
    public void deleteLocalFile(@RequestParam String filePath) {
        fileService.deleteLocalFile(filePath);
    }
 
    /**
     * Query information about all files in this workspace based on the workspace id.
     *
     * @param workspaceId
     * @return
     */
    @GetMapping(GET_ALL_FILES_BY_WORK_SPACE)
    public List<MediaFileDTO> getAllFilesByWorkspaceId(@RequestParam String workspaceId) {
        return fileService.getAllFilesByWorkspaceId(workspaceId);
    }
 
 
    /**
     * 获取图斑图片集合
     *
     * @param dkbh
     * @param workspaceId
     * @return
     */
    @GetMapping(LIST_BY_IS_ADD)
    public List<MediaFileEntity> listByIsadd(@RequestParam String dkbh, @RequestParam String workspaceId) {
        return fileService.listByIsadd(dkbh, workspaceId);
    }
 
 
    @GetMapping(LIST_MEDIA_FILE_ENTITY)
    public List<MediaFileEntity> listMediaFileEntity(@RequestParam String workspaceId, @RequestParam String jobId) {
        return fileService.listMediaFileEntity(workspaceId, jobId);
    }
 
 
    /**
     * Query all media files of a job.
     *
     * @param workspaceId
     * @param jobId
     * @return
     */
    @GetMapping(GET_FILES_BY_WORKSPACE_AND_JOB)
    public List<MediaFileDTO> getFilesByWorkspaceAndJobId(@RequestParam String workspaceId, @RequestParam String jobId) {
        return fileService.getFilesByWorkspaceAndJobId(workspaceId, jobId);
    }
 
    @GetMapping(GET_UNIQUE_FILE_PATHS)
    public List<String> getUniqueFilePaths(@RequestParam List<String> jobIds) {
        return fileService.getUniqueFilePaths(jobIds);
    }
 
    /**
     * 更新文件
     *
     * @param workspaceId     项目id
     * @param mediaFileEntity
     * @return
     */
    @GetMapping(UPDATE_MEDIA_FILE)
    public Boolean updateMediaFile(@RequestParam String workspaceId, @RequestBody MediaFileEntity mediaFileEntity) {
        return fileService.updateMediaFile(workspaceId, mediaFileEntity);
    }
 
    /**
     * 对图片进行软删除
     *
     * @param workspaceId
     * @param fileId
     * @return
     */
    @GetMapping(DELETE_MEDIA_INFO)
    public int deleteMediaInfo(@RequestParam String workspaceId, @RequestParam String fileId) {
        return fileService.deleteMediaInfo(workspaceId, fileId);
    }
 
 
    @GetMapping(GET_COUNT_BY_WORKSPACE)
    public long getCountByWorkspaceId(@RequestParam String workspaceId) {
        return fileService.getCountByWorkspaceId(workspaceId);
    }
 
    /**
     * 图斑图片一键审核
     *
     * @param dkbh
     * @return
     */
    @GetMapping(APPROVE_BY_DK)
    public int approveByDkbh(@RequestParam String dkbh) {
        return fileService.approveByDkbh(dkbh);
    }
 
 
    /**
     * 查询缩率图集合信息
     *
     * @param workspaceId
     * @param jobId
     * @return
     */
    @RequestMapping(FIND_NAIL_FILES_LIST)
    public List<MediaFileEntity> findNailFilesList(@RequestParam String workspaceId, @RequestParam String jobId) {
        return fileService.findNailFilesList(workspaceId, jobId);
    }
 
    /**
     * 获取时间节点之前的媒体数据
     *
     * @param time
     * @return
     */
    @GetMapping(GET_MEDIA_BY_TIME)
    public List<MediaFileEntity> getMediaByTime(@RequestParam long time) {
        return fileService.getMediaByTime(time);
    }
 
 
 
    @PostMapping(SELECT_LIST)
    public List<MediaFileEntity>selectList(@RequestBody MediaFileEntity entity){
        return fileService.selectList(entity);
    }
    /**
     * 区域附近的图片及视频
     * @param dto 参数
     * @return
     */
    @PostMapping(NEAR_BY_LAT_LNG)
    public List<MediaFileEntity>nearByLatLng(@RequestBody EventHistoryDto dto){
        return fileService.findNearByMediaUrl(dto);
    }
 
    @GetMapping(TIME_EVENT_NUM_STATISTICS)
    public List<JobStatisticsTimeVoBo> timeEventNumStatistics(@RequestParam(required = false) String startDate,
                                                              @RequestParam(required = false)String endDate,
                                                              @RequestParam(required = false) String areaCode,
                                                              @RequestParam(required = false)String formatTime) {
        // Feign在远程调用是,使用LocalDate需要转换成字符串
        LocalDateTime parseStartTime = LocalDateTimeUtil.parse(startDate, DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
        LocalDateTime parseEndTime = LocalDateTimeUtil.parse(endDate, DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
 
        return fileMapper.timeEventNumStatistics(parseStartTime,parseEndTime,areaCode,formatTime);
    }
 
    @GetMapping(COUNT_EVENT_NUM_STATISTICS)
    public Long countEventNumStatistics(@RequestParam(required = false) String startDate,
                                        @RequestParam(required = false) String endDate,
                                        @RequestParam(required = false) String areaCode) {
        // Feign在远程调用是,使用LocalDate需要转换成字符串
        LocalDateTime parseStartTime = LocalDateTimeUtil.parse(startDate, DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
        LocalDateTime parseEndTime = LocalDateTimeUtil.parse(endDate, DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
        return fileMapper.countEventNumStatistics(parseStartTime,parseEndTime,areaCode);
    }
 
}