Bladeren bron

更新后台

mojinxia 1 maand geleden
bovenliggende
commit
2e816257c5
28 gewijzigde bestanden met toevoegingen van 533 en 112 verwijderingen
  1. BIN
      back-ui/admin.zip
  2. 8 0
      back-ui/src/api/dz/classes.js
  3. 17 0
      back-ui/src/api/dz/teacherclass.js
  4. 1 9
      back-ui/src/layout/components/Navbar.vue
  5. 1 0
      back-ui/src/views/dz/agent/index.vue
  6. 0 1
      back-ui/src/views/dz/classes/index.vue
  7. 5 4
      back-ui/src/views/dz/school/index.vue
  8. 118 1
      back-ui/src/views/dz/teacher/index.vue
  9. 8 8
      back-ui/src/views/dz/teacherclass/index.vue
  10. 24 0
      ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzClassesController.java
  11. 38 1
      ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzSchoolController.java
  12. 70 3
      ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzTeacherClassController.java
  13. 5 1
      ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzTeacherController.java
  14. 65 0
      ie-common/src/main/java/com/ruoyi/common/enums/BoolValues.java
  15. 18 0
      ie-system/src/main/java/com/ruoyi/dz/domain/DzClasses.java
  16. 12 1
      ie-system/src/main/java/com/ruoyi/dz/domain/DzSchool.java
  17. 2 1
      ie-system/src/main/java/com/ruoyi/dz/domain/DzTeacher.java
  18. 27 17
      ie-system/src/main/java/com/ruoyi/dz/domain/DzTeacherClass.java
  19. 9 9
      ie-system/src/main/java/com/ruoyi/dz/mapper/DzTeacherClassMapper.java
  20. 9 8
      ie-system/src/main/java/com/ruoyi/dz/service/IDzTeacherClassService.java
  21. 13 8
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzTeacherClassServiceImpl.java
  22. 9 8
      ie-system/src/main/java/com/ruoyi/system/mapper/SysAreaMapper.java
  23. 1 0
      ie-system/src/main/java/com/ruoyi/system/service/ISysAreaService.java
  24. 5 0
      ie-system/src/main/java/com/ruoyi/system/service/impl/SysAreaServiceImpl.java
  25. 23 20
      ie-system/src/main/resources/mapper/dz/DzAgentMapper.xml
  26. 4 1
      ie-system/src/main/resources/mapper/dz/DzSchoolMapper.xml
  27. 31 11
      ie-system/src/main/resources/mapper/dz/DzTeacherClassMapper.xml
  28. 10 0
      ie-system/src/main/resources/mapper/system/SysAreaMapper.xml

BIN
back-ui/admin.zip


+ 8 - 0
back-ui/src/api/dz/classes.js

@@ -9,6 +9,14 @@ export function listClasses(query) {
   })
 }
 
