|
@@ -35,9 +35,9 @@ public class DataUtil {
|
|
|
|
|
|
String sql;
|
|
|
if ("ORACLE".equals(datasourceType.trim())) {
|
|
|
- sql = getOracleSql(null, null, dataType, false);
|
|
|
+ sql = getOracleSql(null, null, null, dataType, false);
|
|
|
} else if ("MYSQL".equals(datasourceType.trim())) {
|
|
|
- sql = getMysqlSql(dataType, false, null, null);
|
|
|
+ sql = getMysqlSql(dataType, false, null, null, null);
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("只支持Oracle和Mysql数据库");
|
|
|
}
|
|
@@ -47,10 +47,10 @@ public class DataUtil {
|
|
|
public List<UserDataVo> listUser(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType) {
|
|
|
String sql;
|
|
|
if ("ORACLE".equals(datasourceType.trim())) {
|
|
|
- sql = getOracleSql(null, null, dataType, true, "code");
|
|
|
+ sql = getOracleSql(null, null, null, dataType, true, "code");
|
|
|
return pageOracle(jdbcTemplate, sql, UserDataVo.class);
|
|
|
} else if ("MYSQL".equals(datasourceType.trim())) {
|
|
|
- sql = getMysqlSql(dataType, true, null, null);
|
|
|
+ sql = getMysqlSql(dataType, true, null, null, null);
|
|
|
return pageMysql(jdbcTemplate, sql, UserDataVo.class);
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("只支持Oracle和Mysql数据库");
|
|
@@ -60,34 +60,34 @@ public class DataUtil {
|
|
|
public List<CourseDataVo> listCourse(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType) {
|
|
|
String sql;
|
|
|
if ("ORACLE".equals(datasourceType.trim())) {
|
|
|
- sql = getOracleSql(null, null, dataType, false);
|
|
|
+ sql = getOracleSql(null, null, null, dataType, false);
|
|
|
} else if ("MYSQL".equals(datasourceType.trim())) {
|
|
|
- sql = getMysqlSql(dataType, false, null, null);
|
|
|
+ sql = getMysqlSql(dataType, false, null, null, null);
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("只支持Oracle和Mysql数据库");
|
|
|
}
|
|
|
return query(jdbcTemplate, sql, CourseDataVo.class);
|
|
|
}
|
|
|
|
|
|
- public List<ExamTaskDataVo> listExamTask(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType) {
|
|
|
+ public List<ExamTaskDataVo> listExamTask(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType, String xn, String xq, String ksmc) {
|
|
|
String sql;
|
|
|
if ("ORACLE".equals(datasourceType.trim())) {
|
|
|
- sql = getOracleSql(null, null, dataType, false);
|
|
|
+ sql = getOracleSql(xn, xq, ksmc, dataType, false);
|
|
|
} else if ("MYSQL".equals(datasourceType.trim())) {
|
|
|
- sql = getMysqlSql(dataType, false, null, null);
|
|
|
+ sql = getMysqlSql(dataType, false, xn, xq, ksmc);
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("只支持Oracle和Mysql数据库");
|
|
|
}
|
|
|
return query(jdbcTemplate, sql, ExamTaskDataVo.class);
|
|
|
}
|
|
|
|
|
|
- public List<TSyncDataStudent> listExamStudent(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType, String xn, String xq) {
|
|
|
+ public List<TSyncDataStudent> listExamStudent(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType, String xn, String xq, String ksmc) {
|
|
|
String sql;
|
|
|
if ("ORACLE".equals(datasourceType.trim())) {
|
|
|
- sql = getOracleSql(xn, xq, dataType, true, "coursecode", "studentcode");
|
|
|
+ sql = getOracleSql(xn, xq, ksmc, dataType, true, "coursecode", "studentcode");
|
|
|
return pageOracle(jdbcTemplate, sql, TSyncDataStudent.class);
|
|
|
} else if ("MYSQL".equals(datasourceType.trim())) {
|
|
|
- sql = getMysqlSql(dataType, true, xn, xq);
|
|
|
+ sql = getMysqlSql(dataType, true, xn, xq, ksmc);
|
|
|
return pageMysql(jdbcTemplate, sql, TSyncDataStudent.class);
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("只支持Oracle和Mysql数据库");
|
|
@@ -121,7 +121,7 @@ public class DataUtil {
|
|
|
List<T> list;
|
|
|
int pageNumber = 0;
|
|
|
do {
|
|
|
- int offset = pageNumber * PAGE_SIZE ;
|
|
|
+ int offset = pageNumber * PAGE_SIZE;
|
|
|
list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(tClass), offset, PAGE_SIZE);
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
listAll.addAll(list);
|
|
@@ -160,7 +160,7 @@ public class DataUtil {
|
|
|
return listAll;
|
|
|
}
|
|
|
|
|
|
- private String getMysqlSql(DataType dataType, boolean isPage, String xn, String xq) {
|
|
|
+ private String getMysqlSql(DataType dataType, boolean isPage, String xn, String xq, String ksmc) {
|
|
|
//sql语句
|
|
|
StringJoiner sql = new StringJoiner("");
|
|
|
if (isPage) {
|
|
@@ -173,6 +173,9 @@ public class DataUtil {
|
|
|
if (StringUtils.isNotBlank(xq)) {
|
|
|
sql.add(" and xqm = \'" + xq + "\'");
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(ksmc)) {
|
|
|
+ sql.add(" and ksmc = \'" + ksmc + "\'");
|
|
|
+ }
|
|
|
sql.add(" limit ?, ?");
|
|
|
} else {
|
|
|
sql.add("select * from ");
|
|
@@ -184,11 +187,14 @@ public class DataUtil {
|
|
|
if (StringUtils.isNotBlank(xq)) {
|
|
|
sql.add(" and xqm = \'" + xq + "\'");
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(ksmc)) {
|
|
|
+ sql.add(" and ksmc = \'" + ksmc + "\'");
|
|
|
+ }
|
|
|
}
|
|
|
return sql.toString();
|
|
|
}
|
|
|
|
|
|
- private String getOracleSql(String xn, String xq, DataType dataType, boolean isPage, String... sortColumn) {
|
|
|
+ private String getOracleSql(String xn, String xq, String ksmc, DataType dataType, boolean isPage, String... sortColumn) {
|
|
|
//sql语句
|
|
|
String sql;
|
|
|
if (isPage) {
|
|
@@ -208,6 +214,9 @@ public class DataUtil {
|
|
|
if (StringUtils.isNotBlank(xq)) {
|
|
|
stringJoiner.add(" and xqm = \'" + xq + "\'");
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(ksmc)) {
|
|
|
+ stringJoiner.add(" and ksmc = \'" + ksmc + "\'");
|
|
|
+ }
|
|
|
stringJoiner.add(" ) WHERE rn BETWEEN ? AND ?");
|
|
|
sql = stringJoiner.toString();
|
|
|
} else {
|
|
@@ -218,6 +227,9 @@ public class DataUtil {
|
|
|
if (StringUtils.isNotBlank(xq)) {
|
|
|
sql += " and xqm = \'" + xq + "\'";
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(ksmc)) {
|
|
|
+ sql += " and ksmc = \'" + ksmc + "\'";
|
|
|
+ }
|
|
|
}
|
|
|
log.info(dataType.getName() + "数据同步sql:" + sql);
|
|
|
return sql;
|
|
@@ -226,15 +238,15 @@ public class DataUtil {
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
DataUtil dataUtil = new DataUtil();
|
|
|
- System.out.println(dataUtil.getOracleSql(null, null, DataType.B, true, "semestercode"));
|
|
|
- System.out.println(dataUtil.getOracleSql(null, null, DataType.B, false, "semestercode", "examname"));
|
|
|
- System.out.println(dataUtil.getOracleSql("2023-2024", "1", DataType.B, true, "semestercode"));
|
|
|
- System.out.println(dataUtil.getOracleSql("2023-2024", "", DataType.B, false, "semestercode"));
|
|
|
+ System.out.println(dataUtil.getOracleSql(null, null, null, DataType.B, true, "semestercode"));
|
|
|
+ System.out.println(dataUtil.getOracleSql(null, null, null, DataType.B, false, "semestercode", "examname"));
|
|
|
+ System.out.println(dataUtil.getOracleSql("2023-2024", "1", null, DataType.B, true, "semestercode"));
|
|
|
+ System.out.println(dataUtil.getOracleSql("2023-2024", "", null, DataType.B, false, "semestercode"));
|
|
|
System.out.println("------------------------------------");
|
|
|
- System.out.println(dataUtil.getMysqlSql(DataType.B, true, null, null));
|
|
|
- System.out.println(dataUtil.getMysqlSql(DataType.B, false, null, null));
|
|
|
- System.out.println(dataUtil.getMysqlSql(DataType.B, true, "2023-2024", "1"));
|
|
|
- System.out.println(dataUtil.getMysqlSql(DataType.B, false, "2023-2024", ""));
|
|
|
+ System.out.println(dataUtil.getMysqlSql(DataType.B, true, null, null, null));
|
|
|
+ System.out.println(dataUtil.getMysqlSql(DataType.B, false, null, null, null));
|
|
|
+ System.out.println(dataUtil.getMysqlSql(DataType.B, true, "2023-2024", "1", null));
|
|
|
+ System.out.println(dataUtil.getMysqlSql(DataType.B, false, "2023-2024", "", null));
|
|
|
}
|
|
|
|
|
|
public DataSource createDataSourceMap(Long schoolId) {
|