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.SysRoleMenu; import com.monkeylessey.sys.domain.form.SysRoleMenuForm; import com.monkeylessey.sys.domain.query.SysRoleMenuQuery; import com.monkeylessey.sys.domain.vo.SysRoleMenuVO; import com.monkeylessey.sys.mapper.SysRoleMenuMapper; import com.monkeylessey.response.Result; import com.monkeylessey.sys.service.SysRoleMenuService; import com.monkeylessey.utils.PageUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * 服务实现类 * * @author 向培 * @since 2022-05-29 */ @Service @RequiredArgsConstructor public class SysRoleMenuServiceImpl extends ServiceImpl implements SysRoleMenuService { private final SysRoleMenuMapper sysRoleMenuMapper; @Override public Result addSysRoleMenu(SysRoleMenuForm form) { SysRoleMenu entity = SysRoleMenuForm.getSysRoleMenu(null, form); if (form.getMenuIds().isEmpty()) { entity.setMenuId(""); } else { StringBuilder menu = new StringBuilder(); for (String menuId : form.getMenuIds()) { menu.append(",").append(menuId); } entity.setMenuId(menu.substring(1)); } try { //int insert = baseMapper.insert(entity); if (this.saveOrUpdate(entity)) { return Result.ok("添加成功"); } return Result.error("添加失败"); } catch (Exception e) { e.printStackTrace(); return Result.error("添加失败"); } } @Override public Result editSysRoleMenu(SysRoleMenuForm form) { SysRoleMenu entity = SysRoleMenuForm.getSysRoleMenu(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 deleteSysRoleMenuById(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 deleteSysRoleMenuByIds(List ids) { if (baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("操作成功"); } return Result.error("删除失败"); } @Override public Result getSysRoleMenuByPage(SysRoleMenuQuery query) { List vos = new ArrayList<>(); Long total = 0L; try { IPage page = PageUtil.getPage(query, SysRoleMenu.class); new LambdaQueryChainWrapper<>(this.baseMapper).page(page); vos = page.getRecords().stream() .map(sysRoleMenu -> SysRoleMenuVO.getVoByEntity(sysRoleMenu, null)) .collect(Collectors.toList()); total = page.getTotal(); } catch (Exception e) { e.printStackTrace(); } return Result.ok().data(vos).total(total); } @Override public Result getSysRoleMenuById(String id) { SysRoleMenu entity = baseMapper.selectById(id); SysRoleMenuVO vo = new SysRoleMenuVO(); BeanUtils.copyProperties(entity, vo); return Result.ok().data(vo); } @Override public Result getSysRoleMenuByRole(String roleId) { SysRoleMenu one = new LambdaQueryChainWrapper<>(baseMapper) .eq(SysRoleMenu::getRoleId, roleId) .one(); SysRoleMenuVO sysRoleMenuVO = new SysRoleMenuVO(); if (one != null) { BeanUtils.copyProperties(one, sysRoleMenuVO); sysRoleMenuVO.setMenuIds(one.getMenuId().split(",")); } return Result.ok().data(sysRoleMenuVO); } }