From a59c45cf807e7b800cd8ab901fe15a90d4894bb5 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 31 May 2022 16:57:37 +0800
Subject: [PATCH] 20220527
---
src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java | 8
src/main/java/com/xcong/farmer/cms/modules/system/service/ICommonService.java | 2
src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java | 6 +
src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java | 2
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java | 169 ++++++++++++++++++++++++----
src/main/java/com/xcong/farmer/cms/configurations/security/TokenFilter.java | 7 +
src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java | 2
src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java | 4
src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java | 6
src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminCommonController.java | 6
src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java | 2
src/main/resources/mapper/MenuMapper.xml | 7 +
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java | 10 -
src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java | 4
src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java | 8
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java | 4
src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java | 19 +++
src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java | 4
src/main/resources/application.yml | 2
src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserMenuVo.java | 30 +++++
20 files changed, 241 insertions(+), 61 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java b/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java
index ce55de5..e4fd241 100644
--- a/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java
@@ -21,15 +21,15 @@
@TableId(value = "id",type = IdType.AUTO)
private Long id;
- private String createBy;
+ private String createBy = "system";
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
- private Date createTime;
+ private Date createTime = new Date();
- private String updateBy;
+ private String updateBy = "system";
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
- private Date updateTime;
+ private Date updateTime = new Date();
private Integer version;
}
diff --git a/src/main/java/com/xcong/farmer/cms/configurations/security/TokenFilter.java b/src/main/java/com/xcong/farmer/cms/configurations/security/TokenFilter.java
index c5a6d21..3e7bbbe 100644
--- a/src/main/java/com/xcong/farmer/cms/configurations/security/TokenFilter.java
+++ b/src/main/java/com/xcong/farmer/cms/configurations/security/TokenFilter.java
@@ -3,11 +3,13 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xcong.farmer.cms.common.contants.AppContants;
import com.xcong.farmer.cms.common.system.bean.LoginUserBean;
import com.xcong.farmer.cms.configurations.properties.ApplicationProperties;
import com.xcong.farmer.cms.configurations.properties.SecurityProperties;
+import com.xcong.farmer.cms.modules.system.entity.UserEntity;
import com.xcong.farmer.cms.utils.RedisUtils;
import com.xcong.farmer.cms.utils.SpringContextHolder;
import lombok.extern.slf4j.Slf4j;
@@ -49,6 +51,11 @@
Authentication authentication = new UsernamePasswordAuthenticationToken(loginUser.getMemberEntity(), token, new ArrayList<>());
SecurityContextHolder.getContext().setAuthentication(authentication);
redisUtils.expire(AppContants.APP_LOGIN_PREFIX + token, 300000);
+
+ String userJsonStr = redisUtils.getString(AppContants.APP_LOGIN_PREFIX + token);
+ UserEntity user = JSON.parseObject(userJsonStr, UserEntity.class);
+
+ request.getSession().setAttribute("user", user);
} else {
SecurityContextHolder.clearContext();
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminCommonController.java b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminCommonController.java
index 4156ded..2b5bc78 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminCommonController.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminCommonController.java
@@ -54,9 +54,9 @@
* @return
*/
@ApiOperation(value="用户退出登录", notes="用户退出登录")
- @GetMapping(value = "/Logout/{id}")
- public Result memberLogout(@PathVariable(value = "id") Long id) {
- return iCommonService.memberLogout(id);
+ @GetMapping(value = "/Logout")
+ public Result memberLogout() {
+ return iCommonService.memberLogout();
}
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java
index 4af43fd..e1b28aa 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java
@@ -79,4 +79,10 @@
return iUserService.resetPassword(id);
}
+ @ApiOperation(value = "查看用户的全部菜单", notes = "查看用户的全部菜单")
+ @GetMapping(value = "/userMenu")
+ public Result userMenu() {
+ return iUserService.userMenu();
+ }
+
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java
index 55538d1..4b2c9cf 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java
@@ -14,7 +14,7 @@
@ApiModelProperty(value = "备注")
private String remark;
- @ApiModelProperty(value = "菜单按钮ID")
+ @ApiModelProperty(value = "菜单按钮IDS")
private String menuIds;
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java
index 532989b..489c9fd 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java
@@ -16,8 +16,8 @@
@ApiModelProperty(value = "昵称")
private String nickname;
- @ApiModelProperty(value = "角色ID")
- private Long roleId;
+ @ApiModelProperty(value = "角色IDS")
+ private String roleIds;
@ApiModelProperty(value = "联系电话")
private String phone;
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java
index 4aaa771..76aa163 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java
@@ -23,8 +23,8 @@
@ApiModelProperty(value = "邮箱")
private String email;
- @ApiModelProperty(value = "角色ID")
- private Long roleId;
+ @ApiModelProperty(value = "角色IDS")
+ private String roleIds;
@ApiModelProperty(value = "角色名称")
private String roleName;
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java
index 0b3958b..10e9376 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java
@@ -32,10 +32,6 @@
private String nickname;
//登录密码
private String password;
- //角色ID
- private Long roleId;
- //角色名称
- private String roleName;
//联系电话
private String phone;
//邮箱
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java
index 5f775e6..b73e7ba 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java
@@ -5,10 +5,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xcong.farmer.cms.modules.system.entity.MenuEntity;
import com.xcong.farmer.cms.modules.system.vo.AdminMenuVo;
+import com.xcong.farmer.cms.modules.system.vo.AdminUserMenuVo;
import org.apache.ibatis.annotations.Param;
public interface MenuMapper extends BaseMapper<MenuEntity> {
IPage<AdminMenuVo> selectAdminMenuVoInPage(Page<AdminMenuVo> page, @Param("record")MenuEntity menuEntity);
+ AdminUserMenuVo selectAdminRoleMenuVoById(@Param("id")Long parentId);
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/ICommonService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/ICommonService.java
index 5969a21..ef6dc9b 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/ICommonService.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/ICommonService.java
@@ -9,5 +9,5 @@
Result login(AdminLoginDto adminLoginDto);
- Result memberLogout(Long id);
+ Result memberLogout();
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java
index 1baac3d..24c4fe3 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java
@@ -24,4 +24,6 @@
Result updateUser(AdminUpdateUserDto adminUpdateUserDto);
Result resetPassword(Long id);
+
+ Result userMenu();
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java
index 4399b6a..b966f3c 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java
@@ -13,6 +13,7 @@
import com.xcong.farmer.cms.modules.system.entity.UserEntity;
import com.xcong.farmer.cms.modules.system.mapper.UserMapper;
import com.xcong.farmer.cms.modules.system.service.ICommonService;
+import com.xcong.farmer.cms.modules.system.util.LoginUserUtil;
import com.xcong.farmer.cms.utils.MessageSourceUtils;
import com.xcong.farmer.cms.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
@@ -73,7 +74,8 @@
}
@Override
- public Result memberLogout(Long id) {
+ public Result memberLogout() {
+ Long id = LoginUserUtil.getLoginUser().getId();
//获取用户ID
UserEntity userEntity = userMapper.selectById(id);
if (ObjectUtil.isEmpty(userEntity)) {
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java
index f95c35a..1699bef 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java
@@ -147,16 +147,6 @@
if(StrUtil.isNotEmpty(menuIds)){
saveRoleMenus(menuIds,id);
}
-
- QueryWrapper<UserEntity> userWrapper = new QueryWrapper<>();
- userWrapper.eq("role_id",id);
- List<UserEntity> userEntities = userMapper.selectList(userWrapper);
- if(CollUtil.isNotEmpty(userEntities)){
- for(UserEntity userEntity : userEntities){
- userEntity.setRoleName(roleName);
- userMapper.updateById(userEntity);
- }
- }
return Result.ok("更新成功");
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java
index 7b15c11..dd3877c 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java
@@ -1,27 +1,33 @@
package com.xcong.farmer.cms.modules.system.service.Impl;
import cn.hutool.crypto.SecureUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.farmer.cms.common.response.Result;
import com.xcong.farmer.cms.modules.system.dto.AdminAddUserDto;
import com.xcong.farmer.cms.modules.system.dto.AdminUpdateUserDto;
import com.xcong.farmer.cms.modules.system.dto.AdminUserDto;
-import com.xcong.farmer.cms.modules.system.entity.RoleEntity;
-import com.xcong.farmer.cms.modules.system.entity.UserEntity;
-import com.xcong.farmer.cms.modules.system.mapper.RoleMapper;
-import com.xcong.farmer.cms.modules.system.mapper.UserMapper;
+import com.xcong.farmer.cms.modules.system.entity.*;
+import com.xcong.farmer.cms.modules.system.mapper.*;
import com.xcong.farmer.cms.modules.system.service.IUserService;
+import com.xcong.farmer.cms.modules.system.util.LoginUserUtil;
+import com.xcong.farmer.cms.modules.system.vo.AdminRoleVo;
import com.xcong.farmer.cms.modules.system.vo.AdminSeeUserInfoVo;
+import com.xcong.farmer.cms.modules.system.vo.AdminUserMenuVo;
import com.xcong.farmer.cms.modules.system.vo.AdminUserVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ObjectUtil;
+
+import cn.hutool.core.collection.CollUtil;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.util.*;
@Service
@Slf4j
@@ -29,6 +35,12 @@
@Resource
private RoleMapper roleMapper;
+ @Resource
+ private UserRoleMapper userRoleMapper;
+ @Resource
+ private RoleMenuMapper roleMenuMapper;
+ @Resource
+ private MenuMapper menuMapper;
@Override
public Result getUserInPage(AdminUserDto adminUserDto) {
@@ -37,8 +49,28 @@
if(StrUtil.isNotEmpty(adminUserDto.getUsername())){
userEntity.setUsername(adminUserDto.getUsername());
}
- IPage<AdminUserVo> list = this.baseMapper.selectAdminUserVoInPage(page,userEntity);
- return Result.ok(list);
+ IPage<AdminUserVo> AdminUserVos = this.baseMapper.selectAdminUserVoInPage(page,userEntity);
+ List<AdminUserVo> records = AdminUserVos.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(AdminUserVo adminUserVo : records){
+ List<AdminRoleVo> adminRoleVos = new ArrayList<>();
+ QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("user_id",adminUserVo.getId());
+ List<UserRoleEntity> userRoleEntities = userRoleMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(userRoleEntities)){
+ for(UserRoleEntity userRoleEntity : userRoleEntities){
+ RoleEntity roleEntity = roleMapper.selectById(userRoleEntity.getRoleId());
+ AdminRoleVo adminRoleVo = new AdminRoleVo();
+ adminRoleVo.setId(roleEntity.getId());
+ adminRoleVo.setRoleName(roleEntity.getRoleName());
+ adminRoleVos.add(adminRoleVo);
+ }
+ }
+ adminUserVo.setAdminRoleVos(adminRoleVos);
+ }
+ }
+
+ return Result.ok(AdminUserVos);
}
@Override
@@ -48,12 +80,8 @@
if(StrUtil.isEmpty(username)){
return Result.fail("请输入用户名");
}
- Long roleId = adminAddUserDto.getRoleId();
- if(ObjectUtil.isEmpty(roleId)){
- return Result.fail("请选择用户角色");
- }
- RoleEntity roleEntity = roleMapper.selectById(roleId);
- if(ObjectUtil.isEmpty(roleEntity)){
+ String roleIds = adminAddUserDto.getRoleIds();
+ if(StrUtil.isEmpty(roleIds)){
return Result.fail("请选择用户角色");
}
String phone = adminAddUserDto.getPhone();
@@ -63,19 +91,17 @@
UserEntity userEntity = new UserEntity();
userEntity.setUsername(username);
userEntity.setPhone(phone);
- userEntity.setRoleId(roleId);
- userEntity.setRoleName(roleEntity.getRoleName());
if(StrUtil.isNotEmpty(adminAddUserDto.getNickname())){
userEntity.setNickname(adminAddUserDto.getNickname());
}
if(StrUtil.isNotEmpty(adminAddUserDto.getEmail())){
userEntity.setEmail(adminAddUserDto.getEmail());
}
-
userEntity.setPassword(SecureUtil.md5(UserEntity.PASSWORD_DEFAULT));
userEntity.setStatus(UserEntity.STATUS_ENABLE);
int insert = this.baseMapper.insert(userEntity);
if(insert > 0){
+ saveUserRole(roleIds,userEntity.getId());
return Result.ok("添加成功");
}
return Result.fail("添加失败");
@@ -113,6 +139,10 @@
return Result.fail("用户不存在");
}
this.baseMapper.deleteById(id);
+
+ QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("user_id",userEntity.getId());
+ userRoleMapper.delete(objectQueryWrapper);
return Result.ok("删除成功");
}
@@ -128,8 +158,21 @@
adminSeeUserInfoVo.setNickname(userEntity.getNickname());
adminSeeUserInfoVo.setPhone(userEntity.getPhone());
adminSeeUserInfoVo.setEmail(userEntity.getEmail());
- adminSeeUserInfoVo.setRoleId(userEntity.getRoleId());
- adminSeeUserInfoVo.setRoleName(userEntity.getRoleName());
+
+ List<AdminRoleVo> adminRoleVos = new ArrayList<>();
+ QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("user_id",userEntity.getId());
+ List<UserRoleEntity> userRoleEntities = userRoleMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(userRoleEntities)){
+ for(UserRoleEntity userRoleEntity : userRoleEntities){
+ RoleEntity roleEntity = roleMapper.selectById(userRoleEntity.getRoleId());
+ AdminRoleVo adminRoleVo = new AdminRoleVo();
+ adminRoleVo.setId(roleEntity.getId());
+ adminRoleVo.setRoleName(roleEntity.getRoleName());
+ adminRoleVos.add(adminRoleVo);
+ }
+ }
+ adminSeeUserInfoVo.setAdminRoleVos(adminRoleVos);
return Result.ok(adminSeeUserInfoVo);
}
@@ -140,12 +183,8 @@
if(StrUtil.isEmpty(username)){
return Result.fail("请输入用户名");
}
- Long roleId = adminUpdateUserDto.getRoleId();
- if(ObjectUtil.isEmpty(roleId)){
- return Result.fail("请选择用户角色");
- }
- RoleEntity roleEntity = roleMapper.selectById(roleId);
- if(ObjectUtil.isEmpty(roleEntity)){
+ String roleIds = adminUpdateUserDto.getRoleIds();
+ if(StrUtil.isEmpty(roleIds)){
return Result.fail("请选择用户角色");
}
String phone = adminUpdateUserDto.getPhone();
@@ -158,8 +197,6 @@
}
userEntity.setUsername(username);
userEntity.setPhone(phone);
- userEntity.setRoleId(roleId);
- userEntity.setRoleName(roleEntity.getRoleName());
if(StrUtil.isNotEmpty(adminUpdateUserDto.getNickname())){
userEntity.setNickname(adminUpdateUserDto.getNickname());
}
@@ -168,6 +205,11 @@
}
int insert = this.baseMapper.updateById(userEntity);
if(insert > 0){
+ QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("user_id",userEntity.getId());
+ userRoleMapper.delete(objectQueryWrapper);
+
+ saveUserRole(roleIds,userEntity.getId());
return Result.ok("更新成功");
}
return Result.fail("更新失败");
@@ -184,4 +226,81 @@
this.baseMapper.updateById(userEntity);
return Result.ok("重置成功");
}
+
+ @Override
+ public Result userMenu() {
+ Long userId = LoginUserUtil.getLoginUser().getId();
+ List<AdminUserMenuVo> adminUserMenuVos = new ArrayList<>();
+
+ QueryWrapper<UserRoleEntity> userRoleQueryWrapper = new QueryWrapper<>();
+ userRoleQueryWrapper.eq("user_id",userId);
+ List<UserRoleEntity> userRoleEntities = userRoleMapper.selectList(userRoleQueryWrapper);
+ if(CollUtil.isNotEmpty(userRoleEntities)){
+ List menuIds = new ArrayList<Long>();
+ for(UserRoleEntity userRoleEntity : userRoleEntities){
+ List<RoleMenuEntity> roleMenuEntities = roleMenuMapper.selectListByRoleId(userRoleEntity.getRoleId());
+ if(CollUtil.isNotEmpty(roleMenuEntities)){
+ for(RoleMenuEntity roleMenuEntity : roleMenuEntities){
+ menuIds.add(roleMenuEntity.getMenuId());
+ }
+ }
+ }
+ if(CollUtil.isNotEmpty(menuIds)){
+ HashSet hashSet = CollUtil.newHashSet(menuIds);
+ List<Long> parentMenuIds = new ArrayList<>();
+ List<Long> childMenuIds = new ArrayList<>();
+ for(Object s : hashSet){
+ MenuEntity menuEntity = menuMapper.selectById(Long.parseLong(s.toString()));
+ Long parentId = menuEntity.getParentId();
+ if(parentId == 0L){
+ parentMenuIds.add(menuEntity.getId());
+ }else{
+ childMenuIds.add(menuEntity.getId());
+ }
+ }
+ Map<Long, AdminUserMenuVo> menuMap = new HashMap<>();
+ if(CollUtil.isNotEmpty(parentMenuIds)){
+ for(Long parentId : parentMenuIds){
+ AdminUserMenuVo adminUserMenuVo = menuMapper.selectAdminRoleMenuVoById(parentId);
+ menuMap.put(parentId,adminUserMenuVo);
+ }
+ }
+ if(CollUtil.isNotEmpty(childMenuIds)){
+ for(Long childId : childMenuIds){
+ AdminUserMenuVo adminUserMenuVo = menuMapper.selectAdminRoleMenuVoById(childId);
+ Long parentId = adminUserMenuVo.getParentId();
+ AdminUserMenuVo adminUserMenuVoParent = menuMap.get(parentId);
+ List<AdminUserMenuVo> child = adminUserMenuVoParent.getChild();
+ if(CollUtil.isEmpty(child)){
+ List<AdminUserMenuVo> list = new ArrayList<>();
+ list.add(adminUserMenuVo);
+ adminUserMenuVoParent.setChild(list);
+ }else{
+ child.add(adminUserMenuVo);
+ }
+ }
+ }
+ Set<Map.Entry<Long, AdminUserMenuVo>> entries = menuMap.entrySet();
+ Iterator<Map.Entry<Long, AdminUserMenuVo>> iterator = entries.iterator();
+ while (iterator.hasNext()){
+ adminUserMenuVos.add(iterator.next().getValue());
+ }
+
+ }
+ }
+ return Result.ok(adminUserMenuVos);
+ }
+
+ private void saveUserRole(String roleIds,Long userId) {
+ if (StrUtil.isNotEmpty(roleIds)) {
+ String[] roleIdList = roleIds.split(StringPool.COMMA);
+ Arrays.stream(roleIdList).forEach(roleId -> {
+ UserRoleEntity userRoleEntity = new UserRoleEntity();
+ userRoleEntity.setRoleId(Long.valueOf(roleId));
+ userRoleEntity.setUserId(userId);
+ userRoleMapper.insert(userRoleEntity);
+ });
+ }
+ }
+
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java b/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java
new file mode 100644
index 0000000..ac1f9e0
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java
@@ -0,0 +1,19 @@
+package com.xcong.farmer.cms.modules.system.util;
+
+import com.xcong.farmer.cms.modules.system.entity.UserEntity;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author xxx
+ * @date 2020-08-24
+ **/
+public class LoginUserUtil {
+
+ public static UserEntity getLoginUser() {
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ return (UserEntity) request.getSession().getAttribute("user");
+ }
+}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java
index 9c616b5..0131392 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java
@@ -3,6 +3,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.List;
@Data
@ApiModel(value = "AdminSeeUserInfoVo", description = "系统用户详情返回")
@@ -23,10 +24,7 @@
@ApiModelProperty(value = "邮箱")
private String email;
- @ApiModelProperty(value = "角色ID")
- private Long roleId;
-
- @ApiModelProperty(value = "角色名称")
- private String roleName;
+ @ApiModelProperty(value = "角色")
+ private List<AdminRoleVo> AdminRoleVos;
}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserMenuVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserMenuVo.java
new file mode 100644
index 0000000..76980d5
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserMenuVo.java
@@ -0,0 +1,30 @@
+package com.xcong.farmer.cms.modules.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "AdminUserMenuVo", description = "系统菜单列表返回")
+public class AdminUserMenuVo {
+
+ @ApiModelProperty(value = "菜单ID")
+ private Long id;
+
+ @ApiModelProperty(value = "菜单按钮标题")
+ private String menuName;
+
+ @ApiModelProperty(value = "菜单类型 1:菜单 2:按钮")
+ private Integer menuType;
+
+ @ApiModelProperty(value = "路由地址")
+ private String routeUrl;
+
+ @ApiModelProperty(value = "父ID")
+ private Long parentId;
+
+ @ApiModelProperty(value = "子菜单")
+ private List<AdminUserMenuVo> child;
+}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java
index 9f22a8e..44f266c 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java
@@ -2,6 +2,8 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
+import java.util.List;
+
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -25,8 +27,8 @@
@ApiModelProperty(value = "邮箱")
private String email;
- @ApiModelProperty(value = "角色名称")
- private String roleName;
+ @ApiModelProperty(value = "角色")
+ private List<AdminRoleVo> AdminRoleVos;
@ApiModelProperty(value = "账号状态 0:禁用 1:激活")
private Integer status;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 255857b..0f0a173 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@
spring:
datasource:
- url: jdbc:mysql://120.27.238.55:3306/farmer-cms?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
+ url: jdbc:mysql://120.27.238.55:3306/farmer_cms?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
username: ct_test
password: 123456
driver-class-name: com.mysql.jdbc.Driver
diff --git a/src/main/resources/mapper/MenuMapper.xml b/src/main/resources/mapper/MenuMapper.xml
index 74e8534..e1127a9 100644
--- a/src/main/resources/mapper/MenuMapper.xml
+++ b/src/main/resources/mapper/MenuMapper.xml
@@ -17,4 +17,11 @@
order by a.create_time desc
</select>
+ <select id="selectAdminRoleMenuVoById" resultType="com.xcong.farmer.cms.modules.system.vo.AdminUserMenuVo">
+ SELECT
+ a.*
+ FROM
+ t_menu a where a.id = #{id}
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1