|
@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
@@ -78,9 +79,14 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
Role role = new Role(roleRequest);
|
|
|
role.setCreateTime(new Date());
|
|
|
//保存角色信息
|
|
|
- roleMapper.insert(role);
|
|
|
+ if (roleMapper.insert(role) == 0) {
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
|
|
|
+ }
|
|
|
//保存角色菜单关联关系
|
|
|
- roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds());
|
|
|
+ if (roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds())) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
|
|
|
+ }
|
|
|
return RestResponse.success(role, ApiConstants.RESULT_SUCCESS, "保存角色信息成功");
|
|
|
}
|
|
|
|
|
@@ -93,11 +99,19 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
role.setName(roleRequest.getName());
|
|
|
role.setUpdateTime(new Date());
|
|
|
//更新角色信息
|
|
|
- roleMapper.updateById(role);
|
|
|
+ if (roleMapper.updateById(role) == 0) {
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新角色信息失败");
|
|
|
+ }
|
|
|
//删除角色原来关联的菜单信息
|
|
|
- roleMenuService.deleteRoleMenu(role.getId());
|
|
|
+ if (roleMenuService.deleteRoleMenu(role.getId()) == 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新角色信息失败");
|
|
|
+ }
|
|
|
//保存角色关联的新的菜单信息
|
|
|
- roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds());
|
|
|
+ if (roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds())) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新角色信息失败");
|
|
|
+ }
|
|
|
return RestResponse.success(role, ApiConstants.RESULT_SUCCESS, "更新角色信息成功");
|
|
|
}
|
|
|
|
|
@@ -114,7 +128,10 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
}
|
|
|
Role role = roleMapper.selectById(roleId);
|
|
|
role.setDeleteFlag(ApiConstants.DELETE_YES);
|
|
|
- roleMapper.updateById(role);
|
|
|
+ int updateRoleFlag = roleMapper.updateById(role);
|
|
|
+ if (updateRoleFlag == 0) {
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "删除失败");
|
|
|
+ }
|
|
|
//删除角色菜单关联信息
|
|
|
roleMenuService.deleteRoleMenu(roleId);
|
|
|
return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "删除成功");
|
|
@@ -145,7 +162,7 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void saveDefaultMessage(Long companyId) {
|
|
|
+ public boolean saveDefaultMessage(Long companyId) {
|
|
|
//默认角色列表
|
|
|
List<Role> defaultRoleList = new ArrayList<>();
|
|
|
for (CommonEnum.DefaultRole defaultRole : DefaultMenuConstants.DEFAULT_ROLE) {
|
|
@@ -155,7 +172,9 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
defaultRoleList.add(newRole);
|
|
|
}
|
|
|
//保存默认角色
|
|
|
- this.saveBatch(defaultRoleList);
|
|
|
+ if (!this.saveBatch(defaultRoleList)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
//关联关系列表
|
|
|
List<RoleMenu> needSaveRoleMenuList = new ArrayList<>();
|
|
|
//生成角色菜单关联关系
|
|
@@ -169,7 +188,11 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
}
|
|
|
}
|
|
|
//需要保存角色菜单信息
|
|
|
- roleMenuService.saveBatch(needSaveRoleMenuList);
|
|
|
+ if (!roleMenuService.saveBatch(needSaveRoleMenuList)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -184,7 +207,7 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
|
|
|
Map<Long, UserRole> userIdToUserRole = ProjectUtils.attrToObjMap(userRoleList, "userId", null);
|
|
|
//获取角色列表
|
|
|
List<Long> roleIdList = ProjectUtils.getAttrList(userRoleList, "roleId", null);
|
|
|
- if(roleIdList != null && roleIdList.size() > 0){
|
|
|
+ if (roleIdList != null && roleIdList.size() > 0) {
|
|
|
List<Role> roleList = (List<Role>) this.listByIds(roleIdList);
|
|
|
Map<Long, Role> idToRole = ProjectUtils.attrToObjMap(roleList, "id", null);
|
|
|
for (Long userId : userIdList) {
|