From 43506974ed42ff378edc696a9f45548057938bcd Mon Sep 17 00:00:00 2001 From: Qi <3194726156@qq.com> Date: Sat, 24 May 2025 23:00:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=A0=E9=99=A4=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contoller/CeesLocalTeacherController.java | 39 ++++++++++++++++-- .../contoller/CeesWaiTeacherController.java | 40 +++++++++++++++++-- .../modules/contoller/StudentController.java | 37 +++++++++++++++-- .../service/impl/CeesUserServiceImpl.java | 16 ++++++-- .../impl/CeesWaiTeacherServiceImpl.java | 1 + 5 files changed, 120 insertions(+), 13 deletions(-) diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java index c2ca43ba..0c8d20a1 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java @@ -18,6 +18,7 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.entity.CeesLocalTeacher; import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.enums.MajorEnum; +import org.jeecg.modules.mapper.CeesLocalTeacherMapper; import org.jeecg.modules.service.ICeesLocalTeacherService; import org.jeecg.modules.service.ICeesUserService; import org.jeecg.modules.service.ICeesWaiTeacherService; @@ -33,7 +34,10 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; +import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; /** * @Description: 本校教师表 @@ -56,6 +60,8 @@ public class CeesLocalTeacherController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { + + // 1. 查询关联的 ceesUser(假设 ceesLocalTeacher 中有 userId 字段) + LambdaQueryWrapper teacherQuery = new LambdaQueryWrapper<>(); + teacherQuery.eq(CeesLocalTeacher::getId, id); + CeesLocalTeacher teacher = ceesLocalTeacherMapper.selectOne(teacherQuery); + + if (teacher != null && teacher.getUserId() != null) { + ceesUserService.removeById(teacher.getUserId()); + } ceesLocalTeacherService.removeById(id); - ceesUserService.removeById(id); return Result.OK("删除成功!"); } @@ -165,8 +179,27 @@ public class CeesLocalTeacherController extends JeecgController deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.ceesLocalTeacherService.removeByIds(Arrays.asList(ids.split(","))); - ceesUserService.removeByIds(Arrays.asList(ids.split(","))); + // 1. 将逗号分隔的ID字符串转换为列表 + List idList = Arrays.asList(ids.split(",")); + + + + // 3. 查询这些教师对应的用户ID + LambdaQueryWrapper teacherQuery = new LambdaQueryWrapper<>(); + teacherQuery.in(CeesLocalTeacher::getId, idList); + List teachers = ceesLocalTeacherMapper.selectList(teacherQuery); + + // 4. 提取用户ID列表并批量删除 + List userIds = teachers.stream() + .map(CeesLocalTeacher::getUserId) + .filter(Objects::nonNull) // 过滤掉null值 + .collect(Collectors.toList()); + + if (!userIds.isEmpty()) { + ceesUserService.removeByIds(userIds); + } + // 2. 批量删除 ceesLocalTeacher + ceesLocalTeacherService.removeByIds(idList); return Result.OK("批量删除成功!"); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java index 04bb7e3f..6a3f3880 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java @@ -1,6 +1,7 @@ package org.jeecg.modules.contoller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -8,8 +9,11 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.entity.CeesUser; import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.entity.dto.CreateAccountDto; +import org.jeecg.modules.mapper.CeesUserMapper; +import org.jeecg.modules.mapper.CeesWaiTeacherMapper; import org.jeecg.modules.service.ICeesUserService; import org.jeecg.modules.service.ICeesWaiTeacherService; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +23,9 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Description: 外校老师管理 @@ -36,6 +42,10 @@ public class CeesWaiTeacherController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CeesWaiTeacher::getId,id); + CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectOne(queryWrapper); + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(CeesUser::getUserId,ceesWaiTeacher.getUserId()); + CeesUser ceesUser = ceesUserMapper.selectOne(query); + ceesUserService.removeById(ceesUser.getId()); ceesWaiTeacherService.removeById(id); - ceesUserService.removeById(id); return Result.OK("删除成功!"); } @@ -158,8 +174,26 @@ public class CeesWaiTeacherController extends JeecgController deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.ceesWaiTeacherService.removeByIds(Arrays.asList(ids.split(","))); - ceesUserService.removeByIds(Arrays.asList(ids.split(","))); + // 1. 将逗号分隔的ID字符串转换为列表 + List idList = Arrays.asList(ids.split(",")); + // 3. 查询这些教师对应的用户ID + LambdaQueryWrapper teacherQuery = new LambdaQueryWrapper<>(); + teacherQuery.in(CeesWaiTeacher::getId, idList); + List teachers = ceesWaiTeacherMapper.selectList(teacherQuery); + + // 4. 提取用户ID列表 + List userIds = teachers.stream() + .map(CeesWaiTeacher::getUserId) + .collect(Collectors.toList()); + + // 5. 批量删除关联的用户记录 + if (!userIds.isEmpty()) { + LambdaQueryWrapper userQuery = new LambdaQueryWrapper<>(); + userQuery.in(CeesUser::getUserId, userIds); + ceesUserService.remove(userQuery); + } + // 2. 先批量删除CeesWaiTeacher记录 + this.ceesWaiTeacherService.removeByIds(idList); return Result.OK("批量删除成功!"); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java index 532a830a..d6bb9c95 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java @@ -16,6 +16,7 @@ import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.entity.Student; import org.jeecg.modules.enums.MajorEnum; +import org.jeecg.modules.mapper.StudentMapper; import org.jeecg.modules.service.ICeesUserService; import org.jeecg.modules.service.IStudentService; import org.jeecg.modules.system.entity.SysRole; @@ -31,6 +32,8 @@ import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; /** * @Description: 研究生表 @@ -51,6 +54,8 @@ public class StudentController extends JeecgController SysRoleMapper sysRoleMapper; @Autowired private ICeesUserService ceesUserService; + @Autowired + private StudentMapper studentMapper; /** * 分页列表查询 @@ -134,8 +139,19 @@ public class StudentController extends JeecgController @ApiOperation(value="研究生表-通过id删除", notes="研究生表-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name="id",required=true) String id) { + + // 2. 查询关联的用户ID(假设 Student 表中有 userId 字段) + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Student::getId, id); // 按学生ID查询 + Student student = studentMapper.selectOne(queryWrapper); + + // 3. 如果找到关联用户,删除用户记录 + if (student != null && student.getUserId() != null) { + ceesUserService.removeById(student.getUserId()); + } + // 1. 删除学生记录 studentService.removeById(id); - ceesUserService.removeById(id); + return Result.OK("删除成功!"); } @@ -149,8 +165,23 @@ public class StudentController extends JeecgController @ApiOperation(value="研究生表-批量删除", notes="研究生表-批量删除") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.studentService.removeByIds(Arrays.asList(ids.split(","))); - ceesUserService.removeByIds(Arrays.asList(ids.split(","))); + // 1. 将逗号分隔的ID字符串转为List + List studentIds = Arrays.asList(ids.split(",")); + // 3. 查询这些学生关联的用户ID + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(Student::getId, studentIds); // 批量查询学生列表 + List students = studentMapper.selectList(queryWrapper); + // 4. 提取用户ID并批量删除 + List userIds = students.stream() + .map(Student::getUserId) + .filter(Objects::nonNull) // 过滤掉null值 + .collect(Collectors.toList()); + + if (!userIds.isEmpty()) { + ceesUserService.removeByIds(userIds); + } + // 2. 批量删除学生记录 + studentService.removeByIds(studentIds); return Result.OK("批量删除成功!"); } /** diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java index 33183f22..2a954eda 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.dto.CreateAccountDto; @@ -202,11 +203,18 @@ public class CeesUserServiceImpl extends ServiceImpl i jsonObject.put("status", "1"); //1是填写信息 return Result.ok(jsonObject); } else { - if(ceesWaiTeacher.getOpenId() == null){ - ceesWaiTeacher.setOpenId(ceesUser.getUserId()); + if(StringUtils.isEmpty(ceesWaiTeacher.getOpenId())){ + ceesWaiTeacher.setOpenId(ceesUser.getOpenId()); ceesWaiTeacher.setUnionId(ceesUser.getUnionId()); - } else if (ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId()) && ceesWaiTeacher.getUnionId() == null) { + ceesWaiTeacherMapper.updateById(ceesWaiTeacher); + user.setOpenId(ceesUser.getOpenId()); + user.setUnionId(ceesUser.getUnionId()); + ceesUserMapper.updateById(user); + return Result.error("存在数据更新!请刷新页面或退出重进!!"); + } + if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId()) && StringUtils.isEmpty(ceesWaiTeacher.getUnionId())){ ceesWaiTeacher.setUnionId(ceesUser.getUnionId()); + ceesWaiTeacherMapper.updateById(ceesWaiTeacher); } if(ceesWaiTeacher.getOpenId().equals(ceesUser.getOpenId())){ JSONObject jsonObject = new JSONObject(); @@ -215,7 +223,7 @@ public class CeesUserServiceImpl extends ServiceImpl i jsonObject.put("status", "2"); //2是填写过信息 return Result.ok(jsonObject); }else{ - return Result.error("当前微信和身份码绑定的微信不同!请输入正确的身份码!如有疑问请联系关联员"); + return Result.error("当前微信和身份码绑定的微信不同!请输入正确的身份码!如有疑问请联系管理员"); } } } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java index 07cb4ff4..80bdfd26 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java @@ -347,6 +347,7 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl