diff --git a/couplet-auth/src/main/resources/bootstrap.yml b/couplet-auth/src/main/resources/bootstrap.yml index 427f682..68c3c25 100644 --- a/couplet-auth/src/main/resources/bootstrap.yml +++ b/couplet-auth/src/main/resources/bootstrap.yml @@ -17,9 +17,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-gateway/src/main/resources/bootstrap.yml b/couplet-gateway/src/main/resources/bootstrap.yml index 091e68a..6dc39fe 100644 --- a/couplet-gateway/src/main/resources/bootstrap.yml +++ b/couplet-gateway/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java index d47c633..004249f 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java @@ -2,6 +2,7 @@ package com.couplet.analyze.msg.model; import com.couplet.analyze.common.contents.AnalyzeEventContents; import com.couplet.analyze.common.event.AnalyzeEventCache; +import com.couplet.analyze.common.event.AnalyzeEventCache; import com.couplet.analyze.msg.domain.CoupletMsgData; import com.couplet.analyze.msg.service.IncidentService; import com.couplet.common.core.exception.vehicle.VehicleException; diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/bootstrap.yml b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/bootstrap.yml index bed4d26..183987e 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/mapper/FenAndLogoMapper.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/mapper/FenAndLogoMapper.java index 219f2d5..2864f4c 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/mapper/FenAndLogoMapper.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/mapper/FenAndLogoMapper.java @@ -28,4 +28,6 @@ public interface FenAndLogoMapper extends BaseMapper { * @param aLong */ List queryByFenceAndLogoIds(FenceAndLogeRequest aLong); + + List findFencesByLogoId(@Param("logoId") Long logoId); } diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/FenAndLogoService.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/FenAndLogoService.java index 5fa9e42..a144785 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/FenAndLogoService.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/FenAndLogoService.java @@ -28,4 +28,9 @@ public interface FenAndLogoService extends IService { */ List queryByFenceAndLogoIds(FenceAndLogeRequest request); + /* + * 通过标识id查询围栏id + * */ + List findFencesByLogoId(Long logoId); + } diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenAndLogoServiceImpl.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenAndLogoServiceImpl.java index 0fba2fe..364e1f3 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenAndLogoServiceImpl.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenAndLogoServiceImpl.java @@ -47,4 +47,14 @@ public class FenAndLogoServiceImpl extends ServiceImpl return fenAndLogoMapper.queryByFenceAndLogoIds(request); } + + /* + * 通过标识id查询围栏信息 + * */ + @Override + public List findFencesByLogoId(Long logoId) { + + + return fenAndLogoMapper.findFencesByLogoId(logoId); + } } diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java index 52bf7a8..d2b8f08 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java @@ -11,7 +11,7 @@ import com.couplet.common.domain.request.FenceRequest; import com.couplet.common.domain.request.FenceUpdateRequest; import com.couplet.common.redis.service.RedisService; import com.couplet.common.security.utils.SecurityUtils; -import com.couplet.mq.remote.RemoteFenceService; +//import com.couplet.mq.remote.RemoteFenceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; @@ -47,8 +47,8 @@ public class FenceServiceImpl extends ServiceImpl implements /** * 远程调用队列服务 */ - @Autowired - private RemoteFenceService remoteFenceService; +// @Autowired +// private RemoteFenceService remoteFenceService; @Override public List pageQuery(FenceConfig fenceConfig) { @@ -67,7 +67,7 @@ public class FenceServiceImpl extends ServiceImpl implements */ redisTemplate.opsForValue().set("changeFenceStatus", JSON.toJSONString(fenceUpdateRequest), 10, TimeUnit.MINUTES); - remoteFenceService.fenceQueue(fenceUpdateRequest); +// remoteFenceService.fenceQueue(fenceUpdateRequest); } @Override diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/VehicleServiceImpl.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/VehicleServiceImpl.java index 7f62e96..6c22945 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/VehicleServiceImpl.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/VehicleServiceImpl.java @@ -4,14 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.couplet.business.server.mapper.VehicleMapper; +import com.couplet.business.server.service.FenAndLogoService; import com.couplet.business.server.service.VehicleAndLogoService; import com.couplet.business.server.service.VehicleService; import com.couplet.business.server.service.VehicleTypeService; import com.couplet.common.core.domain.Result; import com.couplet.common.core.utils.StringUtils; import com.couplet.common.core.utils.uuid.UUID; +import com.couplet.common.domain.Fence; import com.couplet.common.domain.Vehicle; -import com.couplet.common.domain.VehicleMiddle; import com.couplet.common.domain.VehicleType; import com.couplet.common.domain.request.VehicleEditParams; import com.couplet.common.domain.request.VehicleInsertParams; @@ -21,8 +22,11 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.HashSet; import java.util.List; +import java.util.concurrent.TimeUnit; /** * @ProjectName: five-groups-couplet @@ -52,6 +56,9 @@ public class VehicleServiceImpl extends ServiceImpl impl @Autowired private VehicleAndLogoService vehicleAndLogoService; + @Autowired + private FenAndLogoService fenAndLogoService; + /* * @Author: LiuYunHu * @Date: 2024/3/26 22:11 @@ -119,6 +126,9 @@ public class VehicleServiceImpl extends ServiceImpl impl Result.error(result); } + //刷新set缓存 + reCache(); + result = "删除成功!"; return result; @@ -132,6 +142,7 @@ public class VehicleServiceImpl extends ServiceImpl impl * @Return: java.lang.String **/ @Override + @Transactional(rollbackFor = Exception.class) public String editById(VehicleEditParams editParams) { String result = ""; @@ -175,16 +186,8 @@ public class VehicleServiceImpl extends ServiceImpl impl vehicleAndLogoService.vehicleBindLogo(editParams.getVehicleId(), editParams.getLogoIds()); -// //mq -// List logoList = getBindLogoById(editParams.getVehicleId()); -// if (0 != logoList.size()) { -// String ids = ""; -// for (Long l : logoList) { -// ids = "," + l; -// } -// ids = ids.substring(1); -// remoteFenceService.vehicleQueue(editParams.getVehicleId() + "-" + ids); -// } + //刷新set缓存 + reCache(); result = "编辑成功!"; @@ -200,6 +203,7 @@ public class VehicleServiceImpl extends ServiceImpl impl * @Return: java.lang.String **/ @Override + @Transactional(rollbackFor = Exception.class) public String insert(VehicleInsertParams insertParams) { String result = ""; @@ -254,16 +258,9 @@ public class VehicleServiceImpl extends ServiceImpl impl //执行添加电子围栏 int i = vehicleAndLogoService.vehicleBindLogo(vehicle.getVehicleId(), insertParams.getLogoIds()); -// -// List logoList = getBindLogoById(vehicle.getVehicleId()); -// if (0 != logoList.size()) { -// String ids = ""; -// for (Long l : logoList) { -// ids = "," + l; -// } -// ids = ids.substring(1); -// remoteFenceService.vehicleQueue(vehicle.getVehicleId() + "-" + ids); -// } + + //刷新set缓存 + reCache(); result = "新增成功!"; @@ -304,14 +301,19 @@ public class VehicleServiceImpl extends ServiceImpl impl } - @Override public List vehicleAll() { return vehicleMapper.vehicleAll(); } - //通过vin修改车辆上下线的状态 + /* + * @Author: LiuYunHu + * @Date: 2024/4/8 14:11 + * @Description: 通过vin修改车辆上下线的状态 + * @Param: [vin, status] + * @Return: java.lang.Integer + **/ @Override public Integer onOrOutLineByVIN(String vin, int status) { @@ -320,9 +322,16 @@ public class VehicleServiceImpl extends ServiceImpl impl @Override public Integer addVehicle(Long userId, List vehicleIds) { - return vehicleMapper.addVehicle(userId,vehicleIds); + return vehicleMapper.addVehicle(userId, vehicleIds); } + /* + * @Author: LiuYunHu + * @Date: 2024/4/8 14:11 + * @Description: 通过vin查询车辆,因为是plus,所以是List + * @Param: [vin] + * @Return: java.util.List + **/ @Override public List findByVIN(String vin) { @@ -338,32 +347,31 @@ public class VehicleServiceImpl extends ServiceImpl impl } - - @Scheduled(cron = "0/1 * * * * *") - public void aa() { - System.out.println("********************************************************"); - } - - //判断车辆是否下线 + /* + * @Author: LiuYunHu + * @Date: 2024/4/8 14:12 + * @Description: 定时执行,查询缓存中下线的车辆,修改其状态 + * @Param: [] + * @Return: void + **/ @Scheduled(cron = "0/1 * * * * *") public void downLine() { log.info("定时器启动"); //先查询车辆列表 List list = this.list(new VehicleListParams(null, null, null, null)); - list.forEach(vehicle -> { try { //只针对已经上线的车辆 - if (redis.hasKey(vehicle.getVin())) { + if (redis.hasKey("已上线的车辆vin:" + vehicle.getVin())) { //如果vin的缓存 时间还剩一秒,则判断为已经下线 - if (redis.getExpire(vehicle.getVin()) <= 3) { + if (redis.getExpire("已上线的车辆vin:" + vehicle.getVin()) <= 3) { log.info(vehicle.getVin() + "的车辆已经下线"); //执行修改下线状态的方法 // Integer i = this.onOrOutLineByVIN(vehicle.getVin() + "," + 0); - Integer i = this.onOrOutLineByVIN(vehicle.getVin() , 0); + Integer i = this.onOrOutLineByVIN(vehicle.getVin(), 0); if (0 == i) { log.error("下线状态修改失败"); @@ -380,4 +388,47 @@ public class VehicleServiceImpl extends ServiceImpl impl } + /* + * @Author: LiuYunHu + * @Date: 2024/4/8 14:14 + * @Description: 刷新缓存中 的数据 车辆绑定标识的缓存 + * @Param: [] + * @Return: void + **/ + @Scheduled(cron = "0/3 * * * * *") + public void reCache() { + //刷新缓存执行开始 + + //先获取所有车辆的信息 + List list = list(new VehicleListParams()); + + list.forEach(vehicle -> { + //通过车辆的id获取对应的标识集合 + List bindLogoById = getBindLogoById(vehicle.getVehicleId()); + + //遍历标识集合 + bindLogoById.forEach(logoId -> { + + //存标识id 的set + HashSet logos = new HashSet<>(); + logos.add(logoId); + //存入redis + redis.setCacheSet("车辆vin和标识:" + vehicle.getVin(), logos); + redis.expire("车辆vin和标识:" + vehicle.getVin(), 2, TimeUnit.MINUTES); + + + //通过标识id获取标识绑定的电子围栏集合 + List fences = fenAndLogoService.findFencesByLogoId(logoId); + //遍历电子围栏集合 + fences.forEach(fence -> { + HashSet fanceSet = new HashSet<>(); + fanceSet.add(fence); + //存入redis + redis.setCacheSet("车辆vin和电子围栏:" + vehicle.getVin(), fanceSet); + redis.expire("车辆vin和电子围栏:" + vehicle.getVin(), 2, TimeUnit.MINUTES); + }); + }); + }); + } + } diff --git a/couplet-modules/couplet-business/src/main/resources/mapper/business/FenAndLogoMapper.xml b/couplet-modules/couplet-business/src/main/resources/mapper/business/FenAndLogoMapper.xml index 536b2ab..5953d01 100644 --- a/couplet-modules/couplet-business/src/main/resources/mapper/business/FenAndLogoMapper.xml +++ b/couplet-modules/couplet-business/src/main/resources/mapper/business/FenAndLogoMapper.xml @@ -10,15 +10,15 @@ - - - - - + + + + + - + @@ -36,11 +36,19 @@ fence_longitude_latitude, logo_name FROM couplet_fences_and_logo a - INNER JOIN couplet_fence_info f on a.fences_id=f.fence_id - INNER JOIN couplet_logo_info l on l.logo_id=a.logo_id - left JOIN couplet_vehicle_and_logo c on l.logo_id=c.logo_id - WHERE l.logo_id=#{logoIds} and c.vehicle_id=#{id} + INNER JOIN couplet_fence_info f on a.fences_id = f.fence_id + INNER JOIN couplet_logo_info l on l.logo_id = a.logo_id + left JOIN couplet_vehicle_and_logo c on l.logo_id = c.logo_id + WHERE l.logo_id = #{logoIds} + and c.vehicle_id = #{id} + + diff --git a/couplet-modules/couplet-file/src/main/resources/bootstrap.yml b/couplet-modules/couplet-file/src/main/resources/bootstrap.yml index fa968e9..b0d1d24 100644 --- a/couplet-modules/couplet-file/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-file/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml b/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml index e3d77cd..d2113ff 100644 --- a/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-gen/src/main/resources/bootstrap.yml @@ -17,9 +17,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-job/src/main/resources/bootstrap.yml b/couplet-modules/couplet-job/src/main/resources/bootstrap.yml index bb1f871..41d1fef 100644 --- a/couplet-modules/couplet-job/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-job/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml b/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml index 00ac887..cccb96b 100644 --- a/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-modules-mq/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 @@ -33,15 +35,15 @@ logging: com.couplet.system.mapper: DEBUG # 订阅端配置 -mqtt: - server: - broker: tcp://8.130.181.16:1883 -# broker: tcp://115.159.47.13:1883 - username: - password: - clientid: mqttx - qos: 0 - topic: test +#mqtt: +# server: +# broker: tcp://8.130.181.16:1883 +## broker: tcp://115.159.47.13:1883 +# username: +# password: +# clientid: mqttx +# qos: 0 +# topic: test # RabbitMQ配置 mq: diff --git a/couplet-modules/couplet-modules-onLine/pom.xml b/couplet-modules/couplet-modules-onLine/pom.xml index 44947a4..85f4737 100644 --- a/couplet-modules/couplet-modules-onLine/pom.xml +++ b/couplet-modules/couplet-modules-onLine/pom.xml @@ -11,11 +11,11 @@ couplet-modules-online - - - - - + + + + + couplet-modules-online车辆上线的模块 @@ -91,7 +91,7 @@ 1.2.5 - + com.couplet couplet-common-business @@ -99,10 +99,6 @@ - - - - org.apache.kafka kafka-clients diff --git a/couplet-modules/couplet-modules-onLine/src/main/java/com/couplet/online/utils/MqttMonitor.java b/couplet-modules/couplet-modules-onLine/src/main/java/com/couplet/online/utils/MqttMonitor.java index cd954e7..6f4bfc9 100644 --- a/couplet-modules/couplet-modules-onLine/src/main/java/com/couplet/online/utils/MqttMonitor.java +++ b/couplet-modules/couplet-modules-onLine/src/main/java/com/couplet/online/utils/MqttMonitor.java @@ -11,7 +11,6 @@ import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @@ -184,7 +183,7 @@ public class MqttMonitor { //调取接口,通过vin查询车辆 List vehicles = remoteVehicleService.findByVIN(start17).getData(); - System.out.println("**************" + vehicles); +// System.out.println("**************" + vehicles); //如果不存在这个车 @@ -198,7 +197,7 @@ public class MqttMonitor { log.info("远程调用查询到的车辆数据:" + vehicle); //上线车辆存入redis 6秒 用于判断车辆是否下线,还要写定时器,定时查询 - redis.setCacheObject(start17, start17, 6L, TimeUnit.SECONDS); + redis.setCacheObject("已上线的车辆vin:"+start17, start17, 6L, TimeUnit.SECONDS); log.info("vin码为" + start17 + "的车辆属于本系统,允许上线!"); @@ -207,7 +206,7 @@ public class MqttMonitor { Integer i = remoteVehicleService.onOrOutLineByVIN(start17 + "," + 1); //上线成功 if (0 != i) { - log.info("上线成功!"); +// log.info("上线成功!"); try { produceMessage(message); } catch (Exception e) { @@ -239,7 +238,7 @@ public class MqttMonitor { //发送消息 kafkaProducer.send(new ProducerRecord<>(TOPIC_NAME, message)); - System.out.println("发送消息:" + message); +// System.out.println("发送消息:" + message); } catch (Exception e) { log.error("消息发送失败:" + e.getMessage()); diff --git a/couplet-modules/couplet-system/src/main/resources/bootstrap.yml b/couplet-modules/couplet-system/src/main/resources/bootstrap.yml index 859221a..d9315bd 100644 --- a/couplet-modules/couplet-system/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-system/src/main/resources/bootstrap.yml @@ -15,11 +15,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 968741d4-299d-483c-8d30-ede2aff8cfd4 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml b/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml index d1064dc..d219500 100644 --- a/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml +++ b/couplet-visual/couplet-monitor/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 + namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 + namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置