diff --git a/admin-core/pom.xml b/admin-core/pom.xml index 70328992..b5e0b0b4 100644 --- a/admin-core/pom.xml +++ b/admin-core/pom.xml @@ -191,5 +191,6 @@ hutool-all 5.7.22 + diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/util/BeanUtil.java b/admin-core/src/main/java/com/ibeetl/admin/core/util/BeanUtil.java new file mode 100644 index 00000000..0a5e17c1 --- /dev/null +++ b/admin-core/src/main/java/com/ibeetl/admin/core/util/BeanUtil.java @@ -0,0 +1,37 @@ +package com.ibeetl.admin.core.util; + + +import cn.hutool.core.date.DateUtil; + +import java.util.Date; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + *

+ * + *

+ * + * @author mlx + * @date 2022/9/26 + * @modified + */ +public class BeanUtil extends cn.hutool.core.bean.BeanUtil { + + /** + * 值转换成String类型, 可能会报错 + * @param obj + * @return + */ + public static Map beanToMapStr(Object obj) { + Map result = new ConcurrentHashMap<>(16); + beanToMap(obj).forEach((s, o) -> { + if(o instanceof Date) { + result.put(s, DateUtil.date((Date)o).toString()); + }else { + result.put(s, String.valueOf(o)); + } + }); + return result; + } +} diff --git a/admin-test/pom.xml b/admin-test/pom.xml new file mode 100644 index 00000000..0b36118d --- /dev/null +++ b/admin-test/pom.xml @@ -0,0 +1,55 @@ + + + + admin + com.ibeetl + 1.3.1 + + 4.0.0 + + admin-test + + + + 7.2.6.RELEASE + 0.1.16 + 5.7.22 + 1.3.1 + + + + + uk.co.jemos.podam + podam + ${podam.version} + + + mysql + mysql-connector-java + + + + com.github.fppt + jedis-mock + ${jedis-mock.version} + + + junit + junit + + + com.qeedata + dynamic-beetlsql-spring-boot-starter + ${dynamic-beetlsql-spring-boot-starter.version} + compile + + + cn.hutool + hutool-all + ${hutool-core.version} + + + + \ No newline at end of file diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseDbAndRedisUnitTest.java b/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseDbAndRedisUnitTest.java new file mode 100644 index 00000000..e20745d9 --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseDbAndRedisUnitTest.java @@ -0,0 +1,52 @@ +package com.ibeetl.admin.test.base; + +import com.ibeetl.admin.test.config.RedisTestConfiguration; +import com.ibeetl.admin.test.config.SqlInitializationTestConfiguration; +import com.qeedata.data.beetlsql.dynamic.configure.DynamicBeetlSqlAutoConfiguration; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +/** + *

+ * 测试基类 暂时不能用 + * TODO 暂时不能用 + *

+ * + * @author mlx + * @date 2022/9/24 + * @modified + */ +@SpringBootTest(classes = {BaseDbAndRedisUnitTest.Application.class}, webEnvironment = SpringBootTest.WebEnvironment.NONE) +@RunWith(SpringRunner.class) +@ActiveProfiles("test") +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB +public class BaseDbAndRedisUnitTest { + + @Autowired + protected MockMvc mvc; + + @Import({ + // DB 配置类 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 + SqlInitializationTestConfiguration.class, // SQL 初始化 + // BeetlSql 配置类 +// DefaultDataSourceCreator.class, + DynamicBeetlSqlAutoConfiguration.class, // 动态多数据源BeetlSql + // Redis 配置类 + RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + + }) + public static class Application { + } +} diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseDbAndRedisUnitTest1.java b/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseDbAndRedisUnitTest1.java new file mode 100644 index 00000000..a419446a --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseDbAndRedisUnitTest1.java @@ -0,0 +1,49 @@ +package com.ibeetl.admin.test.base; + +import com.ibeetl.admin.test.config.RedisTestConfiguration; +import com.ibeetl.admin.test.config.SqlInitializationTestConfiguration; +import com.qeedata.data.beetlsql.dynamic.BeetlSqlBeanRegister; +import com.qeedata.data.beetlsql.dynamic.configure.DynamicBeetlSqlAutoConfiguration; +import org.junit.runner.RunWith; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.junit4.SpringRunner; + +/** + *

+ * 测试基类 暂时不能用 + * TODO 暂时不能用 + *

+ * + * @author mlx + * @date 2022/9/24 + * @modified + */ +@SpringBootTest(classes = {BaseDbAndRedisUnitTest1.Application.class}, webEnvironment = SpringBootTest.WebEnvironment.NONE) +@RunWith(SpringRunner.class) +@AutoConfigureMockMvc +@ActiveProfiles("test") +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB +public class BaseDbAndRedisUnitTest1 { + + @Import({ + // DB 配置类 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 + SqlInitializationTestConfiguration.class, // SQL 初始化 + // BeetlSql 配置类 + BeetlSqlBeanRegister.class, + DynamicBeetlSqlAutoConfiguration.class, // 动态多数据源BeetlSql + // Redis 配置类 + RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + }) + public static class Application { + } +} diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseMockitoUnitTest.java b/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseMockitoUnitTest.java new file mode 100644 index 00000000..051ea9e9 --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/base/BaseMockitoUnitTest.java @@ -0,0 +1,13 @@ +package com.ibeetl.admin.test.base; + +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +/** + * 纯 Mockito 的单元测试 + * + * @author 芋道源码 + */ +@ExtendWith(MockitoExtension.class) +public class BaseMockitoUnitTest { +} diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/config/RedisTestConfiguration.java b/admin-test/src/main/java/com/ibeetl/admin/test/config/RedisTestConfiguration.java new file mode 100644 index 00000000..30d29c65 --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/config/RedisTestConfiguration.java @@ -0,0 +1,35 @@ +package com.ibeetl.admin.test.config; + +import com.github.fppt.jedismock.RedisServer; +import org.springframework.boot.autoconfigure.data.redis.RedisProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; + +import java.io.IOException; + +/** + * Redis 测试 Configuration,主要实现内嵌 Redis 的启动 + * + * @author lx + */ +@Configuration(proxyBeanMethods = false) +@Lazy(false) // 禁止延迟加载 +@EnableConfigurationProperties(RedisProperties.class) +public class RedisTestConfiguration { + + /** + * 创建模拟的 Redis Server 服务器 + */ + @Bean + public RedisServer redisServer(RedisProperties properties) throws IOException { + RedisServer redisServer = new RedisServer(properties.getPort()); + // 一次执行多个单元测试时,貌似创建多个 spring 容器,导致不进行 stop。这样,就导致端口被占用,无法启动。。。 + try { + redisServer.start(); + } catch (Exception ignore) {} + return redisServer; + } + +} diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/config/SqlInitializationTestConfiguration.java b/admin-test/src/main/java/com/ibeetl/admin/test/config/SqlInitializationTestConfiguration.java new file mode 100644 index 00000000..f1bdd240 --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/config/SqlInitializationTestConfiguration.java @@ -0,0 +1,52 @@ +package com.ibeetl.admin.test.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; +import org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer; +import org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer; +import org.springframework.boot.sql.init.DatabaseInitializationSettings; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; + +import javax.sql.DataSource; + +/** + * SQL 初始化的测试 Configuration + * + * 为什么不使用 org.springframework.boot.autoconfigure.sql.init.DataSourceInitializationConfiguration 呢? + * 因为我们在单元测试会使用 spring.main.lazy-initialization 为 true,开启延迟加载。此时,会导致 DataSourceInitializationConfiguration 初始化 + * 不过呢,当前类的实现代码,基本是复制 DataSourceInitializationConfiguration 的哈! + * + * @author lx + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnMissingBean(AbstractScriptDatabaseInitializer.class) +@ConditionalOnSingleCandidate(DataSource.class) +@ConditionalOnClass(name = "org.springframework.jdbc.datasource.init.DatabasePopulator") +@Lazy(value = false) // 禁止延迟加载 +@EnableConfigurationProperties(SqlInitializationProperties.class) +public class SqlInitializationTestConfiguration { + + @Bean + public DataSourceScriptDatabaseInitializer dataSourceScriptDatabaseInitializer(DataSource dataSource, + SqlInitializationProperties initializationProperties) { + DatabaseInitializationSettings settings = createFrom(initializationProperties); + return new DataSourceScriptDatabaseInitializer(dataSource, settings); + } + + static DatabaseInitializationSettings createFrom(SqlInitializationProperties properties) { + DatabaseInitializationSettings settings = new DatabaseInitializationSettings(); + settings.setSchemaLocations(properties.getSchemaLocations()); + settings.setDataLocations(properties.getDataLocations()); + settings.setContinueOnError(properties.isContinueOnError()); + settings.setSeparator(properties.getSeparator()); + settings.setEncoding(properties.getEncoding()); + settings.setMode(properties.getMode()); + return settings; + } + +} diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/util/test/AssertUtils.java b/admin-test/src/main/java/com/ibeetl/admin/test/util/test/AssertUtils.java new file mode 100644 index 00000000..2fe31f03 --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/util/test/AssertUtils.java @@ -0,0 +1,75 @@ +package com.ibeetl.admin.test.util.test; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ReflectUtil; +import org.junit.jupiter.api.Assertions; + +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.Objects; + +/** + * 单元测试,assert 断言工具类 + * + * @author 芋道源码 + */ +public class AssertUtils { + + /** + * 比对两个对象的属性是否一致 + * + * 注意,如果 expected 存在的属性,actual 不存在的时候,会进行忽略 + * + * @param expected 期望对象 + * @param actual 实际对象 + * @param ignoreFields 忽略的属性数组 + */ + public static void assertPojoEquals(Object expected, Object actual, String... ignoreFields) { + Field[] expectedFields = ReflectUtil.getFields(expected.getClass()); + Arrays.stream(expectedFields).forEach(expectedField -> { + // 如果是忽略的属性,则不进行比对 + if (ArrayUtil.contains(ignoreFields, expectedField.getName())) { + return; + } + // 忽略不存在的属性 + Field actualField = ReflectUtil.getField(actual.getClass(), expectedField.getName()); + if (actualField == null) { + return; + } + // 比对 + Assertions.assertEquals( + ReflectUtil.getFieldValue(expected, expectedField), + ReflectUtil.getFieldValue(actual, actualField), + String.format("Field(%s) 不匹配", expectedField.getName()) + ); + }); + } + + /** + * 比对两个对象的属性是否一致 + * + * 注意,如果 expected 存在的属性,actual 不存在的时候,会进行忽略 + * + * @param expected 期望对象 + * @param actual 实际对象 + * @param ignoreFields 忽略的属性数组 + * @return 是否一致 + */ + public static boolean isPojoEquals(Object expected, Object actual, String... ignoreFields) { + Field[] expectedFields = ReflectUtil.getFields(expected.getClass()); + return Arrays.stream(expectedFields).allMatch(expectedField -> { + // 如果是忽略的属性,则不进行比对 + if (ArrayUtil.contains(ignoreFields, expectedField.getName())) { + return true; + } + // 忽略不存在的属性 + Field actualField = ReflectUtil.getField(actual.getClass(), expectedField.getName()); + if (actualField == null) { + return true; + } + return Objects.equals(ReflectUtil.getFieldValue(expected, expectedField), + ReflectUtil.getFieldValue(actual, actualField)); + }); + } + +} diff --git a/admin-test/src/main/java/com/ibeetl/admin/test/util/test/RandomUtils.java b/admin-test/src/main/java/com/ibeetl/admin/test/util/test/RandomUtils.java new file mode 100644 index 00000000..6b1fcadc --- /dev/null +++ b/admin-test/src/main/java/com/ibeetl/admin/test/util/test/RandomUtils.java @@ -0,0 +1,118 @@ +package com.ibeetl.admin.test.util.test; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import uk.co.jemos.podam.api.PodamFactory; +import uk.co.jemos.podam.api.PodamFactoryImpl; + +import java.lang.reflect.Type; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 随机工具类 + * + * @author 芋道源码 + */ +public class RandomUtils { + + private static final int RANDOM_STRING_LENGTH = 10; + + private static final int TINYINT_MAX = 127; + + private static final int RANDOM_DATE_MAX = 30; + + private static final int RANDOM_COLLECTION_LENGTH = 5; + + private static final PodamFactory PODAM_FACTORY = new PodamFactoryImpl(); + + static { + // 字符串 + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(String.class, + (dataProviderStrategy, attributeMetadata, map) -> randomString()); + // Integer + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> { + // 如果是 status 的字段,返回 0 或 1 + if (attributeMetadata.getAttributeName().equals("status")) { + return RandomUtil.randomEle(Arrays.asList(0,1)); + } + // 如果是 type、status 结尾的字段,返回 tinyint 范围 + if (StrUtil.endWithAnyIgnoreCase(attributeMetadata.getAttributeName(), + "type", "status", "category", "scope")) { + return RandomUtil.randomInt(0, TINYINT_MAX + 1); + } + return RandomUtil.randomInt(); + }); + // Boolean + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> { + // 如果是 deleted 的字段,返回非删除 + if (attributeMetadata.getAttributeName().equals("deleted")) { + return false; + } + return RandomUtil.randomBoolean(); + }); + } + + public static String randomString() { + return RandomUtil.randomString(RANDOM_STRING_LENGTH); + } + + public static Long randomLongId() { + return RandomUtil.randomLong(0, Long.MAX_VALUE); + } + + public static Integer randomInteger() { + return RandomUtil.randomInt(0, Integer.MAX_VALUE); + } + + public static Date randomDate() { + return RandomUtil.randomDay(0, RANDOM_DATE_MAX); + } + + public static Short randomShort() { + return (short) RandomUtil.randomInt(0, Short.MAX_VALUE); + } + + public static Set randomSet(Class clazz) { + return Stream.iterate(0, i -> i).limit(RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH)) + .map(i -> randomPojo(clazz)).collect(Collectors.toSet()); + } + + public static Integer randomCommonStatus() { + return RandomUtil.randomEle(Arrays.asList(0,1)); + } + + @SafeVarargs + public static T randomPojo(Class clazz, Consumer... consumers) { + T pojo = PODAM_FACTORY.manufacturePojo(clazz); + // 非空时,回调逻辑。通过它,可以实现 Pojo 的进一步处理 + if (ArrayUtil.isNotEmpty(consumers)) { + Arrays.stream(consumers).forEach(consumer -> consumer.accept(pojo)); + } + return pojo; + } + + @SafeVarargs + public static T randomPojo(Class clazz, Type type, Consumer... consumers) { + T pojo = PODAM_FACTORY.manufacturePojo(clazz, type); + // 非空时,回调逻辑。通过它,可以实现 Pojo 的进一步处理 + if (ArrayUtil.isNotEmpty(consumers)) { + Arrays.stream(consumers).forEach(consumer -> consumer.accept(pojo)); + } + return pojo; + } + + @SafeVarargs + public static List randomPojoList(Class clazz, Consumer... consumers) { + int size = RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH); + return Stream.iterate(0, i -> i).limit(size).map(o -> randomPojo(clazz, consumers)) + .collect(Collectors.toList()); + } + +} diff --git a/httpTest/TeacherOpenCourseHomework.http b/httpTest/TeacherOpenCourseHomework.http new file mode 100644 index 00000000..d962a65e --- /dev/null +++ b/httpTest/TeacherOpenCourseHomework.http @@ -0,0 +1,25 @@ +### 新增作业 +POST {{baseURL}}/jlw/teacherOpenCourseHomework/addByType.json +Content-Type: application/json +Cookie: JSESSIONID={{session}} + +{ + "teacherOpenCourseId": 59, + "teacherOpenCourseHomeworkName": "fake_data", + "teacherOpenCourseHomeworkClasses": "2", + "teacherOpenCourseHomeworkStartTime": "2018-12-08 12:40:39", + "teacherOpenCourseHomeworkEndTime": "2031-08-02 15:28:09", + "teacherOpenCourseHomeworkType": "QUESTION", + "teacherOpenCourseHomeworkUploadFile": "fake_data", + "teacherOpenCourseHomeworkPushStatus": 1, + "teacherOpenCourseHomeworkStatus": 1, + "teacherOpenCourseHomeworkAddTime": "2023-12-06 19:10:09", + "teacherOpenCourseHomeworkSettingQuery": { + "teacherOpenCourseHomeworkSettingDoCount": 10, + "teacherOpenCourseHomeworkSettingQuestionNoOrder": 1, + "teacherOpenCourseHomeworkSettingOptionNoOrder": 1, + "teacherOpenCourseHomeworkSettingEndShowQa": 1, + "teacherOpenCourseHomeworkSettingEndShowTrueFals": 1, + "teacherOpenCourseHomeworkSettingAddTime": "2022-05-25 03:23:43" + } +} \ No newline at end of file diff --git a/httpTest/TeacherOpenCourseHomeworkSettingService.http b/httpTest/TeacherOpenCourseHomeworkSetting.http similarity index 100% rename from httpTest/TeacherOpenCourseHomeworkSettingService.http rename to httpTest/TeacherOpenCourseHomeworkSetting.http diff --git a/httpTest/http-client.private.env.json b/httpTest/http-client.private.env.json index 755eca05..5113c33c 100644 --- a/httpTest/http-client.private.env.json +++ b/httpTest/http-client.private.env.json @@ -1,6 +1,6 @@ { "dev": { "baseURL": "http://localhost:9090/server/", - "session": "0DA92B7ABBDC4AFB7B6358E5DCBC6C2D" + "session": "A8152C92D7491D57327FF765D2B6780C" } } \ No newline at end of file diff --git a/pom.xml b/pom.xml index 8cc6e35c..91c8ef2b 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,7 @@ admin-core admin-console web + admin-test org.springframework.boot diff --git a/web/pom.xml b/web/pom.xml index b932d537..cc0ff7a1 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -231,7 +231,13 @@ - + + com.ibeetl + admin-test + 1.3.1 + test + + diff --git a/web/src/main/java/cn/jlw/util/DateUtil.java b/web/src/main/java/cn/jlw/util/DateUtil.java index 80b94e79..71469782 100644 --- a/web/src/main/java/cn/jlw/util/DateUtil.java +++ b/web/src/main/java/cn/jlw/util/DateUtil.java @@ -1,5 +1,7 @@ package cn.jlw.util; +import cn.hutool.core.date.DateTime; + import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -806,4 +808,24 @@ public class DateUtil { public static Date localDateTimeToDate(LocalDateTime localDateTime) { return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); } + + /** + * 当前时间是否在这个区间里 + * @param startDateTime + * @param endDateTime + * @param now + * @return + */ + public static Integer dateCompileTo(DateTime startDateTime, DateTime endDateTime, DateTime now) { + if(now.isBefore(startDateTime)) { + return -1; + } + else if (now.isIn(startDateTime, endDateTime)) { + return 0; + } + else if (now.isAfter(endDateTime)) { + return 1; + } + return -2; + } } diff --git a/web/src/main/java/cn/jlw/util/EnumUtil.java b/web/src/main/java/cn/jlw/util/EnumUtil.java new file mode 100644 index 00000000..da3b8c22 --- /dev/null +++ b/web/src/main/java/cn/jlw/util/EnumUtil.java @@ -0,0 +1,34 @@ +package cn.jlw.util; + +import cn.hutool.core.util.ReflectUtil; + +/** + *

+ * + *

+ * + * @author mlx + * @date 2022/9/24 + * @modified + */ +public class EnumUtil extends cn.hutool.core.util.EnumUtil { + + /** + * 通过属性名,匹配值 + * @param enumClass + * @param fieldNme + * @param value + * @return + * @param + */ + public static > E getByFieldWithValue(Class enumClass, String fieldNme, Object value) { + final E[] enumConstants = enumClass.getEnumConstants(); + for (E enumConstant : enumConstants) { + Object fieldValue = ReflectUtil.getFieldValue(enumConstant, fieldNme); + if (fieldValue.equals(value)) { + return enumConstant; + } + } + return null; + } +} diff --git a/web/src/main/java/cn/jlw/webSocket/WebSocketConfig.java b/web/src/main/java/cn/jlw/webSocket/WebSocketConfig.java index 876eeb05..f1a6a55b 100644 --- a/web/src/main/java/cn/jlw/webSocket/WebSocketConfig.java +++ b/web/src/main/java/cn/jlw/webSocket/WebSocketConfig.java @@ -1,14 +1,13 @@ package cn.jlw.webSocket; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; /** * 开启WebSocket支持 * @author zhengkai.blog.csdn.net */ -@Configuration +//@Configuration public class WebSocketConfig { @Bean diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseHomeworkDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseHomeworkDao.java new file mode 100644 index 00000000..7e0f543d --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseHomeworkDao.java @@ -0,0 +1,27 @@ +package com.ibeetl.jlw.dao; + +import com.ibeetl.jlw.entity.TeacherOpenCourseHomework; +import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery; +import org.beetl.sql.core.engine.PageQuery; +import org.beetl.sql.mapper.BaseMapper; +import org.beetl.sql.mapper.annotation.SqlResource; +import org.beetl.sql.mapper.annotation.Update; + +import java.util.List; + +/** + * 开课作业 Dao + */ +@SqlResource("jlw.teacherOpenCourseHomework") +public interface TeacherOpenCourseHomeworkDao extends BaseMapper{ + PageQuery queryByCondition(PageQuery query); + PageQuery queryByConditionQuery(PageQuery query); + @Update + void deleteTeacherOpenCourseHomeworkByIds(String ids); + @Update + void deleteByIds(String ids); + @Update + int updateGivenByIds(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery); + List getByIds(String ids); + List getValuesByQuery(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery); +} diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomework.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomework.java new file mode 100644 index 00000000..3c40fe37 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomework.java @@ -0,0 +1,251 @@ +package com.ibeetl.jlw.entity; + +import com.ibeetl.admin.core.annotation.Dict; +import com.ibeetl.admin.core.annotation.DictEnum; +import com.ibeetl.admin.core.entity.BaseEntity; +import com.ibeetl.admin.core.util.ValidateConfig; +import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery; +import org.beetl.sql.annotation.entity.AssignID; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +/* +* 我的课程-题库作业 +* gen by Spring Boot2 Admin 2022-09-24 +*/ +public class TeacherOpenCourseHomework extends BaseEntity{ + + //题库作业ID + @NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class) + // @SeqID(name = ORACLE_CORE_SEQ_NAME) + @AssignID(value = "maskAutoID",param = "com.ibeetl.jlw.entity.TeacherOpenCourseHomework") + + private Long teacherOpenCourseHomeworkId ; + + //课程开课ID + @Dict(type="teacher_open_course.teacher_open_course_title.teacher_open_course_status=1") + + private Long teacherOpenCourseId ; + + //作业名称 + + private String teacherOpenCourseHomeworkName ; + + //作业班级ID(多个班级,逗号隔开) + + private String teacherOpenCourseHomeworkClasses ; + + //作业开始时间 + + private Date teacherOpenCourseHomeworkStartTime ; + + //作业结束时间 + + private Date teacherOpenCourseHomeworkEndTime ; + + //作业类型。 题库作业QUESTION,附件FILE + + @DictEnum + private TeacherOpenCourseHomeworkQuery.TeacherOpenCourseHomeworkTypeEnum teacherOpenCourseHomeworkType ; + + //附件,老师上传附件(单文件) + + private String teacherOpenCourseHomeworkUploadFile ; + + //发布状态。 1发布,0未发布 + @Dict(type="global_push_status") + + private Integer teacherOpenCourseHomeworkPushStatus ; + + //状态 (1正常 2删除) + @Dict(type="global_status") + + private Integer teacherOpenCourseHomeworkStatus ; + + //创建时间 + + private Date teacherOpenCourseHomeworkAddTime ; + + //组织ID + + private Long orgId ; + + //用户ID + + private Long userId ; + + public TeacherOpenCourseHomework(){ + } + + /**题库作业ID + *@return + */ + public Long getTeacherOpenCourseHomeworkId(){ + return teacherOpenCourseHomeworkId; + } + /**题库作业ID + *@param teacherOpenCourseHomeworkId + */ + public void setTeacherOpenCourseHomeworkId(Long teacherOpenCourseHomeworkId){ + this.teacherOpenCourseHomeworkId = teacherOpenCourseHomeworkId; + } + + /**课程开课ID + *@return + */ + public Long getTeacherOpenCourseId(){ + return teacherOpenCourseId; + } + /**课程开课ID + *@param teacherOpenCourseId + */ + public void setTeacherOpenCourseId(Long teacherOpenCourseId){ + this.teacherOpenCourseId = teacherOpenCourseId; + } + + /**作业名称 + *@return + */ + public String getTeacherOpenCourseHomeworkName(){ + return teacherOpenCourseHomeworkName; + } + /**作业名称 + *@param teacherOpenCourseHomeworkName + */ + public void setTeacherOpenCourseHomeworkName(String teacherOpenCourseHomeworkName){ + this.teacherOpenCourseHomeworkName = teacherOpenCourseHomeworkName; + } + + /**作业班级ID(多个班级,逗号隔开) + *@return + */ + public String getTeacherOpenCourseHomeworkClasses(){ + return teacherOpenCourseHomeworkClasses; + } + /**作业班级ID(多个班级,逗号隔开) + *@param teacherOpenCourseHomeworkClasses + */ + public void setTeacherOpenCourseHomeworkClasses(String teacherOpenCourseHomeworkClasses){ + this.teacherOpenCourseHomeworkClasses = teacherOpenCourseHomeworkClasses; + } + + /**作业开始时间 + *@return + */ + public Date getTeacherOpenCourseHomeworkStartTime(){ + return teacherOpenCourseHomeworkStartTime; + } + /**作业开始时间 + *@param teacherOpenCourseHomeworkStartTime + */ + public void setTeacherOpenCourseHomeworkStartTime(Date teacherOpenCourseHomeworkStartTime){ + this.teacherOpenCourseHomeworkStartTime = teacherOpenCourseHomeworkStartTime; + } + + /**作业结束时间 + *@return + */ + public Date getTeacherOpenCourseHomeworkEndTime(){ + return teacherOpenCourseHomeworkEndTime; + } + /**作业结束时间 + *@param teacherOpenCourseHomeworkEndTime + */ + public void setTeacherOpenCourseHomeworkEndTime(Date teacherOpenCourseHomeworkEndTime){ + this.teacherOpenCourseHomeworkEndTime = teacherOpenCourseHomeworkEndTime; + } + + /**作业类型。 题库作业QUESTION,附件FILE + *@return + */ + public TeacherOpenCourseHomeworkQuery.TeacherOpenCourseHomeworkTypeEnum getTeacherOpenCourseHomeworkType(){ + return teacherOpenCourseHomeworkType; + } + /**作业类型。 题库作业QUESTION,附件FILE + *@param teacherOpenCourseHomeworkType + */ + public void setTeacherOpenCourseHomeworkType(TeacherOpenCourseHomeworkQuery.TeacherOpenCourseHomeworkTypeEnum teacherOpenCourseHomeworkType){ + this.teacherOpenCourseHomeworkType = teacherOpenCourseHomeworkType; + } + + /**附件,老师上传附件(单文件) + *@return + */ + public String getTeacherOpenCourseHomeworkUploadFile(){ + return teacherOpenCourseHomeworkUploadFile; + } + /**附件,老师上传附件(单文件) + *@param teacherOpenCourseHomeworkUploadFile + */ + public void setTeacherOpenCourseHomeworkUploadFile(String teacherOpenCourseHomeworkUploadFile){ + this.teacherOpenCourseHomeworkUploadFile = teacherOpenCourseHomeworkUploadFile; + } + + /**发布状态。 1发布,0未发布 + *@return + */ + public Integer getTeacherOpenCourseHomeworkPushStatus(){ + return teacherOpenCourseHomeworkPushStatus; + } + /**发布状态。 1发布,0未发布 + *@param teacherOpenCourseHomeworkPushStatus + */ + public void setTeacherOpenCourseHomeworkPushStatus(Integer teacherOpenCourseHomeworkPushStatus){ + this.teacherOpenCourseHomeworkPushStatus = teacherOpenCourseHomeworkPushStatus; + } + + /**状态 (1正常 2删除) + *@return + */ + public Integer getTeacherOpenCourseHomeworkStatus(){ + return teacherOpenCourseHomeworkStatus; + } + /**状态 (1正常 2删除) + *@param teacherOpenCourseHomeworkStatus + */ + public void setTeacherOpenCourseHomeworkStatus(Integer teacherOpenCourseHomeworkStatus){ + this.teacherOpenCourseHomeworkStatus = teacherOpenCourseHomeworkStatus; + } + + /**创建时间 + *@return + */ + public Date getTeacherOpenCourseHomeworkAddTime(){ + return teacherOpenCourseHomeworkAddTime; + } + /**创建时间 + *@param teacherOpenCourseHomeworkAddTime + */ + public void setTeacherOpenCourseHomeworkAddTime(Date teacherOpenCourseHomeworkAddTime){ + this.teacherOpenCourseHomeworkAddTime = teacherOpenCourseHomeworkAddTime; + } + + /**组织ID + *@return + */ + public Long getOrgId(){ + return orgId; + } + /**组织ID + *@param orgId + */ + public void setOrgId(Long orgId){ + this.orgId = orgId; + } + + /**用户ID + *@return + */ + public Long getUserId(){ + return userId; + } + /**用户ID + *@param userId + */ + public void setUserId(Long userId){ + this.userId = userId; + } + + +} diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java index c771c909..0909356d 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHomeworkSetting.java @@ -27,11 +27,6 @@ public class TeacherOpenCourseHomeworkSetting extends BaseEntity{ private Long teacherOpenCourseHomeworkId ; - //班级ID集合(逗号隔开) - @Dict(type="school_class.class_name.class_status=1") - - private String teacherOpenCourseHomeworkSettingSchoolClassIds ; - //作答次数 private Integer teacherOpenCourseHomeworkSettingDoCount ; diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionSnap.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionSnap.java index 18efcb8f..88f24fd5 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionSnap.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionSnap.java @@ -3,20 +3,21 @@ package com.ibeetl.jlw.entity; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.jlw.util.EnumUtil; import com.ibeetl.admin.core.annotation.Dict; import com.ibeetl.admin.core.annotation.DictEnum; import com.ibeetl.admin.core.entity.BaseEntity; import com.ibeetl.admin.core.util.ValidateConfig; import lombok.Data; import lombok.Getter; -import lombok.Setter; import org.beetl.sql.annotation.entity.AssignID; import javax.validation.constraints.NotNull; import java.util.Date; import static cn.hutool.core.date.DatePattern.NORM_DATE_PATTERN; -import static com.ibeetl.jlw.entity.TeacherOpenCourseScheduleSessionSnap.TeacherOpenCourseScheduleSessionTagStartStatusEnum.*; +import static cn.jlw.util.DateUtil.dateCompileTo; +import static com.ibeetl.jlw.entity.TeacherOpenCourseScheduleSessionSnap.TeacherOpenCourseScheduleSessionTagStartStatusEnum.getByCode; /* * 课程开课-排课管理-课表--属性快照 @@ -119,15 +120,9 @@ public class TeacherOpenCourseScheduleSessionSnap extends BaseEntity{ DateTime endDateTime = DateUtil.parseDate(endTime); DateTime now = DateUtil.date(); - if(now.isBefore(startDateTime)) { - snap.setTeacherOpenCourseScheduleSessionTagStartStatus(READY); - } - else if (now.isIn(startDateTime, endDateTime)) { - snap.setTeacherOpenCourseScheduleSessionTagStartStatus(ING); - } - else if (now.isAfter(endDateTime)) { - snap.setTeacherOpenCourseScheduleSessionTagStartStatus(END); - } + Integer res = dateCompileTo(startDateTime, endDateTime, now); + // 根据属性 获取枚举 + snap.setTeacherOpenCourseScheduleSessionTagStartStatus(getByCode(res)); } } @@ -148,20 +143,25 @@ public class TeacherOpenCourseScheduleSessionSnap extends BaseEntity{ */ public enum TeacherOpenCourseScheduleSessionTagStartStatusEnum { // 进行中 - ING("进行中"), + ING(0, "进行中"), // 已结束 - END("已结束"), + END(1, "已结束"), // 未开始 - READY("未开始"); + READY(-1, "未开始"); @Getter - @Setter // 可以转换成中文 // @JsonValue private String text; + @Getter + private Integer code; - TeacherOpenCourseScheduleSessionTagStartStatusEnum(String text) { + TeacherOpenCourseScheduleSessionTagStartStatusEnum(Integer code, String text) { this.text = text; + this.code = code; } - } + public static TeacherOpenCourseScheduleSessionTagStartStatusEnum getByCode(Integer code) { + return EnumUtil.getByFieldWithValue(TeacherOpenCourseScheduleSessionTagStartStatusEnum.class, "code", code); + } + } } diff --git a/web/src/main/java/com/ibeetl/jlw/enums/FromTypeEnum.java b/web/src/main/java/com/ibeetl/jlw/enums/FromTypeEnum.java index 185860e6..47cce3f8 100644 --- a/web/src/main/java/com/ibeetl/jlw/enums/FromTypeEnum.java +++ b/web/src/main/java/com/ibeetl/jlw/enums/FromTypeEnum.java @@ -2,7 +2,6 @@ package com.ibeetl.jlw.enums; import lombok.Getter; -import lombok.Setter; /** *

@@ -17,7 +16,6 @@ public enum FromTypeEnum { HOMEWORK("家庭作业"); - @Setter @Getter private String text; FromTypeEnum(String text) { diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java new file mode 100644 index 00000000..d59bf2fd --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHomeworkService.java @@ -0,0 +1,161 @@ +package com.ibeetl.jlw.service; + +import cn.jlw.util.ToolUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.ibeetl.admin.core.service.CoreBaseService; +import com.ibeetl.admin.core.util.PlatformException; +import com.ibeetl.admin.core.web.JsonResult; +import com.ibeetl.admin.core.web.JsonReturnCode; +import com.ibeetl.jlw.dao.TeacherOpenCourseHomeworkDao; +import com.ibeetl.jlw.entity.TeacherOpenCourseHomework; +import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery; +import org.apache.commons.lang3.StringUtils; +import org.beetl.sql.core.SqlId; +import org.beetl.sql.core.engine.PageQuery; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 开课作业 Service + * 当分布式ID开启后请勿使用insert(*,true) + */ + +@Service +@Transactional +public class TeacherOpenCourseHomeworkService extends CoreBaseService{ + + @Resource private TeacherOpenCourseHomeworkDao teacherOpenCourseHomeworkDao; + @Resource private TeacherOpenCourseHomeworkSettingService teacherOpenCourseHomeworkSettingService; + + public PageQueryqueryByCondition(PageQuery query){ + PageQuery ret = teacherOpenCourseHomeworkDao.queryByCondition(query); + queryListAfter(ret.getList()); + return ret; + } + + public PageQueryqueryByConditionQuery(PageQuery query){ + PageQuery ret = teacherOpenCourseHomeworkDao.queryByConditionQuery(query); + queryListAfter(ret.getList()); + return ret; + } + + public void deleteByList(List list){ + String ids = ""; + ToolUtils.deleteNullList(list); + for(int i=0;null != list && i teacherOpenCourseHomeworkList = new ArrayList<>(); + try { + teacherOpenCourseHomeworkList = JSON.parseArray(teacherOpenCourseHomeworkQuery.getTeacherOpenCourseHomeworkJsonStr(), TeacherOpenCourseHomework.class); + } catch (Exception e) { + try { + teacherOpenCourseHomeworkList.add(JSONObject.parseObject(teacherOpenCourseHomeworkQuery.getTeacherOpenCourseHomeworkJsonStr(), TeacherOpenCourseHomework.class)); + } catch (Exception e1) {} + } + ToolUtils.deleteNullList(teacherOpenCourseHomeworkList); + if(null != teacherOpenCourseHomeworkList && teacherOpenCourseHomeworkList.size()>0){ + for(int i=0;i 0; + if(!flag){ + msg = "更新指定参数失败"; + } + }else{ + msg = "指定参数为空"; + } + return msg; + } + + public List getValues (Object paras){ + return sqlManager.select(SqlId.of("jlw.teacherOpenCourseHomework.getTeacherOpenCourseHomeworkValues"), TeacherOpenCourseHomework.class, paras); + } + + public List getValuesByQuery (TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){ + return teacherOpenCourseHomeworkDao.getValuesByQuery(teacherOpenCourseHomeworkQuery); + } + + public TeacherOpenCourseHomework getInfo (Long teacherOpenCourseHomeworkId){ + TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery = new TeacherOpenCourseHomeworkQuery(); + teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkId(teacherOpenCourseHomeworkId); + teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkStatusPlural("1,2");//需要根据实际情况来 + List list = teacherOpenCourseHomeworkDao.getValuesByQuery(teacherOpenCourseHomeworkQuery); + if(null != list && list.size()>0){ + return list.get(0); + }else{ + return null; + } + } + + public TeacherOpenCourseHomework getInfo (TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){ + List list = teacherOpenCourseHomeworkDao.getValuesByQuery(teacherOpenCourseHomeworkQuery); + if(null != list && list.size()>0){ + return list.get(0); + }else{ + return null; + } + } + + /** + * 增加题目类型的数据 + * @param homeworkQuery + * @return + */ + public void addByType(TeacherOpenCourseHomeworkQuery homeworkQuery) { + // 添加到作业主表中 + add(homeworkQuery); + + // 添加作业设置,添加题目快照关联信息 + teacherOpenCourseHomeworkSettingService.addHomeWordBySetting(homeworkQuery.getTeacherOpenCourseHomeworkSettingQuery()); + } +} diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkController.java new file mode 100644 index 00000000..6e974c32 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkController.java @@ -0,0 +1,210 @@ +package com.ibeetl.jlw.web; + +import cn.hutool.extra.validation.ValidationUtil; +import cn.jlw.Interceptor.SCoreUser; +import cn.jlw.validate.ValidateConfig; +import com.ibeetl.admin.core.annotation.Function; +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.admin.core.file.FileService; +import com.ibeetl.admin.core.web.JsonResult; +import com.ibeetl.jlw.entity.TeacherOpenCourseHomework; +import com.ibeetl.jlw.service.TeacherOpenCourseHomeworkService; +import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.beetl.sql.core.engine.PageQuery; +import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 开课作业 我的课程-题库作业 接口 + * 切记不要对非线程安全的静态变量进行写操作 + */ + +@RestController +public class TeacherOpenCourseHomeworkController{ + + private final Log log = LogFactory.getLog(this.getClass()); + private static final String MODEL = "/jlw/teacherOpenCourseHomework"; + private static final String API = "/api/teacherOpenCourseHomework"; + + + @Resource private TeacherOpenCourseHomeworkService teacherOpenCourseHomeworkService; + + @Resource FileService fileService; + + /* 前端接口 */ + + @PostMapping(API + "/getPageList.do") + public JsonResult getPageList(TeacherOpenCourseHomeworkQuery condition,@SCoreUser CoreUser coreUser){ + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + PageQuery page = condition.getPageQuery(); + teacherOpenCourseHomeworkService.queryByConditionQuery(page); + return JsonResult.success(page); + } + } + + + @GetMapping(API + "/getInfo.do") + public JsonResultgetInfo(TeacherOpenCourseHomeworkQuery param,@SCoreUser CoreUser coreUser) { + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkService.getInfo(param); + return JsonResult.success(teacherOpenCourseHomework); + } + } + + + @GetMapping(API + "/getList.do") + public JsonResult>getList(TeacherOpenCourseHomeworkQuery param,@SCoreUser CoreUser coreUser) { + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + Listlist = teacherOpenCourseHomeworkService.getValuesByQuery(param); + return JsonResult.success(list); + } + } + + + /* 后台页面 */ + + @GetMapping(MODEL + "/index.do") + @Function("teacherOpenCourseHomework.query") + public ModelAndView index() { + ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseHomework/index.html") ; + view.addObject("search", TeacherOpenCourseHomeworkQuery.class.getName()); + return view; + } + + @GetMapping(MODEL + "/edit.do") + @Function("teacherOpenCourseHomework.edit") + public ModelAndView edit(Long teacherOpenCourseHomeworkId) { + ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseHomework/edit.html"); + TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkService.queryById(teacherOpenCourseHomeworkId); + view.addObject("teacherOpenCourseHomework", teacherOpenCourseHomework); + return view; + } + + @GetMapping(MODEL + "/add.do") + @Function("teacherOpenCourseHomework.add") + public ModelAndView add(Long teacherOpenCourseHomeworkId) { + ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseHomework/add.html"); + if(null != teacherOpenCourseHomeworkId){ + TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkService.queryById(teacherOpenCourseHomeworkId); + view.addObject("teacherOpenCourseHomework", teacherOpenCourseHomework); + }else { + view.addObject("teacherOpenCourseHomework", new TeacherOpenCourseHomework()); + } + return view; + } + + /* 后台接口 */ + + @PostMapping(MODEL + "/list.json") + @Function("teacherOpenCourseHomework.query") + public JsonResult list(TeacherOpenCourseHomeworkQuery condition){ + PageQuery page = condition.getPageQuery(); + teacherOpenCourseHomeworkService.queryByCondition(page); + return JsonResult.success(page); + } + + @PostMapping(MODEL + "/addAll.json") + @Function("teacherOpenCourseHomework.add") + public JsonResult addAll(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery,@SCoreUser CoreUser coreUser){ + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + teacherOpenCourseHomeworkQuery.setUserId(coreUser.getId()); + teacherOpenCourseHomeworkQuery.setOrgId(coreUser.getOrgId()); + String msg = teacherOpenCourseHomeworkService.addAll(teacherOpenCourseHomeworkQuery); + if (StringUtils.isBlank(msg)) { + return JsonResult.success(); + } else { + return JsonResult.failMessage("新增失败,"+msg); + } + } + } + + @PostMapping(MODEL + "/add.json") + @Function("teacherOpenCourseHomework.add") + public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery, BindingResult result,@SCoreUser CoreUser coreUser){ + if(result.hasErrors()){ + return JsonResult.failMessage(result); + }else{ + teacherOpenCourseHomeworkQuery.setUserId(coreUser.getId()); + teacherOpenCourseHomeworkQuery.setOrgId(coreUser.getOrgId()); + if(null == teacherOpenCourseHomeworkQuery.getTeacherOpenCourseHomeworkStatus()){ + teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkStatus(1); + } + return teacherOpenCourseHomeworkService.add(teacherOpenCourseHomeworkQuery); + } + } + + @PostMapping(MODEL + "/edit.json") + @Function("teacherOpenCourseHomework.edit") + public JsonResult update(@Validated(ValidateConfig.UPDATE.class) TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery, BindingResult result) { + if(result.hasErrors()){ + return JsonResult.failMessage(result); + }else { + teacherOpenCourseHomeworkQuery.setUserId(null); + teacherOpenCourseHomeworkQuery.setOrgId(null); + String msg = teacherOpenCourseHomeworkService.edit(teacherOpenCourseHomeworkQuery); + if (StringUtils.isBlank(msg)) { + return JsonResult.success(); + } else { + return JsonResult.failMessage("更新失败,"+msg); + } + } + } + + + @GetMapping(MODEL + "/view.json") + @Function("teacherOpenCourseHomework.query") + public JsonResultqueryInfo(Long teacherOpenCourseHomeworkId) { + TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkService.queryById( teacherOpenCourseHomeworkId); + return JsonResult.success(teacherOpenCourseHomework); + } + + @GetMapping(MODEL + "/getValues.json") + @Function("teacherOpenCourseHomework.query") + public JsonResult>getValues(TeacherOpenCourseHomeworkQuery param) { + Listlist = teacherOpenCourseHomeworkService.getValuesByQuery(param); + return JsonResult.success(list); + } + + + @PostMapping(MODEL + "/delete.json") + @Function("teacherOpenCourseHomework.delete") + @ResponseBody + public JsonResult delete(String ids) { + teacherOpenCourseHomeworkService.deleteTeacherOpenCourseHomework(ids); + return JsonResult.success(); + } + + @PostMapping(MODEL + "/addByType.json") + @Function("teacherOpenCourseHomework.add") + public JsonResult addByType(@Validated @RequestBody TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery, BindingResult result, @SCoreUser CoreUser coreUser){ + // 根据传入的类型,进行分组验证 + ValidationUtil.validate(teacherOpenCourseHomeworkQuery, teacherOpenCourseHomeworkQuery.getClazzByType()); + if(result.hasErrors()){ + return JsonResult.failMessage(result); + } + teacherOpenCourseHomeworkQuery.setUserId(coreUser.getId()); + teacherOpenCourseHomeworkQuery.setOrgId(coreUser.getOrgId()); + if(null == teacherOpenCourseHomeworkQuery.getTeacherOpenCourseHomeworkStatus()){ + teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkStatus(1); + } + teacherOpenCourseHomeworkService.addByType(teacherOpenCourseHomeworkQuery); + return JsonResult.success(); + } + +} diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkSettingController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkSettingController.java index d5597f9f..af2ace40 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkSettingController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHomeworkSettingController.java @@ -8,6 +8,7 @@ import com.ibeetl.admin.core.file.FileService; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.TeacherOpenCourseHomeworkSetting; import com.ibeetl.jlw.service.TeacherOpenCourseHomeworkSettingService; +import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkSettingQuery; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -199,7 +200,7 @@ public class TeacherOpenCourseHomeworkSettingController{ @PostMapping(MODEL + "/addHomeWordBySetting.json") @Function("teacherOpenCourseHomeworkSetting.add") @ResponseBody - public JsonResult addHomeWordBySetting(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseHomeworkSettingQuery teacherOpenCourseHomeworkSettingQuery, BindingResult result,@SCoreUser CoreUser coreUser) { + public JsonResult addHomeWordBySetting(@Validated(TeacherOpenCourseHomeworkQuery.QUESTION_TYPE.class) TeacherOpenCourseHomeworkSettingQuery teacherOpenCourseHomeworkSettingQuery, BindingResult result, @SCoreUser CoreUser coreUser) { if(result.hasErrors()){ return JsonResult.failMessage(result); } diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkQuery.java new file mode 100644 index 00000000..06fe2dc1 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkQuery.java @@ -0,0 +1,118 @@ +package com.ibeetl.jlw.web.query; + +import cn.jlw.validate.ValidateConfig; +import com.ibeetl.admin.core.annotation.Query; +import com.ibeetl.admin.core.web.query.PageParam; +import com.ibeetl.jlw.entity.TeacherOpenCourseHomework; +import lombok.Data; +import lombok.Getter; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; + +import static com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery.TeacherOpenCourseHomeworkTypeEnum.FILE; +import static com.ibeetl.jlw.web.query.TeacherOpenCourseHomeworkQuery.TeacherOpenCourseHomeworkTypeEnum.QUESTION; + +/** + *开课作业查询 + */ +@Data +public class TeacherOpenCourseHomeworkQuery extends PageParam { + + // 题目类型 + public interface QUESTION_TYPE {} + // 附件类型 + public interface FILE_TYPE {} + + + @NotNull(message = "题库作业ID不能为空", groups =ValidateConfig.UPDATE.class) + @Query(name = "题库作业ID", display = false) + private Long teacherOpenCourseHomeworkId; + @NotNull(message = "课程开课ID不能为空", groups ={ FILE_TYPE.class, QUESTION_TYPE.class }) + @Query(name = "课程开课ID", display = true,type=Query.TYPE_DICT,dict="teacher_open_course.teacher_open_course_title.teacher_open_course_status=1") + private Long teacherOpenCourseId; + @NotEmpty(message = "作业名称不能为空", groups ={ FILE_TYPE.class, QUESTION_TYPE.class }) + @Query(name = "作业名称", display = false) + private String teacherOpenCourseHomeworkName; + @NotEmpty(message = "作业班级ID不能为空", groups ={ FILE_TYPE.class, QUESTION_TYPE.class }) + @Query(name = "作业班级ID(多个班级,逗号隔开)", display = false) + private String teacherOpenCourseHomeworkClasses; + @Query(name = "作业开始时间", display = false) + private Date teacherOpenCourseHomeworkStartTime; + @Query(name = "作业结束时间", display = false) + private Date teacherOpenCourseHomeworkEndTime; + @NotNull(message = "作业类型不能为空") + @Query(name = "作业类型。 题库作业QUESTION,附件FILE", display = false) + private TeacherOpenCourseHomeworkTypeEnum teacherOpenCourseHomeworkType; + @Query(name = "附件,老师上传附件(单文件)", display = false) + private String teacherOpenCourseHomeworkUploadFile; + @Query(name = "发布状态。 1发布,0未发布", display = true,type=Query.TYPE_DICT,dict="global_push_status") + private Integer teacherOpenCourseHomeworkPushStatus; + @Query(name = "状态 (1正常 2删除)", display = true,type=Query.TYPE_DICT,dict="global_status") + private Integer teacherOpenCourseHomeworkStatus; + @Query(name = "创建时间", display = false) + private Date teacherOpenCourseHomeworkAddTime; + @Query(name = "组织ID", display = false) + private Long orgId; + @Query(name = "用户ID", display = false) + private Long userId; + + @NotNull(message = "teacherOpenCourseHomeworkSettingQuery 作业类型为题库时,不能为空", groups =QUESTION_TYPE.class) + private TeacherOpenCourseHomeworkSettingQuery teacherOpenCourseHomeworkSettingQuery; + + private String teacherOpenCourseHomeworkIdPlural; + private String teacherOpenCourseIdPlural; + private String teacherOpenCourseHomeworkStatusPlural; + private String orgIdPlural; + private String userIdPlural; + + private String teacherOpenCourseHomeworkJsonStr;//json格式 + + private String _given;//指定更新的特定字段,多个逗号隔开 + + + public TeacherOpenCourseHomework pojo(){ + TeacherOpenCourseHomework pojo = new TeacherOpenCourseHomework(); + pojo.setTeacherOpenCourseHomeworkId(this.getTeacherOpenCourseHomeworkId()); + pojo.setTeacherOpenCourseId(this.getTeacherOpenCourseId()); + pojo.setTeacherOpenCourseHomeworkName(this.getTeacherOpenCourseHomeworkName()); + pojo.setTeacherOpenCourseHomeworkClasses(this.getTeacherOpenCourseHomeworkClasses()); + pojo.setTeacherOpenCourseHomeworkStartTime(this.getTeacherOpenCourseHomeworkStartTime()); + pojo.setTeacherOpenCourseHomeworkEndTime(this.getTeacherOpenCourseHomeworkEndTime()); + pojo.setTeacherOpenCourseHomeworkType(this.getTeacherOpenCourseHomeworkType()); + pojo.setTeacherOpenCourseHomeworkUploadFile(this.getTeacherOpenCourseHomeworkUploadFile()); + pojo.setTeacherOpenCourseHomeworkPushStatus(this.getTeacherOpenCourseHomeworkPushStatus()); + pojo.setTeacherOpenCourseHomeworkStatus(this.getTeacherOpenCourseHomeworkStatus()); + pojo.setTeacherOpenCourseHomeworkAddTime(this.getTeacherOpenCourseHomeworkAddTime()); + pojo.setOrgId(this.getOrgId()); + pojo.setUserId(this.getUserId()); + return pojo; + } + + /** + * 作业类型 + */ + public enum TeacherOpenCourseHomeworkTypeEnum { + QUESTION("作业类型"), + FILE("附件"); + + @Getter + private String text; + TeacherOpenCourseHomeworkTypeEnum(String text) { + this.text = text; + } + } + + public Class getClazzByType() { + if (teacherOpenCourseHomeworkType == null) { + return null; + } + if (teacherOpenCourseHomeworkType.equals(QUESTION)) { + return QUESTION_TYPE.class; + }else if (teacherOpenCourseHomeworkType.equals(FILE)) { + return FILE_TYPE.class; + } + throw new IllegalArgumentException("未获取到对应的类型!请检查teacherOpenCourseHomeworkType"); + } +} diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkSettingQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkSettingQuery.java index bec33acf..013a99df 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkSettingQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseHomeworkSettingQuery.java @@ -21,9 +21,6 @@ public class TeacherOpenCourseHomeworkSettingQuery extends PageParam { private Long teacherOpenCourseHomeworkSettingId; @Query(name = "题库作业ID", display = true,type=Query.TYPE_DICT,dict="teacher_open_course_homework.teacher_open_course_homework_name.teacher_open_course_homework_status=1") private Long teacherOpenCourseHomeworkId; - @Query(name = "班级ID集合(逗号隔开)", display = false) - @NotBlank(message = "teacherOpenCourseHomeworkSettingSchoolClassIds 班级ID不能为空!", groups =ValidateConfig.ADD.class) - private String teacherOpenCourseHomeworkSettingSchoolClassIds; @Query(name = "作答次数", display = false) private Integer teacherOpenCourseHomeworkSettingDoCount; @Query(name = "题目乱序(同一大题内)", display = false) @@ -45,7 +42,7 @@ public class TeacherOpenCourseHomeworkSettingQuery extends PageParam { * 上传的题目ID,逗号隔开 * 对应{@link ResourcesQuestion#getResourcesQuestionId()} 集合 */ - @NotBlank(message = "resourcesQuestionIdPlural 题目ID不能为空!", groups =ValidateConfig.ADD.class) + @NotBlank(message = "resourcesQuestionIdPlural 题目ID不能为空!", groups = TeacherOpenCourseHomeworkQuery.QUESTION_TYPE.class) private String resourcesQuestionIdPlural; private String teacherOpenCourseHomeworkSettingIdPlural; @@ -60,7 +57,6 @@ public class TeacherOpenCourseHomeworkSettingQuery extends PageParam { public TeacherOpenCourseHomeworkSetting pojo(){ TeacherOpenCourseHomeworkSetting pojo = new TeacherOpenCourseHomeworkSetting(); pojo.setTeacherOpenCourseHomeworkSettingId(this.getTeacherOpenCourseHomeworkSettingId()); - pojo.setTeacherOpenCourseHomeworkSettingSchoolClassIds(this.getTeacherOpenCourseHomeworkSettingSchoolClassIds()); pojo.setTeacherOpenCourseHomeworkSettingDoCount(this.getTeacherOpenCourseHomeworkSettingDoCount()); pojo.setTeacherOpenCourseHomeworkSettingQuestionNoOrder(this.getTeacherOpenCourseHomeworkSettingQuestionNoOrder()); pojo.setTeacherOpenCourseHomeworkSettingOptionNoOrder(this.getTeacherOpenCourseHomeworkSettingOptionNoOrder()); diff --git a/web/src/main/resources/application-dev.properties b/web/src/main/resources/application-dev.properties index c807653c..1341670d 100644 --- a/web/src/main/resources/application-dev.properties +++ b/web/src/main/resources/application-dev.properties @@ -48,4 +48,8 @@ dynamic.beetlsql.cs.daoSuffix = Dao dynamic.beetlsql.cs.basePackage = com.ibeetl dynamic.beetlsql.cs.dbStyle = org.beetl.sql.core.db.MySqlStyle # \u5FC5\u987B dynamicConnectionSource \u8868\u793A\u4F7F\u7528 ConditionalConnectionSource \u6A21\u5F0F -dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2 \ No newline at end of file +dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2 + +# \u6A21\u62DF\u7528\u6237\u767B\u5F55 \u53EA\u80FD\u7528\u5728\u672C\u5730\u6D4B\u8BD5\u65F6\u5019\u4F7F\u7528 +user.id=1 +user.orgId=1 \ No newline at end of file diff --git a/web/src/main/resources/application-local.properties b/web/src/main/resources/application-local.properties index 989b5934..11784d36 100644 --- a/web/src/main/resources/application-local.properties +++ b/web/src/main/resources/application-local.properties @@ -48,4 +48,8 @@ dynamic.beetlsql.cs.daoSuffix = Dao dynamic.beetlsql.cs.basePackage = com.ibeetl dynamic.beetlsql.cs.dbStyle = org.beetl.sql.core.db.MySqlStyle # \u5FC5\u987B dynamicConnectionSource \u8868\u793A\u4F7F\u7528 ConditionalConnectionSource \u6A21\u5F0F -dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2 \ No newline at end of file +dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2 + +# \u6A21\u62DF\u7528\u6237\u767B\u5F55 \u53EA\u80FD\u7528\u5728\u672C\u5730\u6D4B\u8BD5\u65F6\u5019\u4F7F\u7528 +user.id=1 +user.orgId=1 \ No newline at end of file diff --git a/web/src/main/resources/application-prod.properties b/web/src/main/resources/application-prod.properties new file mode 100644 index 00000000..10d27d58 --- /dev/null +++ b/web/src/main/resources/application-prod.properties @@ -0,0 +1,51 @@ +# \u8BBE\u7F6E\u9ED8\u8BA4\u7684\u6570\u636E\u6E90\u6216\u8005\u6570\u636E\u6E90\u7EC4,\u9ED8\u8BA4\u503C\u5373\u4E3A ds1 +spring.datasource.dynamic.primary = master +spring.datasource.dynamic.p6spy = false +spring.datasource.dynamic.strict = false +spring.datasource.dynamic.hikari.max-pool-size=30 +spring.datasource.dynamic.hikari.connection-test-query=SELECT 1 + +# master +spring.datasource.dynamic.datasource.master.driverClassName=com.mysql.cj.jdbc.Driver +spring.datasource.dynamic.datasource.master.url=jdbc:mysql://localhost:3306/tzcj?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true +spring.datasource.dynamic.datasource.master.username=root +spring.datasource.dynamic.datasource.master.password=root + +# ds2 +#spring.datasource.dynamic.datasource.ds2.driverClassName=com.mysql.cj.jdbc.Driver +#spring.datasource.dynamic.datasource.ds2.url=jdbc:mysql://localhost:3306/tzcj?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true +#spring.datasource.dynamic.datasource.ds2.username=root +#spring.datasource.dynamic.datasource.ds2.password=root + +# sqlManagers = \u591A\u4E2A sqlManager \u5217\u8868 +dynamic.beetlsql.sqlManagers = master,ds2,cs +# primary \u9ED8\u8BA4 sqlManager +dynamic.beetlsql.primary = cs +# transactionManager \u9ED8\u8BA4\u81EA\u52A8\u751F\u6210\uFF0C\u5982\u9700\u81EA\u5DF1\u7BA1\u7406\u5219\u8BBE\u7F6E\u4E3A false +# dynamic.beetlsql.transactionManager = false + +# \u9ED8\u8BA4\u503C _default +dynamic.beetlsql._default.dev = true + +# 1, \u914D\u7F6E\u5355\u72EC sqlManager +# A) \u540D\u79F0: ds1, dataSource \u540C\u540D\u79F0 ds1, \u6216 dynamic.beetlsql.ds1.ds = ds1 +dynamic.beetlsql.master.sqlPath = sql +dynamic.beetlsql.master.daoSuffix = Dao +dynamic.beetlsql.master.basePackage = com.ibeetl +dynamic.beetlsql.master.dbStyle = org.beetl.sql.core.db.MySqlStyle +dynamic.beetlsql.master.slave = ds2 + +# B) \u540D\u79F0: ds2, dataSource \u540C\u540D\u79F0 ds2, \u6216 dynamic.beetlsql.ds2.ds = ds2 +dynamic.beetlsql.ds2.sqlPath = sql +dynamic.beetlsql.ds2.daoSuffix = Dao +dynamic.beetlsql.ds2.basePackage = com.ibeetl +dynamic.beetlsql.ds2.dbStyle = org.beetl.sql.core.db.MySqlStyle + +# 3, dynamicConnectionSource \u6A21\u5F0F(\u53EF\u9009) +# \u4F7F\u7528\u4E00\u4E2A sqlManager \u5207\u6362, \u4F7F\u7528 ConditionalConnectionSource +dynamic.beetlsql.cs.sqlPath = sql +dynamic.beetlsql.cs.daoSuffix = Dao +dynamic.beetlsql.cs.basePackage = com.ibeetl +dynamic.beetlsql.cs.dbStyle = org.beetl.sql.core.db.MySqlStyle +# \u5FC5\u987B dynamicConnectionSource \u8868\u793A\u4F7F\u7528 ConditionalConnectionSource \u6A21\u5F0F +dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2 diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseHomework.md b/web/src/main/resources/sql/jlw/teacherOpenCourseHomework.md new file mode 100644 index 00000000..35780602 --- /dev/null +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseHomework.md @@ -0,0 +1,380 @@ +queryByCondition +=== +* 根据不为空的参数进行分页查询 + + select + @pageTag(){ + t.* + @} + from teacher_open_course_homework t + where 1=1 + @//数据权限,该sql语句功能点,如果不考虑数据权限,可以删除此行 + and #function("teacherOpenCourseHomework.query")# + @if(!isEmpty(teacherOpenCourseHomeworkId)){ + and t.teacher_open_course_homework_id =#teacherOpenCourseHomeworkId# + @} + @if(!isEmpty(teacherOpenCourseHomeworkIdPlural)){ + and find_in_set(t.teacher_open_course_homework_id,#teacherOpenCourseHomeworkIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseId)){ + and t.teacher_open_course_id =#teacherOpenCourseId# + @} + @if(!isEmpty(teacherOpenCourseIdPlural)){ + and find_in_set(t.teacher_open_course_id,#teacherOpenCourseIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseHomeworkName)){ + and t.teacher_open_course_homework_name =#teacherOpenCourseHomeworkName# + @} + @if(!isEmpty(teacherOpenCourseHomeworkClasses)){ + and t.teacher_open_course_homework_classes =#teacherOpenCourseHomeworkClasses# + @} + @if(!isEmpty(teacherOpenCourseHomeworkStartTime)){ + and t.teacher_open_course_homework_start_time =#teacherOpenCourseHomeworkStartTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkEndTime)){ + and t.teacher_open_course_homework_end_time =#teacherOpenCourseHomeworkEndTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkType)){ + and t.teacher_open_course_homework_type =#teacherOpenCourseHomeworkType# + @} + @if(!isEmpty(teacherOpenCourseHomeworkUploadFile)){ + and t.teacher_open_course_homework_upload_file =#teacherOpenCourseHomeworkUploadFile# + @} + @if(!isEmpty(teacherOpenCourseHomeworkPushStatus)){ + and t.teacher_open_course_homework_push_status =#teacherOpenCourseHomeworkPushStatus# + @} + @if(isEmpty(teacherOpenCourseHomeworkStatus) && isEmpty(teacherOpenCourseHomeworkStatusPlural)){ + and t.teacher_open_course_homework_status != 2 + @}else{ + @if(!isEmpty(teacherOpenCourseHomeworkStatus)){ + and t.teacher_open_course_homework_status =#teacherOpenCourseHomeworkStatus# + @}else if(!isEmpty(teacherOpenCourseHomeworkStatusPlural)){ + and find_in_set(t.teacher_open_course_homework_status,#teacherOpenCourseHomeworkStatusPlural#) + @} + @} + @if(!isEmpty(teacherOpenCourseHomeworkAddTime)){ + and t.teacher_open_course_homework_add_time =#teacherOpenCourseHomeworkAddTime# + @} + @if(!isEmpty(orgId)){ + and t.org_id =#orgId# + @} + @if(!isEmpty(orgIdPlural)){ + and find_in_set(t.org_id,#orgIdPlural#) + @} + @if(!isEmpty(userId)){ + and t.user_id =#userId# + @} + @if(!isEmpty(userIdPlural)){ + and find_in_set(t.user_id,#userIdPlural#) + @} + + +queryByConditionQuery +=== +* 根据不为空的参数进行分页查询(无权限) + + select + @pageTag(){ + t.* + @} + from teacher_open_course_homework t + where 1=1 + @if(!isEmpty(teacherOpenCourseHomeworkId)){ + and t.teacher_open_course_homework_id =#teacherOpenCourseHomeworkId# + @} + @if(!isEmpty(teacherOpenCourseHomeworkIdPlural)){ + and find_in_set(t.teacher_open_course_homework_id,#teacherOpenCourseHomeworkIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseId)){ + and t.teacher_open_course_id =#teacherOpenCourseId# + @} + @if(!isEmpty(teacherOpenCourseIdPlural)){ + and find_in_set(t.teacher_open_course_id,#teacherOpenCourseIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseHomeworkName)){ + and t.teacher_open_course_homework_name =#teacherOpenCourseHomeworkName# + @} + @if(!isEmpty(teacherOpenCourseHomeworkClasses)){ + and t.teacher_open_course_homework_classes =#teacherOpenCourseHomeworkClasses# + @} + @if(!isEmpty(teacherOpenCourseHomeworkStartTime)){ + and t.teacher_open_course_homework_start_time =#teacherOpenCourseHomeworkStartTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkEndTime)){ + and t.teacher_open_course_homework_end_time =#teacherOpenCourseHomeworkEndTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkType)){ + and t.teacher_open_course_homework_type =#teacherOpenCourseHomeworkType# + @} + @if(!isEmpty(teacherOpenCourseHomeworkUploadFile)){ + and t.teacher_open_course_homework_upload_file =#teacherOpenCourseHomeworkUploadFile# + @} + @if(!isEmpty(teacherOpenCourseHomeworkPushStatus)){ + and t.teacher_open_course_homework_push_status =#teacherOpenCourseHomeworkPushStatus# + @} + @if(isEmpty(teacherOpenCourseHomeworkStatus) && isEmpty(teacherOpenCourseHomeworkStatusPlural)){ + and t.teacher_open_course_homework_status != 2 + @}else{ + @if(!isEmpty(teacherOpenCourseHomeworkStatus)){ + and t.teacher_open_course_homework_status =#teacherOpenCourseHomeworkStatus# + @}else if(!isEmpty(teacherOpenCourseHomeworkStatusPlural)){ + and find_in_set(t.teacher_open_course_homework_status,#teacherOpenCourseHomeworkStatusPlural#) + @} + @} + @if(!isEmpty(teacherOpenCourseHomeworkAddTime)){ + and t.teacher_open_course_homework_add_time =#teacherOpenCourseHomeworkAddTime# + @} + @if(!isEmpty(orgId)){ + and t.org_id =#orgId# + @} + @if(!isEmpty(orgIdPlural)){ + and find_in_set(t.org_id,#orgIdPlural#) + @} + @if(!isEmpty(userId)){ + and t.user_id =#userId# + @} + @if(!isEmpty(userIdPlural)){ + and find_in_set(t.user_id,#userIdPlural#) + @} + + + + +deleteTeacherOpenCourseHomeworkByIds +=== + +* 批量删除(假删除) + + update teacher_open_course_homework set teacher_open_course_homework_status = 2 where find_in_set(teacher_open_course_homework_id,#ids#) + + +deleteByIds +=== + +* 批量删除(真删除) + + delete from teacher_open_course_homework where find_in_set(teacher_open_course_homework_id,#ids#) + + + +getByIds +=== + +select * from teacher_open_course_homework where find_in_set(teacher_open_course_homework_id,#ids#) + + +updateGivenByIds +=== + +* 批量更新指定字段,无论此字段是否有值 + + update teacher_open_course_homework + set + @if(contain("teacherOpenCourseId",_given)){ + @if(isEmpty(teacherOpenCourseId)){ + teacher_open_course_id = null , + @}else{ + teacher_open_course_id = #teacherOpenCourseId# , + @} + @} + @if(contain("teacherOpenCourseHomeworkName",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkName)){ + teacher_open_course_homework_name = null , + @}else{ + teacher_open_course_homework_name = #teacherOpenCourseHomeworkName# , + @} + @} + @if(contain("teacherOpenCourseHomeworkClasses",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkClasses)){ + teacher_open_course_homework_classes = null , + @}else{ + teacher_open_course_homework_classes = #teacherOpenCourseHomeworkClasses# , + @} + @} + @if(contain("teacherOpenCourseHomeworkStartTime",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkStartTime)){ + teacher_open_course_homework_start_time = null , + @}else{ + teacher_open_course_homework_start_time = #teacherOpenCourseHomeworkStartTime# , + @} + @} + @if(contain("teacherOpenCourseHomeworkEndTime",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkEndTime)){ + teacher_open_course_homework_end_time = null , + @}else{ + teacher_open_course_homework_end_time = #teacherOpenCourseHomeworkEndTime# , + @} + @} + @if(contain("teacherOpenCourseHomeworkType",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkType)){ + teacher_open_course_homework_type = null , + @}else{ + teacher_open_course_homework_type = #teacherOpenCourseHomeworkType# , + @} + @} + @if(contain("teacherOpenCourseHomeworkUploadFile",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkUploadFile)){ + teacher_open_course_homework_upload_file = null , + @}else{ + teacher_open_course_homework_upload_file = #teacherOpenCourseHomeworkUploadFile# , + @} + @} + @if(contain("teacherOpenCourseHomeworkPushStatus",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkPushStatus)){ + teacher_open_course_homework_push_status = null , + @}else{ + teacher_open_course_homework_push_status = #teacherOpenCourseHomeworkPushStatus# , + @} + @} + @if(contain("teacherOpenCourseHomeworkStatus",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkStatus)){ + teacher_open_course_homework_status = null , + @}else{ + teacher_open_course_homework_status = #teacherOpenCourseHomeworkStatus# , + @} + @} + @if(contain("teacherOpenCourseHomeworkAddTime",_given)){ + @if(isEmpty(teacherOpenCourseHomeworkAddTime)){ + teacher_open_course_homework_add_time = null , + @}else{ + teacher_open_course_homework_add_time = #teacherOpenCourseHomeworkAddTime# , + @} + @} + @if(contain("orgId",_given)){ + @if(isEmpty(orgId)){ + org_id = null , + @}else{ + org_id = #orgId# , + @} + @} + @if(contain("userId",_given)){ + @if(isEmpty(userId)){ + user_id = null , + @}else{ + user_id = #userId# , + @} + @} + teacher_open_course_homework_id = teacher_open_course_homework_id + where find_in_set(teacher_open_course_homework_id,#teacherOpenCourseHomeworkIdPlural#) + + + +getTeacherOpenCourseHomeworkValues +=== + +* 根据不为空的参数进行查询 + + select t.* + from teacher_open_course_homework t + where 1=1 + @if(!isEmpty(teacherOpenCourseHomeworkId)){ + and t.teacher_open_course_homework_id =#teacherOpenCourseHomeworkId# + @} + @if(!isEmpty(teacherOpenCourseId)){ + and t.teacher_open_course_id =#teacherOpenCourseId# + @} + @if(!isEmpty(teacherOpenCourseHomeworkName)){ + and t.teacher_open_course_homework_name =#teacherOpenCourseHomeworkName# + @} + @if(!isEmpty(teacherOpenCourseHomeworkClasses)){ + and t.teacher_open_course_homework_classes =#teacherOpenCourseHomeworkClasses# + @} + @if(!isEmpty(teacherOpenCourseHomeworkStartTime)){ + and t.teacher_open_course_homework_start_time =#teacherOpenCourseHomeworkStartTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkEndTime)){ + and t.teacher_open_course_homework_end_time =#teacherOpenCourseHomeworkEndTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkType)){ + and t.teacher_open_course_homework_type =#teacherOpenCourseHomeworkType# + @} + @if(!isEmpty(teacherOpenCourseHomeworkUploadFile)){ + and t.teacher_open_course_homework_upload_file =#teacherOpenCourseHomeworkUploadFile# + @} + @if(!isEmpty(teacherOpenCourseHomeworkPushStatus)){ + and t.teacher_open_course_homework_push_status =#teacherOpenCourseHomeworkPushStatus# + @} + @if(!isEmpty(teacherOpenCourseHomeworkStatus)){ + and t.teacher_open_course_homework_status =#teacherOpenCourseHomeworkStatus# + @}else{ + and t.teacher_open_course_homework_status != 2 + @} + @if(!isEmpty(teacherOpenCourseHomeworkAddTime)){ + and t.teacher_open_course_homework_add_time =#teacherOpenCourseHomeworkAddTime# + @} + @if(!isEmpty(orgId)){ + and t.org_id =#orgId# + @} + @if(!isEmpty(userId)){ + and t.user_id =#userId# + @} + + +getValuesByQuery +=== + +* 根据不为空的参数进行查询 + + select t.* + from teacher_open_course_homework t + where 1=1 and #function("teacherOpenCourseHomework.query")# + @if(!isEmpty(teacherOpenCourseHomeworkId)){ + and t.teacher_open_course_homework_id =#teacherOpenCourseHomeworkId# + @} + @if(!isEmpty(teacherOpenCourseHomeworkIdPlural)){ + and find_in_set(t.teacher_open_course_homework_id,#teacherOpenCourseHomeworkIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseId)){ + and t.teacher_open_course_id =#teacherOpenCourseId# + @} + @if(!isEmpty(teacherOpenCourseIdPlural)){ + and find_in_set(t.teacher_open_course_id,#teacherOpenCourseIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseHomeworkName)){ + and t.teacher_open_course_homework_name =#teacherOpenCourseHomeworkName# + @} + @if(!isEmpty(teacherOpenCourseHomeworkClasses)){ + and t.teacher_open_course_homework_classes =#teacherOpenCourseHomeworkClasses# + @} + @if(!isEmpty(teacherOpenCourseHomeworkStartTime)){ + and t.teacher_open_course_homework_start_time =#teacherOpenCourseHomeworkStartTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkEndTime)){ + and t.teacher_open_course_homework_end_time =#teacherOpenCourseHomeworkEndTime# + @} + @if(!isEmpty(teacherOpenCourseHomeworkType)){ + and t.teacher_open_course_homework_type =#teacherOpenCourseHomeworkType# + @} + @if(!isEmpty(teacherOpenCourseHomeworkUploadFile)){ + and t.teacher_open_course_homework_upload_file =#teacherOpenCourseHomeworkUploadFile# + @} + @if(!isEmpty(teacherOpenCourseHomeworkPushStatus)){ + and t.teacher_open_course_homework_push_status =#teacherOpenCourseHomeworkPushStatus# + @} + @if(isEmpty(teacherOpenCourseHomeworkStatus) && isEmpty(teacherOpenCourseHomeworkStatusPlural)){ + and t.teacher_open_course_homework_status != 2 + @}else{ + @if(!isEmpty(teacherOpenCourseHomeworkStatus)){ + and t.teacher_open_course_homework_status =#teacherOpenCourseHomeworkStatus# + @}else if(!isEmpty(teacherOpenCourseHomeworkStatusPlural)){ + and find_in_set(t.teacher_open_course_homework_status,#teacherOpenCourseHomeworkStatusPlural#) + @} + @} + @if(!isEmpty(teacherOpenCourseHomeworkAddTime)){ + and t.teacher_open_course_homework_add_time =#teacherOpenCourseHomeworkAddTime# + @} + @if(!isEmpty(orgId)){ + and t.org_id =#orgId# + @} + @if(!isEmpty(orgIdPlural)){ + and find_in_set(t.org_id,#orgIdPlural#) + @} + @if(!isEmpty(userId)){ + and t.user_id =#userId# + @} + @if(!isEmpty(userIdPlural)){ + and find_in_set(t.user_id,#userIdPlural#) + @} + + + diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseHomeworkSetting.md b/web/src/main/resources/sql/jlw/teacherOpenCourseHomeworkSetting.md index a87ecc19..8d4fde03 100644 --- a/web/src/main/resources/sql/jlw/teacherOpenCourseHomeworkSetting.md +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseHomeworkSetting.md @@ -21,9 +21,6 @@ queryByCondition @if(!isEmpty(teacherOpenCourseHomeworkIdPlural)){ and find_in_set(t.teacher_open_coursehomework_id,#teacherOpenCourseHomeworkIdPlural#) @} - @if(!isEmpty(teacherOpenCourseHomeworkSettingSchoolClassIds)){ - and t.teacher_open_coursehomework_setting_school_class_ids =#teacherOpenCourseHomeworkSettingSchoolClassIds# - @} @if(!isEmpty(teacherOpenCourseHomeworkSettingDoCount)){ and t.teacher_open_coursehomework_setting_do_count =#teacherOpenCourseHomeworkSettingDoCount# @} @@ -77,9 +74,6 @@ queryByConditionQuery @if(!isEmpty(teacherOpenCourseHomeworkIdPlural)){ and find_in_set(t.teacher_open_coursehomework_id,#teacherOpenCourseHomeworkIdPlural#) @} - @if(!isEmpty(teacherOpenCourseHomeworkSettingSchoolClassIds)){ - and t.teacher_open_coursehomework_setting_school_class_ids =#teacherOpenCourseHomeworkSettingSchoolClassIds# - @} @if(!isEmpty(teacherOpenCourseHomeworkSettingDoCount)){ and t.teacher_open_coursehomework_setting_do_count =#teacherOpenCourseHomeworkSettingDoCount# @} @@ -135,13 +129,6 @@ updateGivenByIds teacher_open_coursehomework_id = #teacherOpenCourseHomeworkId# , @} @} - @if(contain("teacherOpenCourseHomeworkSettingSchoolClassIds",_given)){ - @if(isEmpty(teacherOpenCourseHomeworkSettingSchoolClassIds)){ - teacher_open_coursehomework_setting_school_class_ids = null , - @}else{ - teacher_open_coursehomework_setting_school_class_ids = #teacherOpenCourseHomeworkSettingSchoolClassIds# , - @} - @} @if(contain("teacherOpenCourseHomeworkSettingDoCount",_given)){ @if(isEmpty(teacherOpenCourseHomeworkSettingDoCount)){ teacher_open_coursehomework_setting_do_count = null , @@ -215,9 +202,6 @@ getTeacherOpenCourseHomeworkSettingValues @if(!isEmpty(teacherOpenCourseHomeworkId)){ and t.teacher_open_coursehomework_id =#teacherOpenCourseHomeworkId# @} - @if(!isEmpty(teacherOpenCourseHomeworkSettingSchoolClassIds)){ - and t.teacher_open_coursehomework_setting_school_class_ids =#teacherOpenCourseHomeworkSettingSchoolClassIds# - @} @if(!isEmpty(teacherOpenCourseHomeworkSettingDoCount)){ and t.teacher_open_coursehomework_setting_do_count =#teacherOpenCourseHomeworkSettingDoCount# @} @@ -263,9 +247,6 @@ getValuesByQuery @if(!isEmpty(teacherOpenCourseHomeworkIdPlural)){ and find_in_set(t.teacher_open_coursehomework_id,#teacherOpenCourseHomeworkIdPlural#) @} - @if(!isEmpty(teacherOpenCourseHomeworkSettingSchoolClassIds)){ - and t.teacher_open_coursehomework_setting_school_class_ids =#teacherOpenCourseHomeworkSettingSchoolClassIds# - @} @if(!isEmpty(teacherOpenCourseHomeworkSettingDoCount)){ and t.teacher_open_coursehomework_setting_do_count =#teacherOpenCourseHomeworkSettingDoCount# @} diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/add.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/add.js new file mode 100644 index 00000000..87c5b446 --- /dev/null +++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/add.js @@ -0,0 +1,38 @@ +layui.define([ 'form', 'laydate', 'table','teacherOpenCourseHomeworkApi'], function(exports) { + var form = layui.form; + var teacherOpenCourseHomeworkApi = layui.teacherOpenCourseHomeworkApi; + var index = layui.index; + var view = { + init:function(){ + Lib.initGenrealForm($("#addForm"),form); + this.initSubmit(); + }, + initSubmit:function(){ + $("#addButton").click(function(){ + form.on('submit(form)', function(){ + var teacherOpenCourseHomeworkId = $("#addForm input[name='teacherOpenCourseHomeworkId']").val(); + if(!$.isEmpty(teacherOpenCourseHomeworkId)){ + teacherOpenCourseHomeworkApi.updateTeacherOpenCourseHomework($('#addForm'),function(){ + parent.window.dataReload(); + Common.info("更新成功"); + Lib.closeFrame(); + }); + }else{ + teacherOpenCourseHomeworkApi.addTeacherOpenCourseHomework($('#addForm'),function(){ + parent.window.dataReload(); + Common.info("添加成功"); + Lib.closeFrame(); + }); + } + + }); + }); + + $("#addButton-cancel").click(function(){ + Lib.closeFrame(); + }); + } + + } + exports('add',view); +}); diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/del.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/del.js new file mode 100644 index 00000000..4964b4de --- /dev/null +++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/del.js @@ -0,0 +1,23 @@ +layui.define(['table', 'teacherOpenCourseHomeworkApi'], function(exports) { + var teacherOpenCourseHomeworkApi = layui.teacherOpenCourseHomeworkApi; + var table=layui.table; + var view = { + init:function(){ + }, + delBatch:function(){ + var data = Common.getMoreDataFromTable(table,"teacherOpenCourseHomeworkTable"); + if(data==null){ + return ; + } + Common.openConfirm("确认要删除这些开课作业?",function(){ + var ids =Common.concatBatchId(data,"teacherOpenCourseHomeworkId"); + teacherOpenCourseHomeworkApi.del(ids,function(){ + Common.info("删除成功"); + dataReload(); + }) + }) + } + } + exports('del',view); + +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/edit.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/edit.js new file mode 100644 index 00000000..17f619d1 --- /dev/null +++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/edit.js @@ -0,0 +1,28 @@ +layui.define([ 'form', 'laydate', 'table','teacherOpenCourseHomeworkApi'], function(exports) { + var form = layui.form; + var teacherOpenCourseHomeworkApi = layui.teacherOpenCourseHomeworkApi; + var index = layui.index; + var view = { + init:function(){ + Lib.initGenrealForm($("#updateForm"),form); + this.initSubmit(); + }, + initSubmit:function(){ + $("#updateButton").click(function(){ + form.on('submit(form)', function(){ + teacherOpenCourseHomeworkApi.updateTeacherOpenCourseHomework($('#updateForm'),function(){ + parent.window.dataReload(); + Common.info("更新成功"); + Lib.closeFrame(); + }); + }); + }); + $("#updateButton-cancel").click(function(){ + Lib.closeFrame(); + }); + } + + } + exports('edit',view); + +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/index.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/index.js new file mode 100644 index 00000000..df308689 --- /dev/null +++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/index.js @@ -0,0 +1,213 @@ +layui.define([ 'form', 'laydate', 'table' ], function(exports) { + var form = layui.form; + var laydate = layui.laydate; + var table = layui.table; + var teacherOpenCourseHomeworkTable = null; + var view ={ + init:function(){ + var that = this + this.initTable(); + this.initSearchForm(); + this.initToolBar(); + window.dataReload = function(){ + Lib.doSearchForm($("#searchForm"),teacherOpenCourseHomeworkTable) + that.initToolBar(); + } + }, + initTable:function(){ + var sx_ = localStorage.getItem("teacherOpenCourseHomeworkTable_field_"+Common.userInfoId); //筛选值显示、隐藏缓存 + if($.isEmpty(sx_)){sx_ = {};}else {sx_ = JSON.parse(sx_);} + teacherOpenCourseHomeworkTable = table.render({ + elem : '#teacherOpenCourseHomeworkTable', + height : Lib.getTableHeight(1), + cellMinWidth: 100, + method : 'post', + url : Common.ctxPath + '/jlw/teacherOpenCourseHomework/list.json' // 数据接口 + ,page : Lib.tablePage // 开启分页 + ,toolbar: '#toolbar_teacherOpenCourseHomework' //自定义头部左侧工具栏 + ,defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏 + ,limit : 10, + cols : [ [ // 表头 + { + type : 'checkbox', + + }, + { + field : 'teacherOpenCourseHomeworkId', + title : '题库作业ID', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkId'])?false:sx_['teacherOpenCourseHomeworkId'], + + width : 60, + }, + { + field : 'teacherOpenCourseIdText', //数据字典类型为 teacher_open_course.teacher_open_course_title.teacher_open_course_status=1 + title : '课程开课ID', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseIdText'])?false:sx_['teacherOpenCourseIdText'], + }, + { + field : 'teacherOpenCourseHomeworkName', + title : '作业名称', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkName'])?false:sx_['teacherOpenCourseHomeworkName'], + }, + { + field : 'teacherOpenCourseHomeworkClasses', + title : '作业班级ID(多个班级,逗号隔开)', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkClasses'])?false:sx_['teacherOpenCourseHomeworkClasses'], + }, + { + field : 'teacherOpenCourseHomeworkStartTime', + title : '作业开始时间', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkStartTime'])?false:sx_['teacherOpenCourseHomeworkStartTime'], + }, + { + field : 'teacherOpenCourseHomeworkEndTime', + title : '作业结束时间', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkEndTime'])?false:sx_['teacherOpenCourseHomeworkEndTime'], + }, + { + field : 'teacherOpenCourseHomeworkType', + title : '作业类型。 题库作业QUESTION,附件FILE', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkType'])?false:sx_['teacherOpenCourseHomeworkType'], + }, + { + field : 'teacherOpenCourseHomeworkUploadFile', + title : '附件,老师上传附件(单文件)', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkUploadFile'])?false:sx_['teacherOpenCourseHomeworkUploadFile'], + }, + { + field : 'teacherOpenCourseHomeworkPushStatusText', //数据字典类型为 global_push_status + title : '发布状态。 1发布,0未发布', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkPushStatusText'])?false:sx_['teacherOpenCourseHomeworkPushStatusText'], + }, + { + field : 'teacherOpenCourseHomeworkStatusText', //数据字典类型为 global_status + title : '状态 (1正常 2删除)', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkStatusText'])?false:sx_['teacherOpenCourseHomeworkStatusText'], + }, + { + field : 'teacherOpenCourseHomeworkAddTime', + title : '创建时间', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['teacherOpenCourseHomeworkAddTime'])?false:sx_['teacherOpenCourseHomeworkAddTime'], + }, + { + field : 'orgId', + title : '组织ID', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['orgId'])?false:sx_['orgId'], + }, + { + field : 'userId', + title : '用户ID', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['userId'])?false:sx_['userId'], + } + ,{ + field : 'operation_',title : '操作',align:"center", templet: function (d) { + var htm = ''; + htm += ''; + return htm; + } + } + + ] ] + + }); + + table.on('checkbox(teacherOpenCourseHomeworkTable)', function(obj){ + var teacherOpenCourseHomework = obj.data; + if(obj.checked){ + //按钮逻辑Lib.buttonEnable() + }else{ + + } + }) + }, + + initSearchForm:function(){ + Lib.initSearchForm( $("#searchForm"),teacherOpenCourseHomeworkTable,form); + }, + + initToolBar:function(){ + toolbar = { + add: function () { + var url = "/jlw/teacherOpenCourseHomework/add.do"; + Common.openDlg(url,"开课作业管理>新增"); + }, + edit: function () { + var data = Common.getOneFromTable(table,"teacherOpenCourseHomeworkTable"); + if(data==null){ + return ; + } + var url = "/jlw/teacherOpenCourseHomework/add.do?teacherOpenCourseHomeworkId="+data.teacherOpenCourseHomeworkId; + Common.openDlg(url,"开课作业管理>"+data.teacherOpenCourseHomeworkId+">编辑"); + }, + del: function () { + layui.use(['del'], function(){ + var delView = layui.del + delView.delBatch(); + }); + }, + search: function () { + Lib.doSearchForm($("#searchForm"), teacherOpenCourseHomeworkTable, 1); + view.initToolBar() + }, + refresh: function () { + searchForm.reset(); + Lib.doSearchForm($("#searchForm"), teacherOpenCourseHomeworkTable, 1); + view.initToolBar() + }, + } + //触发事件 + $('.ext-toolbar').on('click', function() { + var type = $(this).data('type'); + toolbar[type] ? toolbar[type].call(this) : ''; + }); + + }, initTableTool: table.on('tool(teacherOpenCourseHomeworkTable)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + var url = "/jlw/teacherOpenCourseHomework/add.do?teacherOpenCourseHomeworkId="+data.teacherOpenCourseHomeworkId; + Common.openDlg(url,"开课作业管理>"+data.teacherOpenCourseHomeworkId+">编辑"); + }else if(obj.event === "del"){ + layer.confirm('是否确定删除该信息?', function (index) { + var ret = Common.postAjax("/jlw/teacherOpenCourseHomework/delete.json",{ids:data.teacherOpenCourseHomeworkId}); + layer.msg(ret.code == 0?"删除成功!":ret.msg, { + offset: ['50%'], + icon: ret.code == 0?1:2, + time: 1500 //2秒关闭(如果不配置,默认是3秒) + },function (){ + if(ret.code == 0){ + Lib.tableRefresh(); + } + }); + }); + } + }) + } + exports('index',view); + +}); diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/teacherOpenCourseHomeworkApi.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/teacherOpenCourseHomeworkApi.js new file mode 100644 index 00000000..fa4dbf7d --- /dev/null +++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomework/teacherOpenCourseHomeworkApi.js @@ -0,0 +1,18 @@ +/*访问后台的代码*/ +layui.define([], function(exports) { + var api={ + updateTeacherOpenCourseHomework:function(form,callback){ + Lib.submitForm("/jlw/teacherOpenCourseHomework/edit.json",form,{},callback) + }, + addTeacherOpenCourseHomework:function(form,callback){ + Lib.submitForm("/jlw/teacherOpenCourseHomework/add.json",form,{},callback) + }, + del:function(ids,callback){ + Common.post("/jlw/teacherOpenCourseHomework/delete.json",{"ids":ids},function(){ + callback(); + }) + } + + }; + exports('teacherOpenCourseHomeworkApi',api); +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomeworkSetting/index.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomeworkSetting/index.js index 6d27279b..cab3d1e0 100644 --- a/web/src/main/resources/static/js/jlw/teacherOpenCourseHomeworkSetting/index.js +++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseHomeworkSetting/index.js @@ -41,13 +41,6 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { width : 60, }, - { - field : 'teacherOpenCourseQuestionHomeworkSettingSchoolClassIdsText', //数据字典类型为 school_class.class_name.class_status=1 - title : '班级ID集合(逗号隔开)', - align:"center", - hideField :false, - hide:$.isEmpty(sx_['teacherOpenCourseQuestionHomeworkSettingSchoolClassIdsText'])?false:sx_['teacherOpenCourseQuestionHomeworkSettingSchoolClassIdsText'], - }, { field : 'teacherOpenCourseQuestionHomeworkSettingDoCount', title : '作答次数', diff --git a/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/add.html b/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/add.html new file mode 100644 index 00000000..c67d4b77 --- /dev/null +++ b/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/add.html @@ -0,0 +1,113 @@ + + +

+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + + diff --git a/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/edit.html b/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/edit.html new file mode 100644 index 00000000..8d92dee1 --- /dev/null +++ b/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/edit.html @@ -0,0 +1,113 @@ + + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + + diff --git a/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/index.html b/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/index.html new file mode 100644 index 00000000..50fdcb91 --- /dev/null +++ b/web/src/main/resources/templates/jlw/teacherOpenCourseHomework/index.html @@ -0,0 +1,29 @@ + + + +
+ + + + diff --git a/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/add.html b/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/add.html index 197a395c..0e025efb 100644 --- a/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/add.html +++ b/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/add.html @@ -3,13 +3,6 @@
-
- -
- -
-
diff --git a/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/edit.html b/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/edit.html index bbe6f79d..41f76962 100644 --- a/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/edit.html +++ b/web/src/main/resources/templates/jlw/teacherOpenCourseHomeworkSetting/edit.html @@ -3,13 +3,6 @@
-
- -
- -
-
diff --git a/web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java b/web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java deleted file mode 100644 index e8ee4aef..00000000 --- a/web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.ibeetl.jlw.web; - -import cn.hutool.json.JSONUtil; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.RequestBuilder; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultMatchers; -import org.springframework.util.MultiValueMap; - -import java.util.Map; - -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - - -/** - *

- * TODO 还没写完 暂时不能用 - *

- * - * @author mlx - * @date 2022/9/20 - * @modified - */ -class TeacherOpenCourseMergeSchoolClassControllerTest { - - private final Log log = LogFactory.getLog(this.getClass()); - private static final String MODEL = "/jlw/teacherOpenCourseMergeSchoolClass"; - private static final String API = "/api/teacherOpenCourseMergeSchoolClass"; - - @Autowired - private MockMvc mvc; - - @Test - void getPageList() { - } - - @Test - void getInfo() { - } - - @Test - void getList() { - } - - @Test - void index() { - } - - @Test - void edit() { - } - - @Test - void add() throws Exception { - Map map = JSONUtil.toBean("{\n" + - " \"teacherOpenCourseMergeSchoolClassId\": 60,\n" + - " \"teacherOpenCourseId\": 84,\n" + - " \"schoolClassId\": 78,\n" + - " \"teacherOpenCourseMergeSchoolClassStatus\": 86,\n" + - " \"teacherOpenCourseMergeSchoolClassAddTime\": \"2015-01-06 04:18:36\",\n" + - " \"orgId\": 84,\n" + - " \"userId\": 16,\n" + - " \"teacherOpenCourseMergeSchoolClassIdPlural\": \"fake_data\",\n" + - " \"teacherOpenCourseIdPlural\": \"fake_data\",\n" + - " \"schoolClassIdPlural\": \"fake_data\",\n" + - " \"teacherOpenCourseMergeSchoolClassStatusPlural\": \"fake_data\",\n" + - " \"orgIdPlural\": \"fake_data\",\n" + - " \"userIdPlural\": \"fake_data\",\n" + - " \"teacherOpenCourseMergeSchoolClassJsonStr\": \"fake_data\",\n" + - " \"_given\": \"fake_data\"\n" + - " }", Map.class); - - //构造请求参数 - RequestBuilder rb = MockMvcRequestBuilders.post(MODEL + "/add.json").params((MultiValueMap) map); - //发送请求,验证返回结果 - String result = mvc.perform(rb) - .andExpect(status().isOk()) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.name").value("zhangsan")) - .andReturn().getResponse().getContentAsString(); - log.info(result); - } - - @Test - void list() { - } - - @Test - void addAll() { - } - - @Test - void testAdd() { - } - - @Test - void update() { - } - - @Test - void queryInfo() { - } - - @Test - void getValues() { - } - - @Test - void delete() { - } - - @Test - void deleteByCondition() { - } -} \ No newline at end of file diff --git a/web/src/main/test/resources/application-unit-test.yaml b/web/src/main/test/resources/application-unit-test.yaml deleted file mode 100644 index 9ffc85e6..00000000 --- a/web/src/main/test/resources/application-unit-test.yaml +++ /dev/null @@ -1,40 +0,0 @@ -spring: - main: - lazy-initialization: true # 开启懒加载,加快速度 - banner-mode: off # 单元测试,禁用 Banner - ---- #################### 数据库相关配置 #################### - -spring: - # 数据源配置项 - datasource: - name: tzcj-mem - url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写 - driver-class-name: org.h2.Driver - username: sa - password: - druid: - async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度 - initial-size: 1 # 单元测试,配置为 1,提升启动速度 - sql: - init: - schema-locations: classpath:/sql/create_tables.sql - - # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 - redis: - host: 127.0.0.1 # 地址 - port: 16379 # 端口(单元测试,使用 16379 端口) - database: 0 # 数据库索引 - ---- #################### 定时任务相关配置 #################### - ---- #################### 配置中心相关配置 #################### - ---- #################### 服务保障相关配置 #################### - -# Lock4j 配置项(单元测试,禁用 Lock4j) - -# Resilience4j 配置项 - ---- #################### 监控相关配置 #################### - diff --git a/web/src/test/java/base/BaseTest.java b/web/src/test/java/base/BaseTest.java new file mode 100644 index 00000000..6517d35b --- /dev/null +++ b/web/src/test/java/base/BaseTest.java @@ -0,0 +1,30 @@ +package base; + +import cn.jlw.web.WebApplication; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +/** + *

+ * 测试基类,个人技术有限,目前没办法完全拆分成单个模块 + *

+ * + * @author mlx + * @date 2022/9/24 + * @modified + */ +@SpringBootTest(classes = {WebApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.MOCK) +@RunWith(SpringRunner.class) +@AutoConfigureMockMvc +@ActiveProfiles("test") +//@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB +public class BaseTest { + + @Autowired + protected MockMvc mvc; +} diff --git a/web/src/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java b/web/src/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java new file mode 100644 index 00000000..9b6a8d48 --- /dev/null +++ b/web/src/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java @@ -0,0 +1,124 @@ +package com.ibeetl.jlw.web; + +import base.BaseTest; +import com.google.common.collect.Maps; +import com.ibeetl.admin.core.util.BeanUtil; +import com.ibeetl.jlw.dao.ResourcesQuestionDao; +import com.ibeetl.jlw.entity.TeacherOpenCourseMergeSchoolClass; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Test; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.RequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.util.MultiValueMapAdapter; + +import javax.annotation.Resource; +import java.util.Map; + +import static com.ibeetl.admin.test.util.test.RandomUtils.randomPojo; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + + +/** + *

+ * TODO 还没写完 暂时不能用 + *

+ * + * @author mlx + * @date 2022/9/20 + * @modified + */ +public class TeacherOpenCourseMergeSchoolClassControllerTest extends BaseTest { + + private final Log log = LogFactory.getLog(this.getClass()); + private static final String MODEL = "/jlw/teacherOpenCourseMergeSchoolClass"; + private static final String API = "/api/teacherOpenCourseMergeSchoolClass"; + + @Resource + private ResourcesQuestionDao resourcesQuestionDao; + + /** + * 获取登入信息session + * + * @return + * @throws Exception + */ + @Test + public void getPageList() { + } + + @Test + public void getInfo() { + } + + @Test + public void getList() { + } + + @Test + public void index() { + } + + @Test + public void edit() { + } + + @Test + public void add() throws Exception { + +// ResourcesQuestionQuery resourcesQuestionQuery = new ResourcesQuestionQuery(); +// resourcesQuestionQuery.setQuestionStatus(1); +// List valuesByQuery = resourcesQuestionDao.getValuesByQuery(resourcesQuestionQuery); +// List questionList = RandomUtil.randomEleList(valuesByQuery, RandomUtil.randomInt(valuesByQuery.size())); +// String resourcesQuestionIds = questionList.stream().map(e -> String.valueOf(e.getResourcesQuestionId())).collect(Collectors.joining(",")); + // 自动填充属性 + TeacherOpenCourseMergeSchoolClass teacherOpenCourseMergeSchoolClass = randomPojo(TeacherOpenCourseMergeSchoolClass.class); + Map stringMap = BeanUtil.beanToMapStr(teacherOpenCourseMergeSchoolClass); + MultiValueMapAdapter multiValueMapAdapter = new MultiValueMapAdapter(Maps.newHashMap()); + stringMap.forEach(multiValueMapAdapter::add); + //构造请求参数 + RequestBuilder rb = MockMvcRequestBuilders.post(MODEL + "/add.json").contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE) + .params(multiValueMapAdapter); + //发送请求,验证返回结果 + String result = mvc.perform(rb) + .andExpect(status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("0")) + .andReturn().getResponse().getContentAsString(); + + log.info(result); + } + + @Test + public void list() { + } + + @Test + public void addAll() { + } + + @Test + public void testAdd() { + } + + @Test + public void update() { + } + + @Test + public void queryInfo() { + } + + @Test + public void getValues() { + } + + @Test + public void delete() { + } + + @Test + public void deleteByCondition() { + } +} \ No newline at end of file diff --git a/web/src/test/resources/application-test.properties b/web/src/test/resources/application-test.properties new file mode 100644 index 00000000..6914f331 --- /dev/null +++ b/web/src/test/resources/application-test.properties @@ -0,0 +1,38 @@ +# \u8BBE\u7F6E\u9ED8\u8BA4\u7684\u6570\u636E\u6E90\u6216\u8005\u6570\u636E\u6E90\u7EC4,\u9ED8\u8BA4\u503C\u5373\u4E3A ds1 +spring.datasource.dynamic.primary = master +spring.datasource.dynamic.p6spy = false +spring.datasource.dynamic.strict = false +spring.datasource.dynamic.hikari.max-pool-size=30 +spring.datasource.dynamic.hikari.connection-test-query=SELECT 1 + +# master +spring.datasource.dynamic.datasource.master.driverClassName=com.mysql.cj.jdbc.Driver +spring.datasource.dynamic.datasource.master.url=jdbc:mysql://124.223.219.235:3306/tzcj?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true +spring.datasource.dynamic.datasource.master.username=root +spring.datasource.dynamic.datasource.master.password=root + +# ds2 +#spring.datasource.dynamic.datasource.ds2.driverClassName=com.mysql.cj.jdbc.Driver +#spring.datasource.dynamic.datasource.ds2.url=jdbc:mysql://124.223.219.235:3306/tzcj?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true +#spring.datasource.dynamic.datasource.ds2.username=root +#spring.datasource.dynamic.datasource.ds2.password=root + +# sqlManagers = \u591A\u4E2A sqlManager \u5217\u8868 +dynamic.beetlsql.sqlManagers = master +# primary \u9ED8\u8BA4 sqlManager +# transactionManager \u9ED8\u8BA4\u81EA\u52A8\u751F\u6210\uFF0C\u5982\u9700\u81EA\u5DF1\u7BA1\u7406\u5219\u8BBE\u7F6E\u4E3A false +# dynamic.beetlsql.transactionManager = false + +# \u9ED8\u8BA4\u503C _default +dynamic.beetlsql._default.dev = true + +# 1, \u914D\u7F6E\u5355\u72EC sqlManager +# A) \u540D\u79F0: ds1, dataSource \u540C\u540D\u79F0 ds1, \u6216 dynamic.beetlsql.ds1.ds = ds1 +dynamic.beetlsql.master.sqlPath = sql +dynamic.beetlsql.master.daoSuffix = Dao +dynamic.beetlsql.master.basePackage = com.ibeetl +dynamic.beetlsql.master.dbStyle = org.beetl.sql.core.db.MySqlStyle + +# \u6A21\u62DF\u7528\u6237\u767B\u5F55 \u53EA\u80FD\u7528\u5728\u672C\u5730\u6D4B\u8BD5\u65F6\u5019\u4F7F\u7528 +user.id=1 +user.orgId=1 \ No newline at end of file diff --git a/web/src/main/test/resources/logback.xml b/web/src/test/resources/logback.xml similarity index 100% rename from web/src/main/test/resources/logback.xml rename to web/src/test/resources/logback.xml diff --git a/web/src/main/test/resources/sql/clean.sql b/web/src/test/resources/sql/clean.sql similarity index 100% rename from web/src/main/test/resources/sql/clean.sql rename to web/src/test/resources/sql/clean.sql diff --git a/web/src/main/test/resources/sql/create_tables.sql b/web/src/test/resources/sql/create_tables.sql similarity index 100% rename from web/src/main/test/resources/sql/create_tables.sql rename to web/src/test/resources/sql/create_tables.sql