diff --git a/xueyi-api/xueyi-api-file/src/main/java/com/xueyi/file/api/feign/RemoteFileService.java b/xueyi-api/xueyi-api-file/src/main/java/com/xueyi/file/api/feign/RemoteFileService.java index bdfa0108..4cc8ece8 100644 --- a/xueyi-api/xueyi-api-file/src/main/java/com/xueyi/file/api/feign/RemoteFileService.java +++ b/xueyi-api/xueyi-api-file/src/main/java/com/xueyi/file/api/feign/RemoteFileService.java @@ -60,4 +60,8 @@ public interface RemoteFileService { */ @DeleteMapping(value = "/inner/delete") R delete(@RequestParam (value = "url") String url); + + + @DeleteMapping(value = "/inner/delete-files") + R deleteFiles(@RequestParam List urls); } diff --git a/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/feign/RemoteStaffService.java b/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/feign/RemoteStaffService.java index 39b1fe65..946d0907 100644 --- a/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/feign/RemoteStaffService.java +++ b/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/feign/RemoteStaffService.java @@ -6,6 +6,7 @@ import com.xueyi.common.core.constant.basic.ServiceConstants; import com.xueyi.common.core.web.result.R; import com.xueyi.system.api.organize.domain.dto.SysEnterpriseDto; import com.xueyi.system.api.organize.feign.factory.RemoteUserFallbackFactory; +import com.xueyi.system.api.pass.domain.po.DmRecognizedRecordsPo; import com.xueyi.system.api.staff.domain.dto.DmStaffCommonDto; import com.xueyi.system.api.staff.domain.vo.DmStaffFeature; import org.springframework.cloud.openfeign.FeignClient; @@ -46,4 +47,10 @@ public interface RemoteStaffService { @GetMapping("/staff/api/staff-count") JSONObject staffCount(); + + @GetMapping("/staff/api/recognized-records") + R> recognizedRecords(); + + @GetMapping("/staff/api/inner-recognized-records") + R> _recognizedRecords(@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } \ No newline at end of file diff --git a/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/controller/SysFileController.java b/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/controller/SysFileController.java index 0d0871aa..f004f78a 100644 --- a/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/controller/SysFileController.java +++ b/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/controller/SysFileController.java @@ -208,7 +208,7 @@ public class SysFileController { remoteFileManageService.saveFileLog(sysFile, SecurityConstants.INNER); results.add(sysFile); log.info("上传第 {} 张图片完成。。。",(num-1)); - }; + } long endTs = System.currentTimeMillis(); log.info("上传图片结束。。。,图片上传用时:{} ms,总用时:{} ms", (endTs-pdfTs), (endTs-startTs)); @@ -248,6 +248,17 @@ public class SysFileController { return R.fail(e.getMessage()); } } + + @DeleteMapping(value = "/inner/delete-files") + public R deleteFilesInner(@RequestParam(value = "urls") List urls) { + try { + Boolean result = minioSysFileService.deleteFiles(urls); + return R.ok(result); + } catch (Exception e) { + log.error("文件删除失败", e); + return R.fail(e.getMessage()); + } + } /** * 文件上传请求 */ diff --git a/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java b/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java index 3321c8b3..b659da61 100644 --- a/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java +++ b/xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java @@ -5,6 +5,10 @@ import com.xueyi.file.utils.FileUploadUtils; import io.minio.MinioClient; import io.minio.PutObjectArgs; import io.minio.RemoveObjectArgs; +import io.minio.RemoveObjectsArgs; +import io.minio.Result; +import io.minio.messages.DeleteError; +import io.minio.messages.DeleteObject; import io.minio.messages.Retention; import io.minio.messages.RetentionMode; import org.apache.commons.io.FileUtils; @@ -22,6 +26,8 @@ import java.io.FileInputStream; import java.io.InputStream; import java.net.URLEncoder; import java.time.ZonedDateTime; +import java.util.LinkedList; +import java.util.List; /** * Minio 文件存储 @@ -191,4 +197,20 @@ public class MinioSysFileServiceImpl implements ISysFileService { client.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).build()); return true; } + + public Boolean deleteFiles(List urls) throws Exception { + String bucketName = minioConfig.getBucketName(); + List objects = new LinkedList<>(); + for (String url:urls){ + String fileName = url.substring(url.indexOf(bucketName) + bucketName.length() + 1); + objects.add(new DeleteObject(fileName)); + } + Iterable> results = client.removeObjects(RemoveObjectsArgs.builder().bucket(bucketName).objects(objects).build()); + for (Result result : results) { + DeleteError error = result.get(); + log.error("Error in deleting object {}; {}" ,error.objectName(), error.message()); + } +// client.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).build()); + return true; + } } diff --git a/xueyi-modules/xueyi-job/pom.xml b/xueyi-modules/xueyi-job/pom.xml index c8a63fbf..15b4bed0 100644 --- a/xueyi-modules/xueyi-job/pom.xml +++ b/xueyi-modules/xueyi-job/pom.xml @@ -65,6 +65,11 @@ xueyi-api-job + + com.xueyi + xueyi-api-file + + com.xueyi xueyi-api-nlt diff --git a/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java b/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java index 0af98acb..8fc48938 100644 --- a/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java +++ b/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java @@ -3,7 +3,6 @@ package com.xueyi.job.task; import com.xueyi.common.cache.utils.SourceUtil; import com.xueyi.common.core.utils.core.StrUtil; import com.xueyi.common.core.web.result.R; -import com.xueyi.message.api.transfer.feign.RemoteTransferService; import com.xueyi.system.api.digitalmans.feign.RemoteManDeviceService; import com.xueyi.system.api.model.Source; import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; @@ -46,6 +45,7 @@ public class DgmanTask { System.out.println("监控心跳执行完成"); } + /** * 触发条件:0 0 10 * * * * 每日十点触发,收集当前在线数 diff --git a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffApiController.java b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffApiController.java index f24ed306..6129e363 100644 --- a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffApiController.java +++ b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffApiController.java @@ -1,6 +1,7 @@ package com.xueyi.system.staff.controller.api; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xueyi.common.cache.utils.SourceUtil; import com.xueyi.common.core.constant.basic.SecurityConstants; import com.xueyi.common.core.context.SecurityContextHolder; @@ -9,8 +10,10 @@ import com.xueyi.common.redis.utils.RedisUtil; import com.xueyi.common.web.annotation.TenantIgnore; import com.xueyi.system.api.device.domain.vo.DeviceTenantSourceMergeVo; import com.xueyi.system.api.model.Source; +import com.xueyi.system.api.pass.domain.po.DmRecognizedRecordsPo; import com.xueyi.system.api.staff.domain.dto.DmStaffCommonDto; import com.xueyi.system.api.staff.feign.RemoteStaffService; +import com.xueyi.system.pass.mapper.DmRecognizedRecordsMapper; import com.xueyi.system.resource.controller.api.BaseApiController; import com.xueyi.system.staff.service.impl.DmStaffServiceImpl; import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; @@ -26,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDateTime; import java.util.List; /** @@ -98,4 +102,33 @@ public class DmStaffApiController extends BaseApiController { return outputSuccess().toJSON(); } + + @Autowired + DmRecognizedRecordsMapper recognizedRecordsMapper; + + @GetMapping(value = "inner-recognized-records") + @ResponseBody + @TenantIgnore(tenantLine = true) + public R> queryRecords(){ + List lists = recognizedRecordsMapper.selectList(new LambdaQueryWrapper().between(DmRecognizedRecordsPo::getRecognizedTime, LocalDateTime.now().minusDays(30), LocalDateTime.now())); + return R.ok(lists); + } + @GetMapping(value = "recognized-records") + @ResponseBody + public R> recognizedRecords(){ + R> listR = tenantService.tenantList(); + if (listR.isFail()) { + System.out.println("租户列表获取失败"); + return null; + } + List res = listR.getData(); + TeTenantDto teTenantDto = res.get(0); + if (teTenantDto != null) { + Source source = SourceUtil.getSourceCache(teTenantDto.getStrategyId()); +// return countJson; + return staffService._recognizedRecords(teTenantDto.getId(), source.getMaster(), SecurityConstants.INNER); + } + return null; + + } }