| | |
| | | package com.ruoyi.sy.service.impl; |
| | | |
| | | import java.awt.geom.Point2D; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.text.ParseException; |
| | |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.utils.tools.Point; |
| | | import com.ruoyi.utils.gis.GisUtil; |
| | | import com.ruoyi.utils.gis.Point; |
| | | import com.ruoyi.scheduling.domian.SchedulingParam; |
| | | import com.ruoyi.sy.domain.ArdSyCarDay; |
| | | import com.ruoyi.sy.mapper.ArdSyCarDayMapper; |
| | | import com.ruoyi.utils.tools.GisTool; |
| | | import com.ruoyi.utils.minio.MinioUtil; |
| | | import com.ruoyi.utils.websocket.util.WebSocketUtils; |
| | | import com.ruoyi.device.hiksdk.config.MinioClientSingleton; |
| | | import com.ruoyi.storage.minio.utils.MinioUtils; |
| | | import com.ruoyi.sy.domain.ArdSyUser; |
| | | import com.ruoyi.sy.gps31.PositionContainer; |
| | | import com.ruoyi.sy.mapper.ArdSyUserMapper; |
| | | import com.ruoyi.system.domain.SysConfig; |
| | | import com.ruoyi.common.core.domain.entity.SysConfig; |
| | | import com.ruoyi.system.mapper.SysConfigMapper; |
| | | import com.ruoyi.system.mapper.SysUserMapper; |
| | | import com.ruoyi.utils.forest.SYClient; |
| | | import com.ruoyi.utils.result.Results; |
| | | import io.minio.GetPresignedObjectUrlArgs; |
| | | import io.minio.ListObjectsArgs; |
| | | import io.minio.PutObjectArgs; |
| | | import io.minio.Result; |
| | | import io.minio.http.Method; |
| | | import io.minio.messages.Item; |
| | |
| | | objectNames.add(ardSyCar.getCarPicture().split("/sycar/")[1]); |
| | | } |
| | | } |
| | | MinioUtils.removeObjects("sycar", objectNames); |
| | | MinioUtil.removeObjects("sycar", objectNames); |
| | | return ardSyCarMapper.deleteArdSyCarByIds(ids); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public List<Map<String, String>> getAllCarModel() { |
| | | boolean exsit = MinioUtils.exitsBucket("sycar"); |
| | | boolean exsit = MinioUtil.exitsBucket("sycar"); |
| | | if (exsit) { |
| | | List<Map<String, String>> listObjetcName = new ArrayList<>(); |
| | | try { |
| | | ListObjectsArgs listObjectsArgs = ListObjectsArgs.builder().prefix("carmodel/").bucket("sycar").build(); |
| | | Iterable<Result<Item>> myObjects = MinioClientSingleton.getMinioClient().listObjects(listObjectsArgs); |
| | | // ListObjectsArgs listObjectsArgs = ListObjectsArgs.builder().prefix("carmodel/").bucket("sycar").build(); |
| | | Iterable<Result<Item>> myObjects = MinioUtil.getObjectsByBucket("sycar","carmodel"); |
| | | for (Result<Item> result : myObjects) { |
| | | Item item = result.get(); |
| | | Map<String, String> map = new HashMap(); |
| | |
| | | if (ardSyCarr.getCarPicture() != null || !ardSyCarr.getCarPicture().equals("")) { |
| | | String objectName = ardSyCarr.getCarPicture().split("/sycar/")[1]; |
| | | objectNames.add(objectName); |
| | | MinioUtils.removeObjects("sycar", objectNames); |
| | | MinioUtil.removeObjects("sycar", objectNames); |
| | | } |
| | | } |
| | | //判断文件是否为空 |
| | | if (null == carPicture || 0 == carPicture.getSize()) { |
| | | return ""; |
| | | } |
| | | boolean exsit = MinioUtils.exitsBucket("sycar"); |
| | | boolean exsit = MinioUtil.exitsBucket("sycar"); |
| | | if (!exsit) { |
| | | boolean bucket = MinioUtils.createBucket("sycar"); |
| | | boolean bucket = MinioUtil.createBucket("sycar"); |
| | | } |
| | | //文件名 |
| | | String originalFilename = carPicture.getOriginalFilename(); |
| | |
| | | try { |
| | | InputStream inputStream = carPicture.getInputStream(); |
| | | /*上传对象*/ |
| | | PutObjectArgs putObjectArgs = PutObjectArgs |
| | | .builder() |
| | | .bucket("sycar") |
| | | .object(fileName) |
| | | .stream(inputStream, carPicture.getSize(), -1) |
| | | .contentType(carPicture.getContentType()) |
| | | .build(); |
| | | MinioClientSingleton.getMinioClient().putObject(putObjectArgs); |
| | | // PutObjectArgs putObjectArgs = PutObjectArgs |
| | | // .builder() |
| | | // .bucket("sycar") |
| | | // .object(fileName) |
| | | // .stream(inputStream, carPicture.getSize(), -1) |
| | | // .contentType(carPicture.getContentType()) |
| | | // .build(); |
| | | // MinioConfig.getMinioClient().putObject(putObjectArgs); |
| | | MinioUtil.uploadObject("sycar",fileName,inputStream,carPicture.getSize(),carPicture.getContentType()); |
| | | inputStream.close(); |
| | | /*获取url*/ |
| | | GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs |
| | |
| | | .object(fileName) |
| | | .method(Method.GET) |
| | | .build(); |
| | | String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs); |
| | | String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?")); |
| | | //String presignedObjectUrl = MinioConfig.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs); |
| | | String ObjectUrl = MinioUtil.getBucketObjectUrl("sycar", fileName); |
| | | if (id != null && !id.equals("")) {//id为非必要 |
| | | ArdSyCar ardSyCar = new ArdSyCar(); |
| | | ardSyCar.setId(id); |
| | |
| | | List<Map<String, Object>> carGPSMap = (List<Map<String, Object>>) carGPSTrack.get("list"); |
| | | Double lng = Double.valueOf((String) carGPSMap.get(0).get("lng")); |
| | | Double lat = Double.valueOf((String) carGPSMap.get(0).get("lat")); |
| | | double distance = GisTool.getDistance( new double[]{longitude,latitude}, new double[]{lng, lat}); |
| | | double distance = GisUtil.getDistance( new double[]{longitude,latitude}, new double[]{lng, lat}); |
| | | if (distance <= radius) { |
| | | carMap.put("longitude",lng); |
| | | carMap.put("latitude",lat); |
| | |
| | | List<Map<String, Object>> carGPSMap = (List<Map<String, Object>>) carGPSTrack.get("list"); |
| | | Double lng = Double.valueOf((String) carGPSMap.get(0).get("lng")); |
| | | Double lat = Double.valueOf((String) carGPSMap.get(0).get("lat")); |
| | | Point point = new Point(); |
| | | point.setLongitude(lng); |
| | | point.setLatitude(lat); |
| | | boolean inPolygon = GisTool.isInPolygon(point, partitionLocation); |
| | | Point point = new Point(lng,lat); |
| | | boolean inPolygon = GisUtil.isInPolygon(point, partitionLocation); |
| | | if (inPolygon) { |
| | | carMap.put("longitude", lng); |
| | | carMap.put("latitude", lat); |