From bc613b43f5de91eafe04a58205c25a31efc36fea Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Tue, 20 Sep 2022 23:18:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E8=AF=BE=E5=85=B3=E8=81=94=E7=8F=AD?= =?UTF-8?q?=E7=BA=A7=EF=BC=8C=E5=AD=A6=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/pom.xml | 5 + ...cherOpenCourseMergeSchoolClassService.java | 18 ++- ...acherOpenCourseMergeStudentController.java | 30 +++++ .../TeacherOpenCourseMergeStudentQuery.java | 12 ++ .../sql/jlw/teacherOpenCourseMergeStudent.md | 12 ++ .../jlw/teacherOpenCourseScheduleSession.md | 5 +- ...nCourseMergeSchoolClassControllerTest.java | 118 ++++++++++++++++++ .../test/resources/application-unit-test.yaml | 40 ++++++ web/src/main/test/resources/logback.xml | 4 + web/src/main/test/resources/sql/clean.sql | 1 + .../main/test/resources/sql/create_tables.sql | 0 11 files changed, 239 insertions(+), 6 deletions(-) create mode 100644 web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java create mode 100644 web/src/main/test/resources/application-unit-test.yaml create mode 100644 web/src/main/test/resources/logback.xml create mode 100644 web/src/main/test/resources/sql/clean.sql create mode 100644 web/src/main/test/resources/sql/create_tables.sql diff --git a/web/pom.xml b/web/pom.xml index b932d537..cbf2c7f2 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -17,6 +17,11 @@ + + com.ibeetl + tianze-spring-boot-starter-test + 1.3.1 + com.ibeetl admin-core diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java index da402eb4..9d546a9b 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java @@ -107,8 +107,14 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService teacherOpenCourseMergeStudentList = Optional + // 查询该班级下的学生列表 .fromNullable(schoolClassStudentDao.getValuesByQuery(schoolClassStudentQuery)).get() .stream().map(scs -> { TeacherOpenCourseMergeStudent entity = new TeacherOpenCourseMergeStudent(); @@ -127,13 +134,14 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService list(TeacherOpenCourseMergeStudentQuery condition){ @@ -136,6 +145,13 @@ public class TeacherOpenCourseMergeStudentController{ } } + /** + * 添加开课学生等操作 + * @param teacherOpenCourseMergeStudentQuery + * @param result + * @param coreUser + * @return + */ @PostMapping(MODEL + "/add.json") @Function("teacherOpenCourseMergeStudent.add") public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery, BindingResult result,@SCoreUser CoreUser coreUser){ @@ -181,6 +197,13 @@ public class TeacherOpenCourseMergeStudentController{ } + /** + * 开课关联学生的关系解除操作 + * + * 只需要删除该关联ID则关联 + * @param ids + * @return + */ @PostMapping(MODEL + "/delete.json") @Function("teacherOpenCourseMergeStudent.delete") @ResponseBody @@ -189,6 +212,13 @@ public class TeacherOpenCourseMergeStudentController{ return JsonResult.success(); } + /** + * 可以根据条件批量删除 + * + * SQL中已经做安全处理,防止没有条件的情况,误删操作 + * @param teacherOpenCourseMergeStudent + * @return + */ @PostMapping(MODEL + "/deleteByCondition.json") @Function("teacherOpenCourseMergeStudent.delete") @ResponseBody diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeStudentQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeStudentQuery.java index d53de117..175afb0c 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeStudentQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeStudentQuery.java @@ -15,8 +15,10 @@ public class TeacherOpenCourseMergeStudentQuery extends PageParam { @NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class) @Query(name = "课程开课-班级-学生-关联ID", display = true) private Long teacherOpenCourseSchoolClassMergeStudentId; + @NotNull(message = "课程开课ID不能为空", groups =ValidateConfig.ADD.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; + @NotNull(message = "学生ID不能为空", groups =ValidateConfig.ADD.class) @Query(name = "学生ID", display = true,type=Query.TYPE_DICT,dict="student.student_name.student_status=1") private Long studentId; @Query(name = "组织ID", display = false) @@ -32,6 +34,8 @@ public class TeacherOpenCourseMergeStudentQuery extends PageParam { private String orgIdPlural; private String userIdPlural; + private Long schoolClassId; + private String teacherOpenCourseMergeStudentJsonStr;//json格式 private String _given;//指定更新的特定字段,多个逗号隔开 @@ -126,4 +130,12 @@ public class TeacherOpenCourseMergeStudentQuery extends PageParam { public void set_given(String _given) { this._given = _given; } + + public Long getSchoolClassId() { + return schoolClassId; + } + + public void setSchoolClassId(Long schoolClassId) { + this.schoolClassId = schoolClassId; + } } diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md b/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md index 397ec248..7caeb17f 100644 --- a/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseMergeStudent.md @@ -5,8 +5,17 @@ queryByCondition select @pageTag(){ t.* + @if(!isEmpty(schoolClassId)){ + , tb.school_class_id, tc.class_name + @} @} from teacher_open_course_merge_student t + @if(!isEmpty(schoolClassId)){ + left join teacher_open_course tz on tz.teacher_open_course_id = t.teacher_open_course_id + left join school_class_student ta on ta.student_id = t.student_id + left join teacher_open_course_merge_school_class tb on tb.school_class_id = ta.school_class_id + left join school_class tc on tc.class_id = tb.school_class_id + @} where 1=1 @//数据权限,该sql语句功能点,如果不考虑数据权限,可以删除此行 and #function("teacherOpenCourseMergeStudent.query")# @@ -43,6 +52,9 @@ queryByCondition @if(!isEmpty(teacherOpenCourseSchoolClassMergeStudentAddTime)){ and t.teacher_open_course_school_class_merge_student_add_time =#teacherOpenCourseSchoolClassMergeStudentAddTime# @} + @if(!isEmpty(schoolClassId)){ + and tb.school_class_id = #schoolClassId# + @} queryByConditionQuery diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md b/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md index f9f29e77..e8674d49 100644 --- a/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md @@ -90,8 +90,11 @@ queryByConditionGroup from ( select t.teacher_open_course_schedule_session_id, - t.teacher_open_course_schedule_session_add_time, + t.teacher_open_course_schedule_session_add_time, + @// + t.teacher_open_course_schedule_session_start_status, t.teacher_open_course_schedule_session_status, + @// GROUP_CONCAT(DISTINCT teacher_open_course_schedule_session_class_name) AS teacher_open_course_schedule_session_class_name, t.teacher_open_course_id, t.teacher_id, diff --git a/web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java b/web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java new file mode 100644 index 00000000..e8ee4aef --- /dev/null +++ b/web/src/main/test/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeSchoolClassControllerTest.java @@ -0,0 +1,118 @@ +package com.ibeetl.jlw.web; + +import cn.hutool.json.JSONUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.RequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.util.MultiValueMap; + +import java.util.Map; + +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + + +/** + *

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

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