|
@@ -1,15 +1,23 @@
|
|
|
package com.xy.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xy.dto.BatchDeleteDto;
|
|
|
import com.xy.dto.SysRoleDto;
|
|
|
import com.xy.entity.SysRole;
|
|
|
import com.xy.mapper.SysRoleMapper;
|
|
|
+import com.xy.service.SysRoleMenuService;
|
|
|
import com.xy.service.SysRoleService;
|
|
|
import com.xy.utils.R;
|
|
|
import com.xy.utils.SaTokenUtils;
|
|
|
+import com.xy.vo.RoleMenuVo;
|
|
|
import com.xy.vo.SysRoleVo;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import static com.xy.utils.Beans.copy;
|
|
@@ -19,14 +27,22 @@ import static com.xy.utils.Beans.copy;
|
|
|
* @author 谭斌
|
|
|
* @date 2022/12/12 17:17
|
|
|
*/
|
|
|
+@Api(tags = "角色管理")
|
|
|
@Service
|
|
|
+@RequiredArgsConstructor
|
|
|
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
|
|
|
|
|
|
+ private final SysRoleMenuService sysRoleMenuService;
|
|
|
+
|
|
|
@Override
|
|
|
public R<Boolean> saveOrUpdate(SysRoleDto sysRoleDto) {
|
|
|
Long id = sysRoleDto.getId();
|
|
|
+ if (SaTokenUtils.getId() == null) {
|
|
|
+ return R.fail("获取用户信息失败");
|
|
|
+ }
|
|
|
+ long currentUser = Long.parseLong(SaTokenUtils.getId().toString());
|
|
|
LambdaQueryWrapper<SysRole> lqw = new LambdaQueryWrapper<SysRole>()
|
|
|
- .eq(SysRole::getName, sysRoleDto.getName())
|
|
|
+ .eq(SysRole::getCode, sysRoleDto.getCode())
|
|
|
.eq(SysRole::getSysId, sysRoleDto.getSysId());
|
|
|
if (id != null) {
|
|
|
lqw.ne(SysRole::getId, id);
|
|
@@ -34,10 +50,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|
|
|
|
|
long count = count(lqw);
|
|
|
if (count > 0) {
|
|
|
- return R.fail("已存在同名角色");
|
|
|
+ return R.fail("此角色标识已存在");
|
|
|
}
|
|
|
|
|
|
- SysRole sysRole = copy(SysRole.class, sysRoleDto).saveOrUpdate(Long.parseLong(SaTokenUtils.getId().toString()), sysRoleDto.getSysId());
|
|
|
+ SysRole sysRole = copy(SysRole.class, sysRoleDto).saveOrUpdate(currentUser, sysRoleDto.getSysId());
|
|
|
+
|
|
|
return R.ok(saveOrUpdate(sysRole));
|
|
|
}
|
|
|
|
|
@@ -50,6 +67,26 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|
|
public R<SysRoleVo> getById(Long id) {
|
|
|
SysRole role = super.getById(id);
|
|
|
SysRoleVo sysRoleVo = copy(SysRoleVo.class, role);
|
|
|
+ //角色菜单
|
|
|
+ sysRoleVo.setMenuIds(sysRoleMenuService.getRoleMenus(id));
|
|
|
return R.ok(sysRoleVo);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<IPage<SysRoleVo>> getRolePage(Page page, SysRoleDto sysRoleDto) {
|
|
|
+
|
|
|
+ Page pageResult = this.page(page, Wrappers.<SysRole>lambdaQuery()
|
|
|
+ .like(StrUtil.isNotBlank(sysRoleDto.getName()), SysRole::getName, sysRoleDto.getName())
|
|
|
+ .like(StrUtil.isNotBlank(sysRoleDto.getCode()), SysRole::getCode, sysRoleDto.getCode())
|
|
|
+ );
|
|
|
+ return R.ok(pageResult);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<Boolean> saveRoleMenus(RoleMenuVo roleMenuVo) {
|
|
|
+ return R.ok(sysRoleMenuService.saveRoleMenus(roleMenuVo.getId(), roleMenuVo.getMenuIds()));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|