package com.thhy.usercore.modules.sys.sysrole.service.impl; import com.thhy.general.utils.UserInfoUtils; import com.thhy.general.common.BasicStatus; import com.thhy.general.common.enums.IsUse; import com.thhy.general.exception.BasicException; import com.thhy.usercore.modules.sys.sysbutton.entity.SysRoleButton; import com.thhy.usercore.modules.sys.sysbutton.mapper.SysRoleButtonMapper; import com.thhy.usercore.modules.sys.sysmenurole.entity.SysMenuRole; import com.thhy.usercore.modules.sys.sysmenurole.mapper.SysMenuRoleMapper; import com.thhy.usercore.modules.sys.sysrole.entity.RoleMenuDto; import com.thhy.usercore.modules.sys.sysrole.entity.RoleVo; import com.thhy.usercore.modules.sys.sysrole.entity.SysRoles; import com.thhy.usercore.modules.sys.sysrole.mapper.SysRolesMapper; import com.thhy.usercore.modules.sys.sysrole.service.ISysRolesService; import com.thhy.usercore.modules.sys.sysuserrole.entity.UserRoleDto; import com.thhy.general.config.SysUserInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.List; /** *

* 服务实现类 *

* * @author zhang_xiao_bo * @since 2022-03-22 */ @Service public class SysRolesServiceImpl implements ISysRolesService { @Autowired private SysRolesMapper sysRolesMapper; @Autowired private SysRoleButtonMapper sysRoleButtonMapper; @Autowired private SysMenuRoleMapper sysMenuRoleMapper; public SysRoles get(Serializable id){ return sysRolesMapper.queryById(id); } public List findList(SysRoles sysRoles){ return sysRolesMapper.findList(sysRoles); } public SysRoles addRole(SysRoles sysRoles){ SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); if(sysRoles.getRoleId()==null){ //增加 sysRoles.setCreateBy(sysUserInfo.getUserId().toString()); sysRoles.setCreateTime(new Date()); sysRoles.setIsUse(IsUse.YES.getValue()); sysRolesMapper.insert(sysRoles); }else{ //修改 //校验版本 Integer curVersion = sysRolesMapper.queryVersionById(sysRoles.getRoleId()); if(!curVersion.equals(sysRoles.getVersion())){ throw new BasicException(BasicStatus.SUBMIT_TIMEOUT); } sysRoles.setUpdateBy(sysUserInfo.getUserId().toString()); sysRoles.setUpdateTime(new Date()); sysRolesMapper.update(sysRoles); } return sysRoles; } /** * 获取数据版本 * @param id * @return */ @Override public int queryVersion(Serializable id) { return sysRolesMapper.queryVersionById(id); } /** * 为角色配置菜单 * @param roleMenuDto */ @Override @Transactional public void updateMenuForRole(RoleMenuDto roleMenuDto) { String menuIds = roleMenuDto.getMenuIds(); if(!StringUtils.isEmpty(menuIds)){ sysMenuRoleMapper.deletelogicByRoleId(roleMenuDto.getRoleId()); sysRoleButtonMapper.deleteByRoleId(roleMenuDto.getRoleId()); //sysRoleUrlMapper.deleteByRoleId(roleMenuDto.getRoleId()); } String[] menuArray = new String[]{menuIds}; if(menuIds.contains(",")){ menuArray = menuIds.split(","); } for(String menuId : menuArray){ if(menuId.contains("-")){ //按钮 String[] menuButtonIds = menuId.split("-"); sysMenuRoleMapper.insert(new SysMenuRole(menuButtonIds[0],roleMenuDto.getRoleId())); sysRoleButtonMapper.insert(new SysRoleButton(menuButtonIds[0],roleMenuDto.getRoleId(),menuButtonIds[1])); //updateRoleUrl(Integer.parseInt(menuButtonIds[0]),roleMenuDto.getRoleId()); }else{ sysMenuRoleMapper.insert(new SysMenuRole(menuId,roleMenuDto.getRoleId())); //updateRoleUrl(Integer.parseInt(menuId),roleMenuDto.getRoleId()); } } } /*public void updateRoleUrl(Integer menuId,Integer roleId){ List sysMenuUrlList = sysMenuUrlMapper.queryByMenuId(menuId); for(SysMenuUrl sysMenuUrl : sysMenuUrlList){ sysRoleUrlMapper.insert(new SysRoleUrl(roleId,sysMenuUrl.getUrlId(),menuId)); } }*/ /*@Override @Transactional public void updateUrlForRole(SysUrlDto sysUrlDto) { sysRoleUrlMapper.deleteByRoleId(sysUrlDto.getRoleId()); String urlIds = sysUrlDto.getUrlIds(); String[] urlIdsArray = new String[]{urlIds}; if(urlIds.contains(",")){ urlIdsArray = urlIds.split(","); } for(String urlId : urlIdsArray){ sysRoleUrlMapper.insert(new SysRoleUrl(sysUrlDto.getRoleId(), Integer.parseInt(urlId))); } }*/ /** * 逻辑删除 * @param id */ public int deletelogic(Serializable id){ return sysRolesMapper.deletelogic(id); } @Override public List findAll(UserRoleDto userRoleDto) { return sysRolesMapper.findAll(userRoleDto); } }