@@ -36,19 +36,53 @@ public class ConfigMigrateMapperByDerby extends AbstractMapperByDerby implements
36
36
public MapperResult findConfigIdNeedInsertMigrate (MapperContext context ) {
37
37
String sql = "SELECT ci.id FROM config_info ci WHERE ci.tenant_id = '' AND NOT EXISTS "
38
38
+ " ( SELECT 1 FROM config_info ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id AND ci2.tenant_id = 'public' )"
39
- + " AND id > ?" + " OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
40
- return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .LAST_MAX_ID ),
41
- context .getWhereParameter (FieldConstant .PAGE_SIZE )));
39
+ + " AND ci.id > ?" + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
40
+ return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .ID ),
41
+ context .getPageSize ()));
42
+ }
43
+
44
+ @ Override
45
+ public MapperResult findConfigNeedUpdateMigrate (MapperContext context ) {
46
+ String sql = "SELECT ci.id, ci.data_id, ci.group_id, ci.tenant_id"
47
+ + " FROM config_info ci WHERE ci.tenant_id = ? AND "
48
+ + " (ci.src_user <> ? OR ci.src_user IS NULL) AND EXISTS "
49
+ + " ( SELECT 1 FROM config_info ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id "
50
+ + " AND ci2.tenant_id = ? AND ci2.src_user = ? AND ci2.md5 <> ci.md5 "
51
+ + " AND ci2.gmt_modified < ci.gmt_modified )"
52
+ + " AND ci.id > ?" + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
53
+ return new MapperResult (sql ,
54
+ CollectionUtils .list (context .getWhereParameter (FieldConstant .SRC_TENANT ),
55
+ context .getWhereParameter (FieldConstant .SRC_USER ),
56
+ context .getWhereParameter (FieldConstant .TARGET_TENANT ),
57
+ context .getWhereParameter (FieldConstant .SRC_USER ), context .getWhereParameter (FieldConstant .ID ),
58
+ context .getPageSize ()));
42
59
}
43
60
44
61
@ Override
45
62
public MapperResult findConfigGrayIdNeedInsertMigrate (MapperContext context ) {
46
63
String sql = "SELECT ci.id FROM config_info_gray ci WHERE ci.tenant_id = '' AND NOT EXISTS "
47
64
+ " ( SELECT 1 FROM config_info_gray ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id"
48
- + " AND ci2.tenant_id = 'public' AND ci2.gray_name = ci1.gray_name)" + " AND id > ?"
49
- + " OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
50
- return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .LAST_MAX_ID ),
51
- context .getWhereParameter (FieldConstant .PAGE_SIZE )));
65
+ + " AND ci2.tenant_id = 'public' AND ci2.gray_name = ci.gray_name)" + " AND ci.id > ?"
66
+ + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
67
+ return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .ID ),
68
+ context .getPageSize ()));
69
+ }
70
+
71
+ @ Override
72
+ public MapperResult findConfigGrayNeedUpdateMigrate (MapperContext context ) {
73
+ String sql = "SELECT ci.id, ci.data_id, ci.group_id, ci.tenant_id, ci.gray_name "
74
+ + " FROM config_info_gray ci WHERE ci.tenant_id = ? AND "
75
+ + " (ci.src_user <> ? OR ci.src_user IS NULL) AND EXISTS "
76
+ + " ( SELECT 1 FROM config_info_gray ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id "
77
+ + " AND ci2.gray_name = ci.gray_name AND ci2.tenant_id = ? AND ci2.src_user = ? AND ci2.md5 <> ci.md5 "
78
+ + " AND ci2.gmt_modified < ci.gmt_modified )"
79
+ + " AND ci.id > ?" + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
80
+ return new MapperResult (sql ,
81
+ CollectionUtils .list (context .getWhereParameter (FieldConstant .SRC_TENANT ),
82
+ context .getWhereParameter (FieldConstant .SRC_USER ),
83
+ context .getWhereParameter (FieldConstant .TARGET_TENANT ),
84
+ context .getWhereParameter (FieldConstant .SRC_USER ), context .getWhereParameter (FieldConstant .ID ),
85
+ context .getPageSize ()));
52
86
}
53
87
54
88
@ Override
0 commit comments