From f878804bf7971879fe9c1f42f4ca19e203c2612b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=86=99=E6=9C=9D?= <13694051+wangxizhao123@user.noreply.gitee.com> Date: Tue, 18 Jun 2024 16:15:57 +0800 Subject: [PATCH] =?UTF-8?q?fast()=E8=8E=B7=E5=8F=96=E5=AE=9E=E6=97=B6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E9=87=8D=E6=9E=84=E7=94=B5=E5=AD=90?= =?UTF-8?q?=E5=9B=B4=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu-business-common/pom.xml | 1 + .../common/dev/LongitudeAndLatitude.java | 21 +++++++ .../com/business/common/domain/Fence.java | 4 -- .../business/common/domain/FenceGroups.java | 6 -- .../common/domain/LongitudeAndLatitude.java | 8 --- .../com/business/common/pojo/AppConfig.java | 14 +++++ .../com/business/common/pojo/HttpCar.java | 49 +++++++++++++++ .../java/com/business/common/psvm/Pences.java | 2 +- .../muyu-business-server/pom.xml | 7 +++ .../java/com/muyu/goods/client/ManageApi.java | 24 +++++++ .../muyu/goods/controller/CarController.java | 28 +++++++++ .../java/com/muyu/goods/mapper/MapMapper.java | 4 -- .../com/muyu/goods/service/ICarService.java | 8 +++ .../goods/service/impl/CarServiceImpl.java | 62 +++++++++++++++++-- .../muyu/goods/service/impl/MapService.java | 28 +-------- .../main/java/com/muyu/goods/timer/Timer.java | 12 ++-- .../main/resources/mapper/rule/MapMapper.xml | 2 - 17 files changed, 220 insertions(+), 60 deletions(-) create mode 100644 muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/LongitudeAndLatitude.java delete mode 100644 muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/LongitudeAndLatitude.java create mode 100644 muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/AppConfig.java create mode 100644 muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/HttpCar.java create mode 100644 muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/client/ManageApi.java diff --git a/muyu-modules/muyu-business/muyu-business-common/pom.xml b/muyu-modules/muyu-business/muyu-business-common/pom.xml index 6b16c56..58730f2 100644 --- a/muyu-modules/muyu-business/muyu-business-common/pom.xml +++ b/muyu-modules/muyu-business/muyu-business-common/pom.xml @@ -26,6 +26,7 @@ com.muyu muyu-common-system + diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/LongitudeAndLatitude.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/LongitudeAndLatitude.java new file mode 100644 index 0000000..ac995cc --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/LongitudeAndLatitude.java @@ -0,0 +1,21 @@ +package com.business.common.dev; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class LongitudeAndLatitude { + /** + * 经度 + */ + private String longitude; + /** + * 纬度 + */ + private String latitude; +} diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/Fence.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/Fence.java index 6669d68..ad9aaa0 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/Fence.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/Fence.java @@ -11,10 +11,6 @@ public class Fence { * 电子围栏主键 */ private Long fenceId; - /** - * 围栏组主键 - */ - private Long groupId; /** * 围栏名称 */ diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/FenceGroups.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/FenceGroups.java index 08a2a6f..5302f9b 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/FenceGroups.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/FenceGroups.java @@ -13,14 +13,8 @@ public class FenceGroups { * 围栏组id */ private Long groupsId; - - private Long carId; /** * 围栏组名称 */ private String groupsName; - /** - * 电子围栏 - */ - private List fenceList; } diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/LongitudeAndLatitude.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/LongitudeAndLatitude.java deleted file mode 100644 index b030258..0000000 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/domain/LongitudeAndLatitude.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.business.common.domain; - -import lombok.Data; - -@Data -public class LongitudeAndLatitude { - private String polygonItem; -} diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/AppConfig.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/AppConfig.java new file mode 100644 index 0000000..8fd13c8 --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/AppConfig.java @@ -0,0 +1,14 @@ +package com.business.common.pojo; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class AppConfig { + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } +} diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/HttpCar.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/HttpCar.java new file mode 100644 index 0000000..46ea765 --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/pojo/HttpCar.java @@ -0,0 +1,49 @@ +package com.business.common.pojo; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; + +@Service +public class HttpCar { + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } + + @Autowired + private RestTemplate restTemplate; + + public static void http(String name) { + //创建HttpClient实例 + java.net.http.HttpClient httpClient = java.net.http.HttpClient.newHttpClient(); + + //创建httpRequest + HttpRequest builder = HttpRequest.newBuilder() + .uri(URI.create("http://129.211.23.219:9100/manage/"+ name +"/JAV0VJUJYOTOK9KSY/1")) + .header("Content-Type", "application/x-www-form-urlencoded")// 根据需要设置Content-Type,如果服务期望其他类型的空请求体 + .POST(HttpRequest.BodyPublishers.noBody())// 使用 POST 方法并设置请求体,没有设置为空 + .build(); + //发送请求并获取响应 + try { + HttpResponse send = httpClient.send(builder, HttpResponse.BodyHandlers.ofString()); + int statusCode = send.statusCode(); + String responseBody = send.body(); + //处理响应 + System.out.println("状态码: " + statusCode); + System.out.println("响应: " + responseBody); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } + + + } +} diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/psvm/Pences.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/psvm/Pences.java index 35b66c6..adb145d 100644 --- a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/psvm/Pences.java +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/psvm/Pences.java @@ -11,6 +11,6 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor public class Pences { - private Long groupsId; + private Long pences; private List list; } diff --git a/muyu-modules/muyu-business/muyu-business-server/pom.xml b/muyu-modules/muyu-business/muyu-business-server/pom.xml index 509d4b5..d86cc70 100644 --- a/muyu-modules/muyu-business/muyu-business-server/pom.xml +++ b/muyu-modules/muyu-business/muyu-business-server/pom.xml @@ -112,6 +112,13 @@ org.springframework.boot spring-boot-starter + + + + com.dtflys.forest + forest-spring-boot-starter + 1.5.36 + diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/client/ManageApi.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/client/ManageApi.java new file mode 100644 index 0000000..50f3ec4 --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/client/ManageApi.java @@ -0,0 +1,24 @@ +package com.muyu.goods.client; + +import com.dtflys.forest.annotation.BaseRequest; +import com.dtflys.forest.annotation.Post; + +/** + * 建木webhook触发接口 + * @author GuanTieLin + * @Date 2024/4/11 上午10:49 + */ +@BaseRequest( + baseURL = "http://129.211.23.219:9100", + connectTimeout = 5000, + readTimeout = 5000 +) +public interface ManageApi { + + @Post("/manage/open/JAV0VJUJYOTOK9KSY/1") + void open(); + + @Post("/manage/close/JAV0VJUJYOTOK9KSY/1") + void close(); + +} diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/CarController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/CarController.java index 8a8d74b..68571c5 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/CarController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/CarController.java @@ -3,7 +3,9 @@ package com.muyu.goods.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.business.common.dev.LongitudeAndLatitude; import com.business.common.domain.Car; +import com.business.common.domain.VehicleInfo; import com.muyu.goods.service.ICarService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -139,4 +141,30 @@ public class CarController extends BaseController String s = redisTemplate.opsForValue().get("01"); return Result.success(s); } + + /** + * 读取信息 + * @param + * @return + */ + @PostMapping("read") + public Result read() { + return success(carService.read()); + } + + /** + * 开启事件 + */ + @PostMapping("open") + public void open() { + carService.open(); + } + + /** + * 结束事件 + */ + @PostMapping("close") + public void close() { + carService.close(); + } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java index 416e874..1d62ea0 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java @@ -8,18 +8,14 @@ import org.apache.ibatis.annotations.Param; import java.util.List; public interface MapMapper { - void indexFenceGroups(@Param("carId") Long carId, @Param("groupsName") String groupsName); List selectFenceGroups(); List selectFence(); - int indexFence(Fence fence); - int deleteFence(@Param("fenceId") Long fenceId); Fence queryFence(@Param("fenceId") Long fenceId); int updateFence(@Param("fenceId") Long fenceId, @Param("status") String status); - } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/ICarService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/ICarService.java index 44c2d35..c86889a 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/ICarService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/ICarService.java @@ -1,6 +1,8 @@ package com.muyu.goods.service; +import com.business.common.dev.LongitudeAndLatitude; import com.business.common.domain.Car; +import com.business.common.domain.VehicleInfo; import java.util.List; @@ -67,4 +69,10 @@ public interface ICarService Car query(Long carId); + VehicleInfo read(); + + void open(); + + void close(); + } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java index d2f6f53..596ca92 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java @@ -2,14 +2,21 @@ package com.muyu.goods.service.impl; import java.util.List; import java.util.UUID; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import com.business.common.domain.Car; -import com.business.common.domain.Enterprise; +import com.alibaba.fastjson.JSON; +import com.business.common.dev.LongitudeAndLatitude; +import com.business.common.domain.*; +import com.business.common.pojo.HttpCar; +import com.muyu.goods.client.ManageApi; import com.muyu.goods.mapper.CarMapper; import com.muyu.goods.mapper.MapMapper; import com.muyu.goods.service.ICarService; +import com.muyu.goods.timer.Timer; +import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; /** @@ -19,6 +26,7 @@ import org.springframework.stereotype.Service; * @date 2024-05-27 */ @Service +@Log4j2 public class CarServiceImpl implements ICarService { @Autowired @@ -27,6 +35,8 @@ public class CarServiceImpl implements ICarService private BusinessServiceImpl businessService; @Autowired private MapMapper mapMapper; + @Autowired + private RedisTemplate redisTemplate; /** * 查询车辆信息 @@ -84,8 +94,6 @@ public class CarServiceImpl implements ICarService int i = carMapper.insertCar(car); if (i>0) { Car car1 = carMapper.carByCar(); - System.out.println(car1); - mapMapper.indexFenceGroups(car1.getCarId(),"car"+car1.getCarId()); } return i; } @@ -130,4 +138,50 @@ public class CarServiceImpl implements ICarService public Car query(Long carId) { return carMapper.query(carId); } + + @Autowired + private Timer timer; + + @Override + public VehicleInfo read() { + String rightPopAndLeftPush = null; + try { + rightPopAndLeftPush = redisTemplate.opsForList().leftPop("event_handler:realtime_data:JAV0VJUJYOTOK9KSY" + , 3, TimeUnit.SECONDS); + if (rightPopAndLeftPush != null) { + log.info("处理消息: {}", rightPopAndLeftPush); + } + } catch (Exception e) { + log.error(e.getMessage()); + } + if (rightPopAndLeftPush != null){ + String parse = JSON.parse(rightPopAndLeftPush).toString(); + VehicleInfo vehicleInfo = JSON.parseObject(parse, VehicleInfo.class); +// LongitudeAndLatitude longitudeAndLatitude = LongitudeAndLatitude.builder() +// .latitude(latitude) +// .longitude(longitude) +// .build(); + return vehicleInfo; + }else{ + return null; + } + } + + @Autowired + private ManageApi manageApi; + + @Override + public void open() { +// manageApi.open(); + HttpCar.http("open"); + + } + + @Override + public void close() { + HttpCar.http("close"); +// manageApi.close(); + } + + } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java index 294a023..2fa6834 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java @@ -29,13 +29,6 @@ public class MapService implements IMapService { @Override public List selectFenceGroups() { List fenceGroupsList = mapMapper.selectFenceGroups(); - for (FenceGroups fenceGroups : fenceGroupsList) { - if (selectFence() == null){ - continue; - } - List fenceList = selectFence().stream().filter(fa -> fa.getGroupId() == fenceGroups.getGroupsId()).collect(Collectors.toList()); - fenceGroups.setFenceList(fenceList); - } return fenceGroupsList; } @@ -56,8 +49,7 @@ public class MapService implements IMapService { */ @Override public FenceGroups selectFenceGroupsById(Long carId) { - List groups = selectFenceGroups().stream().filter(car -> car.getCarId() == carId).collect(Collectors.toList()); - return groups.get(0); + return null; } /** @@ -67,23 +59,7 @@ public class MapService implements IMapService { */ @Override public String getSel(Pences pences) { - System.out.println(pences); - if (pences.getGroupsId() == null){ - return "数据不全"; - } - FenceGroups fenceGroups = selectFenceGroups().stream().filter(g -> g.getGroupsId() == pences.getGroupsId()).collect(Collectors.toList()).get(0); - Fence fence = new Fence(); - fence.setGroupId(pences.getGroupsId()); - List list = pences.getList(); - String jsonString = JSONArray.toJSONString(list); - fence.setPolygonPoints(jsonString); - List paths = JSONArray.parseArray(jsonString, Path.class); - fence.setFenceName("围栏"+ (fenceGroups.getFenceList().size()+1)); - int i = mapMapper.indexFence(fence); - if (i> 0) { - return "传入电子围栏"; - } - return "传入电子围栏失败"; + return null; } /** diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/timer/Timer.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/timer/Timer.java index 74814d5..9ce7217 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/timer/Timer.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/timer/Timer.java @@ -1,5 +1,6 @@ package com.muyu.goods.timer; +import com.muyu.goods.controller.CarController; import lombok.extern.log4j.Log4j2; import org.apache.kafka.common.protocol.types.Field; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -20,10 +21,9 @@ public class Timer { private RedisTemplate redisTemplate; @Scheduled(fixedDelay = 1000) - public void generateRandomNumber() { -// Random random = new Random(); -// int i = random.nextInt(100); -// System.out.println(i); + public String generateRandomNumber() { + Random random = new Random(); + int i = random.nextInt(100); String rightPopAndLeftPush = null; try { rightPopAndLeftPush = redisTemplate.opsForList().leftPop("event_handler:realtime_data:JAV0VJUJYOTOK9KSY" @@ -32,12 +32,14 @@ public class Timer { log.info("处理消息: {}", rightPopAndLeftPush); } } catch (Exception e) { - // 处理超时异常,进行持久化操作,消息没处理可进行后续处理 +// 处理超时异常,进行持久化操作,消息没处理可进行后续处理 // if (rightPopAndLeftPush != null) { // redisTemplate.opsForList().leftPush("backupList", rightPopAndLeftPush); // } log.error(e.getMessage()); } + rightPopAndLeftPush = String.valueOf(i); + return rightPopAndLeftPush; } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml index 415302f..d0a8f75 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml @@ -6,13 +6,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - -