数据关联删除

This commit is contained in:
Qi 2025-05-24 17:01:50 +08:00
parent 524357f43c
commit 40f4b08e87
10 changed files with 183 additions and 7 deletions

View File

@ -19,6 +19,8 @@ import org.jeecg.modules.entity.CeesLocalTeacher;
import org.jeecg.modules.entity.CeesWaiTeacher;
import org.jeecg.modules.enums.MajorEnum;
import org.jeecg.modules.service.ICeesLocalTeacherService;
import org.jeecg.modules.service.ICeesUserService;
import org.jeecg.modules.service.ICeesWaiTeacherService;
import org.jeecg.modules.system.entity.SysRole;
import org.jeecg.modules.system.entity.SysUserRole;
import org.jeecg.modules.system.mapper.SysRoleMapper;
@ -52,6 +54,8 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
SysUserRoleMapper sysUserRoleMapper;
@Autowired
SysRoleMapper sysRoleMapper;
@Autowired
ICeesUserService ceesUserService;
/**
* 分页列表查询
@ -147,6 +151,7 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ceesLocalTeacherService.removeById(id);
ceesUserService.removeById(id);
return Result.OK("删除成功!");
}
@ -161,6 +166,7 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.ceesLocalTeacherService.removeByIds(Arrays.asList(ids.split(",")));
ceesUserService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.contoller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -11,9 +12,11 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.entity.CeesUser;
import org.jeecg.modules.entity.CeesWaiTeacher;
import org.jeecg.modules.entity.dto.CreateAccountDto;
import org.jeecg.modules.enums.IdentityEnum;
import org.jeecg.modules.enums.MajorEnum;
import org.jeecg.modules.mapper.CeesUserMapper;
import org.jeecg.modules.service.ICeesLocalTeacherService;
import org.jeecg.modules.service.ICeesUserService;
import org.jeecg.modules.service.ICeesWaiTeacherService;
@ -25,6 +28,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: CEES用户表
@ -45,6 +51,8 @@ public class CeesUserController extends JeecgController<CeesUser, ICeesUserServi
private ICeesLocalTeacherService ceesLocalTeacherService;
@Autowired
private IStudentService studentService;
@Autowired
private CeesUserMapper ceesUserMapper;
/**
* 分页列表查询
@ -132,8 +140,42 @@ public class CeesUserController extends JeecgController<CeesUser, ICeesUserServi
@ApiOperation(value = "CEES用户表-通过id删除", notes = "CEES用户表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
LambdaQueryWrapper<CeesUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CeesUser::getId, id);
CeesUser ceesUser = ceesUserMapper.selectOne(queryWrapper);
ceesUserService.removeById(id);
return Result.OK("删除成功!");
//学生
if(ceesUser.getIdentity() == 2){
String data = studentService.removeByUserId(ceesUser.getUserId());
if(data == "true"){
return Result.OK("本校老师数据删除成功!");
}else if(data == "null"){
return Result.ok("数据删除成功!");
}else {
return Result.error("本校老师数据删除失败!");
}
}else if(ceesUser.getIdentity() == 3){
String data = ceesLocalTeacherService.removeByUserId(ceesUser.getUserId());
if(data == "true"){
return Result.OK("本校老师数据删除成功!");
}else if(data == "null"){
return Result.ok("数据删除成功!");
}else {
return Result.error("本校老师数据删除失败!");
}
}else if(ceesUser.getIdentity() == 4){
String data = ceesWaiTeacherService.removeByUserId(ceesUser.getUserId());
if(data == "true"){
return Result.OK("本校老师数据删除成功!");
}else if(data == "null"){
return Result.ok("数据删除成功!");
}else {
return Result.error("本校老师数据删除失败!");
}
}else{
return Result.error("数据删除错误!!");
}
}
/**
@ -146,11 +188,50 @@ public class CeesUserController extends JeecgController<CeesUser, ICeesUserServi
@ApiOperation(value = "CEES用户表-批量删除", notes = "CEES用户表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.ceesUserService.removeByIds(Arrays.asList(ids.split(",")));
// this.ceesWaiTeacherService.removeById()
return Result.OK("批量删除成功!");
// 1. 将逗号分隔的ID字符串转换为列表
List<String> idList = Arrays.asList(ids.split(","));
// 2. 批量查询用户信息
LambdaQueryWrapper<CeesUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(CeesUser::getId, idList);
List<CeesUser> users = ceesUserMapper.selectList(queryWrapper);
// 3. 按身份类型分组
Map<Integer, List<CeesUser>> groupedUsers = users.stream()
.collect(Collectors.groupingBy(CeesUser::getIdentity));
// 4. 处理不同身份类型的删除
try {
// 4.1 先删除关联数据
processIdentitySpecificDeletions(groupedUsers);
// 4.2 再批量删除用户主表数据
ceesUserService.removeByIds(idList);
return Result.OK("批量删除成功,共删除 " + idList.size() + " 条记录");
} catch (Exception e) {
return Result.error("批量删除过程中出错: " + e.getMessage());
}
}
private void processIdentitySpecificDeletions(Map<Integer, List<CeesUser>> groupedUsers) {
// 处理学生数据删除
if (groupedUsers.containsKey(2)) {
List<String> studentUserIds = groupedUsers.get(2).stream()
.map(CeesUser::getUserId)
.collect(Collectors.toList());
studentService.removeBatchByUserIds(studentUserIds);
}
// 处理本校老师数据删除
if (groupedUsers.containsKey(3)) {
List<String> localTeacherUserIds = groupedUsers.get(3).stream()
.map(CeesUser::getUserId)
.collect(Collectors.toList());
ceesLocalTeacherService.removeBatchByUserIds(localTeacherUserIds);
}
// 处理外校老师数据删除
if (groupedUsers.containsKey(4)) {
List<String> waiTeacherUserIds = groupedUsers.get(4).stream()
.map(CeesUser::getUserId)
.collect(Collectors.toList());
ceesWaiTeacherService.removeBatchByUserIds(waiTeacherUserIds);
}
}
/**
* 通过id查询
*

View File

@ -144,6 +144,7 @@ public class CeesWaiTeacherController extends JeecgController<CeesWaiTeacher, IC
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ceesWaiTeacherService.removeById(id);
ceesUserService.removeById(id);
return Result.OK("删除成功!");
}
@ -158,6 +159,7 @@ public class CeesWaiTeacherController extends JeecgController<CeesWaiTeacher, IC
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.ceesWaiTeacherService.removeByIds(Arrays.asList(ids.split(",")));
ceesUserService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}

View File

@ -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.service.ICeesUserService;
import org.jeecg.modules.service.IStudentService;
import org.jeecg.modules.system.entity.SysRole;
import org.jeecg.modules.system.entity.SysUserRole;
@ -48,6 +49,8 @@ public class StudentController extends JeecgController<Student, IStudentService>
SysUserRoleMapper sysUserRoleMapper;
@Autowired
SysRoleMapper sysRoleMapper;
@Autowired
private ICeesUserService ceesUserService;
/**
* 分页列表查询
@ -132,6 +135,7 @@ public class StudentController extends JeecgController<Student, IStudentService>
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
studentService.removeById(id);
ceesUserService.removeById(id);
return Result.OK("删除成功!");
}
@ -146,6 +150,7 @@ public class StudentController extends JeecgController<Student, IStudentService>
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.studentService.removeByIds(Arrays.asList(ids.split(",")));
ceesUserService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.CeesLocalTeacher;
import java.util.List;
import java.util.Map;
/**
@ -18,4 +19,8 @@ public interface ICeesLocalTeacherService extends IService<CeesLocalTeacher> {
Result<?> h5Save(CeesLocalTeacher ceesLocalTeacher);
Result<?> batchGroup(Map<String, Object> webData);
String removeByUserId(String userId);
boolean removeBatchByUserIds(List<String> localTeacherUserIds);
}

View File

@ -8,6 +8,7 @@ import org.jeecg.modules.entity.CeesWaiTeacher;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
@ -36,4 +37,8 @@ public interface ICeesWaiTeacherService extends IService<CeesWaiTeacher> {
Result<?> batchGroup(Map<String, Object> webData);
Result<String> addData(CeesWaiTeacher ceesWaiTeacher);
String removeByUserId(String userId);
boolean removeBatchByUserIds(List<String> waiTeacherUserIds);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.Student;
import java.util.List;
import java.util.Map;
/**
@ -17,4 +18,8 @@ public interface IStudentService extends IService<Student> {
Result<?> h5Save(Student student);
Result<?> batchGroup(Map<String, Object> webData);
String removeByUserId(String userId);
boolean removeBatchByUserIds(List<String> studentUserIds);
}

View File

@ -164,4 +164,27 @@ public class CeesLocalTeacherServiceImpl extends ServiceImpl<CeesLocalTeacherMap
resultJson.put("user", userJson);
return Result.ok(resultJson);
}
@Override
public String removeByUserId(String userId) {
LambdaQueryWrapper<CeesLocalTeacher> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CeesLocalTeacher::getUserId, userId);
CeesLocalTeacher ceesLocalTeacher = ceesLocalTeacherMapper.selectOne(queryWrapper);
if(ceesLocalTeacher == null) {
return "null";
}
int affectedRows = ceesLocalTeacherMapper.delete(queryWrapper);
if (affectedRows > 0) {
return "true";
}else{
return "false";
}
}
@Override
public boolean removeBatchByUserIds(List<String> userIds) {
LambdaQueryWrapper<CeesLocalTeacher> wrapper = new LambdaQueryWrapper<>();
wrapper.in(CeesLocalTeacher::getUserId, userIds);
return this.remove(wrapper);
}
}

View File

@ -12,7 +12,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.apache.shiro.SecurityUtils;
import org.apache.tomcat.Jar;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
@ -195,7 +194,7 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
ceesWaiTeacher.setMajorId(ceesUser.getMajorId());
ceesWaiTeacher.setUserMajorId(ceesUser.getUserMajorId());
ceesWaiTeacher.setOpenId(ceesWaiTeacher.getOpenId());
ceesWaiTeacher.setUnionId(ceesWaiTeacher.getUnionId());
//加密
ceesWaiTeacher.setPyCard(JasyptUtil.encrypt(ceesWaiTeacher.getPyCard(),passWord));
ceesWaiTeacher.setIdentityId((JasyptUtil.encrypt(ceesWaiTeacher.getIdentityId(),passWord)));
@ -203,6 +202,7 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
this.save(ceesWaiTeacher);
ceesUser.setUserName(ceesWaiTeacher.getUserName());
ceesUser.setOpenId(ceesWaiTeacher.getOpenId());
ceesUser.setUnionId(ceesWaiTeacher.getUnionId());
ceesUserMapper.updateById(ceesUser);
// TODO 邀请函的更新
@ -352,4 +352,27 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
}
return Result.error("添加失败");
}
@Override
public String removeByUserId(String userId) {
LambdaQueryWrapper<CeesWaiTeacher> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CeesWaiTeacher::getUserId, userId);
CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectOne(queryWrapper);
if (ceesWaiTeacher == null) {
return "null";
}
int affectedRows = ceesWaiTeacherMapper.delete(queryWrapper);
if (affectedRows > 0) {
return "true";
}else{
return "false";
}
}
@Override
public boolean removeBatchByUserIds(List<String> userIds) {
LambdaQueryWrapper<CeesWaiTeacher> wrapper = new LambdaQueryWrapper<>();
wrapper.in(CeesWaiTeacher::getUserId, userIds);
return this.remove(wrapper);
}
}

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.CeesUser;
import org.jeecg.modules.entity.CeesWaiTeacher;
import org.jeecg.modules.entity.Student;
import org.jeecg.modules.entity.dto.UpdateGroupUserDto;
import org.jeecg.modules.mapper.CeesGroupMapper;
@ -160,4 +159,26 @@ public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> impl
resultJson.put("user", userJson);
return Result.ok(resultJson);
}
@Override
public String removeByUserId(String userId) {
LambdaQueryWrapper<Student> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Student::getUserId, userId);
Student student = studentMapper.selectOne(queryWrapper);
if(student == null) {
return "null";
}
int affectedRows = studentMapper.delete(queryWrapper);
if (affectedRows > 0) {
return "true";
}else{
return "false";
}
}
@Override
public boolean removeBatchByUserIds(List<String> userIds) {
LambdaQueryWrapper<Student> wrapper = new LambdaQueryWrapper<>();
wrapper.in(Student::getUserId, userIds);
return this.remove(wrapper);
}
}