From 25e5c085749f1929bb22bd45af559ee07fbaabde Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 7 Dec 2025 15:08:38 +0800 Subject: [PATCH] =?UTF-8?q?tlias=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F--?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E7=AE=A1=E7=90=86-=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E8=BF=9B=E9=98=B6-rollbackFor=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/inmind/controller/DeptController.java | 2 +- .../java/com/inmind/mapper/EmpMapper.java | 7 +++++++ .../java/com/inmind/service/DeptService.java | 2 +- .../inmind/service/impl/DeptServiceImpl.java | 19 ++++++++++++++++++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/tlias-web-management/src/main/java/com/inmind/controller/DeptController.java b/tlias-web-management/src/main/java/com/inmind/controller/DeptController.java index 1700625..383b98c 100644 --- a/tlias-web-management/src/main/java/com/inmind/controller/DeptController.java +++ b/tlias-web-management/src/main/java/com/inmind/controller/DeptController.java @@ -36,7 +36,7 @@ public class DeptController { } @DeleteMapping("/{id}") - public Result delete(@PathVariable Integer id){ + public Result delete(@PathVariable Integer id) throws Exception { log.info("删除部门:{}",id); deptService.delete(id); return Result.success(); diff --git a/tlias-web-management/src/main/java/com/inmind/mapper/EmpMapper.java b/tlias-web-management/src/main/java/com/inmind/mapper/EmpMapper.java index c73845f..98cafe8 100644 --- a/tlias-web-management/src/main/java/com/inmind/mapper/EmpMapper.java +++ b/tlias-web-management/src/main/java/com/inmind/mapper/EmpMapper.java @@ -65,4 +65,11 @@ public interface EmpMapper { @Select("select * from emp where username = #{username} and password = #{password} ") Emp getEmpByUserNameAndPassword(Emp emp); + + /** + * 根据部门id删除员工 + * @param deptId + */ + @Delete("delete from emp where dept_id = #{deptId}") + void deleteByDeptId(Integer deptId); } diff --git a/tlias-web-management/src/main/java/com/inmind/service/DeptService.java b/tlias-web-management/src/main/java/com/inmind/service/DeptService.java index efc7ffb..14e3c7b 100644 --- a/tlias-web-management/src/main/java/com/inmind/service/DeptService.java +++ b/tlias-web-management/src/main/java/com/inmind/service/DeptService.java @@ -14,7 +14,7 @@ public interface DeptService { * 根据id删除部门 * @param id */ - void delete(Integer id); + void delete(Integer id) throws Exception; /** * 新增部门 diff --git a/tlias-web-management/src/main/java/com/inmind/service/impl/DeptServiceImpl.java b/tlias-web-management/src/main/java/com/inmind/service/impl/DeptServiceImpl.java index 9e5cdce..ca976dc 100644 --- a/tlias-web-management/src/main/java/com/inmind/service/impl/DeptServiceImpl.java +++ b/tlias-web-management/src/main/java/com/inmind/service/impl/DeptServiceImpl.java @@ -1,11 +1,13 @@ package com.inmind.service.impl; import com.inmind.mapper.DeptMapper; +import com.inmind.mapper.EmpMapper; import com.inmind.pojo.Dept; import com.inmind.service.DeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; @@ -15,6 +17,10 @@ public class DeptServiceImpl implements DeptService { @Autowired//从spring容器中获取DeptMapper类的实现类对象,进行自动注入(DI) private DeptMapper deptMapper; + + @Autowired + private EmpMapper empMapper; + /** * 查询所有部门信息 * @return @@ -30,9 +36,20 @@ public class DeptServiceImpl implements DeptService { * 根据id删除部门 * @param id */ + @Transactional(rollbackFor = Exception.class)//将当前的删除功能交给事务管理,达到全成功或全失败的业务功能 @Override - public void delete(Integer id) { + public void delete(Integer id) throws Exception { deptMapper.delete(id); + + //todo 可能存在大量的业务处理代码,而代码可能会出现业务异常 +// int a = 1/0; + + if (true) { + throw new Exception();//模拟抛出一个编译时异常 + } + + //当删除部门时,也要把相关的员工删除掉 + empMapper.deleteByDeptId(id); } @Override