Merge branch 'server_five_liuyunhu' of https://gitea.qinmian.online/five-groups/five-groups-couplet into server_five
# Conflicts: # couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java # couplet-modules/couplet-business/src/main/resources/bootstrap.yml # couplet-modules/couplet-modules-onLine/src/main/resources/bootstrap.yml # couplet-modules/couplet-system/src/main/resources/bootstrap.ymlserver_five_dongxiaodong
commit
0960e8f9fb
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -28,4 +28,6 @@ public interface FenAndLogoMapper extends BaseMapper<Fence> {
|
|||
* @param aLong
|
||||
*/
|
||||
List<Fence> queryByFenceAndLogoIds(FenceAndLogeRequest aLong);
|
||||
|
||||
List<Fence> findFencesByLogoId(@Param("logoId") Long logoId);
|
||||
}
|
||||
|
|
|
@ -28,4 +28,9 @@ public interface FenAndLogoService extends IService<Fence> {
|
|||
*/
|
||||
List<Fence> queryByFenceAndLogoIds(FenceAndLogeRequest request);
|
||||
|
||||
/*
|
||||
* 通过标识id查询围栏id
|
||||
* */
|
||||
List<Fence> findFencesByLogoId(Long logoId);
|
||||
|
||||
}
|
||||
|
|
|
@ -47,4 +47,14 @@ public class FenAndLogoServiceImpl extends ServiceImpl<FenAndLogoMapper, Fence>
|
|||
|
||||
return fenAndLogoMapper.queryByFenceAndLogoIds(request);
|
||||
}
|
||||
|
||||
/*
|
||||
* 通过标识id查询围栏信息
|
||||
* */
|
||||
@Override
|
||||
public List<Fence> findFencesByLogoId(Long logoId) {
|
||||
|
||||
|
||||
return fenAndLogoMapper.findFencesByLogoId(logoId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<FenceMapper, Fence> implements
|
|||
/**
|
||||
* 远程调用队列服务
|
||||
*/
|
||||
@Autowired
|
||||
private RemoteFenceService remoteFenceService;
|
||||
// @Autowired
|
||||
// private RemoteFenceService remoteFenceService;
|
||||
|
||||
@Override
|
||||
public List<Fence> pageQuery(FenceConfig fenceConfig) {
|
||||
|
@ -67,7 +67,7 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
|
|||
*/
|
||||
redisTemplate.opsForValue().set("changeFenceStatus", JSON.toJSONString(fenceUpdateRequest), 10, TimeUnit.MINUTES);
|
||||
|
||||
remoteFenceService.fenceQueue(fenceUpdateRequest);
|
||||
// remoteFenceService.fenceQueue(fenceUpdateRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -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<VehicleMapper, Vehicle> 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<VehicleMapper, Vehicle> impl
|
|||
Result.error(result);
|
||||
}
|
||||
|
||||
//刷新set缓存
|
||||
reCache();
|
||||
|
||||
result = "删除成功!";
|
||||
|
||||
return result;
|
||||
|
@ -132,6 +142,7 @@ public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> 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<VehicleMapper, Vehicle> impl
|
|||
vehicleAndLogoService.vehicleBindLogo(editParams.getVehicleId(), editParams.getLogoIds());
|
||||
|
||||
|
||||
// //mq
|
||||
// List<Long> 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<VehicleMapper, Vehicle> 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<VehicleMapper, Vehicle> impl
|
|||
//执行添加电子围栏
|
||||
int i = vehicleAndLogoService.vehicleBindLogo(vehicle.getVehicleId(), insertParams.getLogoIds());
|
||||
|
||||
//
|
||||
// List<Long> 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<VehicleMapper, Vehicle> impl
|
|||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<Vehicle> 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) {
|
||||
|
||||
|
@ -323,6 +325,13 @@ public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> impl
|
|||
return vehicleMapper.addVehicle(userId, vehicleIds);
|
||||
}
|
||||
|
||||
/*
|
||||
* @Author: LiuYunHu
|
||||
* @Date: 2024/4/8 14:11
|
||||
* @Description: 通过vin查询车辆,因为是plus,所以是List
|
||||
* @Param: [vin]
|
||||
* @Return: java.util.List<com.couplet.common.domain.Vehicle>
|
||||
**/
|
||||
@Override
|
||||
public List<Vehicle> findByVIN(String vin) {
|
||||
|
||||
|
@ -338,27 +347,26 @@ public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> 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<Vehicle> 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() + "的车辆已经下线");
|
||||
|
||||
//执行修改下线状态的方法
|
||||
|
@ -380,4 +388,47 @@ public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> impl
|
|||
|
||||
}
|
||||
|
||||
/*
|
||||
* @Author: LiuYunHu
|
||||
* @Date: 2024/4/8 14:14
|
||||
* @Description: 刷新缓存中 的数据 车辆绑定标识的缓存
|
||||
* @Param: []
|
||||
* @Return: void
|
||||
**/
|
||||
@Scheduled(cron = "0/3 * * * * *")
|
||||
public void reCache() {
|
||||
//刷新缓存执行开始
|
||||
|
||||
//先获取所有车辆的信息
|
||||
List<Vehicle> list = list(new VehicleListParams());
|
||||
|
||||
list.forEach(vehicle -> {
|
||||
//通过车辆的id获取对应的标识集合
|
||||
List<Long> bindLogoById = getBindLogoById(vehicle.getVehicleId());
|
||||
|
||||
//遍历标识集合
|
||||
bindLogoById.forEach(logoId -> {
|
||||
|
||||
//存标识id 的set
|
||||
HashSet<Long> logos = new HashSet<>();
|
||||
logos.add(logoId);
|
||||
//存入redis
|
||||
redis.setCacheSet("车辆vin和标识:" + vehicle.getVin(), logos);
|
||||
redis.expire("车辆vin和标识:" + vehicle.getVin(), 2, TimeUnit.MINUTES);
|
||||
|
||||
|
||||
//通过标识id获取标识绑定的电子围栏集合
|
||||
List<Fence> fences = fenAndLogoService.findFencesByLogoId(logoId);
|
||||
//遍历电子围栏集合
|
||||
fences.forEach(fence -> {
|
||||
HashSet<Fence> fanceSet = new HashSet<>();
|
||||
fanceSet.add(fence);
|
||||
//存入redis
|
||||
redis.setCacheSet("车辆vin和电子围栏:" + vehicle.getVin(), fanceSet);
|
||||
redis.expire("车辆vin和电子围栏:" + vehicle.getVin(), 2, TimeUnit.MINUTES);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -39,8 +39,16 @@
|
|||
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}
|
||||
WHERE l.logo_id = #{logoIds}
|
||||
and c.vehicle_id = #{id}
|
||||
|
||||
</select>
|
||||
<select id="findFencesByLogoId" resultType="com.couplet.common.domain.Fence">
|
||||
SELECT fi.*
|
||||
FROM `couplet_fences_and_logo` fal
|
||||
right JOIN couplet_fence_info fi on fal.fences_id = fi.fence_id
|
||||
WHERE fal.logo_id = #{logoId}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -99,10 +99,6 @@
|
|||
|
||||
|
||||
<!-- Kafka依赖-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.kafka</groupId>-->
|
||||
<!-- <artifactId>spring-kafka</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>org.apache.kafka</groupId>
|
||||
<artifactId>kafka-clients</artifactId>
|
||||
|
|
|
@ -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<Vehicle> 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());
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
|
@ -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
|
||||
# 共享配置
|
||||
|
|
Loading…
Reference in New Issue