From ae5e5889d56bf0f59adc761b577ba0dfa3178fd8 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 15:39:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E6=97=B6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=88=A4=E6=96=AD=E5=AD=98=E5=9C=A8=E6=8E=92?= =?UTF-8?q?=E7=8F=AD=E4=BB=BB=E5=8A=A1=E6=97=B6=EF=BC=8C=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E5=85=B3=E8=81=94?= =?UTF-8?q?=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1=E7=AD=89=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysUserController.java | 20 ++++++-- .../system/service/ISysUserService.java | 10 +++- .../service/impl/SysUserServiceImpl.java | 47 +++++++++++++++++-- 3 files changed, 70 insertions(+), 7 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 5cfc0fbc..8d87a97a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -49,6 +49,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -223,9 +224,22 @@ public class SysUserController { @RequestMapping(value = "/delete", method = RequestMethod.DELETE) public Result delete(@RequestParam(name="id",required=true) String id) { baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); - this.sysUserService.deleteUser(id); - return Result.ok("删除用户成功"); - } + try { + return this.sysUserService.deleteUser(id); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * 删除用户 + */ + //@RequiresPermissions("system:user:delete") + @RequestMapping(value = "/deleteById", method = RequestMethod.DELETE) + public Result deleteById(@RequestParam(name="id",required=true) String id) { + baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); + return this.sysUserService.deleteById(id); + } /** * 批量删除用户 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 34a427f2..fa081336 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -17,6 +17,7 @@ import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.Collection; import java.util.List; import java.util.Map; @@ -67,7 +68,14 @@ public interface ISysUserService extends IService { * @param userId * @return */ - public boolean deleteUser(String userId); + public Result deleteUser(String userId) throws ParseException; + + /** + * 删除用户 + * @param userId + * @return + */ + public Result deleteById(String userId); /** * 批量删除用户 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 1f186baf..ca362795 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -50,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -97,6 +98,10 @@ public class SysUserServiceImpl extends ServiceImpl impl private SysUserTenantMapper relationMapper; @Autowired private SysUserTenantMapper userTenantMapper; + @Autowired + private SysTaskMapper sysTaskMapper; + @Autowired + private SysTaskStationMapper sysTaskStationMapper; @Value("${system.auth.defaultPassword}") private String defaultPassword; @@ -220,10 +225,46 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true) @Transactional(rollbackFor = Exception.class) - public boolean deleteUser(String userId) { + public Result deleteUser(String userId) throws ParseException { + //判断当前用户是否有排班任务,如果有就不让删除 + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.eq(SysTask::getUserId, userId); + taskQueryWrapper.ge(SysTask::getSchedulingDate, DateUtils.parseDate(DateUtils.formatDate(new Date()) ,"yyyy-MM-dd")); + List sysTasks = sysTaskMapper.selectList(taskQueryWrapper); + if (CollectionUtils.isNotEmpty(sysTasks)){ + return Result.error("删除失败, 当前用户存在排班任务信息!"); + } + //删除用户关联的权限信息 + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + userRoleQueryWrapper.eq(SysUserRole::getUserId, userId); + sysUserRoleMapper.delete(userRoleQueryWrapper); //1.删除用户 - this.removeById(userId); - return false; + this.baseMapper.deleteById(userId); + return Result.ok("删除用户成功"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result deleteById(String userId) { + //根据用户id删除排班任务信息 + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.eq(SysTask::getUserId, userId); + List sysTasks = sysTaskMapper.selectList(taskQueryWrapper); + //如果排班任务信息不为空,删除排班任务相关台站信息 + if (CollectionUtils.isNotEmpty(sysTasks)){ + List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); + LambdaQueryWrapper taskStationQueryWrapper = new LambdaQueryWrapper<>(); + taskStationQueryWrapper.in(SysTaskStation::getTaskId, taskIds); + sysTaskStationMapper.delete(taskStationQueryWrapper); + } + sysTaskMapper.delete(taskQueryWrapper); + //删除用户关联的权限信息 + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + userRoleQueryWrapper.eq(SysUserRole::getUserId, userId); + sysUserRoleMapper.delete(userRoleQueryWrapper); + //1.删除用户 + this.baseMapper.deleteById(userId); + return Result.ok("删除用户成功"); } @Override