jinxia.mo 1 روز پیش
والد
کامیت
4b5f945037
19فایلهای تغییر یافته به همراه398 افزوده شده و 9 حذف شده
  1. 185 2
      back-ui/src/views/dz/teacher/index.vue
  2. 91 1
      ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzTeacherController.java
  3. 2 2
      ie-admin/src/main/java/com/ruoyi/web/service/UserDetailsServiceImpl.java
  4. 16 0
      ie-common/src/main/java/com/ruoyi/common/utils/NumberUtils.java
  5. 36 0
      ie-system/src/main/java/com/ruoyi/dz/domain/DzTeacher.java
  6. 1 0
      ie-system/src/main/java/com/ruoyi/dz/mapper/DzClassesMapper.java
  7. 3 0
      ie-system/src/main/java/com/ruoyi/dz/mapper/DzTeacherClassMapper.java
  8. 2 0
      ie-system/src/main/java/com/ruoyi/dz/service/IDzClassesService.java
  9. 2 0
      ie-system/src/main/java/com/ruoyi/dz/service/IDzTeacherClassService.java
  10. 6 4
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java
  11. 10 0
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzClassesServiceImpl.java
  12. 10 0
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzTeacherClassServiceImpl.java
  13. 1 0
      ie-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
  14. 1 0
      ie-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  15. 7 0
      ie-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  16. 8 0
      ie-system/src/main/resources/mapper/dz/DzClassesMapper.xml
  17. 8 0
      ie-system/src/main/resources/mapper/dz/DzTeacherClassMapper.xml
  18. 1 0
      ie-system/src/main/resources/mapper/dz/DzTeacherMapper.xml
  19. 8 0
      ie-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 185 - 2
back-ui/src/views/dz/teacher/index.vue

@@ -102,14 +102,28 @@
     <el-table v-loading="loading" :data="teacherList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="教师ID/账号" align="center" prop="teacherId" />
+      <el-table-column label="密码" align="center" prop="password2" />
       <el-table-column label="教师姓名" align="center" prop="name" />
       <el-table-column label="所在学校" align="center" prop="schoolName" />
+      <el-table-column label="所在学校班级" align="center" prop="schoolClass" />
       <el-table-column label="培训校区" align="center" prop="campusName" />
+      <el-table-column label="培训校区班级" align="center" prop="campusClass" />
       <el-table-column label="所在机构" align="center" prop="deptName" />
       <el-table-column label="用户ID" align="center" prop="userId" />
+      <el-table-column label="状态" align="center" key="status">
+        <template #default="scope">
+          <el-switch
+            v-model="scope.row.status"
+            active-value="0"
+            inactive-value="1"
+            @change="handleStatusChange(scope.row)"
+          ></el-switch>
+        </template>
+      </el-table-column>
       <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="" @click="handleUpdateTeacherClass(scope.row)" v-hasPermi="['dz:teacher:edit']">学校班级</el-button>
+          <el-button link type="primary" icon="" @click="handleUpdateCampusClass(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>
@@ -192,6 +206,52 @@
               </div>
           </template>
       </el-dialog>
+
+      <!-- 关联校区班级 -->
+      <el-dialog :title="titleCampusClass" v-model="openCampusClass" width="500px" append-to-body>
+          <el-form ref="campusClassRef" :model="formCampusClass" :rules="rulesCampusClass" label-width="80px">
+              <el-form-item label="教师姓名" prop="name">
+                  <el-input v-model="formCampusClass.name" placeholder="请输入教师姓名" disabled/>
+              </el-form-item>
+              <el-form-item label="培训校区" prop="campusId">
+                  <el-select 
+                          v-model="formCampusClass.campusId" 
+                          placeholder="请选择培训校区" 
+                          style="width: 100%"
+                          @change="handleCampusChange"
+                  >
+                      <el-option
+                              v-for="item in campusOptions"
+                              :key="item.id"
+                              :label="item.name"
+                              :value="item.id"
+                      />
+                  </el-select>
+              </el-form-item>
+              <el-form-item label="关联班级" prop="classIds">
+                  <el-select 
+                          v-model="formCampusClass.classIds" 
+                          multiple 
+                          placeholder="请选择班级" 
+                          style="width: 100%"
+                          :disabled="!formCampusClass.campusId"
+                  >
+                      <el-option
+                              v-for="item in campusClassOptions"
+                              :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="submitFormCampusClass">确 定</el-button>
+                  <el-button @click="cancelCampusClass">取 消</el-button>
+              </div>
+          </template>
+      </el-dialog>
   </div>
 </template>
 
