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