Merge remote-tracking branch 'origin/beetlsql3-dev' into beetlsql3-dev

beetlsql3-dev
xuliangtong 3 years ago
commit 14ca4c7581

@ -191,5 +191,6 @@
<artifactId>hutool-all</artifactId>
<version>5.7.22</version>
</dependency>
</dependencies>
</project>

@ -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;
/**
* <p>
*
* </p>
*
* @author mlx
* @date 2022/9/26
* @modified
*/
public class BeanUtil extends cn.hutool.core.bean.BeanUtil {
/**
* String
* @param obj
* @return
*/
public static Map<String, String> beanToMapStr(Object obj) {
Map<String, String> 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;
}
}

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>admin</artifactId>
<groupId>com.ibeetl</groupId>
<version>1.3.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>admin-test</artifactId>
<properties>
<!-- Test 测试相关 -->
<podam.version>7.2.6.RELEASE</podam.version>
<jedis-mock.version>0.1.16</jedis-mock.version>
<hutool-core.version>5.7.22</hutool-core.version>
<dynamic-beetlsql-spring-boot-starter.version>1.3.1</dynamic-beetlsql-spring-boot-starter.version>
</properties>
<dependencies>
<dependency>
<groupId>uk.co.jemos.podam</groupId> <!-- 单元测试,随机生成 POJO 类 -->
<artifactId>podam</artifactId>
<version>${podam.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.github.fppt</groupId> <!-- 单元测试,我们采用内嵌的 Redis 数据库 -->
<artifactId>jedis-mock</artifactId>
<version>${jedis-mock.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>com.qeedata</groupId>
<artifactId>dynamic-beetlsql-spring-boot-starter</artifactId>
<version>${dynamic-beetlsql-spring-boot-starter.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool-core.version}</version>
</dependency>
</dependencies>
</project>

@ -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;
/**
* <p>
*
* TODO
* </p>
*
* @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 {
}
}

@ -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;
/**
* <p>
*
* TODO
* </p>
*
* @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 {
}
}

@ -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 {
}

@ -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;
}
}

@ -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;
}
}

@ -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));
});
}
}

@ -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 <T> Set<T> randomSet(Class<T> 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> T randomPojo(Class<T> clazz, Consumer<T>... 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> T randomPojo(Class<T> clazz, Type type, Consumer<T>... 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 <T> List<T> randomPojoList(Class<T> clazz, Consumer<T>... 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());
}
}

@ -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"
}
}

@ -1,6 +1,6 @@
{
"dev": {
"baseURL": "http://localhost:9090/server/",
"session": "0DA92B7ABBDC4AFB7B6358E5DCBC6C2D"
"session": "A8152C92D7491D57327FF765D2B6780C"
}
}

@ -15,6 +15,7 @@
<module>admin-core</module>
<module>admin-console</module>
<module>web</module>
<module>admin-test</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>

@ -231,7 +231,13 @@
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>admin-test</artifactId>
<version>1.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>

@ -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;
}
}

@ -0,0 +1,34 @@
package cn.jlw.util;
import cn.hutool.core.util.ReflectUtil;
/**
* <p>
*
* </p>
*
* @author mlx
* @date 2022/9/24
* @modified
*/
public class EnumUtil extends cn.hutool.core.util.EnumUtil {
/**
*
* @param enumClass
* @param fieldNme
* @param value
* @return
* @param <E>
*/
public static <E extends Enum<E>> E getByFieldWithValue(Class<E> 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;
}
}

@ -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

@ -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<TeacherOpenCourseHomework>{
PageQuery<TeacherOpenCourseHomework> queryByCondition(PageQuery query);
PageQuery<TeacherOpenCourseHomework> queryByConditionQuery(PageQuery query);
@Update
void deleteTeacherOpenCourseHomeworkByIds(String ids);
@Update
void deleteByIds(String ids);
@Update
int updateGivenByIds(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery);
List<TeacherOpenCourseHomework> getByIds(String ids);
List<TeacherOpenCourseHomework> getValuesByQuery(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery);
}

@ -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;
}
/** QUESTIONFILE
*@return
*/
public TeacherOpenCourseHomeworkQuery.TeacherOpenCourseHomeworkTypeEnum getTeacherOpenCourseHomeworkType(){
return teacherOpenCourseHomeworkType;
}
/** QUESTIONFILE
*@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;
}
/** 10
*@return
*/
public Integer getTeacherOpenCourseHomeworkPushStatus(){
return teacherOpenCourseHomeworkPushStatus;
}
/** 10
*@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;
}
}

@ -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 ;

@ -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);
}
}
}

@ -2,7 +2,6 @@ package com.ibeetl.jlw.enums;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
@ -17,7 +16,6 @@ public enum FromTypeEnum {
HOMEWORK("家庭作业");
@Setter
@Getter
private String text;
FromTypeEnum(String text) {

@ -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<TeacherOpenCourseHomework>{
@Resource private TeacherOpenCourseHomeworkDao teacherOpenCourseHomeworkDao;
@Resource private TeacherOpenCourseHomeworkSettingService teacherOpenCourseHomeworkSettingService;
public PageQuery<TeacherOpenCourseHomework>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseHomeworkDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<TeacherOpenCourseHomework>queryByConditionQuery(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<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
}
if(StringUtils.isNotBlank(ids)){
teacherOpenCourseHomeworkDao.deleteByIds(ids);
}
}
public void deleteTeacherOpenCourseHomework(String ids){
try {
teacherOpenCourseHomeworkDao.deleteTeacherOpenCourseHomeworkByIds(ids);
} catch (Exception e) {
throw new PlatformException("批量删除开课作业失败", e);
}
}
public String addAll(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){
String msg = "";
List<TeacherOpenCourseHomework> 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<teacherOpenCourseHomeworkList.size();i++){
TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkList.get(i);
teacherOpenCourseHomework.setUserId(teacherOpenCourseHomeworkQuery.getUserId());
teacherOpenCourseHomework.setOrgId(teacherOpenCourseHomeworkQuery.getOrgId());
}
insertBatch(teacherOpenCourseHomeworkList);
}
return msg;
}
public JsonResult add(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){
String msg = "";
TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkQuery.pojo();
teacherOpenCourseHomeworkDao.insert(teacherOpenCourseHomework);
teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkId(teacherOpenCourseHomework.getTeacherOpenCourseHomeworkId());
JsonResult jsonResult = new JsonResult();
jsonResult.setData(teacherOpenCourseHomework.getTeacherOpenCourseHomeworkId());//自增的ID丢进去
jsonResult.setCode(JsonReturnCode.SUCCESS.getCode());
jsonResult.setMsg(msg);
return jsonResult;
}
public String edit(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){
String msg = "";
TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkQuery.pojo();
teacherOpenCourseHomeworkDao.updateTemplateById(teacherOpenCourseHomework);
return msg;
}
public String updateGivenByIds(TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){
String msg = "";
if(StringUtils.isNotBlank(teacherOpenCourseHomeworkQuery.get_given())){
boolean flag = teacherOpenCourseHomeworkDao.updateGivenByIds(teacherOpenCourseHomeworkQuery) > 0;
if(!flag){
msg = "更新指定参数失败";
}
}else{
msg = "指定参数为空";
}
return msg;
}
public List<TeacherOpenCourseHomework> getValues (Object paras){
return sqlManager.select(SqlId.of("jlw.teacherOpenCourseHomework.getTeacherOpenCourseHomeworkValues"), TeacherOpenCourseHomework.class, paras);
}
public List<TeacherOpenCourseHomework> getValuesByQuery (TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){
return teacherOpenCourseHomeworkDao.getValuesByQuery(teacherOpenCourseHomeworkQuery);
}
public TeacherOpenCourseHomework getInfo (Long teacherOpenCourseHomeworkId){
TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery = new TeacherOpenCourseHomeworkQuery();
teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkId(teacherOpenCourseHomeworkId);
teacherOpenCourseHomeworkQuery.setTeacherOpenCourseHomeworkStatusPlural("1,2");//需要根据实际情况来
List<TeacherOpenCourseHomework> list = teacherOpenCourseHomeworkDao.getValuesByQuery(teacherOpenCourseHomeworkQuery);
if(null != list && list.size()>0){
return list.get(0);
}else{
return null;
}
}
public TeacherOpenCourseHomework getInfo (TeacherOpenCourseHomeworkQuery teacherOpenCourseHomeworkQuery){
List<TeacherOpenCourseHomework> 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());
}
}

@ -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<PageQuery> 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 JsonResult<TeacherOpenCourseHomework>getInfo(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<List<TeacherOpenCourseHomework>>getList(TeacherOpenCourseHomeworkQuery param,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
return JsonResult.failMessage("请登录后再操作");
}else{
List<TeacherOpenCourseHomework>list = 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<PageQuery> 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<String> 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 JsonResult<TeacherOpenCourseHomework>queryInfo(Long teacherOpenCourseHomeworkId) {
TeacherOpenCourseHomework teacherOpenCourseHomework = teacherOpenCourseHomeworkService.queryById( teacherOpenCourseHomeworkId);
return JsonResult.success(teacherOpenCourseHomework);
}
@GetMapping(MODEL + "/getValues.json")
@Function("teacherOpenCourseHomework.query")
public JsonResult<List<TeacherOpenCourseHomework>>getValues(TeacherOpenCourseHomeworkQuery param) {
List<TeacherOpenCourseHomework>list = 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();
}
}

@ -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);
}

@ -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");
}
}

@ -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());

@ -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
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

@ -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
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

@ -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

@ -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#)
@}

@ -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#
@}

@ -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);
});

@ -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);
});

@ -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);
});

@ -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 = '<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</button>';
htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>';
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);
});

@ -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);
});

@ -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 : '作答次数',

@ -0,0 +1,113 @@
<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/teacherOpenCourseHomework/"}){ -->
<form class="layui-form" id="addForm">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">课程开课ID</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="teacher_open_course.teacher_open_course_title.teacher_open_course_status=1"
id="teacherOpenCourseId" name="teacherOpenCourseId" value="${teacherOpenCourseHomework.teacherOpenCourseId}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作业名称</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkName" name="teacherOpenCourseHomeworkName" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkName}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">作业班级ID多个班级逗号隔开</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkClasses" name="teacherOpenCourseHomeworkClasses" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkClasses}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作业开始时间</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkStartTime" name="teacherOpenCourseHomeworkStartTime" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkStartTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">作业结束时间</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkEndTime" name="teacherOpenCourseHomeworkEndTime" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkEndTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作业类型。 题库作业QUESTION附件FILE</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkType" name="teacherOpenCourseHomeworkType" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkType}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">附件,老师上传附件(单文件)</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkUploadFile" name="teacherOpenCourseHomeworkUploadFile" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkUploadFile}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">发布状态。 1发布0未发布</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="global_push_status"
id="teacherOpenCourseHomeworkPushStatus" name="teacherOpenCourseHomeworkPushStatus" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkPushStatus}" layVerify="" />
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">状态 1正常 2删除</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="global_status"
id="teacherOpenCourseHomeworkStatus" name="teacherOpenCourseHomeworkStatus" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkStatus}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkAddTime" name="teacherOpenCourseHomeworkAddTime" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkAddTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">组织ID</label>
<div class="layui-input-inline">
<input type="text" id="orgId" name="orgId" value="${teacherOpenCourseHomework.orgId}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">用户ID</label>
<div class="layui-input-inline">
<input type="text" id="userId" name="userId" value="${teacherOpenCourseHomework.userId}" class="layui-input" >
</div>
</div>
</div>
</div>
<!-- 业务对象须有hidden字段保存delFlag和version字段-->
<input type="hidden" name="teacherOpenCourseHomeworkId" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkId}" />
<layui:submitButtons id="addButton" buttonType="" showExamine="2" />
</form>
<!--#} -->
<script>
layui.use(['add'], function(){
var teacherOpenCourseHomeworkAdd = layui.add
teacherOpenCourseHomeworkAdd.init();
});
</script>

@ -0,0 +1,113 @@
<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/teacherOpenCourseHomework/"}){ -->
<form class="layui-form" id="updateForm">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">课程开课ID</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="teacher_open_course.teacher_open_course_title.teacher_open_course_status=1"
id="teacherOpenCourseId" name="teacherOpenCourseId" value="${teacherOpenCourseHomework.teacherOpenCourseId}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作业名称</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkName" name="teacherOpenCourseHomeworkName" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkName}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">作业班级ID多个班级逗号隔开</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkClasses" name="teacherOpenCourseHomeworkClasses" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkClasses}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作业开始时间</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkStartTime" name="teacherOpenCourseHomeworkStartTime" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkStartTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">作业结束时间</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkEndTime" name="teacherOpenCourseHomeworkEndTime" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkEndTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作业类型。 题库作业QUESTION附件FILE</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkType" name="teacherOpenCourseHomeworkType" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkType}" class="layui-input" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">附件,老师上传附件(单文件)</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkUploadFile" name="teacherOpenCourseHomeworkUploadFile" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkUploadFile}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">发布状态。 1发布0未发布</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="global_push_status"
id="teacherOpenCourseHomeworkPushStatus" name="teacherOpenCourseHomeworkPushStatus" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkPushStatus}" layVerify="" />
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">状态 1正常 2删除</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="global_status"
id="teacherOpenCourseHomeworkStatus" name="teacherOpenCourseHomeworkStatus" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkStatus}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-inline">
<input type="text" id="teacherOpenCourseHomeworkAddTime" name="teacherOpenCourseHomeworkAddTime" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkAddTime,"yyyy-MM-dd"}" class="layui-input input-date" >
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">组织ID</label>
<div class="layui-input-inline">
<input type="text" id="orgId" name="orgId" value="${teacherOpenCourseHomework.orgId}" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">用户ID</label>
<div class="layui-input-inline">
<input type="text" id="userId" name="userId" value="${teacherOpenCourseHomework.userId}" class="layui-input" >
</div>
</div>
</div>
</div>
<!-- 业务对象须有hidden字段保存delFlag和version字段-->
<input type="hidden" name="teacherOpenCourseHomeworkId" value="${teacherOpenCourseHomework.teacherOpenCourseHomeworkId}" />
<layui:submitButtons id="updateButton" buttonType="" showExamine="2" />
</form>
<!--#} -->
<script>
layui.use(['edit'], function(){
var teacherOpenCourseHomeworkEdit = layui.edit
teacherOpenCourseHomeworkEdit.init();
});
</script>

@ -0,0 +1,29 @@
<!--#layout("/common/layout.html",{"jsBase":"/js/jlw/teacherOpenCourseHomework/"}){ -->
<layui:searchForm formId="searchForm" searchList="" condition="${search}">
</layui:searchForm>
<table id="teacherOpenCourseHomeworkTable" lay-filter="teacherOpenCourseHomeworkTable"></table>
<!--#} -->
<script type="text/html" id="toolbar_teacherOpenCourseHomework">
<div class="layui-btn-container">
<div class="layui-btn-group" >
<!--# if(core.searchIsShow(search)) {-->
<layui:accessButton function="teacherOpenCourseHomework.query" id="searchFormSearch" action="search"><i class="layui-icon">&#xe615;</i>搜索</layui:accessButton>
<!--# }-->
<layui:accessButton function="teacherOpenCourseHomework.add" action="add">添加</layui:accessButton>
<layui:accessButton function="teacherOpenCourseHomework.edit" action="edit">修改</layui:accessButton>
<layui:accessButton function="teacherOpenCourseHomework.del" action="del">删除</layui:accessButton>
<!--# if(!isEmpty(search)) {-->
<layui:accessButton function="teacherOpenCourseHomework.query" action="refresh"><i class="layui-icon">&#xe669;</i>刷新</layui:accessButton>
<!--# }-->
</div>
</div>
</script>
<script>
layui.use(['index'], function(){
var index = layui.index;
index.init();
});
</script>

@ -3,13 +3,6 @@
<form class="layui-form" id="addForm">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">班级ID集合逗号隔开</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="school_class.class_name.class_status=1"
id="teacherOpenCourseQuestionHomeworkSettingSchoolClassIds" name="teacherOpenCourseQuestionHomeworkSettingSchoolClassIds" value="${teacherOpenCourseHomeworkSetting.teacherOpenCourseQuestionHomeworkSettingSchoolClassIds}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作答次数</label>
<div class="layui-input-inline">

@ -3,13 +3,6 @@
<form class="layui-form" id="updateForm">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">班级ID集合逗号隔开</label>
<div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' type="school_class.class_name.class_status=1"
id="teacherOpenCourseQuestionHomeworkSettingSchoolClassIds" name="teacherOpenCourseQuestionHomeworkSettingSchoolClassIds" value="${teacherOpenCourseHomeworkSetting.teacherOpenCourseQuestionHomeworkSettingSchoolClassIds}" layVerify="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">作答次数</label>
<div class="layui-input-inline">

@ -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;
/**
* <p>
* TODO
* </p>
*
* @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<String, String>) 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() {
}
}

@ -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 配置项
--- #################### 监控相关配置 ####################

@ -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;
/**
* <p>
*
* </p>
*
* @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;
}

@ -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;
/**
* <p>
* TODO
* </p>
*
* @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<ResourcesQuestion> valuesByQuery = resourcesQuestionDao.getValuesByQuery(resourcesQuestionQuery);
// List<ResourcesQuestion> 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<String, String> 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() {
}
}

@ -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
Loading…
Cancel
Save