package com.monkeylessey.sys.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.monkeylessey.sys.domain.entity.SysUserRole; import com.monkeylessey.sys.domain.form.SysUserRoleForm; import com.monkeylessey.sys.domain.query.SysUserRoleQuery; import com.monkeylessey.sys.domain.vo.SysUserRoleVO; import com.monkeylessey.sys.mapper.SysUserRoleMapper; import com.monkeylessey.response.Result; import com.monkeylessey.sys.service.SysUserRoleService; import com.monkeylessey.framework.utils.SecurityUtil; import com.monkeylessey.utils.PageUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 服务实现类 * * @author 向培 * @since 2022-06-03 */ @Service @RequiredArgsConstructor public class SysUserRoleServiceImpl extends ServiceImpl implements SysUserRoleService { private final SysUserRoleMapper sysUserRoleMapper; @Override public Result addSysUserRole(SysUserRoleForm form) { SysUserRole one = new LambdaQueryChainWrapper<>(baseMapper) .eq(SysUserRole::getUserId, form.getUserId()) .one(); String roleIds = form.getRoleIds().stream().collect(Collectors.joining(",")); if (Objects.isNull(one)) { SysUserRole entity = SysUserRoleForm.getSysUserRole(null, form); String s = SecurityUtil.getCurrentUserName(); entity.setCreateBy(s); entity.setRoleId(roleIds); baseMapper.insert(entity); } else { one.setRoleId(roleIds); baseMapper.updateById(one); } return Result.ok("分配成功"); } @Override public Result editSysUserRole(SysUserRoleForm form) { SysUserRole entity = SysUserRoleForm.getSysUserRole(null, form); try { if (baseMapper.updateById(entity) > 0) { return Result.ok("修改成功"); } return Result.error("修改成功"); } catch (Exception e) { e.printStackTrace(); return Result.error("修改失败"); } } @Override public Result deleteSysUserRoleById(String id) { try { if (baseMapper.deleteById(id) > 0) { return Result.ok("删除成功"); } return Result.error("删除失败"); } catch (Exception e) { e.printStackTrace(); return Result.error("删除失败"); } } @Override @Transactional(rollbackFor = Exception.class) public Result deleteSysUserRoleByIds(List ids) { if (baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("删除成功"); } return Result.error("失败失败"); } @Override public Result getSysUserRoleByPage(SysUserRoleQuery query) { List vos = new ArrayList<>(); Long total = 0L; try { IPage page = PageUtil.getPage(query, SysUserRole.class); new LambdaQueryChainWrapper<>(this.baseMapper) .page(page); vos = page.getRecords().stream() .map(sysUserRole -> SysUserRoleVO.getVoByEntity(sysUserRole, null)) .collect(Collectors.toList()); total = page.getTotal(); } catch (Exception e) { e.printStackTrace(); } return Result.ok().data(vos).total(total); } @Override public Result getSysUserRoleById(String id) { SysUserRole entity = baseMapper.selectById(id); SysUserRoleVO vo = new SysUserRoleVO(); if (entity != null) { BeanUtils.copyProperties(entity, vo); } return Result.ok().data(vo); } @Override public Result getSysUserRoleByUser(String userId) { SysUserRole one = new LambdaQueryChainWrapper<>(this.baseMapper) .eq(StringUtils.isNotBlank(userId), SysUserRole::getUserId, userId) .one(); SysUserRoleVO vo = new SysUserRoleVO(); if (one != null) { BeanUtils.copyProperties(one, vo); vo.setRoleIds(Arrays.asList(one.getRoleId().split(","))); } return Result.ok().data(vo); } @Override public Result getAllSysUserRole() { List sysUserRoles = new LambdaQueryChainWrapper<>(baseMapper).list(); List vos = sysUserRoles.stream() .map(sysUserRole -> SysUserRoleVO.getVoByEntity(sysUserRole, null)) .collect(Collectors.toList()); return Result.ok().data(vos); } }