开课关联班级,学生

beetlsql3-dev
Mlxa0324 3 years ago
parent 1ac5763e94
commit bc613b43f5

@ -17,6 +17,11 @@
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>tianze-spring-boot-starter-test</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>admin-core</artifactId>

@ -107,8 +107,14 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService<Te
teacherOpenCourseMergeStudentDao.deleteTeacherOpenCourseMergeStudentByCondition(openCourseMergeStudent);
}
/**
*
* @param teacherOpenCourseMergeSchoolClassQuery
* @return
*/
public JsonResult add(TeacherOpenCourseMergeSchoolClassQuery teacherOpenCourseMergeSchoolClassQuery){
String msg = "";
// 构建开课与班级关系数据
TeacherOpenCourseMergeSchoolClass teacherOpenCourseMergeSchoolClass = teacherOpenCourseMergeSchoolClassQuery.pojo();
teacherOpenCourseMergeSchoolClass.setTeacherOpenCourseMergeSchoolClassAddTime(new Date());
teacherOpenCourseMergeSchoolClass.setTeacherOpenCourseMergeSchoolClassStatus(1);
@ -117,8 +123,9 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService<Te
SchoolClassStudentQuery schoolClassStudentQuery = new SchoolClassStudentQuery();
schoolClassStudentQuery.setSchoolClassId(teacherOpenCourseMergeSchoolClass.getSchoolClassId());
// 构建关系数据
// 构建开课与学生关系数据
List<TeacherOpenCourseMergeStudent> teacherOpenCourseMergeStudentList = Optional
// 查询该班级下的学生列表
.fromNullable(schoolClassStudentDao.getValuesByQuery(schoolClassStudentQuery)).get()
.stream().map(scs -> {
TeacherOpenCourseMergeStudent entity = new TeacherOpenCourseMergeStudent();
@ -127,13 +134,14 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService<Te
entity.setTeacherOpenCourseSchoolClassMergeStudentAddTime(new Date());
return entity;
}).collect(Collectors.toList());
// 批量插入班级和学生的关系
// 批量插入开课与学生关系数据
teacherOpenCourseMergeStudentDao.insertBatch(teacherOpenCourseMergeStudentList);
// TODO 开课关联学生的新增逻辑
// teacherOpenCourseMergeStudentDao.insertBatch();
// 自增的ID 丢给前端
teacherOpenCourseMergeSchoolClassQuery.setTeacherOpenCourseMergeSchoolClassId(teacherOpenCourseMergeSchoolClass.getTeacherOpenCourseMergeSchoolClassId());
JsonResult jsonResult = new JsonResult();
jsonResult.setData(teacherOpenCourseMergeSchoolClass.getTeacherOpenCourseMergeSchoolClassId());//自增的ID丢进去
jsonResult.setData(teacherOpenCourseMergeSchoolClass.getTeacherOpenCourseMergeSchoolClassId());
jsonResult.setCode(JsonReturnCode.SUCCESS.getCode());
jsonResult.setMsg(msg);
return jsonResult;

@ -111,6 +111,15 @@ public class TeacherOpenCourseMergeStudentController{
/* 后台接口 */
/**
*
*
*
* 1. ID
* @param condition
* @return
*/
@PostMapping(MODEL + "/list.json")
@Function("teacherOpenCourseMergeStudent.query")
public JsonResult<PageQuery> 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

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

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

@ -91,7 +91,10 @@ queryByConditionGroup
select
t.teacher_open_course_schedule_session_id,
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,

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

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

@ -0,0 +1,4 @@
<configuration>
<!-- 引用 Spring Boot 的 logback 基础配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
</configuration>
Loading…
Cancel
Save