redis存储车辆所使用数据

master_suzejing
xiaoSu 2024-04-15 20:38:58 +08:00
parent ac3aa82ef4
commit 9c8131232b
8 changed files with 60 additions and 12 deletions

View File

@ -16,6 +16,9 @@ public class MarkersFence {
@TableField(value = "fence_id",insertStrategy = FieldStrategy.IGNORED) @TableField(value = "fence_id",insertStrategy = FieldStrategy.IGNORED)
private Long fenceId; private Long fenceId;
public Long getMarkerId() { public Long getMarkerId() {
return markerId; return markerId;
} }

View File

@ -1,8 +1,13 @@
package com.zhilian.business; package com.zhilian.business;
import com.zhilian.business.controller.FenceController;
import com.zhilian.business.controller.VehicleController;
import com.zhilian.common.security.annotation.EnableCustomConfig; import com.zhilian.common.security.annotation.EnableCustomConfig;
import com.zhilian.common.security.annotation.EnableMyFeignClients; import com.zhilian.common.security.annotation.EnableMyFeignClients;
import com.zhilian.common.swagger.annotation.EnableCustomSwagger2; import com.zhilian.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -19,8 +24,19 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableCustomSwagger2 @EnableCustomSwagger2
@EnableMyFeignClients @EnableMyFeignClients
@SpringBootApplication @SpringBootApplication
public class ZhilianBusinessApplication { public class ZhiLianBusinessApplication implements ApplicationRunner {
@Autowired
private VehicleController vehicleController;
@Autowired
private FenceController fenceController;
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ZhilianBusinessApplication.class); SpringApplication.run(ZhiLianBusinessApplication.class);
}
@Override
public void run(ApplicationArguments args) throws Exception {
fenceController.fenceRedisData();
} }
} }

View File

@ -87,7 +87,7 @@ public class FenceController extends BaseController {
* @return * @return
*/ */
@PostMapping("/fenceDelete/{fenceId}") @PostMapping("/fenceDelete/{fenceId}")
public Result fenceDelete(@PathVariable String fenceId) { public Result fenceDelete(@PathVariable Long fenceId) {
return toAjax(fenceService.removeByFence(fenceId)); return toAjax(fenceService.removeByFence(fenceId));
} }

View File

@ -4,7 +4,11 @@ import com.zhilian.business.domain.middle.MarkersFence;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Mapper @Mapper
@Component @Component
public interface MarkersFenceMapper extends BaseMapper<MarkersFence> { public interface MarkersFenceMapper extends BaseMapper<MarkersFence> {
boolean deleteBatchFenceIds(List<Long> longs);
} }

View File

@ -14,5 +14,5 @@ public interface FenceService extends IService<Fence> {
boolean updateByMap(Fence fence); boolean updateByMap(Fence fence);
boolean removeByFence(String fenceId); boolean removeByFence(Long fenceId);
} }

View File

@ -1,15 +1,22 @@
package com.zhilian.business.service.impl; package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.Fence; import com.zhilian.business.domain.Fence;
import com.zhilian.business.domain.middle.MarkersFence;
import com.zhilian.business.mapper.FenceMapper; import com.zhilian.business.mapper.FenceMapper;
import com.zhilian.business.mapper.MarkersFenceMapper;
import com.zhilian.business.mapper.MarkersMapper;
import com.zhilian.business.service.FenceService; import com.zhilian.business.service.FenceService;
import com.zhilian.common.core.utils.StringUtils; import com.zhilian.common.core.utils.StringUtils;
import com.zhilian.common.redis.service.RedisService; import com.zhilian.common.redis.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
@ -17,6 +24,9 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
@Autowired
private MarkersFenceMapper markersFenceMapper;
private static final String FENCE_INFO_KEY = "fence_info:"; private static final String FENCE_INFO_KEY = "fence_info:";
//电子围栏信息查询 //电子围栏信息查询
@Override @Override
@ -52,7 +62,9 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
public void fenceRedisData() { public void fenceRedisData() {
List<Fence> list = this.list(); List<Fence> list = this.list();
for (Fence fence : list) { for (Fence fence : list) {
redisService.setCacheSet(FENCE_INFO_KEY+fence.getFenceId(),fence.getFenceMessage()); if(!redisService.hasKey(FENCE_INFO_KEY+fence.getFenceId())){
redisService.setCacheSet(FENCE_INFO_KEY+fence.getFenceId(),fence.getFenceMessage());
}
} }
} }
//删除电子围栏全部数据 //删除电子围栏全部数据
@ -82,11 +94,19 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
//删除电子围栏 //删除电子围栏
@Override @Override
public boolean removeByFence(String fenceId) { public boolean removeByFence(Long fenceId) {
boolean remove = this.removeById(Integer.parseInt(fenceId)); boolean remove = this.removeById(fenceId);
if(redisService.hasKey(FENCE_INFO_KEY+fenceId)){ if(redisService.hasKey(FENCE_INFO_KEY+fenceId)){
redisService.deleteObject(FENCE_INFO_KEY+fenceId); redisService.deleteObject(FENCE_INFO_KEY+fenceId);
} }
QueryWrapper<MarkersFence> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fence_id", fenceId);
List<MarkersFence> markersFences = markersFenceMapper.selectList(queryWrapper);
List<Long> longs = new ArrayList<>();
markersFences.stream().forEach(markersFence -> {
longs.add(markersFence.getMarkerId());
});
markersFenceMapper.deleteBatchFenceIds(longs);
return remove; return remove;
} }

View File

@ -94,15 +94,10 @@ public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> impl
public List<VehicleFence> selectSelectAllData() { public List<VehicleFence> selectSelectAllData() {
List<VehicleFence> vehicleMarkersFence = vehicleMapper.selectListAll(); List<VehicleFence> vehicleMarkersFence = vehicleMapper.selectListAll();
for (VehicleFence vehicleFence : vehicleMarkersFence) { for (VehicleFence vehicleFence : vehicleMarkersFence) {
// 切割 fenceIds 字段为数组
String[] fenceIdsArray = vehicleFence.getFences().split(","); String[] fenceIdsArray = vehicleFence.getFences().split(",");
// 将数组转换为 ArrayList
ArrayList<String> fenceIdsArrayList = new ArrayList<>(Arrays.asList( fenceIdsArray)); ArrayList<String> fenceIdsArrayList = new ArrayList<>(Arrays.asList( fenceIdsArray));
vehicleFence.setFenceIds(fenceIdsArrayList); vehicleFence.setFenceIds(fenceIdsArrayList);
} }
// 缓存
for (VehicleFence vehicleFence : vehicleMarkersFence) { for (VehicleFence vehicleFence : vehicleMarkersFence) {
redisService.setCacheList(VEHICLE_PEOPLE_KEY + vehicleFence.getVehicleVIN(), vehicleFence.getFenceIds()); redisService.setCacheList(VEHICLE_PEOPLE_KEY + vehicleFence.getVehicleVIN(), vehicleFence.getFenceIds());
} }

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhilian.business.mapper.MarkersFenceMapper">
<delete id="deleteBatchFenceIds">
</delete>
</mapper>