package com.fdkankan.sale.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.sale.common.PageInfo; import com.fdkankan.sale.common.ResultCode; import com.fdkankan.sale.entity.SysRole; import com.fdkankan.sale.entity.SysUser; import com.fdkankan.sale.exception.BusinessException; import com.fdkankan.sale.mapper.ISysRoleMapper; import com.fdkankan.sale.service.ISysMenuService; import com.fdkankan.sale.service.ISysRoleMenuService; import com.fdkankan.sale.service.ISysRoleService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.sale.service.ISysUserService; import com.fdkankan.sale.vo.request.SysRoleMenuParam; import com.fdkankan.sale.vo.request.SysRoleParam; import com.fdkankan.sale.vo.response.SysRoleVo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.Date; import java.util.HashMap; import java.util.List; /** *

* 服务实现类 *

* * @author * @since 2022-12-09 */ @Service public class SysRoleServiceImpl extends ServiceImpl implements ISysRoleService { @Autowired ISysUserService sysUserService; @Autowired ISysRoleMenuService roleMenuService; @Autowired ISysMenuService sysMenuService; @Override public void addOrUpdate(SysRoleParam param) { SysRole sysRole = new SysRole(); BeanUtils.copyProperties(param,sysRole); sysRole.setUpdateTime(null); this.saveOrUpdate(sysRole); } @Override public PageInfo pageList(SysRoleParam param) { HashMap countMap = sysUserService.groupByRoleId(); Page page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param); for (SysRoleVo record : page.getRecords()) { record.setAdminCount(countMap.get(record.getId()) == null ? 0 : countMap.get(record.getId())); } return PageInfo.PageInfo(page); } @Override public void delete(Long id) { if(StringUtils.isEmpty(id)){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SysUser::getRoleId,id); long count = sysUserService.count(wrapper); if(count >0){ throw new BusinessException(ResultCode.DEL_ROLE_ERROR); } roleMenuService.deleteByRoleId(id); this.removeById(id); } @Override public void giveMenu(SysRoleMenuParam param) { if(param.getRoleId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } roleMenuService.deleteByRoleId(param.getRoleId()); roleMenuService.saveBatchByRoleId(param.getRoleId(),param.getMenuIds()); } @Override public List getByRoleType(Integer roleType) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SysRole::getRoleType,roleType); return this.list(wrapper); } }