|
@@ -1,12 +1,16 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysRole;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.EmployeeDto;
|
|
|
import com.ym.mec.biz.dal.dto.EmployeeLevelDto;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.entity.Employee;
|
|
|
+import com.ym.mec.biz.dal.entity.Organization;
|
|
|
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
+import com.ym.mec.biz.dal.entity.TenantInfo;
|
|
|
import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
|
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
import com.ym.mec.biz.dal.enums.ParamEnum;
|
|
@@ -40,32 +44,32 @@ import java.util.concurrent.Executors;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
-public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
|
|
|
+public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
|
|
|
|
|
|
- @Autowired
|
|
|
- private EmployeeDao employeeDao;
|
|
|
- @Autowired
|
|
|
- private ImFeignService imFeignService;
|
|
|
- @Autowired
|
|
|
- private ImGroupMemberService imGroupMemberService;
|
|
|
- @Autowired
|
|
|
- private SysUserFeignService sysUserFeignService;
|
|
|
- @Autowired
|
|
|
- private TeacherDao teacherDao;
|
|
|
- @Autowired
|
|
|
- private SysUserCashAccountDao sysUserCashAccountDao;
|
|
|
- @Autowired
|
|
|
- private ClassGroupDao classGroupDao;
|
|
|
- @Autowired
|
|
|
- private ImUserFriendService imUserFriendService;
|
|
|
- @Autowired
|
|
|
- private OrganizationDao organizationDao;
|
|
|
- @Autowired
|
|
|
- private ImGroupDao imGroupDao;
|
|
|
- @Autowired
|
|
|
- private CooperationOrganDao cooperationOrganDao;
|
|
|
- @Autowired
|
|
|
- private OaUserService oaUserService;
|
|
|
+ @Autowired
|
|
|
+ private EmployeeDao employeeDao;
|
|
|
+ @Autowired
|
|
|
+ private ImFeignService imFeignService;
|
|
|
+ @Autowired
|
|
|
+ private ImGroupMemberService imGroupMemberService;
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
+ @Autowired
|
|
|
+ private TeacherDao teacherDao;
|
|
|
+ @Autowired
|
|
|
+ private SysUserCashAccountDao sysUserCashAccountDao;
|
|
|
+ @Autowired
|
|
|
+ private ClassGroupDao classGroupDao;
|
|
|
+ @Autowired
|
|
|
+ private ImUserFriendService imUserFriendService;
|
|
|
+ @Autowired
|
|
|
+ private OrganizationDao organizationDao;
|
|
|
+ @Autowired
|
|
|
+ private ImGroupDao imGroupDao;
|
|
|
+ @Autowired
|
|
|
+ private CooperationOrganDao cooperationOrganDao;
|
|
|
+ @Autowired
|
|
|
+ private OaUserService oaUserService;
|
|
|
@Autowired
|
|
|
private TenantInfoService tenantInfoService;
|
|
|
@Autowired
|
|
@@ -73,384 +77,384 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
|
@Autowired
|
|
|
private SysEmployeePositionDao employeePositionDao;
|
|
|
|
|
|
- @Override
|
|
|
- public BaseDAO<Integer, Employee> getDAO() {
|
|
|
- return employeeDao;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public BaseDAO<Integer, Employee> getDAO() {
|
|
|
+ return employeeDao;
|
|
|
+ }
|
|
|
|
|
|
- public static void checkTenantId(Integer tenantId,Integer targetTenantId){
|
|
|
- //如果机构不一致,不允许跨机构注册
|
|
|
- if(tenantId != null && tenantId != 0 && !tenantId.equals(targetTenantId)){
|
|
|
- throw new LockedException("用户已注册");
|
|
|
- }
|
|
|
- }
|
|
|
+ public static void checkTenantId(Integer tenantId, Integer targetTenantId) {
|
|
|
+ //如果机构不一致,不允许跨机构注册
|
|
|
+ if (tenantId != null && tenantId != 0 && !tenantId.equals(targetTenantId)) {
|
|
|
+ throw new LockedException("用户已注册");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void add(Employee employee){
|
|
|
- SysUser user = teacherDao.getUserWithPhone(employee.getPhone());
|
|
|
- Integer tenantId = employee.getTenantId();
|
|
|
- if(user != null && user.getId() != null){
|
|
|
- checkTenantId(tenantId,user.getTenantId());
|
|
|
- Employee employee1 = employeeDao.get(user.getId());
|
|
|
- if(employee1 == null){
|
|
|
- if(StringUtils.isEmpty(user.getPassword())){
|
|
|
- // 修改 gym + 联系人手机后4位
|
|
|
- int phoneStrLen = employee.getPhone().length();
|
|
|
- employee.setPassword(new BCryptPasswordEncoder().encode("gym" + employee.getPhone().substring(phoneStrLen - 4, phoneStrLen)));
|
|
|
- // employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
|
|
|
- }
|
|
|
- employee.setUserId(user.getId());
|
|
|
- employee.setId(user.getId());
|
|
|
- employeeDao.insert(employee);
|
|
|
- //新增用户角色
|
|
|
- employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds(), tenantId);
|
|
|
- //新增用户职位
|
|
|
- employeePositionService.batchAddPosition(employee.getId(),employee.getPositionIds(), tenantId);
|
|
|
- employee.setUserType(user.getUserType() + ",SYSTEM");
|
|
|
- teacherDao.updateUser(employee);
|
|
|
- return;
|
|
|
- }else{
|
|
|
- throw new BizException("员工已存在");
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void add(Employee employee) {
|
|
|
+ SysUser user = teacherDao.getUserWithPhone(employee.getPhone());
|
|
|
+ Integer tenantId = employee.getTenantId();
|
|
|
+ if (user != null && user.getId() != null) {
|
|
|
+ checkTenantId(tenantId, user.getTenantId());
|
|
|
+ Employee employee1 = employeeDao.get(user.getId());
|
|
|
+ if (employee1 == null) {
|
|
|
+ if (StringUtils.isEmpty(user.getPassword())) {
|
|
|
+ // 修改 gym + 联系人手机后4位
|
|
|
+ int phoneStrLen = employee.getPhone().length();
|
|
|
+ employee.setPassword(new BCryptPasswordEncoder().encode("gym" + employee.getPhone().substring(phoneStrLen - 4, phoneStrLen)));
|
|
|
+ // employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
|
|
|
+ }
|
|
|
+ employee.setUserId(user.getId());
|
|
|
+ employee.setId(user.getId());
|
|
|
+ employeeDao.insert(employee);
|
|
|
+ //新增用户角色
|
|
|
+ employeeDao.batchAddEmployeeRole(user.getId(), employee.getRoleIds(), tenantId);
|
|
|
+ //新增用户职位
|
|
|
+ employeePositionService.batchAddPosition(employee.getId(), employee.getPositionIds(), tenantId);
|
|
|
+ employee.setUserType(user.getUserType() + ",SYSTEM");
|
|
|
+ teacherDao.updateUser(employee);
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ throw new BizException("员工已存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (StringUtils.isBlank(employee.getPassword())) {
|
|
|
int phoneStrLen = employee.getPhone().length();
|
|
|
employee.setPassword(new BCryptPasswordEncoder().encode("gym" + employee.getPhone().substring(phoneStrLen - 4, phoneStrLen)));
|
|
|
}
|
|
|
employee.setUserType("SYSTEM");
|
|
|
- teacherDao.addSysUser(employee);
|
|
|
- employee.setUserId(employee.getId());
|
|
|
+ teacherDao.addSysUser(employee);
|
|
|
+ employee.setUserId(employee.getId());
|
|
|
employeeDao.insert(employee);
|
|
|
- //新增用户角色
|
|
|
- employeeDao.batchAddEmployeeRole(employee.getId(),employee.getRoleIds(), tenantId);
|
|
|
- //新增用户职位
|
|
|
- employeePositionService.batchAddPosition(employee.getId(),employee.getPositionIds(), tenantId);
|
|
|
- //添加用户现金账户
|
|
|
- sysUserCashAccountDao.insert(new SysUserCashAccount(employee.getId(), tenantId,"CNY"));
|
|
|
- ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(),null));
|
|
|
- employee.setImToken(imResult.getToken());
|
|
|
- teacherDao.updateUser(employee);
|
|
|
- if(user != null){
|
|
|
- employee.setAvatar(user.getAvatar());
|
|
|
- }
|
|
|
+ //新增用户角色
|
|
|
+ employeeDao.batchAddEmployeeRole(employee.getId(), employee.getRoleIds(), tenantId);
|
|
|
+ //新增用户职位
|
|
|
+ employeePositionService.batchAddPosition(employee.getId(), employee.getPositionIds(), tenantId);
|
|
|
+ //添加用户现金账户
|
|
|
+ sysUserCashAccountDao.insert(new SysUserCashAccount(employee.getId(), tenantId, "CNY"));
|
|
|
+ ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(), null));
|
|
|
+ employee.setImToken(imResult.getToken());
|
|
|
+ teacherDao.updateUser(employee);
|
|
|
+ if (user != null) {
|
|
|
+ employee.setAvatar(user.getAvatar());
|
|
|
+ }
|
|
|
|
|
|
- //添加到OA
|
|
|
- oaUserService.addOaUser(employee);
|
|
|
- }
|
|
|
+ //添加到OA
|
|
|
+ oaUserService.addOaUser(employee);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateEmployee(Employee employee) {
|
|
|
- Employee employee1 = employeeDao.get(employee.getId());
|
|
|
- if(null==employee1){
|
|
|
- throw new BizException("员工信息不存在");
|
|
|
- }
|
|
|
- employee.setUserId(employee.getId());
|
|
|
- SysUser sysUser = teacherDao.getUserWithPhone(employee.getPhone());
|
|
|
- if(StringUtils.isNotEmpty(employee.getPhone())){
|
|
|
- if(sysUser != null && !sysUser.getId().equals(employee.getUserId())){
|
|
|
- throw new BizException("手机号已存在");
|
|
|
- }
|
|
|
- if(sysUser == null){
|
|
|
- sysUser = sysUserFeignService.queryUserInfo();
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void updateEmployee(Employee employee) {
|
|
|
+ Employee employee1 = employeeDao.get(employee.getId());
|
|
|
+ if (null == employee1) {
|
|
|
+ throw new BizException("员工信息不存在");
|
|
|
+ }
|
|
|
+ employee.setUserId(employee.getId());
|
|
|
+ SysUser sysUser = teacherDao.getUserWithPhone(employee.getPhone());
|
|
|
+ if (StringUtils.isNotEmpty(employee.getPhone())) {
|
|
|
+ if (sysUser != null && !sysUser.getId().equals(employee.getUserId())) {
|
|
|
+ throw new BizException("手机号已存在");
|
|
|
+ }
|
|
|
+ if (sysUser == null) {
|
|
|
+ sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 同步更新机构手机号 如果它存在 138xxx -> 159xxx
|
|
|
- SysUser user = teacherDao.getUser(employee.getId());
|
|
|
- if (!Objects.equals(user.getPhone(), employee.getPhone())) {
|
|
|
- tenantInfoService.updatePhone(employee.getPhone(), user.getPhone());
|
|
|
- }
|
|
|
+ // 同步更新机构手机号 如果它存在 138xxx -> 159xxx
|
|
|
+ SysUser user = teacherDao.getUser(employee.getId());
|
|
|
+ if (!Objects.equals(user.getPhone(), employee.getPhone())) {
|
|
|
+ tenantInfoService.updatePhone(employee.getPhone(), user.getPhone());
|
|
|
+ }
|
|
|
|
|
|
- employeeDao.update(employee);
|
|
|
- //删除当前用户角色
|
|
|
- employeeDao.delEmployeeRole(employee.getId());
|
|
|
- //新增用户角色
|
|
|
- Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
- employeeDao.batchAddEmployeeRole(employee.getId(),employee.getRoleIds(), tenantId);
|
|
|
+ employeeDao.update(employee);
|
|
|
+ //删除当前用户角色
|
|
|
+ employeeDao.delEmployeeRole(employee.getId());
|
|
|
+ //新增用户角色
|
|
|
+ Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
+ employeeDao.batchAddEmployeeRole(employee.getId(), employee.getRoleIds(), tenantId);
|
|
|
|
|
|
- //删除用户职位
|
|
|
- employeePositionService.delPosition(employee.getId(),tenantId);
|
|
|
- //添加职位
|
|
|
- employeePositionService.batchAddPosition(employee.getId(),employee.getPositionIds(), tenantId);
|
|
|
- teacherDao.updateUser(employee);
|
|
|
- imGroupDao.updateNickname(employee.getUserId(), employee.getRealName());
|
|
|
- imGroupDao.updateUserFriendNickname(employee.getUserId(), employee.getRealName());
|
|
|
- imFeignService.update(new ImUserModel(employee.getUserId().toString(),employee.getRealName(),sysUser.getAvatar()));
|
|
|
+ //删除用户职位
|
|
|
+ employeePositionService.delPosition(employee.getId(), tenantId);
|
|
|
+ //添加职位
|
|
|
+ employeePositionService.batchAddPosition(employee.getId(), employee.getPositionIds(), tenantId);
|
|
|
+ teacherDao.updateUser(employee);
|
|
|
+ imGroupDao.updateNickname(employee.getUserId(), employee.getRealName());
|
|
|
+ imGroupDao.updateUserFriendNickname(employee.getUserId(), employee.getRealName());
|
|
|
+ imFeignService.update(new ImUserModel(employee.getUserId().toString(), employee.getRealName(), sysUser.getAvatar()));
|
|
|
|
|
|
- employee.setAvatar(sysUser.getAvatar());
|
|
|
+ employee.setAvatar(sysUser.getAvatar());
|
|
|
//更新机构信息
|
|
|
TenantInfo tenantInfo = tenantInfoService.getOne(new WrapperUtil<TenantInfo>()
|
|
|
- .queryWrapper().eq("user_id_",employee.getId()));
|
|
|
- if(Objects.nonNull(tenantInfo) && !Objects.equals(tenantInfo.getPhone(),employee.getPhone())){
|
|
|
+ .queryWrapper().eq("user_id_", employee.getId()));
|
|
|
+ if (Objects.nonNull(tenantInfo) && !Objects.equals(tenantInfo.getPhone(), employee.getPhone())) {
|
|
|
tenantInfo.setPhone(employee.getPhone());
|
|
|
tenantInfo.setUpdatedTime(new Date());
|
|
|
tenantInfo.setUpdatedBy(sysUser.getId());
|
|
|
tenantInfoService.updateById(tenantInfo);
|
|
|
}
|
|
|
|
|
|
- //更新OA信息
|
|
|
- oaUserService.updateOaUser(employee);
|
|
|
- }
|
|
|
+ //更新OA信息
|
|
|
+ oaUserService.updateOaUser(employee);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public PageInfo queryEmployByOrganId(EmployeeQueryInfo queryInfo){
|
|
|
- SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
- if(user == null){
|
|
|
- throw new BizException("获取用户信息失败");
|
|
|
- }
|
|
|
- PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- MapUtil.populateMap(params, queryInfo);
|
|
|
- List<EmployeeDto> dataList = null;
|
|
|
- int count = employeeDao.queryEmployByOrganIdCount(params);
|
|
|
- if (count > 0) {
|
|
|
- pageInfo.setTotal(count);
|
|
|
- params.put("offset", pageInfo.getOffset());
|
|
|
- dataList = employeeDao.queryEmployByOrganId(params);
|
|
|
- Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
- List<Integer> userIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
- Map<Integer,String> positionMap = MapUtil.convertMybatisMap(employeePositionDao.queryPositionMap(userIds,tenantId));
|
|
|
- Map<Integer,String> positionNameMap = MapUtil.convertMybatisMap(employeePositionDao.queryPositionNameMap(userIds,tenantId));
|
|
|
- List<Integer> allOrganIds = new ArrayList<>();
|
|
|
- for (EmployeeDto employeeDto : dataList) {
|
|
|
- employeeDto.setPositionIds(positionMap.get(employeeDto.getId()));
|
|
|
- employeeDto.setPositionNames(positionNameMap.get(employeeDto.getId()));
|
|
|
- if(StringUtils.isBlank(employeeDto.getOrganIdStr())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- List<Integer> organIds = Arrays.stream(employeeDto.getOrganIdStr().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
|
|
|
- allOrganIds.addAll(organIds);
|
|
|
- }
|
|
|
- if(!CollectionUtils.isEmpty(allOrganIds)){
|
|
|
- List<Organization> allOrgans = organizationDao.findOrgans(allOrganIds);
|
|
|
- for (EmployeeDto employeeDto : dataList) {
|
|
|
- if(StringUtils.isBlank(employeeDto.getOrganIdStr())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- List<Integer> organIds = Arrays.stream(employeeDto.getOrganIdStr().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
|
|
|
- List<Organization> organs = allOrgans.stream().filter(organ -> organIds.contains(organ.getId())).collect(Collectors.toList());
|
|
|
- List<String> organNames = organs.stream().map(Organization::getName).collect(Collectors.toList());
|
|
|
- employeeDto.setOrganNameList(organNames);
|
|
|
- employeeDto.setOrganIdList(organIds.stream().mapToLong(Long::valueOf).boxed().collect(Collectors.toList()));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (count == 0) {
|
|
|
- dataList = new ArrayList<>();
|
|
|
- }
|
|
|
- pageInfo.setRows(dataList);
|
|
|
- return pageInfo;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public PageInfo queryEmployByOrganId(EmployeeQueryInfo queryInfo) {
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
+ if (user == null) {
|
|
|
+ throw new BizException("获取用户信息失败");
|
|
|
+ }
|
|
|
+ PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+ List<EmployeeDto> dataList = null;
|
|
|
+ int count = employeeDao.queryEmployByOrganIdCount(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = employeeDao.queryEmployByOrganId(params);
|
|
|
+ Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
+ List<Integer> userIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ Map<Integer, String> positionMap = MapUtil.convertMybatisMap(employeePositionDao.queryPositionMap(userIds, tenantId));
|
|
|
+ Map<Integer, String> positionNameMap = MapUtil.convertMybatisMap(employeePositionDao.queryPositionNameMap(userIds, tenantId));
|
|
|
+ List<Integer> allOrganIds = new ArrayList<>();
|
|
|
+ for (EmployeeDto employeeDto : dataList) {
|
|
|
+ employeeDto.setPositionIds(positionMap.get(employeeDto.getId()));
|
|
|
+ employeeDto.setPositionNames(positionNameMap.get(employeeDto.getId()));
|
|
|
+ if (StringUtils.isBlank(employeeDto.getOrganIdStr())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<Integer> organIds = Arrays.stream(employeeDto.getOrganIdStr().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
|
|
|
+ allOrganIds.addAll(organIds);
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(allOrganIds)) {
|
|
|
+ List<Organization> allOrgans = organizationDao.findOrgans(allOrganIds);
|
|
|
+ for (EmployeeDto employeeDto : dataList) {
|
|
|
+ if (StringUtils.isBlank(employeeDto.getOrganIdStr())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<Integer> organIds = Arrays.stream(employeeDto.getOrganIdStr().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
|
|
|
+ List<Organization> organs = allOrgans.stream().filter(organ -> organIds.contains(organ.getId())).collect(Collectors.toList());
|
|
|
+ List<String> organNames = organs.stream().map(Organization::getName).collect(Collectors.toList());
|
|
|
+ employeeDto.setOrganNameList(organNames);
|
|
|
+ employeeDto.setOrganIdList(organIds.stream().mapToLong(Long::valueOf).boxed().collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void employeeOperate(Integer employeeId, EmployeeOperateEnum operate) {
|
|
|
- Employee employee = employeeDao.get(employeeId);
|
|
|
- SysUser sysUser = teacherDao.getUser(employeeId);
|
|
|
- switch (operate){
|
|
|
- case RESET_PASSWORD:
|
|
|
- employeeDao.updatePassword(employeeId,new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
|
|
|
- break;
|
|
|
- case LOCK_UNLOCK:
|
|
|
- if(employee != null && employee.getDemissionDate() != null && sysUser.getLockFlag() == 1){
|
|
|
- throw new BizException("操作失败:离职员工不允许解冻");
|
|
|
- }
|
|
|
- employeeDao.updateUserLockStatus(employeeId);
|
|
|
- if(sysUser.getUserType().contains("TEACHER")){
|
|
|
- sysUserFeignService.exitByPhone("teacher", sysUser.getPhone());
|
|
|
- }else if(sysUser.getUserType().contains("SYSTEM")){
|
|
|
- sysUserFeignService.exitByPhone("system", sysUser.getPhone());
|
|
|
- }
|
|
|
- break;
|
|
|
- case DEMISSION:
|
|
|
- employeeDao.updateUserLock(employeeId,1);
|
|
|
- employeeDao.updateUserDemissionDate(employeeId);
|
|
|
- sysUserFeignService.exitByPhone("system", sysUser.getPhone());
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void employeeOperate(Integer employeeId, EmployeeOperateEnum operate) {
|
|
|
+ Employee employee = employeeDao.get(employeeId);
|
|
|
+ SysUser sysUser = teacherDao.getUser(employeeId);
|
|
|
+ switch (operate) {
|
|
|
+ case RESET_PASSWORD:
|
|
|
+ employeeDao.updatePassword(employeeId, new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
|
|
|
+ break;
|
|
|
+ case LOCK_UNLOCK:
|
|
|
+ if (employee != null && employee.getDemissionDate() != null && sysUser.getLockFlag() == 1) {
|
|
|
+ throw new BizException("操作失败:离职员工不允许解冻");
|
|
|
+ }
|
|
|
+ employeeDao.updateUserLockStatus(employeeId);
|
|
|
+ if (sysUser.getUserType().contains("TEACHER")) {
|
|
|
+ sysUserFeignService.exitByPhone("teacher", sysUser.getPhone());
|
|
|
+ } else if (sysUser.getUserType().contains("SYSTEM")) {
|
|
|
+ sysUserFeignService.exitByPhone("system", sysUser.getPhone());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case DEMISSION:
|
|
|
+ employeeDao.updateUserLock(employeeId, 1);
|
|
|
+ employeeDao.updateUserDemissionDate(employeeId);
|
|
|
+ sysUserFeignService.exitByPhone("system", sysUser.getPhone());
|
|
|
|
|
|
- //更新OA信息
|
|
|
- oaUserService.delOaUser(employee);
|
|
|
- break;
|
|
|
- case REINSTATE:
|
|
|
- //离职,如果有关联课程组教务老师,
|
|
|
- employeeDao.updateUserDemissionDate(employeeId);
|
|
|
+ //更新OA信息
|
|
|
+ oaUserService.delOaUser(employee);
|
|
|
+ break;
|
|
|
+ case REINSTATE:
|
|
|
+ //离职,如果有关联课程组教务老师,
|
|
|
+ employeeDao.updateUserDemissionDate(employeeId);
|
|
|
|
|
|
- //更新OA信息
|
|
|
- oaUserService.reInsertOaUser(employee);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ //更新OA信息
|
|
|
+ oaUserService.reInsertOaUser(employee);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public HashMap<String, Integer> hasCourseGroupRelation(Integer employeeId) {
|
|
|
- Integer hasCourseGroupRelation = employeeDao.hasCourseGroupRelation(employeeId);
|
|
|
- Integer hasCourseSchedule = employeeDao.hasCourseSchedule(employeeId);
|
|
|
- HashMap<String, Integer> map = new HashMap<>(2);
|
|
|
- map.put("hasCourseGroupRelation",hasCourseGroupRelation);
|
|
|
- map.put("hasCourseSchedule",hasCourseSchedule);
|
|
|
- return map;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public HashMap<String, Integer> hasCourseGroupRelation(Integer employeeId) {
|
|
|
+ Integer hasCourseGroupRelation = employeeDao.hasCourseGroupRelation(employeeId);
|
|
|
+ Integer hasCourseSchedule = employeeDao.hasCourseSchedule(employeeId);
|
|
|
+ HashMap<String, Integer> map = new HashMap<>(2);
|
|
|
+ map.put("hasCourseGroupRelation", hasCourseGroupRelation);
|
|
|
+ map.put("hasCourseSchedule", hasCourseSchedule);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void updateEducationTeacherId(Integer currentUserId, Integer targetUserId) {
|
|
|
- employeeDao.updateEducationTeacherId(currentUserId,targetUserId);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void updateEducationTeacherId(Integer currentUserId, Integer targetUserId) {
|
|
|
+ employeeDao.updateEducationTeacherId(currentUserId, targetUserId);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public Map<String, Object> levelDetail(Integer userId) {
|
|
|
- Map<String,Object> resultMap = new HashMap<>(4);
|
|
|
- //维修技师所在分部列表
|
|
|
- List<Integer> repair = employeeDao.queryRepairOrganList(userId);
|
|
|
- resultMap.put("repair",repair);
|
|
|
- //教务老师所在分部列表
|
|
|
- List<Integer> education = employeeDao.queryEducationOrganList(userId);
|
|
|
- resultMap.put("education",education);
|
|
|
- //运营主管所在分部列表
|
|
|
- List<Integer> teamTeacher = employeeDao.queryTeamTeacherOrganList(userId);
|
|
|
- resultMap.put("teamTeacher",teamTeacher);
|
|
|
- //乐队指导所在分部列表
|
|
|
- List<Integer> director = employeeDao.queryDirectorOrganList(userId);
|
|
|
- resultMap.put("director",director);
|
|
|
- return resultMap;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> levelDetail(Integer userId) {
|
|
|
+ Map<String, Object> resultMap = new HashMap<>(4);
|
|
|
+ //维修技师所在分部列表
|
|
|
+ List<Integer> repair = employeeDao.queryRepairOrganList(userId);
|
|
|
+ resultMap.put("repair", repair);
|
|
|
+ //教务老师所在分部列表
|
|
|
+ List<Integer> education = employeeDao.queryEducationOrganList(userId);
|
|
|
+ resultMap.put("education", education);
|
|
|
+ //运营主管所在分部列表
|
|
|
+ List<Integer> teamTeacher = employeeDao.queryTeamTeacherOrganList(userId);
|
|
|
+ resultMap.put("teamTeacher", teamTeacher);
|
|
|
+ //乐队指导所在分部列表
|
|
|
+ List<Integer> director = employeeDao.queryDirectorOrganList(userId);
|
|
|
+ resultMap.put("director", director);
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void level(List<EmployeeLevelDto> employeeLevelDtos){
|
|
|
- Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
|
|
|
- List<ImGroupModel> educationGroupModels = new ArrayList<>();
|
|
|
- //获取用户需要加入的群组列表
|
|
|
- Map<String, List<EmployeeLevelDto>> collect = employeeLevelDtos.stream().collect(Collectors.groupingBy(e -> e.getRoleName()));
|
|
|
- Set<String> roleNames = collect.keySet();
|
|
|
- Set<Integer> userIds = new HashSet<>();
|
|
|
- for (String roleName : roleNames) {
|
|
|
- List<EmployeeLevelDto> levelDtos = collect.get(roleName);
|
|
|
- Map<Integer, List<EmployeeLevelDto>> organIdMap = levelDtos.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
|
|
|
- Set<Integer> organIds = organIdMap.keySet();
|
|
|
- for (Integer organId : organIds) {
|
|
|
- List<EmployeeLevelDto> levelDtoList = organIdMap.get(organId);
|
|
|
- for (EmployeeLevelDto employeeLevelDto : levelDtoList) {
|
|
|
- if(employeeLevelDto.getLevelUserId() == employeeLevelDto.getTransferUserId()){
|
|
|
- throw new BizException("交接人校验失败,请重新填写");
|
|
|
- }
|
|
|
- userIds.add(employeeLevelDto.getTransferUserId());
|
|
|
- //获取关联的预报名的群聊
|
|
|
- educationGroupModels.addAll(classGroupDao.queryApplyGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
- switch (roleName){
|
|
|
- case "education":
|
|
|
- //替换当前分部合作单位关联的乐团主管
|
|
|
- cooperationOrganDao.batchUpdateEduId(employeeLevelDto.getTransferUserId(),levelUserId,organId);
|
|
|
- //教务老师所需加入的群组
|
|
|
- educationGroupModels.addAll(classGroupDao.queryEducationGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
- break;
|
|
|
- case "teamTeacher":
|
|
|
- //运营主管所需加入的群组
|
|
|
- educationGroupModels.addAll(classGroupDao.queryTeamTeacherGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
- break;
|
|
|
- case "director":
|
|
|
- //乐队指导所需加入的群组
|
|
|
- educationGroupModels.addAll(classGroupDao.queryDirectorGroups(employeeLevelDto.getTransferUserId(),levelUserId,organId));
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- Date date = new Date();
|
|
|
- if(educationGroupModels.size() > 0){
|
|
|
- Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
|
|
|
- //❤️用户加群
|
|
|
- List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
- List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
- for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
|
- String userId = imGroupModel.getMemberList().get(0).getId();
|
|
|
- com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
- imGroupMember.setCreateTime(date);
|
|
|
- imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
|
|
|
- imGroupMember.setIsAdmin(false);
|
|
|
- imGroupMember.setRoleType(imGroupModel.getUserRole());
|
|
|
- imGroupMember.setUpdateTime(date);
|
|
|
- imGroupMember.setUserId(Integer.parseInt(userId));
|
|
|
- imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
|
|
|
- imGroupMemberList.add(imGroupMember);
|
|
|
- GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
|
|
|
- GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[] { groupMember }, imGroupModel.getName());
|
|
|
- groupModelList.add(groupModel);
|
|
|
- }
|
|
|
- imGroupMemberService.batchInsert(imGroupMemberList);
|
|
|
- imFeignService.groupBatchJoin(groupModelList);
|
|
|
- }
|
|
|
- //原有员工退群
|
|
|
- List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
|
|
|
- //原有员工退预报名群
|
|
|
- groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
|
|
|
- if(groupModels.size() > 0){
|
|
|
- List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
- List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
- for (ImGroupModel imGroupModel : groupModels) {
|
|
|
- com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
- imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
|
|
|
- imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
|
|
|
- imGroupMemberList.add(imGroupMember);
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void level(List<EmployeeLevelDto> employeeLevelDtos) {
|
|
|
+ Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
|
|
|
+ List<ImGroupModel> educationGroupModels = new ArrayList<>();
|
|
|
+ //获取用户需要加入的群组列表
|
|
|
+ Map<String, List<EmployeeLevelDto>> collect = employeeLevelDtos.stream().collect(Collectors.groupingBy(e -> e.getRoleName()));
|
|
|
+ Set<String> roleNames = collect.keySet();
|
|
|
+ Set<Integer> userIds = new HashSet<>();
|
|
|
+ for (String roleName : roleNames) {
|
|
|
+ List<EmployeeLevelDto> levelDtos = collect.get(roleName);
|
|
|
+ Map<Integer, List<EmployeeLevelDto>> organIdMap = levelDtos.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
|
|
|
+ Set<Integer> organIds = organIdMap.keySet();
|
|
|
+ for (Integer organId : organIds) {
|
|
|
+ List<EmployeeLevelDto> levelDtoList = organIdMap.get(organId);
|
|
|
+ for (EmployeeLevelDto employeeLevelDto : levelDtoList) {
|
|
|
+ if (employeeLevelDto.getLevelUserId() == employeeLevelDto.getTransferUserId()) {
|
|
|
+ throw new BizException("交接人校验失败,请重新填写");
|
|
|
+ }
|
|
|
+ userIds.add(employeeLevelDto.getTransferUserId());
|
|
|
+ //获取关联的预报名的群聊
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryApplyGroups(employeeLevelDto.getTransferUserId(), levelUserId, organId));
|
|
|
+ switch (roleName) {
|
|
|
+ case "education":
|
|
|
+ //替换当前分部合作单位关联的乐团主管
|
|
|
+ cooperationOrganDao.batchUpdateEduId(employeeLevelDto.getTransferUserId(), levelUserId, organId);
|
|
|
+ //教务老师所需加入的群组
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryEducationGroups(employeeLevelDto.getTransferUserId(), levelUserId, organId));
|
|
|
+ break;
|
|
|
+ case "teamTeacher":
|
|
|
+ //运营主管所需加入的群组
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryTeamTeacherGroups(employeeLevelDto.getTransferUserId(), levelUserId, organId));
|
|
|
+ break;
|
|
|
+ case "director":
|
|
|
+ //乐队指导所需加入的群组
|
|
|
+ educationGroupModels.addAll(classGroupDao.queryDirectorGroups(employeeLevelDto.getTransferUserId(), levelUserId, organId));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ if (educationGroupModels.size() > 0) {
|
|
|
+ Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
|
|
|
+ //❤️用户加群
|
|
|
+ List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
+ List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
+ for (ImGroupModel imGroupModel : educationGroupModels) {
|
|
|
+ String userId = imGroupModel.getMemberList().get(0).getId();
|
|
|
+ com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
+ imGroupMember.setCreateTime(date);
|
|
|
+ imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
|
|
|
+ imGroupMember.setIsAdmin(false);
|
|
|
+ imGroupMember.setRoleType(imGroupModel.getUserRole());
|
|
|
+ imGroupMember.setUpdateTime(date);
|
|
|
+ imGroupMember.setUserId(Integer.parseInt(userId));
|
|
|
+ imGroupMember.setNickname(realNameMap.get(imGroupMember.getUserId()));
|
|
|
+ imGroupMemberList.add(imGroupMember);
|
|
|
+ GroupMember groupMember = new GroupMember(userId, imGroupModel.getId());
|
|
|
+ GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
|
|
|
+ groupModelList.add(groupModel);
|
|
|
+ }
|
|
|
+ imGroupMemberService.batchInsert(imGroupMemberList);
|
|
|
+ imFeignService.groupBatchJoin(groupModelList);
|
|
|
+ }
|
|
|
+ //原有员工退群
|
|
|
+ List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
|
|
|
+ //原有员工退预报名群
|
|
|
+ groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
|
|
|
+ if (groupModels.size() > 0) {
|
|
|
+ List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
+ List<GroupModel> groupModelList = new ArrayList<>();
|
|
|
+ for (ImGroupModel imGroupModel : groupModels) {
|
|
|
+ com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
|
|
|
+ imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
|
|
|
+ imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
|
|
|
+ imGroupMemberList.add(imGroupMember);
|
|
|
|
|
|
- GroupMember groupMember = new GroupMember(imGroupMember.getUserId().toString(), imGroupModel.getId());
|
|
|
- GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[] { groupMember }, imGroupModel.getName());
|
|
|
- groupModelList.add(groupModel);
|
|
|
- }
|
|
|
- imGroupMemberService.batchDeleteByGroupIdAndUserId(imGroupMemberList);
|
|
|
- imFeignService.groupBatchQuit(groupModelList);
|
|
|
- }
|
|
|
- //更换教务老师等数据
|
|
|
- employeeDao.employeeLevel(employeeLevelDtos);
|
|
|
- //新增离职时间
|
|
|
- employeeDao.updateUserDemissionDate(levelUserId);
|
|
|
- //冻结用户
|
|
|
- employeeDao.updateUserLock(levelUserId,1);
|
|
|
- ExecutorService executor = Executors.newFixedThreadPool(5);
|
|
|
- CompletableFuture<Boolean> refreshUserFriend = CompletableFuture.supplyAsync(()->{
|
|
|
- //获取用户担任教务老师、维修技师的所有乐团列表
|
|
|
- List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
|
|
|
- //获取用户担任教务老师的所有网管课列表
|
|
|
- List<String> practiceGroupIds = employeeDao.queryPracticeGroupIdByUserId(levelUserId);
|
|
|
- //获取用户担任教务老师的所有VIP课列表
|
|
|
- List<String> vipGroupIds = employeeDao.queryVipGroupIdByUserId(levelUserId);
|
|
|
- Boolean refreshFlag = false;
|
|
|
- if(musicGroupIds.size() > 0){
|
|
|
- for (String musicGroupId : musicGroupIds) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
|
|
|
- }
|
|
|
- refreshFlag = true;
|
|
|
- }
|
|
|
- if(practiceGroupIds.size() > 0){
|
|
|
- for (String musicGroupId : practiceGroupIds) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
|
|
|
- }
|
|
|
- refreshFlag = true;
|
|
|
- }
|
|
|
- if(vipGroupIds.size() > 0){
|
|
|
- for (String musicGroupId : vipGroupIds) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
|
|
|
- }
|
|
|
- refreshFlag = true;
|
|
|
- }
|
|
|
- return refreshFlag;
|
|
|
- },executor);
|
|
|
- Boolean join = refreshUserFriend.join();
|
|
|
- if(join){
|
|
|
- refreshUserFriend.thenRun(()->{
|
|
|
- //更新群成员数量
|
|
|
- imGroupDao.updateMemberNum();
|
|
|
- //删除重复的群成员
|
|
|
- imGroupMemberService.delRepeat();
|
|
|
- });
|
|
|
- }
|
|
|
- executor.shutdown();
|
|
|
- }
|
|
|
+ GroupMember groupMember = new GroupMember(imGroupMember.getUserId().toString(), imGroupModel.getId());
|
|
|
+ GroupModel groupModel = new GroupModel(imGroupModel.getId(), new GroupMember[]{groupMember}, imGroupModel.getName());
|
|
|
+ groupModelList.add(groupModel);
|
|
|
+ }
|
|
|
+ imGroupMemberService.batchDeleteByGroupIdAndUserId(imGroupMemberList);
|
|
|
+ imFeignService.groupBatchQuit(groupModelList);
|
|
|
+ }
|
|
|
+ //更换教务老师等数据
|
|
|
+ employeeDao.employeeLevel(employeeLevelDtos);
|
|
|
+ //新增离职时间
|
|
|
+ employeeDao.updateUserDemissionDate(levelUserId);
|
|
|
+ //冻结用户
|
|
|
+ employeeDao.updateUserLock(levelUserId, 1);
|
|
|
+ ExecutorService executor = Executors.newCachedThreadPool();
|
|
|
+ CompletableFuture<Boolean> refreshUserFriend = CompletableFuture.supplyAsync(() -> {
|
|
|
+ //获取用户担任教务老师、维修技师的所有乐团列表
|
|
|
+ List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
|
|
|
+ //获取用户担任教务老师的所有网管课列表
|
|
|
+ List<String> practiceGroupIds = employeeDao.queryPracticeGroupIdByUserId(levelUserId);
|
|
|
+ //获取用户担任教务老师的所有VIP课列表
|
|
|
+ List<String> vipGroupIds = employeeDao.queryVipGroupIdByUserId(levelUserId);
|
|
|
+ boolean refreshFlag = false;
|
|
|
+ if (musicGroupIds.size() > 0) {
|
|
|
+ for (String musicGroupId : musicGroupIds) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
|
|
|
+ }
|
|
|
+ refreshFlag = true;
|
|
|
+ }
|
|
|
+ if (practiceGroupIds.size() > 0) {
|
|
|
+ for (String musicGroupId : practiceGroupIds) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.PRACTICE);
|
|
|
+ }
|
|
|
+ refreshFlag = true;
|
|
|
+ }
|
|
|
+ if (vipGroupIds.size() > 0) {
|
|
|
+ for (String musicGroupId : vipGroupIds) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.VIP);
|
|
|
+ }
|
|
|
+ refreshFlag = true;
|
|
|
+ }
|
|
|
+ return refreshFlag;
|
|
|
+ }, executor);
|
|
|
+ Boolean join = refreshUserFriend.join();
|
|
|
+ if (join) {
|
|
|
+ refreshUserFriend.thenRun(() -> {
|
|
|
+ //更新群成员数量
|
|
|
+ imGroupDao.updateMemberNum();
|
|
|
+ //删除重复的群成员
|
|
|
+ imGroupMemberService.delRepeat();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ executor.shutdown();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public List<Integer> queryUserRole(Integer sysUserId) {
|
|
|
- return employeeDao.queryUserRole(sysUserId);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public List<Integer> queryUserRole(Integer sysUserId) {
|
|
|
+ return employeeDao.queryUserRole(sysUserId);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 批量添加角色和菜单关系
|
|
@@ -473,21 +477,28 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> imp
|
|
|
return employeeDao.insertSysRole(sysRole);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void simpleUpdate(Employee employee) {
|
|
|
- SysUser user = teacherDao.getUser(employee.getId());
|
|
|
- //为了处理平台账户修改个人信息
|
|
|
- employee.setTenantId(user.getTenantId());
|
|
|
- employee.setUserId(employee.getId());
|
|
|
- employee.setUpdateTime(new Date());
|
|
|
- if(StringUtils.isNotEmpty(employee.getPhone())){
|
|
|
- SysUser sysUser = teacherDao.getUserWithPhone(employee.getPhone());
|
|
|
- if(sysUser != null && !sysUser.getId().equals(employee.getUserId())){
|
|
|
- throw new BizException("手机号已存在");
|
|
|
- }
|
|
|
- teacherDao.updateUser(employee);
|
|
|
- }
|
|
|
- employeeDao.update(employee);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void simpleUpdate(Employee employee) {
|
|
|
+ SysUser user = teacherDao.getUser(employee.getId());
|
|
|
+ //为了处理平台账户修改个人信息
|
|
|
+ employee.setTenantId(user.getTenantId());
|
|
|
+ employee.setUserId(employee.getId());
|
|
|
+ employee.setUpdateTime(new Date());
|
|
|
+ if (StringUtils.isNotEmpty(employee.getPhone())) {
|
|
|
+ SysUser sysUser = teacherDao.getUserWithPhone(employee.getPhone());
|
|
|
+ if (sysUser != null && !sysUser.getId().equals(employee.getUserId())) {
|
|
|
+ throw new BizException("手机号已存在");
|
|
|
+ }
|
|
|
+ teacherDao.updateUser(employee);
|
|
|
+ //同步修改机构手机号
|
|
|
+ TenantInfo tenantInfo = tenantInfoService.getOne(new QueryWrapper<TenantInfo>()
|
|
|
+ .eq("user_id_", employee.getUserId()));
|
|
|
+ if (Objects.nonNull(tenantInfo)) {
|
|
|
+ tenantInfo.setPhone(employee.getPhone());
|
|
|
+ tenantInfoService.updateById(tenantInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ employeeDao.update(employee);
|
|
|
+ }
|
|
|
}
|