重新分组redis同步功能

This commit is contained in:
lin
2025-11-14 19:02:34 +08:00
parent 30aa3192d0
commit 44cdcb8352
6 changed files with 166 additions and 238 deletions

View File

@@ -5,10 +5,6 @@ import lombok.Data;
@Data
public class RedisGroupMessage {
/**
* 分组国标ID
*/
private String groupGbId;
/**
* 分组别名
@@ -20,26 +16,12 @@ public class RedisGroupMessage {
*/
private String groupName;
/**
* 分组所属的行政区划
*/
private String groupCivilCode;
/**
* 分组所属父分组国标ID
*/
private String parentGroupGbId;
/**
* 分组所属父分组别名
*/
private String parentGAlias;
/**
* 分组所属业务分组国标ID
*/
private String topGroupGbId;
/**
* 分组所属业务分组别名
*/
@@ -54,13 +36,9 @@ public class RedisGroupMessage {
@Override
public String toString() {
return "RedisGroupMessage{" +
"groupGbId='" + groupGbId + '\'' +
", groupAlias='" + groupAlias + '\'' +
", groupName='" + groupName + '\'' +
", groupCivilCode='" + groupCivilCode + '\'' +
", parentGroupGbId='" + parentGroupGbId + '\'' +
", parentGAlias='" + parentGAlias + '\'' +
", topGroupGbId='" + topGroupGbId + '\'' +
", topGroupGAlias='" + topGroupGAlias + '\'' +
'}';
}

View File

@@ -320,4 +320,19 @@ public interface GroupMapper {
" GROUP BY coalesce(wdc.gb_parent_id, wdc.parent_id)" +
"</script>")
List<CameraCount> queryCountWithChild(List<CameraGroup> groupList);
@Select("SELECT * from wvp_common_group where alias is not null")
@MapKey("alias")
Map<String, Group> queryGroupByAliasMap();
@Delete("DELETE FROM wvp_common_group where alias is not null")
void deleteHasAlias();
@Update(" UPDATE wvp_common_group g1" +
" JOIN wvp_common_group g2" +
" ON g1.parent_device_id = g2.device_id" +
" SET g1.parent_id = g2.id" +
" WHERE g1.alias IS NOT NULL;")
void fixParentId();
}

View File

@@ -4,7 +4,9 @@ import com.genersoft.iot.vmp.gb28181.bean.Group;
import com.genersoft.iot.vmp.gb28181.bean.GroupTree;
import com.github.pagehelper.PageInfo;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public interface IGroupService {
@@ -31,4 +33,7 @@ public interface IGroupService {
void sync();
Map<String, Group> queryGroupByAliasMap();
void saveByAlias(Collection<Group> groups);
}

View File

@@ -331,4 +331,20 @@ public class GroupServiceImpl implements IGroupService, CommandLineRunner {
throw new ControllerException(ErrorCode.ERROR100.getCode(), "同步失败: " + e.getMessage());
}
}
@Override
public Map<String, Group> queryGroupByAliasMap() {
return groupManager.queryGroupByAliasMap();
}
@Override
@Transactional
public void saveByAlias(Collection<Group> groups) {
// 清空别名数据
groupManager.deleteHasAlias();
// 写入新数据
groupManager.batchAdd(new ArrayList<>(groups));
// 修复数据丢失的parentID
groupManager.fixParentId();
}
}