package com.nova.sankuai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nova.sankuai.domain.entity.Role;
import com.nova.sankuai.domain.vo.RoleVo;
import com.nova.sankuai.infra.config.CommonException;
import com.nova.sankuai.infra.mapper.RoleMapper;
import com.nova.sankuai.infra.mapper.RolePermissionMapper;
import com.nova.sankuai.service.IRolePermissionService;
import com.nova.sankuai.service.IRoleService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
*
* description
*
*
* @author denglb 2021/11/18
*/
@Service
@AllArgsConstructor
public class RoleServiceImpl extends ServiceImpl implements IRoleService {
private IRolePermissionService rolePermissionService;
private RolePermissionMapper rolePermissionMapper;
private RoleMapper roleMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void edit(RoleVo roleVo) {
Role role = getById(roleVo.getId());
if (role == null) {
throw new CommonException("该角色不存在");
}
role.setName(roleVo.getName());
updateById(role);
rolePermissionService.assignPermissions(roleVo.getPermissionIds(), role.getId());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void add(RoleVo roleVo) {
Role role = new Role();
role.setCreationDate(new Date());
role.setName(roleVo.getName());
save(role);
rolePermissionService.assignPermissions(roleVo.getPermissionIds(), role.getId());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
Role role = getById(id);
if (role == null) {
throw new CommonException("该角色不存在");
}
if (role.getDefaultFlag() == 1) {
throw new CommonException("默认角色不允许删除");
}
removeById(id);
rolePermissionMapper.deleteByRoleId(id);
}
@Override
public List getRoleList() {
List list = roleMapper.getRoleList();
return list;
}
}