@@ -202,6 +262,7 @@ import {listCampus} from "@/api/dz/campus"
 import { listAllClass } from "@/api/dz/classes"
 import { batchBindTeacherClass,listAllTeacherClass } from "@/api/dz/teacherclass"
 import {getCampusSchoolList} from "@/api/dz/cards.js";
+import { changeUserStatus } from "@/api/system/user"
 
 const { proxy } = getCurrentInstance()
 
@@ -209,8 +270,10 @@ const teacherList = ref([])
 const schoolOptions = ref([])
 const campusOptions = ref([])
 const classOptions = ref([])
+const campusClassOptions = ref([])
 const open = ref(false)
 const openTeacherClass = ref(false)
+const openCampusClass = ref(false)
 const loading = ref(true)
 const showSearch = ref(true)
 const ids = ref([])
@@ -219,6 +282,7 @@ const multiple = ref(true)
 const total = ref(0)
 const title = ref("")
 const titleTeacherClass = ref("")
+const titleCampusClass = ref("")
 
 const data = reactive({
   form: {},
@@ -228,6 +292,12 @@ const data = reactive({
       name: null,
       classIds: []
   },
+  formCampusClass: {
+      teacherId: null,
+      campusId: null,
+      name: null,
+      classIds: []
+  },
   queryParams: {
     pageNum: 1,
     pageSize: 10,
@@ -243,10 +313,18 @@ const data = reactive({
       classIds: [
           { required: true, message: "请选择至少一个班级", trigger: "change" }
       ]
+  },
+  rulesCampusClass: {
+      campusId: [
+          { required: true, message: "请选择培训校区", trigger: "change" }
+      ],
+      classIds: [
+          { required: true, message: "请选择至少一个班级", trigger: "change" }
+      ]
   }
 })
 
-const { queryParams, form, formTeacherClass, rules, rulesTeacherClass } = toRefs(data)
+const { queryParams, form, formTeacherClass, formCampusClass, rules, rulesTeacherClass, rulesCampusClass } = toRefs(data)
 
 /** 查询老师列表 */
 function getList() {
@@ -314,6 +392,7 @@ function resetTeacherClass() {
         classIds: [],
         name: null
     }
+    classOptions.value = []
     proxy.resetForm("teacherClassRef")
 }
 
@@ -393,9 +472,25 @@ function handleExport() {
   }, `teacher_${new Date().getTime()}.xlsx`)
 }
 
+/** 用户状态修改  */
+function handleStatusChange(row) {
+  let text = row.status === "0" ? "启用" : "关闭"
+  proxy.$modal.confirm('确认要"' + text + '""' + row.name + '"用户吗?').then(function () {
+    return changeUserStatus(row.userId, row.status)
+  }).then(() => {
+    proxy.$modal.msgSuccess(text + "成功")
+  }).catch(function () {
+    row.status = row.status === "0" ? "1" : "0"
+  })
+}
+
 /** 关联老师班级,按钮操作 */
 function handleUpdateTeacherClass(row) {
     resetTeacherClass()
+    // 先清空班级选项和已选班级
+    classOptions.value = []
+    formTeacherClass.value.classIds = []
+    
     // const _schoolId = row.schoolId
     const submitData = {
         schoolId: row.schoolId,
@@ -442,6 +537,94 @@ function submitFormTeacherClass() {
     })
 }
 
+/** 关联校区班级,按钮操作 */
+function handleUpdateCampusClass(row) {
+    resetCampusClass()
+    // 先清空班级选项和已选班级
+    campusClassOptions.value = []
+    formCampusClass.value.classIds = []
+    
+    // 设置数据
+    formCampusClass.value.teacherId = row.teacherId
+    formCampusClass.value.name = row.name
+    // 如果有培训校区,默认选中
+    if (row.campusId) {
+        formCampusClass.value.campusId = row.campusId
+        // 加载该校区的班级列表
+        loadCampusClasses(row.campusId, row.teacherId)
+    }
+    openCampusClass.value = true
+    titleCampusClass.value = "关联校区班级"
+}
+
+/** 校区选择变化时,加载该校区的班级列表 */
+function handleCampusChange(campusId) {
+    if (campusId) {
+        loadCampusClasses(campusId, formCampusClass.value.teacherId)
+        // 清空已选择的班级
+        formCampusClass.value.classIds = []
+    } else {
+        campusClassOptions.value = []
+        formCampusClass.value.classIds = []
+    }
+}
+
+/** 加载校区的班级列表 */
+function loadCampusClasses(campusId, teacherId) {
+    const submitData = {
+        schoolId: campusId,
+        teacherId: teacherId
+    }
+    listAllClass(submitData).then(response => {
+        campusClassOptions.value = response.data || []
+        // 加载已关联的班级
+        listAllTeacherClass(submitData).then(response => {
+            formCampusClass.value.classIds = (response.data || []).map(item => item.classId)
+        })
+    })
+}
+
+/** 关联校区班级,提交按钮 */
+function submitFormCampusClass() {
+    proxy.$refs["campusClassRef"].validate(valid => {
+        if (valid) {
+            // 构建提交参数
+            const submitData = {
+                teacherId: formCampusClass.value.teacherId,
+                classIds: formCampusClass.value.classIds
+            }
+            // 调用关联班级的API
+            batchBindTeacherClass(submitData).then(response => {
+                proxy.$modal.msgSuccess("关联成功")
+                openCampusClass.value = false
+                getList()
+            }).catch(() => {
+                proxy.$modal.msgError("关联失败")
+            })
+        }
+    })
+}
+
+// 取消按钮
+function cancelCampusClass() {
+    openCampusClass.value = false
+    resetCampusClass()
+}
+
+// 表单重置
+function resetCampusClass() {
+    formCampusClass.value = {
+        teacherId: null,
+        campusId: null,
+        name: null,
+        classIds: []
+    }
+    campusClassOptions.value = []
+    if (proxy.$refs["campusClassRef"]) {
+        proxy.$refs["campusClassRef"].resetFields()
+    }
+}
+
 onMounted(() => {
   getSchoolList()
   getCampusList()

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

@@ -1,10 +1,16 @@
 package com.ruoyi.web.controller.dz;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.dz.domain.DzClasses;
+import com.ruoyi.dz.domain.DzTeacher;
+import com.ruoyi.dz.service.IDzClassesService;
 import com.ruoyi.dz.service.IDzTeacherClassService;
 import com.ruoyi.enums.UserTypeEnum;
 import com.ruoyi.system.service.ISysUserService;
@@ -22,7 +28,6 @@ import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.dz.domain.DzTeacher;
 import com.ruoyi.dz.service.IDzTeacherService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -41,6 +46,10 @@ public class DzTeacherController extends BaseController
     private IDzTeacherService dzTeacherService;
     @Autowired
     private ISysUserService userService;
+    @Autowired
+    private IDzClassesService dzClassesService;
+    @Autowired
+    private IDzTeacherClassService dzTeacherClassService;
 
     /**
      * 查询老师列表
@@ -58,6 +67,87 @@ public class DzTeacherController extends BaseController
         }
         startPage();
         List<DzTeacher> list = dzTeacherService.selectDzTeacherList(dzTeacher);
+        // 批量查询用户信息,获取password2字段
+        if (list != null && !list.isEmpty()) {
+            List<Long> userIds = list.stream()
+                    .map(DzTeacher::getUserId).filter(userId -> userId != null)
+                    .distinct().collect(Collectors.toList());
+            if (!userIds.isEmpty()) {
+                List<SysUser> users = userService.selectUserByUserIds(userIds);
+                // 创建userId到SysUser的映射
+                Map<Long, SysUser> userMap = users.stream()
+                        .filter(user -> user.getUserId() != null)
+                        .collect(Collectors.toMap(
+                                SysUser::getUserId,
+                                user -> user,
+                                (existing, replacement) -> existing
+                        ));
+                // 设置每个teacher的password2
+                list.forEach(teacher -> {
+                    if (teacher.getUserId() != null && userMap.containsKey(teacher.getUserId())) {
+                        teacher.setPassword2(userMap.get(teacher.getUserId()).getPassword2());
+                        //设置状态
+                        teacher.setStatus(userMap.get(teacher.getUserId()).getStatus());
+                    }
+                });
+            }
+
+            // 批量查询班级信息,获取schoolClass和campusClass字段
+            Set<Long> schoolIds = list.stream()
+                    .flatMap(teacher -> java.util.stream.Stream.of(teacher.getSchoolId(),teacher.getCampusId()).filter(id -> id != null))
+                    .collect(Collectors.toSet());
+            Set<Long> teacherIds = list.stream().map(DzTeacher::getTeacherId).filter(id -> id != null).collect(Collectors.toSet());
+
+            // 按teacherId分组,得到Map<Long, List<Long>>,key为teacherId,value为该教师关联的classId列表
+            Map<Long, List<Long>> teacherClassMap = dzTeacherClassService.selectDzTeacherClassByTeacherIds(teacherIds).stream()
+                    .filter(tc -> tc.getTeacherId() != null && tc.getClassId() != null)
+                    .collect(Collectors.groupingBy(com.ruoyi.dz.domain.DzTeacherClass::getTeacherId,
+                            Collectors.mapping(com.ruoyi.dz.domain.DzTeacherClass::getClassId,Collectors.toList())
+                    ));
+            if (!schoolIds.isEmpty()) {
+                List<DzClasses> classesList = dzClassesService.selectDzClassesBySchoolIds(schoolIds);
+                // 构建classId到DzClasses的映射
+                Map<Long, DzClasses> classIdMap = classesList.stream()
+                        .filter(clazz -> clazz.getClassId() != null)
+                        .collect(Collectors.toMap(
+                                DzClasses::getClassId,
+                                clazz -> clazz,
+                                (existing, replacement) -> existing
+                        ));
+                
+                // 设置每个teacher的schoolClass和campusClass
+                list.forEach(teacher -> {
+                    if (teacherClassMap.containsKey(teacher.getTeacherId())) {
+                        List<Long> classIds = teacherClassMap.get(teacher.getTeacherId());
+                        // 根据schoolId分组,分别处理schoolClass和campusClass
+                        List<String> schoolClassNames = new java.util.ArrayList<>();
+                        List<String> campusClassNames = new java.util.ArrayList<>();
+                        
+                        for (Long classId : classIds) {
+                            DzClasses clazz = classIdMap.get(classId);
+                            if (clazz != null && clazz.getName() != null) {
+                                if (teacher.getSchoolId() != null && clazz.getSchoolId() != null 
+                                        && clazz.getSchoolId().equals(teacher.getSchoolId())) {
+                                    schoolClassNames.add(clazz.getName());
+                                }
+                                if (teacher.getCampusId() != null && clazz.getSchoolId() != null 
+                                        && clazz.getSchoolId().equals(teacher.getCampusId())) {
+                                    campusClassNames.add(clazz.getName());
+                                }
+                            }
+                        }
+                        
+                        // 用英文逗号连接并设置
+                        if (!schoolClassNames.isEmpty()) {
+                            teacher.setSchoolClass(String.join(",", schoolClassNames));
+                        }
+                        if (!campusClassNames.isEmpty()) {
+                            teacher.setCampusClass(String.join(",", campusClassNames));
+                        }
+                    }
+                });
+            }
+        }
         return getDataTable(list);
     }
 

+ 2 - 2
ie-admin/src/main/java/com/ruoyi/web/service/UserDetailsServiceImpl.java

@@ -48,7 +48,7 @@ public class UserDetailsServiceImpl implements UserDetailsService
 
     @Autowired
     private ISysUserService userService;
-    
+
     @Autowired
     private SysPasswordService passwordService;
 
@@ -79,7 +79,7 @@ public class UserDetailsServiceImpl implements UserDetailsService
         }
         else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
         {
-            log.info("登录用户:{} 已被停用.", username);
+            log.info("登录用户:{} 已被关闭.", username);
             throw new ServiceException(MessageUtils.message("user.blocked"));
         }
         if(!isPhoneLogin) {

+ 16 - 0
ie-common/src/main/java/com/ruoyi/common/utils/NumberUtils.java

@@ -1,9 +1,25 @@
 package com.ruoyi.common.utils;
 
+import cn.hutool.core.util.RandomUtil;
+
 import java.util.Random;
 
 public class NumberUtils {
 
+
+    /**
+     * 生成首页不是0的随机数
+     * @param len
+     * @return
+     */
+    public static String generatePwd(int len) {
+        String pass = RandomUtil.randomNumbers(6);
+        if (pass.charAt(0) == '0') {
+            pass = RandomUtil.randomString("123456789", 1) + pass.substring(1);
+        }
+        return pass;
+    }
+
     public static String getRandom(int len) {
         int rs = (int) ((Math.random() * 9 + 1) * Math.pow(10, len - 1));
         return String.valueOf(rs);

+ 36 - 0
ie-system/src/main/java/com/ruoyi/dz/domain/DzTeacher.java

@@ -41,6 +41,42 @@ public class DzTeacher extends BaseEntity
     private String deptName;
     private String schoolName;
     private String campusName;
+    private String password2;
+    private String schoolClass;
+    private String campusClass;
+    private String status;
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getSchoolClass() {
+        return schoolClass;
+    }
+
+    public void setSchoolClass(String schoolClass) {
+        this.schoolClass = schoolClass;
+    }
+
+    public String getCampusClass() {
+        return campusClass;
+    }
+
+    public void setCampusClass(String campusClass) {
+        this.campusClass = campusClass;
+    }
+
+    public String getPassword2() {
+        return password2;
+    }
+
+    public void setPassword2(String password2) {
+        this.password2 = password2;
+    }
 
     public String getCampusName() {
         return campusName;

+ 1 - 0
ie-system/src/main/java/com/ruoyi/dz/mapper/DzClassesMapper.java

@@ -23,6 +23,7 @@ public interface DzClassesMapper
     public List<DzClasses> selectClassesByIds(@Param("ids") Collection<Long> ids);
     public List<DzClasses> selectClassesForTeacher(@Param("teacherId") Long teacherId);
     public List<DzClasses> selectDzClassesListBySchoolId(@Param("schoolId") Long schoolId);
+    public List<DzClasses> selectDzClassesBySchoolIds(@Param("schoolIds") Collection<Long> schoolIds);
     /**
      * 查询学生班级
      *

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

@@ -1,7 +1,9 @@
 package com.ruoyi.dz.mapper;
 
+import java.util.Collection;
 import java.util.List;
 import com.ruoyi.dz.domain.DzTeacherClass;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 教师班级关系Mapper接口
@@ -26,6 +28,7 @@ public interface DzTeacherClassMapper
      * @return 教师班级关系集合
      */
     public List<DzTeacherClass> selectDzTeacherClassList(DzTeacherClass dzTeacherClass);
+    public List<DzTeacherClass> selectDzTeacherClassByTeacherIds(@Param("teacherIds") Collection<Long> teacherIds);
 
     /**
      * 新增教师班级关系

+ 2 - 0
ie-system/src/main/java/com/ruoyi/dz/service/IDzClassesService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.dz.service;
 
+import java.util.Collection;
 import java.util.List;
 import com.ruoyi.dz.domain.DzClasses;
 
@@ -27,6 +28,7 @@ public interface IDzClassesService
      */
     public List<DzClasses> selectDzClassesList(DzClasses dzClasses);
     public List<DzClasses> selectDzClassesListBySchoolId(Long schoolId);
+    public List<DzClasses> selectDzClassesBySchoolIds(Collection<Long> schoolIds);
 
     /**
      * 新增学生班级

+ 2 - 0
ie-system/src/main/java/com/ruoyi/dz/service/IDzTeacherClassService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.dz.service;
 
+import java.util.Collection;
 import java.util.List;
 import com.ruoyi.dz.domain.DzTeacherClass;
 
@@ -26,6 +27,7 @@ public interface IDzTeacherClassService
      * @return 教师班级关系集合
      */
     public List<DzTeacherClass> selectDzTeacherClassList(DzTeacherClass dzTeacherClass);
+    public List<DzTeacherClass> selectDzTeacherClassByTeacherIds(Collection<Long> teacherIds);
 
     /**
      * 新增教师班级关系

+ 6 - 4
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java

@@ -13,6 +13,7 @@ import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.ExamType;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.NumberUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.criteria.CardCriteria;
 import com.ruoyi.dz.domain.*;
@@ -204,10 +205,11 @@ public class DzCardsServiceImpl implements IDzCardsService
             DzCards c = new DzCards();
             c.setType(type.getVal());
             c.setCardNo(String.valueOf(maxNo + i));
-            String pass = RandomUtil.randomNumbers(6);
-            if (pass.charAt(0) == '0') {
-                pass = RandomUtil.randomString("123456789", 1) + pass.substring(1);
-            }
+//            String pass = RandomUtil.randomNumbers(6);
+//            if (pass.charAt(0) == '0') {
+//                pass = RandomUtil.randomString("123456789", 1) + pass.substring(1);
+//            }
+            String pass = NumberUtils.generatePwd(6);
             c.setPassword(pass);
             c.setDistributeStatus(CardDistributeStatus.Free.getVal());
             c.setStatus(CardStatus.Free.getVal());

+ 10 - 0
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzClassesServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.dz.service.impl;
 
+import java.util.Collection;
 import java.util.List;
 import com.ruoyi.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +51,15 @@ public class DzClassesServiceImpl implements IDzClassesService
         return dzClassesMapper.selectDzClassesListBySchoolId(schoolId);
     }
 
+    @Override
+    public List<DzClasses> selectDzClassesBySchoolIds(Collection<Long> schoolIds)
+    {
+        if (schoolIds == null || schoolIds.isEmpty()) {
+            return new java.util.ArrayList<>();
+        }
+        return dzClassesMapper.selectDzClassesBySchoolIds(schoolIds);
+    }
+
     /**
      * 新增学生班级
      *

+ 10 - 0
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzTeacherClassServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.dz.service.impl;
 
+import java.util.Collection;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,6 +44,15 @@ public class DzTeacherClassServiceImpl implements IDzTeacherClassService
         return dzTeacherClassMapper.selectDzTeacherClassList(dzTeacherClass);
     }
 
+    @Override
+    public List<DzTeacherClass> selectDzTeacherClassByTeacherIds(Collection<Long> teacherIds)
+    {
+        if (teacherIds == null || teacherIds.isEmpty()) {
+            return new java.util.ArrayList<>();
+        }
+        return dzTeacherClassMapper.selectDzTeacherClassByTeacherIds(teacherIds);
+    }
+
     /**
      * 新增教师班级关系
      *

+ 1 - 0
ie-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -31,6 +31,7 @@ public interface SysUserMapper
      */
     public List<SysUser> selectAllocatedList(SysUser user);
     public List<SysUser> selectUserByCardIds(@Param("ids")Collection<Long> cardIds);
+    public List<SysUser> selectUserByUserIds(@Param("ids")Collection<Long> userIds);
 
     /**
      * 根据条件分页查询未分配用户角色列表

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

@@ -37,6 +37,7 @@ public interface ISysUserService
      */
     public List<SysUser> selectUnallocatedList(SysUser user);
     public List<SysUser> selectUserByCardIds(Collection<Long> cardIds);
+    public List<SysUser> selectUserByUserIds(Collection<Long> userIds);
     /**
      * 通过用户名查询用户
      *

+ 7 - 0
ie-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -7,6 +7,7 @@ import javax.validation.Validator;
 import cn.hutool.core.util.RandomUtil;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.ruoyi.common.utils.NumberUtils;
 import com.ruoyi.enums.UserTypeEnum;
 import com.ruoyi.system.service.ISysRoleService;
 import org.slf4j.Logger;
@@ -117,6 +118,11 @@ public class SysUserServiceImpl implements ISysUserService
         return userMapper.selectUserByCardIds(cardIds);
     }
 
+    @Override
+    public List<SysUser> selectUserByUserIds(Collection<Long> userIds) {
+        return userMapper.selectUserByUserIds(userIds);
+    }
+
     /**
      * 通过用户名查询用户
      *
@@ -607,6 +613,7 @@ public class SysUserServiceImpl implements ISysUserService
         user.setUserType(userType.getVal());
         user.setUserTypeId(userTypeId);
         String pwd = StringUtils.isEmpty(user.getPassword())?configService.selectConfigByKey("sys.user.initPassword"):user.getPassword();
+        String pass = NumberUtils.generatePwd(6);//不是0开头的6位随机数密码
 //        user.setPassword2(RandomUtil.randomNumbers(6));
         user.setPassword2(pwd);
         user.setPassword(SecurityUtils.encryptPassword(pwd));

+ 8 - 0
ie-system/src/main/resources/mapper/dz/DzClassesMapper.xml

@@ -142,6 +142,14 @@
         where t1.school_id = #{schoolId}
     </select>
 
+    <select id="selectDzClassesBySchoolIds" resultMap="DzClassesResult">
+        <include refid="selectDzClassesVo"/>
+        where t1.school_id in 
+        <foreach collection="schoolIds" item="schoolId" open="(" separator="," close=")">
+            #{schoolId}
+        </foreach>
+    </select>
+
     <select id="selectDzClassesByClassId" parameterType="Long" resultMap="DzClassesResult">
         <include refid="selectDzClassesVo"/>
         where t1.class_id = #{classId}

+ 8 - 0
ie-system/src/main/resources/mapper/dz/DzTeacherClassMapper.xml

@@ -27,6 +27,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
+    <select id="selectDzTeacherClassByTeacherIds" resultMap="DzTeacherClassResult">
+        <include refid="selectDzTeacherClassVo"/>
+        where teacher_id in 
+        <foreach collection="teacherIds" item="teacherId" open="(" separator="," close=")">
+            #{teacherId}
+        </foreach>
+    </select>
+
     <select id="selectDzTeacherClassById" parameterType="String" resultMap="DzTeacherClassResult">
         <include refid="selectDzTeacherClassVo"/>
         where id = #{id}

+ 1 - 0
ie-system/src/main/resources/mapper/dz/DzTeacherMapper.xml

@@ -29,6 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userId != null "> and t1.user_id = #{userId}</if>
             <if test="deptId != null "> and t1.dept_id = #{deptId}</if>
             <if test="schoolId != null "> and t1.school_id = #{schoolId}</if>
+            <if test="campusId != null "> and t1.campus_id = #{campusId}</if>
             <if test="name != null  and name != ''"> and t1.name like concat('%', #{name}, '%')</if>
         </where>
         order by t1.teacher_id desc

+ 8 - 0
ie-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="sex"           column="sex"             />
         <result property="avatar"        column="avatar"          />
         <result property="password"      column="password"        />
+		<result property="password2"     column="password2"       />
 		<result property="location"      column="location"       />
 		<result property="examType"      column="exam_type"       />
 		<result property="regStatus"     column="reg_status"          />
@@ -159,6 +160,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		where u.card_id in <foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
 	</select>
 
+	<select id="selectUserByUserIds" resultMap="SysUserResult">
+		select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.password2, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark,
+		u.location,u.exam_type,u.reg_status,u.end_year,u.invite_code,u.scores,u.select_subject,u.directed_study,u.eval_counts,u.card_id,u.account_type
+        from sys_user u
+		where u.user_id in <foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
+	</select>
+
 	<select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
 	</select>