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)
private Long fenceId;
public Long getMarkerId() {
return markerId;
}

View File

@ -1,8 +1,13 @@
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.EnableMyFeignClients;
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.autoconfigure.SpringBootApplication;
@ -19,8 +24,19 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableCustomSwagger2
@EnableMyFeignClients
@SpringBootApplication
public class ZhilianBusinessApplication {
public class ZhiLianBusinessApplication implements ApplicationRunner {
@Autowired
private VehicleController vehicleController;
@Autowired
private FenceController fenceController;
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
*/
@PostMapping("/fenceDelete/{fenceId}")
public Result fenceDelete(@PathVariable String fenceId) {
public Result fenceDelete(@PathVariable Long 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.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Mapper
@Component
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 removeByFence(String fenceId);
boolean removeByFence(Long fenceId);
}

View File

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

View File

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