|
@@ -1,10 +1,7 @@
|
|
package com.caimei365.manager.service.impl;
|
|
package com.caimei365.manager.service.impl;
|
|
|
|
|
|
import com.caimei365.manager.dao.SysUserDao;
|
|
import com.caimei365.manager.dao.SysUserDao;
|
|
-import com.caimei365.manager.entity.PaginationVo;
|
|
|
|
-import com.caimei365.manager.entity.ResponseJson;
|
|
|
|
-import com.caimei365.manager.entity.SysMenu;
|
|
|
|
-import com.caimei365.manager.entity.SysUser;
|
|
|
|
|
|
+import com.caimei365.manager.entity.*;
|
|
import com.caimei365.manager.service.RedisService;
|
|
import com.caimei365.manager.service.RedisService;
|
|
import com.caimei365.manager.service.SysUserService;
|
|
import com.caimei365.manager.service.SysUserService;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
@@ -42,11 +39,11 @@ public class SysUserServiceImpl implements SysUserService {
|
|
if (StringUtils.hasLength(username)) {
|
|
if (StringUtils.hasLength(username)) {
|
|
SysUser sysUser = sysUserDao.findByUsername(username);
|
|
SysUser sysUser = sysUserDao.findByUsername(username);
|
|
// 获取用户角色列表
|
|
// 获取用户角色列表
|
|
- List<String> roleList = sysUserDao.getRoleList(sysUser.getId());
|
|
|
|
|
|
+ List<String> roleList = sysUserDao.getRoleListByUserId(sysUser.getId());
|
|
sysUser.setRoles(roleList);
|
|
sysUser.setRoles(roleList);
|
|
|
|
|
|
// 获取用户角色Id
|
|
// 获取用户角色Id
|
|
- List<Integer> roleIds = sysUserDao.getRoleIdsByUserId(username);
|
|
|
|
|
|
+ List<Integer> roleIds = sysUserDao.getRoleIdsByUsername(username);
|
|
List<SysMenu> menus = null;
|
|
List<SysMenu> menus = null;
|
|
if (!CollectionUtils.isEmpty(roleIds)) {
|
|
if (!CollectionUtils.isEmpty(roleIds)) {
|
|
// 根据角色Id获取菜单列表
|
|
// 根据角色Id获取菜单列表
|
|
@@ -59,6 +56,194 @@ public class SysUserServiceImpl implements SysUserService {
|
|
return ResponseJson.error("用户数据异常", null);
|
|
return ResponseJson.error("用户数据异常", null);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 退出登录
|
|
|
|
+ *
|
|
|
|
+ * @param token
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> logout(String token) {
|
|
|
|
+ if (StringUtils.hasLength(token)) {
|
|
|
|
+ redisService.remove(token);
|
|
|
|
+ }
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取用户列表
|
|
|
|
+ *
|
|
|
|
+ * @param username 用户名
|
|
|
|
+ * @param fullName 姓名
|
|
|
|
+ * @param pageNum 页码
|
|
|
|
+ * @param pageSize 每页大小
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<PaginationVo<SysUser>> getUserList(String username, String fullName, int pageNum, int pageSize) {
|
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
|
+ List<SysUser> menus = sysUserDao.getUserList(username, fullName);
|
|
|
|
+ PaginationVo<SysUser> pageData = new PaginationVo<>(menus);
|
|
|
|
+ return ResponseJson.success(pageData);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据ID获取用户
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<SysUser> getUser(Integer id) {
|
|
|
|
+ SysUser sysUser = sysUserDao.getUser(id);
|
|
|
|
+ return ResponseJson.success(sysUser);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据ID更新用户
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> updateUser(Integer id, SysUser sysUser) {
|
|
|
|
+ sysUser.setId(id);
|
|
|
|
+ if (StringUtils.hasLength(sysUser.getPassword())){
|
|
|
|
+ // 密码加密
|
|
|
|
+ String encodePassword = passwordEncoder.encode(sysUser.getPassword());
|
|
|
|
+ sysUser.setPassword(encodePassword);
|
|
|
|
+ }
|
|
|
|
+ // 删除原有角色关联
|
|
|
|
+ sysUserDao.deleteUserRoleRelation(id);
|
|
|
|
+ // 前端传入角色Ids,用","隔开
|
|
|
|
+ String roleIds = sysUser.getRoleIds();
|
|
|
|
+ // 保存用户角色关系
|
|
|
|
+ saveRoleRelation(sysUser.getId(), roleIds);
|
|
|
|
+ sysUserDao.updateSysUser(sysUser);
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 添加用户
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> addUser(SysUser sysUser) {
|
|
|
|
+ if (StringUtils.hasLength(sysUser.getUsername()) && StringUtils.hasLength(sysUser.getPassword())) {
|
|
|
|
+ // 密码加密
|
|
|
|
+ String encodePassword = passwordEncoder.encode(sysUser.getPassword());
|
|
|
|
+ sysUser.setPassword(encodePassword);
|
|
|
|
+ // 新增用户
|
|
|
|
+ sysUserDao.insertSysUser(sysUser);
|
|
|
|
+ // 角色Ids,用","隔开
|
|
|
|
+ String roleIds = sysUser.getRoleIds();
|
|
|
|
+ // 保存用户角色关系
|
|
|
|
+ saveRoleRelation(sysUser.getId(), roleIds);
|
|
|
|
+ return ResponseJson.success("添加用户成功", null);
|
|
|
|
+ }
|
|
|
|
+ return ResponseJson.error("用户名或密码不能为空", null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据ID删除用户
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> deleteUser(Integer id) {
|
|
|
|
+ sysUserDao.deleteSysUser(id);
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 保存用户角色关系
|
|
|
|
+ */
|
|
|
|
+ private void saveRoleRelation(Integer userId, String roleIds) {
|
|
|
|
+ if (StringUtils.hasLength(roleIds)) {
|
|
|
|
+ // 设置用户角色
|
|
|
|
+ String[] split = roleIds.split(",");
|
|
|
|
+ for (String s : split) {
|
|
|
|
+ if (StringUtils.hasLength(s)) {
|
|
|
|
+ // 保存用户角色关系
|
|
|
|
+ sysUserDao.insertUserRoleRelation(userId, Integer.valueOf(s));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取角色列表
|
|
|
|
+ *
|
|
|
|
+ * @param pageNum 页码
|
|
|
|
+ * @param pageSize 每页大小
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<PaginationVo<SysRole>> getRoleList(int pageNum, int pageSize) {
|
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
|
+ List<SysRole> roles = sysUserDao.getRoleList();
|
|
|
|
+ PaginationVo<SysRole> pageData = new PaginationVo<>(roles);
|
|
|
|
+ return ResponseJson.success(pageData);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据ID获取角色
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<SysRole> getRole(Integer id) {
|
|
|
|
+ SysRole sysRole = sysUserDao.getRole(id);
|
|
|
|
+ return ResponseJson.success(sysRole);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据ID更新角色
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> updateRole(Integer id, SysRole sysRole) {
|
|
|
|
+ sysRole.setId(id);
|
|
|
|
+ sysUserDao.updateRole(sysRole);
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 添加角色
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> addRole(SysRole sysRole) {
|
|
|
|
+ String menuIds = sysRole.getMenuIds();
|
|
|
|
+ // 保存角色
|
|
|
|
+ sysUserDao.insertRole(sysRole);
|
|
|
|
+ // 保存角色菜单关系
|
|
|
|
+ saveRoleMenuRelation(sysRole.getId(), menuIds);
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据ID删除角色
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> deleteRole(Integer id) {
|
|
|
|
+ sysUserDao.deleteRole(id);
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 角色授权菜单
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<Void> setRoleMenu(Integer id, SysRole sysRole) {
|
|
|
|
+ // 删除原有角色菜单关联
|
|
|
|
+ sysUserDao.deleteRoleMenuRelation(id);
|
|
|
|
+ // 保存角色菜单关系
|
|
|
|
+ String menuIds = sysRole.getMenuIds();
|
|
|
|
+ saveRoleMenuRelation(id, menuIds);
|
|
|
|
+ return ResponseJson.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 保存角色菜单关系
|
|
|
|
+ */
|
|
|
|
+ private void saveRoleMenuRelation(Integer roleId, String menuIds) {
|
|
|
|
+ if (StringUtils.hasLength(menuIds)) {
|
|
|
|
+ // 设置角色菜单
|
|
|
|
+ String[] split = menuIds.split(",");
|
|
|
|
+ for (String s : split) {
|
|
|
|
+ if (StringUtils.hasLength(s)) {
|
|
|
|
+ // 保存角色菜单关系
|
|
|
|
+ sysUserDao.insertRoleMenuRelation(roleId, Integer.valueOf(s));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取菜单列表
|
|
* 获取菜单列表
|
|
*
|
|
*
|
|
@@ -143,61 +328,4 @@ public class SysUserServiceImpl implements SysUserService {
|
|
sysUserDao.deleteMenu(id);
|
|
sysUserDao.deleteMenu(id);
|
|
return ResponseJson.success();
|
|
return ResponseJson.success();
|
|
}
|
|
}
|
|
-
|
|
|
|
-// /**
|
|
|
|
-// * 获取用户可访问菜单
|
|
|
|
-// */
|
|
|
|
-// @Override
|
|
|
|
-// public ResponseJson<List<SysMenu>> menuList(String username) {
|
|
|
|
-// if (!StringUtils.hasLength(username)) {
|
|
|
|
-// return ResponseJson.error("用户信息异常", null);
|
|
|
|
-// }
|
|
|
|
-// // 获取用户角色Id
|
|
|
|
-// List<Long> roleIds = sysUserDao.getRoleIdsByUserId(username);
|
|
|
|
-// List<SysMenu> menus = null;
|
|
|
|
-// if (!CollectionUtils.isEmpty(roleIds)) {
|
|
|
|
-// // 根据角色Id获取菜单列表
|
|
|
|
-// menus = sysUserDao.getMenuListByRoleIds(roleIds);
|
|
|
|
-// }
|
|
|
|
-// return ResponseJson.success(menus);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 退出登录
|
|
|
|
- *
|
|
|
|
- * @param token
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public ResponseJson<Void> logout(String token) {
|
|
|
|
- if (StringUtils.hasLength(token)) {
|
|
|
|
- redisService.remove(token);
|
|
|
|
- }
|
|
|
|
- return ResponseJson.success();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public ResponseJson<SysUser> register(SysUser sysUser) {
|
|
|
|
- if (StringUtils.hasLength(sysUser.getUsername()) && StringUtils.hasLength(sysUser.getPassword())) {
|
|
|
|
- // 密码加密
|
|
|
|
- String encodePassword = passwordEncoder.encode(sysUser.getPassword());
|
|
|
|
- sysUser.setPassword(encodePassword);
|
|
|
|
- // 新增用户
|
|
|
|
- sysUserDao.insertSysUser(sysUser);
|
|
|
|
- // 角色Ids,用","隔开
|
|
|
|
- String roleIds = sysUser.getRoleIds();
|
|
|
|
- if (StringUtils.hasLength(roleIds)) {
|
|
|
|
- // 设置用户角色
|
|
|
|
- String[] split = roleIds.split(",");
|
|
|
|
- for (String s : split) {
|
|
|
|
- if (StringUtils.hasLength(s)) {
|
|
|
|
- // 保存用户角色关系
|
|
|
|
- sysUserDao.insertUserRoleRelation(sysUser.getId(), Integer.valueOf(s));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return ResponseJson.success("注册成功", sysUser);
|
|
|
|
- }
|
|
|
|
- return ResponseJson.error("用户名或密码不能为空", null);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|