Ver a proveniência

fix mio 定时删除,未完成

tags/B.2.2.2_20231028_test^2^2
yk há 2 anos
ascendente
cometimento
0f41f5bf55
7 ficheiros alterados com 84 adições e 2 eliminações
  1. +4
    -0
      xueyi-api/xueyi-api-file/src/main/java/com/xueyi/file/api/feign/RemoteFileService.java
  2. +7
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/feign/RemoteStaffService.java
  3. +12
    -1
      xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/controller/SysFileController.java
  4. +22
    -0
      xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java
  5. +5
    -0
      xueyi-modules/xueyi-job/pom.xml
  6. +1
    -1
      xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java
  7. +33
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffApiController.java

+ 4
- 0
xueyi-api/xueyi-api-file/src/main/java/com/xueyi/file/api/feign/RemoteFileService.java Ver ficheiro

@@ -60,4 +60,8 @@ public interface RemoteFileService {
*/
@DeleteMapping(value = "/inner/delete")
R<Boolean> delete(@RequestParam (value = "url") String url);


@DeleteMapping(value = "/inner/delete-files")
R<Boolean> deleteFiles(@RequestParam List<String> urls);
}

+ 7
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/feign/RemoteStaffService.java Ver ficheiro

@@ -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<List<DmRecognizedRecordsPo>> recognizedRecords();

@GetMapping("/staff/api/inner-recognized-records")
R<List<DmRecognizedRecordsPo>> _recognizedRecords(@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

+ 12
- 1
xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/controller/SysFileController.java Ver ficheiro

@@ -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<Boolean> deleteFilesInner(@RequestParam(value = "urls") List<String> urls) {
try {
Boolean result = minioSysFileService.deleteFiles(urls);
return R.ok(result);
} catch (Exception e) {
log.error("文件删除失败", e);
return R.fail(e.getMessage());
}
}
/**
* 文件上传请求
*/


+ 22
- 0
xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java Ver ficheiro

@@ -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<String> urls) throws Exception {
String bucketName = minioConfig.getBucketName();
List<DeleteObject> objects = new LinkedList<>();
for (String url:urls){
String fileName = url.substring(url.indexOf(bucketName) + bucketName.length() + 1);
objects.add(new DeleteObject(fileName));
}
Iterable<Result<DeleteError>> results = client.removeObjects(RemoveObjectsArgs.builder().bucket(bucketName).objects(objects).build());
for (Result<DeleteError> 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;
}
}

+ 5
- 0
xueyi-modules/xueyi-job/pom.xml Ver ficheiro

@@ -65,6 +65,11 @@
<artifactId>xueyi-api-job</artifactId>
</dependency>

<dependency>
<groupId>com.xueyi</groupId>
<artifactId>xueyi-api-file</artifactId>
</dependency>

<dependency>
<groupId>com.xueyi</groupId>
<artifactId>xueyi-api-nlt</artifactId>


+ 1
- 1
xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java Ver ficheiro

@@ -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 * * *
* 每日十点触发,收集当前在线数


+ 33
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffApiController.java Ver ficheiro

@@ -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<List<DmRecognizedRecordsPo>> queryRecords(){
List<DmRecognizedRecordsPo> lists = recognizedRecordsMapper.selectList(new LambdaQueryWrapper<DmRecognizedRecordsPo>().between(DmRecognizedRecordsPo::getRecognizedTime, LocalDateTime.now().minusDays(30), LocalDateTime.now()));
return R.ok(lists);
}
@GetMapping(value = "recognized-records")
@ResponseBody
public R<List<DmRecognizedRecordsPo>> recognizedRecords(){
R<List<TeTenantDto>> listR = tenantService.tenantList();
if (listR.isFail()) {
System.out.println("租户列表获取失败");
return null;
}
List<TeTenantDto> 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;

}
}

Carregando…
Cancelar
Guardar