package com.fdkankan.manage.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.manage.common.ExcelErrorUtil; import com.fdkankan.manage.common.PageInfo; import com.fdkankan.manage.common.ResultCode; import com.fdkankan.manage.entity.*; import com.fdkankan.manage.service.*; import com.fdkankan.manage.vo.JyUserPlatform; import com.fdkankan.manage.exception.BusinessException; import com.fdkankan.manage.mapper.IJyUserPlatformMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.manage.vo.request.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.management.relation.Role; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author * @since 2024-11-15 */ @Service @Slf4j public class JyUserPlatformServiceImpl extends ServiceImpl implements IJyUserPlatformService { @Autowired IJyPlatformService platformService; @Autowired IJyUserService jyUserService; @Autowired ISysUserService sysUserService; @Autowired ISysRoleService sysRoleService; @Override public void bindPlatform(Integer id, Integer platformId) { jyUserService.updatePlatformId(id,platformId); } @Override public void addByParam(JyUserPlatformAddParam param) { if(param.getId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } Integer loginPlatformId = this.getLoginPlatformId(); if(loginPlatformId == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } param.setPlatformId(loginPlatformId); JyUser jyUser = jyUserService.getById(param.getId()); SysUser byId = sysUserService.getById(jyUser.getSysUserId()); if(byId.getRoleId() != 47L ){ throw new BusinessException(ResultCode.PLATFORM_USER_ADDERROR); } this.bindPlatform(param.getId(),loginPlatformId); } @Override public void updateByParam(JyUserPlatformAddParam param) { if(param.getId() == null || param.getPlatformId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } JyUser jyUser = jyUserService.getById(param.getId()); SysUser byId = sysUserService.getById(jyUser.getSysUserId()); if(byId.getRoleId() != 47L ){ throw new BusinessException(ResultCode.PLATFORM_USER_ADDERROR); } this.bindPlatform(param.getId(),param.getPlatformId()); } @Override public void del(JyUserPlatformAddParam param) { if(param.getId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(JyUserPlatform::getId,param.getId()); this.removeById(wrapper); } @Override public Object pageList(JyUserPlatformParam param) { SysUser byId = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString())); if(byId.getRoleId() != 1L ){ Integer loginPlatformId = getLoginPlatformId(); if(loginPlatformId == null){ return PageInfo.PageInfo(new Page<>(param.getPageNum(),param.getPageSize())); } param.setPlatformId(getLoginPlatformId()); } Page page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param); List ids = page.getRecords().stream().map(JyUserPlatform::getPlatformId).collect(Collectors.toList()); HashMap map = new HashMap<>(); if(!ids.isEmpty()){ List jyPlatforms = platformService.listByIds(ids); jyPlatforms.forEach(e -> map.put(e.getId(),e)); } for (JyUserPlatformVo record : page.getRecords()) { if(record.getRyId() == null){ record.setCreateTime(null); } JyPlatform jyPlatform = map.get(record.getPlatformId()); if(jyPlatform != null){ record.setPlatformName(jyPlatform.getPlatformName()); } } return PageInfo.PageInfo(page); } @Override public Object queryByKey(JyUserPlatformParam param) { if(StringUtils.isBlank(param.getQueryKey())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } List jyUserPlatforms = this.getBaseMapper().queryByKey(param.getQueryKey()); List collect = jyUserPlatforms.stream().map(JyUserPlatform::getPlatformId).filter(Objects::nonNull).collect(Collectors.toList()); HashMap map = new HashMap<>(); if(!collect.isEmpty()){ List jyPlatforms = platformService.listByIds(collect); jyPlatforms.forEach(e -> map.put(e.getId(),e)); } List sysUserIds = jyUserPlatforms.stream().map(JyUserPlatform::getSysUserId).collect(Collectors.toList()); HashMap sysUserMap = new HashMap<>(); HashMap roleMap = new HashMap<>(); if(!sysUserIds.isEmpty()){ List sysUsers = sysUserService.listByIds(sysUserIds); sysUsers.forEach(e -> sysUserMap.put(e.getId(),e)); List roleIds = sysUsers.stream().map(SysUser::getRoleId).collect(Collectors.toList()); if(!roleIds.isEmpty()){ List sysRoles = sysRoleService.listByIds(roleIds); sysRoles.forEach(e -> roleMap.put(e.getId(),e)); } } for (JyUserPlatform jyUserPlatform : jyUserPlatforms) { if(jyUserPlatform.getPlatformId()!=null){ JyPlatform jyPlatform =map.get(jyUserPlatform.getPlatformId()); if(jyPlatform != null){ jyUserPlatform.setPlatformName(jyPlatform.getPlatformName()); } SysUser sysUser = sysUserMap.get(jyUserPlatform.getSysUserId()); if(sysUser != null){ jyUserPlatform.setRoleId(sysUser.getRoleId()); } SysRole sysRole = roleMap.get(jyUserPlatform.getRoleId()); if(sysRole != null){ jyUserPlatform.setRoleName(sysRole.getRoleName()); } } } return jyUserPlatforms; } @Override public Integer getLoginPlatformId(){ try { return Integer.valueOf(StpUtil.getExtra("platformId").toString()); }catch (Exception e){ log.info("StpUtil.getExtra -- platformId-error:{}",e); } return null; } @Autowired IExcelService excelService; @Override public Integer addPlatformUser(List> excelRowList) { List params = new ArrayList<>(); List errorIndex = new ArrayList<>(); List updatePlatformUserList = new ArrayList<>(); Integer index = 0; for (HashMap map : excelRowList) { index++; if (map.isEmpty()) { continue; } if (index == 0 && !map.get(0).equals("平台用户模板")) { throw new BusinessException(ResultCode.TEMPLATE_TYPE_ERROR); } if (index < 4) { continue; } String name = map.get(0); if(StringUtils.isBlank(name) ){ errorIndex.add(index -3 ); continue; } JyUser user = jyUserService.getByNickName(name); if(user != null && user.getPlatformId() == null){ updatePlatformUserList.add(user.getId()); continue; } if(user != null ){ errorIndex.add(index -3 ); continue; } JyPlatformUserWait jyPlatformUserWait = platformUserWaitService.getByName(name); if(jyPlatformUserWait != null ){ errorIndex.add(index -3 ); continue; } List collect = params.stream().filter(e -> e.getName().equals(name)).collect(Collectors.toList()); if(!collect.isEmpty()){ errorIndex.add(index -3 ); continue; } JyUserPlatformAddParam param = new JyUserPlatformAddParam(); param.setName(name); params.add(param); } if(!errorIndex.isEmpty()){ excelService.toExcelError(errorIndex); } if(params.size() <=0 && updatePlatformUserList.isEmpty()){ throw new BusinessException(ResultCode.TEMPLATE_EMPTY); } Integer count = this.addPlatformUsers(params); Integer count1 = 0; for (Integer jyUserId : updatePlatformUserList) { if(getLoginPlatformId() != null){ jyUserService.updatePlatformId(jyUserId,getLoginPlatformId()); count1 ++; } } return count1 + count; } @Autowired IJyPlatformUserWaitService platformUserWaitService; private Integer addPlatformUsers(List params) { Integer count = 0; for (JyUserPlatformAddParam param : params) { JyPlatformUserWait jyPlatformUserWait = new JyPlatformUserWait(); jyPlatformUserWait.setName(param.getName()); jyPlatformUserWait.setPlatformId(this.getLoginPlatformId()); platformUserWaitService.save(jyPlatformUserWait); count ++; } return count; } }