|
|
@@ -2,11 +2,9 @@ package com.ruoyi.info.management.service.impl;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collection;
|
|
|
-import java.util.Collections;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
@@ -18,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.ruoyi.common.constant.Constants;
|
|
|
import com.ruoyi.common.core.domain.PageQuery;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
@@ -39,7 +36,6 @@ import com.ruoyi.info.management.service.IManagementTeacherService;
|
|
|
import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
|
|
|
import com.ruoyi.info.nursing.domain.bo.EnableStatusBo;
|
|
|
import com.ruoyi.info.nursing.enums.EnableStatusEnum;
|
|
|
-import com.ruoyi.user.domain.User;
|
|
|
import com.ruoyi.user.service.IUserService;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
@@ -69,16 +65,10 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
|
|
|
|
|
|
private final ITeacherDepartmentRelService teacherDepartmentRelService;
|
|
|
|
|
|
- private final StringRedisTemplate stringRedisTemplate;
|
|
|
-
|
|
|
@Lazy
|
|
|
@Resource
|
|
|
private ApiTokenService apiTokenService;
|
|
|
|
|
|
- @Lazy
|
|
|
- @Resource
|
|
|
- private IUserService iUserService;
|
|
|
-
|
|
|
/**
|
|
|
* 查询管理老师信息分页
|
|
|
*
|
|
|
@@ -184,6 +174,8 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
|
|
|
validEntityBeforeSave(bo);
|
|
|
|
|
|
ManagementTeacher managementTeacher = baseMapper.selectById(bo.getId());
|
|
|
+ String currentStatus = managementTeacher.getEnableStatus();
|
|
|
+ String currentMobile = managementTeacher.getPhoneNumber();
|
|
|
if (ObjectUtil.isEmpty(managementTeacher)) {
|
|
|
throw new ServiceException(ManagementTeacherExceptionEnum.MANAGEMENT_TEACHER_IS_NOT_EXISTS);
|
|
|
}
|
|
|
@@ -202,6 +194,13 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
|
|
|
h -> new TeacherDepartmentRel(bo.getId(), h.getHospitalId(), h.getId())) ;
|
|
|
teacherDepartmentRelMapper.insertBatch(teacherDepartmentRelSaveList);
|
|
|
}
|
|
|
+
|
|
|
+ // 如果状态从启用变为了禁用,则强制踢出该护工的登录状态
|
|
|
+ if ((StringUtils.equals(currentStatus, EnableStatusEnum.ENABLE.getKey()) && StringUtils.equals(bo.getEnableStatus(), EnableStatusEnum.FORBIDDEN.getKey()))
|
|
|
+ || !StringUtils.equals(currentMobile, bo.getPhoneNumber())) {
|
|
|
+ apiTokenService.forcedLogoutByMobile(currentMobile);
|
|
|
+ }
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -242,6 +241,7 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
|
|
|
if(isValid){
|
|
|
//TODO 做一些业务上的校验,判断是否需要校验
|
|
|
}
|
|
|
+ List<ManagementTeacher> managementTeachers = baseMapper.selectBatchIds(ids);
|
|
|
baseMapper.deleteBatchIds(ids);
|
|
|
|
|
|
for (Long id : ids) {
|
|
|
@@ -249,6 +249,9 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
|
|
|
List<TeacherDepartmentRel> teacherDepartmentRelDBList = teacherDepartmentRelService.queryByTeacherId(id);
|
|
|
teacherDepartmentRelMapper.deleteBatchIds(convertSet(teacherDepartmentRelDBList, TeacherDepartmentRel::getId));
|
|
|
}
|
|
|
+
|
|
|
+ // 强制踢出管理老师
|
|
|
+ managementTeachers.forEach(managementTeacher -> apiTokenService.forcedLogoutByMobile(managementTeacher.getPhoneNumber()));
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -267,14 +270,7 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
|
|
|
|
|
|
// 如果是禁用状态 则需要强制踢出小程序端的登录用户
|
|
|
if (EnableStatusEnum.isForbidden(bo.getEnableStatus())) {
|
|
|
- // 获取护工对应的用户id
|
|
|
- User user = iUserService.loadByMobile(managementTeacher.getPhoneNumber(), true);
|
|
|
- Set<String> tokens = stringRedisTemplate.opsForSet().members(Constants.JWT_ONLINE_USER_TOKEN + user.getId());
|
|
|
- if (CollUtil.isNotEmpty(tokens)) {
|
|
|
- for (String token : tokens) {
|
|
|
- apiTokenService.removeToken(token);
|
|
|
- }
|
|
|
- }
|
|
|
+ apiTokenService.forcedLogoutByMobile(managementTeacher.getPhoneNumber());
|
|
|
}
|
|
|
}
|
|
|
|