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;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @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<SysRoles> 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<SysMenuUrl> 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<RoleVo> findAll(UserRoleDto userRoleDto) {
|
|
return sysRolesMapper.findAll(userRoleDto);
|
}
|
}
|