+export function listAllClass(query) {
+  return request({
+    url: '/dz/classes/listAll',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询学生班级列表
 export function listAllSchool(query) {
   return request({

+ 17 - 0
back-ui/src/api/dz/teacherclass.js

@@ -9,6 +9,15 @@ export function listTeacherclass(query) {
   })
 }
 
+// 查询教师班级关系列表
+export function listAllTeacherClass(query) {
+  return request({
+    url: '/dz/teacherclass/listAllTeacherClass',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询教师班级关系详细
 export function getTeacherclass(id) {
   return request({
@@ -26,6 +35,14 @@ export function addTeacherclass(data) {
   })
 }
 
+export function batchBindTeacherClass(data) {
+  return request({
+    url: '/dz/teacherclass/batchBindTeacherClass',
+    method: 'post',
+    data: data
+  })
+}
+
 // 修改教师班级关系
 export function updateTeacherclass(data) {
   return request({

+ 1 - 9
back-ui/src/layout/components/Navbar.vue

@@ -8,14 +8,6 @@
       <template v-if="appStore.device !== 'mobile'">
         <header-search id="header-search" class="right-menu-item" />
 
-        <el-tooltip content="源码地址" effect="dark" placement="bottom">
-          <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
-        </el-tooltip>
-
-        <el-tooltip content="文档地址" effect="dark" placement="bottom">
-          <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
-        </el-tooltip>
-
         <screenfull id="screenfull" class="right-menu-item hover-effect" />
 
         <el-tooltip content="主题模式" effect="dark" placement="bottom">
@@ -178,7 +170,7 @@ function toggleTheme() {
 
         svg {
           transition: transform 0.3s;
-          
+
           &:hover {
             transform: scale(1.15);
           }

+ 1 - 0
back-ui/src/views/dz/agent/index.vue

@@ -140,6 +140,7 @@ import { deptTreeSelect } from "@/api/system/user"
 import useAppStore from '@/store/modules/app'
 import { Splitpanes, Pane } from "splitpanes"
 import "splitpanes/dist/splitpanes.css"
+import { listAllSchool } from "@/api/dz/school"
 
 const { proxy } = getCurrentInstance()
 const appStore = useAppStore()

+ 0 - 1
back-ui/src/views/dz/classes/index.vue

@@ -195,7 +195,6 @@
   const { proxy } = getCurrentInstance()
   const { bool_values } = proxy.useDict('bool_values')
 
-
   const classesList = ref([])
   const schoolOptions = ref([])
   const open = ref(false)

+ 5 - 4
back-ui/src/views/dz/school/index.vue

@@ -102,9 +102,10 @@
               <el-table-column label="归属机构" align="center" key="deptName" prop="dept.deptName" :show-overflow-tooltip="true" />
               <el-table-column label="省份" align="center" prop="location" />
 
-              <el-table-column label="省" align="center" prop="pro" />
-              <el-table-column label="市" align="center" prop="city" />
-              <el-table-column label="区" align="center" prop="area" />
+<!--              <el-table-column label="省" align="center" prop="pro" />-->
+<!--              <el-table-column label="市" align="center" prop="city" />-->
+<!--              <el-table-column label="区" align="center" prop="area" />-->
+              <el-table-column label="所属地区" align="center" prop="proCityAreaName" />
               <el-table-column label="状态" align="center" prop="status">
                 <template #default="scope">
                   <dict-tag :options="bool_values" :value="scope.row.status"/>
@@ -226,7 +227,7 @@
     },
     rules: {
       status: [
-        { required: true, message: "状态(0:无效,1:有效)不能为空", trigger: "change" },
+        { required: true, message: "状态不能为空", trigger: "change" },
         { required: true, message: "机构不能为空", trigger: "change" }
       ],
     }

+ 118 - 1
back-ui/src/views/dz/teacher/index.vue

@@ -90,6 +90,7 @@
       <el-table-column label="用户ID" align="center" prop="userId" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
+          <el-button link type="primary" icon="" @click="handleUpdateTeacherClass(scope.row)" v-hasPermi="['dz:teacher:edit']">关联班级</el-button>
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['dz:teacher:edit']">修改</el-button>
           <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['dz:teacher:remove']">删除</el-button>
         </template>
@@ -131,18 +132,50 @@
         </div>
       </template>
     </el-dialog>
+
+      <!-- 关联班级 -->
+      <el-dialog :title="titleTeacherClass" v-model="openTeacherClass" width="500px" append-to-body>
+          <el-form ref="teacherClassRef" :model="formTeacherClass" :rules="rulesTeacherClass" label-width="80px">
+<!--              <el-form-item label="教师ID" v-show="false" prop="teacherId">-->
+<!--                  <el-input v-model="formTeacherClass.teacherId" placeholder="请输入教师ID" disabled/>-->
+<!--              </el-form-item>-->
+              <el-form-item label="教师姓名" prop="name">
+                  <el-input v-model="formTeacherClass.name" placeholder="请输入教师姓名" disabled/>
+              </el-form-item>
+              <el-form-item label="关联班级" prop="classIds">
+                  <el-select v-model="formTeacherClass.classIds" multiple placeholder="请选择班级" style="width: 100%">
+                      <el-option
+                              v-for="item in classOptions"
+                              :key="item.classId"
+                              :label="item.name"
+                              :value="item.classId"
+                      />
+                  </el-select>
+              </el-form-item>
+          </el-form>
+          <template #footer>
+              <div class="dialog-footer">
+                  <el-button type="primary" @click="submitFormTeacherClass">确 定</el-button>
+                  <el-button @click="cancelTeacherClass">取 消</el-button>
+              </div>
+          </template>
+      </el-dialog>
   </div>
 </template>
 
 <script setup name="Teacher">
 import { listTeacher, getTeacher, delTeacher, addTeacher, updateTeacher } from "@/api/dz/teacher"
 import { listAllSchool } from "@/api/dz/school"
+import { listAllClass } from "@/api/dz/classes"
+import { batchBindTeacherClass,listAllTeacherClass } from "@/api/dz/teacherclass"
 
 const { proxy } = getCurrentInstance()
 
 const teacherList = ref([])
 const schoolOptions = ref([])
+const classOptions = ref([])
 const open = ref(false)
+const openTeacherClass = ref(false)
 const loading = ref(true)
 const showSearch = ref(true)
 const ids = ref([])
@@ -150,9 +183,15 @@ const single = ref(true)
 const multiple = ref(true)
 const total = ref(0)
 const title = ref("")
+const titleTeacherClass = ref("")
 
 const data = reactive({
   form: {},
+  formTeacherClass: {
+      teacherId: null,
+      name: null,
+      classIds: []
+  },
   queryParams: {
     pageNum: 1,
     pageSize: 10,
@@ -161,10 +200,16 @@ const data = reactive({
     name: null
   },
   rules: {
+  },
+  rulesTeacherClass: {
+      // 可以添加验证规则
+      classIds: [
+          { required: true, message: "请选择至少一个班级", trigger: "change" }
+      ]
   }
 })
 
-const { queryParams, form, rules } = toRefs(data)
+const { queryParams, form, formTeacherClass, rules, rulesTeacherClass } = toRefs(data)
 
 /** 查询老师列表 */
 function getList() {
@@ -183,12 +228,19 @@ function getSchoolList() {
   })
 }
 
+// function getClassListBySchool() {
+//     listAll().then(response => {
+//         classOptions.value = response.data || []
+//     })
+// }
+
 // 取消按钮
 function cancel() {
   open.value = false
   reset()
 }
 
+
 // 表单重置
 function reset() {
   form.value = {
@@ -200,6 +252,22 @@ function reset() {
   proxy.resetForm("teacherRef")
 }
 
+// 取消按钮
+function cancelTeacherClass() {
+    openTeacherClass.value = false
+    resetTeacherClass()
+}
+
+// 表单重置
+function resetTeacherClass() {
+    formTeacherClass.value = {
+        teacherId: null,
+        classIds: [],
+        name: null
+    }
+    proxy.resetForm("teacherClassRef")
+}
+
 /** 搜索按钮操作 */
 function handleQuery() {
   queryParams.value.pageNum = 1
@@ -276,9 +344,58 @@ function handleExport() {
   }, `teacher_${new Date().getTime()}.xlsx`)
 }
 
+/** 关联老师班级,按钮操作 */
+function handleUpdateTeacherClass(row) {
+    resetTeacherClass()
+    // const _schoolId = row.schoolId
+    const submitData = {
+        schoolId: row.schoolId,
+        teacherId: row.teacherId
+    }
+    listAllClass(submitData).then(response => {
+        classOptions.value = response.data || []
+
+        // 然后设置数据
+        formTeacherClass.value.teacherId = row.teacherId
+        formTeacherClass.value.name = row.name
+
+        listAllTeacherClass(submitData).then(response => {
+            formTeacherClass.value.classIds = (response.data || []).map(item => item.classId)
+        })
+
+        openTeacherClass.value = true
+        titleTeacherClass.value = "关联班级"
+    })
+}
+
+/** 关联老师班级,提交按钮 */
+function submitFormTeacherClass() {
+    proxy.$refs["teacherClassRef"].validate(valid => {
+        if (valid) {
+            // 构建提交参数
+            const submitData = {
+                teacherId: formTeacherClass.value.teacherId,
+                classIds: formTeacherClass.value.classIds
+            }
+            // console.log("submitData"+submitData)
+
+            // 调用关联班级的API
+            // 假设API函数名为 updateTeacherClassRelation
+            batchBindTeacherClass(submitData).then(response => {
+                proxy.$modal.msgSuccess("关联成功")
+                openTeacherClass.value = false
+                getList()
+            }).catch(() => {
+                proxy.$modal.msgError("关联失败")
+            })
+        }
+    })
+}
+
 onMounted(() => {
   getSchoolList()
   getList()
+  // getClassListBySchool()
 })
 
 </script>

+ 8 - 8
back-ui/src/views/dz/teacherclass/index.vue

@@ -9,9 +9,9 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="班级id" prop="classesId">
+      <el-form-item label="班级id" prop="classId">
         <el-input
-          v-model="queryParams.classesId"
+          v-model="queryParams.classId"
           placeholder="请输入班级id"
           clearable
           @keyup.enter="handleQuery"
@@ -77,7 +77,7 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="标识" align="center" prop="id" />
       <el-table-column label="老师id" align="center" prop="teacherId" />
-      <el-table-column label="班级id" align="center" prop="classesId" />
+      <el-table-column label="班级id" align="center" prop="classId" />
       <el-table-column label="有效状态" align="center" prop="status" />
       <el-table-column label="备注" align="center" prop="remark" />
       <el-table-column label="结束日期" align="center" prop="outDate" width="180">
@@ -92,7 +92,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -107,8 +107,8 @@
         <el-form-item label="老师id" prop="teacherId">
           <el-input v-model="form.teacherId" placeholder="请输入老师id" />
         </el-form-item>
-        <el-form-item label="班级id" prop="classesId">
-          <el-input v-model="form.classesId" placeholder="请输入班级id" />
+        <el-form-item label="班级id" prop="classId">
+          <el-input v-model="form.classId" placeholder="请输入班级id" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" placeholder="请输入备注" />
@@ -153,7 +153,7 @@ const data = reactive({
     pageNum: 1,
     pageSize: 10,
     teacherId: null,
-    classesId: null,
+    classId: null,
     status: null,
     outDate: null
   },
@@ -184,7 +184,7 @@ function reset() {
   form.value = {
     id: null,
     teacherId: null,
-    classesId: null,
+    classId: null,
     status: null,
     remark: null,
     outDate: null

+ 24 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzClassesController.java

@@ -1,7 +1,13 @@
 package com.ruoyi.web.controller.dz;
 
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.dz.domain.DzTeacher;
+import com.ruoyi.dz.domain.DzTeacherClass;
+import com.ruoyi.dz.service.IDzTeacherClassService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +39,8 @@ public class DzClassesController extends BaseController
 {
     @Autowired
     private IDzClassesService dzClassesService;
+    @Autowired
+    private IDzTeacherClassService teacherClassService;
 
     /**
      * 查询学生班级列表
@@ -46,6 +54,22 @@ public class DzClassesController extends BaseController
         return getDataTable(list);
     }
 
+    @GetMapping("/listAll")
+    public AjaxResult listAll(DzClasses dzClasses)
+    {
+        List<DzClasses> list = dzClassesService.selectDzClassesList(dzClasses);
+//        if (null!=dzClasses.getTeacherId()){
+//            DzTeacherClass query = new DzTeacherClass().setTeacherId(dzClasses.getTeacherId());
+//            Long[] classIds = teacherClassService.selectDzTeacherClassList(query).stream()
+//                    .map(DzTeacherClass::getClassId)
+//                    .filter(Objects::nonNull)
+//                    .distinct() // 去重(如果需要)
+//                    .toArray(Long[]::new);
+//            list.stream().forEach(c->c.setClassIds(classIds));
+//        }
+        return AjaxResult.success(list);
+    }
+
     /**
      * 导出学生班级列表
      */

+ 38 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzSchoolController.java

@@ -1,7 +1,16 @@
 package com.ruoyi.web.controller.dz;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.SysArea;
+import com.ruoyi.system.service.ISysAreaService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +42,8 @@ public class DzSchoolController extends BaseController
 {
     @Autowired
     private IDzSchoolService dzSchoolService;
+    @Autowired
+    private ISysAreaService areaService;
 
     /**
      * 查询机构校区列表
@@ -42,7 +53,33 @@ public class DzSchoolController extends BaseController
     public TableDataInfo list(DzSchool dzSchool)
     {
         startPage();
-        List<DzSchool> list = dzSchoolService.selectDzSchoolList(dzSchool);
+        List<DzSchool> list= dzSchoolService.selectDzSchoolList(dzSchool);
+        //处理省市区
+        List<Long> areaIds = list.stream()
+                .flatMap(school -> Stream.of(
+                        school.getPro(),school.getCity(),school.getArea()
+                ))
+                .filter(Objects::nonNull).distinct().collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(areaIds)){
+            Map<Long, SysArea> areaMap = areaService.selectSysAreaListByIds(areaIds)
+                    .stream().collect(Collectors.toMap(SysArea::getAreaId,area -> area));
+            list.forEach(school -> {
+                StringBuilder proCityAreaName = new StringBuilder();
+                if (null!=school.getPro()&&areaMap.containsKey(school.getPro())){
+                    proCityAreaName.append(areaMap.get(school.getPro()).getAreaName());
+                }
+                if (null!=school.getCity()&&areaMap.containsKey(school.getCity())){
+                    proCityAreaName.append(areaMap.get(school.getCity()).getAreaName());
+                }
+                if (null!=school.getArea()&&areaMap.containsKey(school.getArea())){
+                    proCityAreaName.append(areaMap.get(school.getArea()).getAreaName());
+                }
+                if (StringUtils.isNotEmpty(proCityAreaName.toString())){
+                    school.setProCityAreaName(proCityAreaName.toString());
+                }
+            });
+        }
+
         return getDataTable(list);
     }
 

+ 70 - 3
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzTeacherClassController.java

@@ -1,7 +1,13 @@
 package com.ruoyi.web.controller.dz;
 
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.enums.BoolValues;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -23,7 +29,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 教师班级关系Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
@@ -46,6 +52,13 @@ public class DzTeacherClassController extends BaseController
         return getDataTable(list);
     }
 
+    @GetMapping("/listAllTeacherClass")
+    public AjaxResult listAllTeacherClass(DzTeacherClass dzTeacherClass)
+    {
+        List<DzTeacherClass> list = dzTeacherClassService.selectDzTeacherClassList(dzTeacherClass);
+        return AjaxResult.success(list);
+    }
+
     /**
      * 导出教师班级关系列表
      */
@@ -73,13 +86,67 @@ public class DzTeacherClassController extends BaseController
      * 新增教师班级关系
      */
     @PreAuthorize("@ss.hasPermi('dz:teacherclass:add')")
-    @Log(title = "教师班级关系", businessType = BusinessType.INSERT)
+    @Log(title = "关联教师班级关系", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody DzTeacherClass dzTeacherClass)
     {
         return toAjax(dzTeacherClassService.insertDzTeacherClass(dzTeacherClass));
     }
 
+    @Log(title = "批量关联教师班级关系", businessType = BusinessType.INSERT)
+    @PostMapping("/batchBindTeacherClass")
+    public AjaxResult batchBindTeacherClass(@RequestBody DzTeacherClass dzTeacherClass)
+    {
+        List<Long> insertClassIds = Arrays.stream(dzTeacherClass.getClassIds()).collect(Collectors.toList());
+
+        DzTeacherClass cond = new DzTeacherClass().setTeacherId(dzTeacherClass.getTeacherId());
+        List<DzTeacherClass> alreadyList = dzTeacherClassService.selectDzTeacherClassList(cond);
+        List<Long> dbClassIds = alreadyList.stream().map(DzTeacherClass::getClassId).collect(Collectors.toList());
+
+        // 2. 找出需要删除的班级ID(存在于dbClassIds但不存在于insertClassIds)
+        List<Long> deleteClassIds = dbClassIds.stream()
+                .filter(dbId -> !insertClassIds.contains(dbId))
+                .collect(Collectors.toList());
+
+        // 3. 找出需要新增的班级ID(存在于insertClassIds但不存在于dbClassIds)
+        List<Long> newClassIds = insertClassIds.stream()
+                .filter(insertId -> !dbClassIds.contains(insertId))
+                .collect(Collectors.toList());
+
+        // 4. 执行删除操作
+        if (!deleteClassIds.isEmpty()) {
+            //alreadyList转换为Map<Long,Long>,key为classesId,value为id(删除时需要用id)
+            Map<Long,Long> map = alreadyList.stream() .collect(Collectors.toMap( DzTeacherClass::getClassId, DzTeacherClass::getId, (existing, replacement) -> existing ));
+            Long[] deleteIds = deleteClassIds.stream()
+                    .map(classId -> map.get(classId))  // 通过classId获取对应的id
+                    .filter(Objects::nonNull)          // 过滤掉null值
+                    .toArray(Long[]::new);
+            if (deleteIds.length > 0) {
+                String[] stringDeleteIds = Arrays.stream(deleteIds)
+                        .map(id -> String.valueOf(id))  // Long 转 String
+                        .toArray(String[]::new);
+                dzTeacherClassService.deleteDzTeacherClassByIds(stringDeleteIds);
+            }
+        }
+
+        // 5. 执行新增操作
+        Long teacherId = dzTeacherClass.getTeacherId();
+        if (!newClassIds.isEmpty()) {
+            List<DzTeacherClass> insertList = newClassIds.stream()
+                    .map(classId -> {
+                        DzTeacherClass insert = new DzTeacherClass();
+                        insert.setTeacherId(teacherId);
+                        insert.setClassId(classId);
+                        insert.setStatus(BoolValues.yes.getValue()); // 设置有效状态
+                        return insert;
+                    })
+                    .collect(Collectors.toList());
+            dzTeacherClassService.insertBatch(insertList);
+        }
+
+        return AjaxResult.success();
+    }
+
     /**
      * 修改教师班级关系
      */
@@ -96,7 +163,7 @@ public class DzTeacherClassController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('dz:teacherclass:remove')")
     @Log(title = "教师班级关系", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
+    @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable String[] ids)
     {
         return toAjax(dzTeacherClassService.deleteDzTeacherClassByIds(ids));

+ 5 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzTeacherController.java

@@ -2,6 +2,8 @@ package com.ruoyi.web.controller.dz;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.dz.service.IDzTeacherClassService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -23,7 +25,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 老师Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
@@ -33,6 +35,8 @@ public class DzTeacherController extends BaseController
 {
     @Autowired
     private IDzTeacherService dzTeacherService;
+    @Autowired
+    private IDzTeacherClassService teacherClassService;
 
     /**
      * 查询老师列表

+ 65 - 0
ie-common/src/main/java/com/ruoyi/common/enums/BoolValues.java

@@ -0,0 +1,65 @@
+package com.ruoyi.common.enums;
+
+import com.ruoyi.common.utils.StringUtils;
+
+/**
+ * 0否,1是
+ */
+public enum BoolValues {
+    other(-1, "其他"),
+    no(0, "否"),
+    yes(1, "是"),
+    ;
+
+    private Integer value;
+    private String remark;
+
+    private BoolValues(Integer value, String remark) {
+        this.value = value;
+        this.remark = remark;
+    }
+
+    public Integer getValue() {
+        return value;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public static BoolValues getByValue(String value) {
+        for (BoolValues o : BoolValues.values()) {
+            if (o.getValue().equals(value)) {
+                return o;
+            }
+        }
+        return null;
+    }
+
+    public static Boolean isTrue(Object value)
+    {
+        if(StringUtils.isNull(value)){
+            return false;
+        }
+        if(value instanceof Long||value instanceof Integer){
+            return BoolValues.yes.getValue()==Integer.parseInt(String.valueOf(value));
+        }
+        return false;
+    }
+
+    public static Boolean isOther(Object value)
+    {
+        if(StringUtils.isNull(value)){
+            return false;
+        }
+        if(value instanceof Long||value instanceof Integer){
+            return BoolValues.other.getValue()==Integer.parseInt(String.valueOf(value));
+        }
+        return false;
+    }
+
+    public static Boolean isFalse(Object value)
+    {
+        return !isTrue(value);
+    }
+}

+ 18 - 0
ie-system/src/main/java/com/ruoyi/dz/domain/DzClasses.java

@@ -17,6 +17,8 @@ public class DzClasses extends BaseEntity
 
     /** ID */
     private Long classId;
+    private Long[] classIds;
+    private Long teacherId;
 
     /** 学校 */
     @Excel(name = "学校")
@@ -44,6 +46,22 @@ public class DzClasses extends BaseEntity
     @Excel(name = "统计数据")
     private String stats;
 
+    public Long[] getClassIds() {
+        return classIds;
+    }
+
+    public void setClassIds(Long[] classIds) {
+        this.classIds = classIds;
+    }
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
     public DzSchool getSchool() {
         return school;
     }

+ 12 - 1
ie-system/src/main/java/com/ruoyi/dz/domain/DzSchool.java

@@ -6,6 +6,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.List;
+
 /**
  * 机构校区对象 dz_school
  *
@@ -15,7 +17,6 @@ import com.ruoyi.common.core.domain.BaseEntity;
 public class DzSchool extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
-
     /** $column.columnComment */
     private Long id;
 
@@ -43,12 +44,22 @@ public class DzSchool extends BaseEntity
     @Excel(name = "区")
     private Long area;
 
+    String proCityAreaName ;
+
     /** 状态(0:无效,1:有效) */
     @Excel(name = "状态(0:无效,1:有效)")
     private Integer status;
 
     private SysDept dept;
 
+    public String getProCityAreaName() {
+        return proCityAreaName;
+    }
+
+    public void setProCityAreaName(String proCityAreaName) {
+        this.proCityAreaName = proCityAreaName;
+    }
+
     public SysDept getDept() {
         return dept;
     }

+ 2 - 1
ie-system/src/main/java/com/ruoyi/dz/domain/DzTeacher.java

@@ -63,9 +63,10 @@ public class DzTeacher extends BaseEntity
         this.username = username;
     }
 
-    public void setTeacherId(Long teacherId)
+    public DzTeacher setTeacherId(Long teacherId)
     {
         this.teacherId = teacherId;
+        return this;
     }
 
     public Long getTeacherId()

+ 27 - 17
ie-system/src/main/java/com/ruoyi/dz/domain/DzTeacherClass.java

@@ -9,7 +9,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
  * 教师班级关系对象 dz_teacher_class
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
@@ -18,7 +18,7 @@ public class DzTeacherClass extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** 标识 */
-    private String id;
+    private Long id;
 
     /** 老师id */
     @Excel(name = "老师id")
@@ -26,73 +26,83 @@ public class DzTeacherClass extends BaseEntity
 
     /** 班级id */
     @Excel(name = "班级id")
-    private Long classesId;
+    private Long classId;
+    private Long[] classIds;
 
     /** 有效状态 */
     @Excel(name = "有效状态")
-    private Long status;
+    private Integer status;
 
     /** 结束日期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date outDate;
 
-    public void setId(String id) 
+    public void setId(Long id)
     {
         this.id = id;
     }
 
-    public String getId() 
+    public Long getId()
     {
         return id;
     }
 
-    public void setTeacherId(Long teacherId) 
+    public DzTeacherClass setTeacherId(Long teacherId)
     {
         this.teacherId = teacherId;
+        return this;
     }
 
-    public Long getTeacherId() 
+    public Long getTeacherId()
     {
         return teacherId;
     }
 
-    public void setClassesId(Long classesId) 
+    public void setClassId(Long classId)
     {
-        this.classesId = classesId;
+        this.classId = classId;
     }
 
-    public Long getClassesId() 
+    public Long getClassId()
     {
-        return classesId;
+        return classId;
     }
 
-    public void setStatus(Long status) 
+    public void setStatus(Integer status)
     {
         this.status = status;
     }
 
-    public Long getStatus() 
+    public Integer getStatus()
     {
         return status;
     }
 
-    public void setOutDate(Date outDate) 
+    public void setOutDate(Date outDate)
     {
         this.outDate = outDate;
     }
 
-    public Date getOutDate() 
+    public Date getOutDate()
     {
         return outDate;
     }
 
+    public Long[] getClassIds() {
+        return classIds;
+    }
+
+    public void setClassIds(Long[] classIds) {
+        this.classIds = classIds;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
             .append("id", getId())
             .append("teacherId", getTeacherId())
-            .append("classesId", getClassesId())
+            .append("classId", getClassId())
             .append("status", getStatus())
             .append("remark", getRemark())
             .append("outDate", getOutDate())

+ 9 - 9
ie-system/src/main/java/com/ruoyi/dz/mapper/DzTeacherClassMapper.java

@@ -5,15 +5,15 @@ import com.ruoyi.dz.domain.DzTeacherClass;
 
 /**
  * 教师班级关系Mapper接口
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
-public interface DzTeacherClassMapper 
+public interface DzTeacherClassMapper
 {
     /**
      * 查询教师班级关系
-     * 
+     *
      * @param id 教师班级关系主键
      * @return 教师班级关系
      */
@@ -21,7 +21,7 @@ public interface DzTeacherClassMapper
 
     /**
      * 查询教师班级关系列表
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 教师班级关系集合
      */
@@ -29,15 +29,15 @@ public interface DzTeacherClassMapper
 
     /**
      * 新增教师班级关系
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 结果
      */
     public int insertDzTeacherClass(DzTeacherClass dzTeacherClass);
-
+    public int insertBatch(List<DzTeacherClass> list);
     /**
      * 修改教师班级关系
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 结果
      */
@@ -45,7 +45,7 @@ public interface DzTeacherClassMapper
 
     /**
      * 删除教师班级关系
-     * 
+     *
      * @param id 教师班级关系主键
      * @return 结果
      */
@@ -53,7 +53,7 @@ public interface DzTeacherClassMapper
 
     /**
      * 批量删除教师班级关系
-     * 
+     *
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */

+ 9 - 8
ie-system/src/main/java/com/ruoyi/dz/service/IDzTeacherClassService.java

@@ -5,15 +5,15 @@ import com.ruoyi.dz.domain.DzTeacherClass;
 
 /**
  * 教师班级关系Service接口
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
-public interface IDzTeacherClassService 
+public interface IDzTeacherClassService
 {
     /**
      * 查询教师班级关系
-     * 
+     *
      * @param id 教师班级关系主键
      * @return 教师班级关系
      */
@@ -21,7 +21,7 @@ public interface IDzTeacherClassService
 
     /**
      * 查询教师班级关系列表
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 教师班级关系集合
      */
@@ -29,15 +29,16 @@ public interface IDzTeacherClassService
 
     /**
      * 新增教师班级关系
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 结果
      */
     public int insertDzTeacherClass(DzTeacherClass dzTeacherClass);
+    public int insertBatch(List<DzTeacherClass> list);
 
     /**
      * 修改教师班级关系
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 结果
      */
@@ -45,7 +46,7 @@ public interface IDzTeacherClassService
 
     /**
      * 批量删除教师班级关系
-     * 
+     *
      * @param ids 需要删除的教师班级关系主键集合
      * @return 结果
      */
@@ -53,7 +54,7 @@ public interface IDzTeacherClassService
 
     /**
      * 删除教师班级关系信息
-     * 
+     *
      * @param id 教师班级关系主键
      * @return 结果
      */

+ 13 - 8
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzTeacherClassServiceImpl.java

@@ -9,19 +9,19 @@ import com.ruoyi.dz.service.IDzTeacherClassService;
 
 /**
  * 教师班级关系Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2025-09-12
  */
 @Service
-public class DzTeacherClassServiceImpl implements IDzTeacherClassService 
+public class DzTeacherClassServiceImpl implements IDzTeacherClassService
 {
     @Autowired
     private DzTeacherClassMapper dzTeacherClassMapper;
 
     /**
      * 查询教师班级关系
-     * 
+     *
      * @param id 教师班级关系主键
      * @return 教师班级关系
      */
@@ -33,7 +33,7 @@ public class DzTeacherClassServiceImpl implements IDzTeacherClassService
 
     /**
      * 查询教师班级关系列表
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 教师班级关系
      */
@@ -45,7 +45,7 @@ public class DzTeacherClassServiceImpl implements IDzTeacherClassService
 
     /**
      * 新增教师班级关系
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 结果
      */
@@ -55,9 +55,14 @@ public class DzTeacherClassServiceImpl implements IDzTeacherClassService
         return dzTeacherClassMapper.insertDzTeacherClass(dzTeacherClass);
     }
 
+    @Override
+    public int insertBatch(List<DzTeacherClass> list) {
+        return dzTeacherClassMapper.insertBatch(list);
+    }
+
     /**
      * 修改教师班级关系
-     * 
+     *
      * @param dzTeacherClass 教师班级关系
      * @return 结果
      */
@@ -69,7 +74,7 @@ public class DzTeacherClassServiceImpl implements IDzTeacherClassService
 
     /**
      * 批量删除教师班级关系
-     * 
+     *
      * @param ids 需要删除的教师班级关系主键
      * @return 结果
      */
@@ -81,7 +86,7 @@ public class DzTeacherClassServiceImpl implements IDzTeacherClassService
 
     /**
      * 删除教师班级关系信息
-     * 
+     *
      * @param id 教师班级关系主键
      * @return 结果
      */

+ 9 - 8
ie-system/src/main/java/com/ruoyi/system/mapper/SysAreaMapper.java

@@ -5,15 +5,15 @@ import com.ruoyi.system.domain.SysArea;
 
 /**
  * 区域-省市区县Mapper接口
- * 
+ *
  * @author ruoyi
  * @date 2025-09-29
  */
-public interface SysAreaMapper 
+public interface SysAreaMapper
 {
     /**
      * 查询区域-省市区县
-     * 
+     *
      * @param areaId 区域-省市区县主键
      * @return 区域-省市区县
      */
@@ -21,15 +21,16 @@ public interface SysAreaMapper
 
     /**
      * 查询区域-省市区县列表
-     * 
+     *
      * @param sysArea 区域-省市区县
      * @return 区域-省市区县集合
      */
     public List<SysArea> selectSysAreaList(SysArea sysArea);
+    public List<SysArea> selectSysAreaListByIds(List<Long> ids);
 
     /**
      * 新增区域-省市区县
-     * 
+     *
      * @param sysArea 区域-省市区县
      * @return 结果
      */
@@ -37,7 +38,7 @@ public interface SysAreaMapper
 
     /**
      * 修改区域-省市区县
-     * 
+     *
      * @param sysArea 区域-省市区县
      * @return 结果
      */
@@ -45,7 +46,7 @@ public interface SysAreaMapper
 
     /**
      * 删除区域-省市区县
-     * 
+     *
      * @param areaId 区域-省市区县主键
      * @return 结果
      */
@@ -53,7 +54,7 @@ public interface SysAreaMapper
 
     /**
      * 批量删除区域-省市区县
-     * 
+     *
      * @param areaIds 需要删除的数据主键集合
      * @return 结果
      */

+ 1 - 0
ie-system/src/main/java/com/ruoyi/system/service/ISysAreaService.java

@@ -26,6 +26,7 @@ public interface ISysAreaService
      * @return 区域-省市区县集合
      */
     public List<SysArea> selectSysAreaList(SysArea sysArea);
+    public List<SysArea> selectSysAreaListByIds(List<Long> ids);
     public List<SysArea> listTree(SysArea criteria);
     /**
      * 新增区域-省市区县

+ 5 - 0
ie-system/src/main/java/com/ruoyi/system/service/impl/SysAreaServiceImpl.java

@@ -47,6 +47,11 @@ public class SysAreaServiceImpl implements ISysAreaService
     {
         return sysAreaMapper.selectSysAreaList(sysArea);
     }
+    @Override
+    public List<SysArea> selectSysAreaListByIds(List<Long> ids)
+    {
+        return sysAreaMapper.selectSysAreaListByIds(ids);
+    }
 
     @Override
     public List<SysArea> listTree(SysArea criteria) {

+ 23 - 20
ie-system/src/main/resources/mapper/dz/DzAgentMapper.xml

@@ -5,12 +5,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.ruoyi.dz.mapper.DzAgentMapper">
 
     <resultMap type="DzAgent" id="DzAgentResult">
-        <result property="agentId"    column="agentId"    />
-        <result property="deptId"    column="deptId"    />
-        <result property="userId"    column="userId"    />
+        <result property="agentId"    column="agent_id"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="userId"    column="user_id"    />
         <result property="name"    column="name"    />
         <result property="phonenumber"    column="phonenumber"    />
-        <result property="parentId"    column="parentId"    />
+        <result property="parentId"    column="parent_id"    />
         <result property="schools"    column="schools"    />
         <result property="remark"    column="remark"    />
         <association property="dept"     javaType="SysDept"         resultMap="deptResult" />
@@ -27,37 +27,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectDzAgentVo">
-        select t1.agentId, t1.deptId, t1.userId, t1.name, t1.phonenumber, t1.parentId, t1.schools, t1.remark,
+        select t1.agent_id, t1.dept_id, t1.user_id, t1.name, t1.phonenumber, t1.parent_id, t1.schools, t1.remark,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status
         from dz_agent t1
-        left join sys_dept d on t1.deptId = d.dept_id
+        left join sys_dept d on t1.dept_id = d.dept_id
     </sql>
 
     <select id="selectDzAgentList" parameterType="DzAgent" resultMap="DzAgentResult">
         <include refid="selectDzAgentVo"/>
         <where>
-            <if test="userId != null "> and t1.userId = #{userId}</if>
-            <if test="deptId != null "> and t1.deptId = #{deptId}</if>
+            <if test="userId != null "> and t1.user_id = #{userId}</if>
+<!--            <if test="deptId != null "> and t1.dept_id = #{deptId}</if>-->
+            <if test="deptId != null ">
+                AND (t1.dept_id = #{deptId} OR t1.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
+            </if>
             <if test="name != null  and name != ''"> and t1.name like concat('%', #{name}, '%')</if>
             <if test="phonenumber != null  and phonenumber != ''"> and t1.phonenumber  like concat('%', #{phonenumber}, '%')</if>
-            <if test="parentId != null "> and t1.parentId = #{parentId}</if>
+            <if test="parentId != null "> and t1.parent_id = #{parentId}</if>
             <if test="schools != null  and schools != ''"> and t1.schools = #{schools}</if>
         </where>
     </select>
 
     <select id="selectDzAgentByAgentId" parameterType="Long" resultMap="DzAgentResult">
         <include refid="selectDzAgentVo"/>
-        where t1.agentId = #{agentId}
+        where t1.agent_id = #{agentId}
     </select>
 
-    <insert id="insertDzAgent" parameterType="DzAgent" useGeneratedKeys="true" keyProperty="agentId">
+    <insert id="insertDzAgent" parameterType="DzAgent" useGeneratedKeys="true" keyProperty="agent_id">
         insert into dz_agent
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="deptId != null">deptId,</if>
-            <if test="userId != null">userId,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="userId != null">user_id,</if>
             <if test="name != null">name,</if>
             <if test="phonenumber != null">phonenumber,</if>
-            <if test="parentId != null">parentId,</if>
+            <if test="parentId != null">parent_id,</if>
             <if test="schools != null">schools,</if>
             <if test="remark != null">remark,</if>
          </trim>
@@ -75,23 +78,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateDzAgent" parameterType="DzAgent">
         update dz_agent
         <trim prefix="SET" suffixOverrides=",">
-            <if test="userId != null">userId = #{userId},</if>
-            <if test="deptId != null">deptId = #{deptId},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="name != null">name = #{name},</if>
             <if test="phonenumber != null">phonenumber = #{phonenumber},</if>
-            <if test="parentId != null">parentId = #{parentId},</if>
+            <if test="parentId != null">parent_id = #{parentId},</if>
             <if test="schools != null">schools = #{schools},</if>
             <if test="remark != null">remark = #{remark},</if>
         </trim>
-        where agentId = #{agentId}
+        where agent_id = #{agentId}
     </update>
 
     <delete id="deleteDzAgentByAgentId" parameterType="Long">
-        delete from dz_agent where agentId = #{agentId}
+        delete from dz_agent where agent_id = #{agentId}
     </delete>
 
     <delete id="deleteDzAgentByAgentIds" parameterType="String">
-        delete from dz_agent where agentId in
+        delete from dz_agent where agent_id in
         <foreach item="agentId" collection="array" open="(" separator="," close=")">
             #{agentId}
         </foreach>

+ 4 - 1
ie-system/src/main/resources/mapper/dz/DzSchoolMapper.xml

@@ -40,7 +40,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectDzSchoolVo"/>
         <where>
             <if test="name != null  and name != ''"> and t1.name like concat('%', #{name}, '%')</if>
-            <if test="deptId != null "> and t1.dept_id = #{deptId}</if>
+<!--            <if test="deptId != null "> and t1.dept_id = #{deptId}</if>-->
+            <if test="deptId != null ">
+                AND (t1.dept_id = #{deptId} OR t1.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
+            </if>
             <if test="location != null  and location != ''"> and t1.location = #{location}</if>
             <if test="pro != null "> and t1.pro = #{pro}</if>
             <if test="city != null "> and t1.city = #{city}</if>

+ 31 - 11
ie-system/src/main/resources/mapper/dz/DzTeacherClassMapper.xml

@@ -3,30 +3,30 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.dz.mapper.DzTeacherClassMapper">
-    
+
     <resultMap type="DzTeacherClass" id="DzTeacherClassResult">
         <result property="id"    column="id"    />
         <result property="teacherId"    column="teacher_id"    />
-        <result property="classesId"    column="classes_id"    />
+        <result property="classId"    column="class_id"    />
         <result property="status"    column="status"    />
         <result property="remark"    column="remark"    />
         <result property="outDate"    column="out_date"    />
     </resultMap>
 
     <sql id="selectDzTeacherClassVo">
-        select id, teacher_id, classes_id, status, remark, out_date from dz_teacher_class
+        select id, teacher_id, class_id, status, remark, out_date from dz_teacher_class
     </sql>
 
     <select id="selectDzTeacherClassList" parameterType="DzTeacherClass" resultMap="DzTeacherClassResult">
         <include refid="selectDzTeacherClassVo"/>
-        <where>  
+        <where>
             <if test="teacherId != null "> and teacher_id = #{teacherId}</if>
-            <if test="classesId != null "> and classes_id = #{classesId}</if>
+            <if test="classId != null "> and class_id = #{classId}</if>
             <if test="status != null "> and status = #{status}</if>
             <if test="outDate != null "> and out_date = #{outDate}</if>
         </where>
     </select>
-    
+
     <select id="selectDzTeacherClassById" parameterType="String" resultMap="DzTeacherClassResult">
         <include refid="selectDzTeacherClassVo"/>
         where id = #{id}
@@ -36,25 +36,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         insert into dz_teacher_class
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="teacherId != null">teacher_id,</if>
-            <if test="classesId != null">classes_id,</if>
+            <if test="classId != null">class_id,</if>
             <if test="status != null">status,</if>
             <if test="remark != null">remark,</if>
             <if test="outDate != null">out_date,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="teacherId != null">#{teacherId},</if>
-            <if test="classesId != null">#{classesId},</if>
+            <if test="classId != null">#{classId},</if>
             <if test="status != null">#{status},</if>
             <if test="remark != null">#{remark},</if>
             <if test="outDate != null">#{outDate},</if>
          </trim>
     </insert>
 
+    <!-- 批量插入教师班级关联关系 -->
+    <insert id="insertBatch" parameterType="java.util.List">
+        INSERT INTO dz_teacher_class (
+        teacher_id,
+        class_id,
+        status,
+        create_time,
+        create_by
+        ) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.teacherId},
+            #{item.classId},
+            #{item.status},
+            #{item.createTime},
+            #{item.createBy}
+            )
+        </foreach>
+    </insert>
+
     <update id="updateDzTeacherClass" parameterType="DzTeacherClass">
         update dz_teacher_class
         <trim prefix="SET" suffixOverrides=",">
             <if test="teacherId != null">teacher_id = #{teacherId},</if>
-            <if test="classesId != null">classes_id = #{classesId},</if>
+            <if test="classId != null">class_id = #{classId},</if>
             <if test="status != null">status = #{status},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="outDate != null">out_date = #{outDate},</if>
@@ -67,9 +87,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteDzTeacherClassByIds" parameterType="String">
-        delete from dz_teacher_class where id in 
+        delete from dz_teacher_class where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
-</mapper>
+</mapper>

+ 10 - 0
ie-system/src/main/resources/mapper/system/SysAreaMapper.xml

@@ -71,6 +71,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by area_id asc
     </select>
 
+    <select id="selectSysAreaListByIds" parameterType="list" resultMap="SysAreaResult">
+        <include refid="selectSysAreaVo"/>
+        WHERE status = '0'
+        AND area_id IN
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        ORDER BY area_id ASC
+    </select>
+
     <select id="selectSysAreaByAreaId" parameterType="Long" resultMap="SysAreaResult">
         <include refid="selectSysAreaVo"/>
         where area_id = #{areaId}