From 49dbcdadd860b7613063ee618fbe38a0593d5bd9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 11 Jul 2022 15:45:29 +0800
Subject: [PATCH] fix
---
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 150 insertions(+), 21 deletions(-)
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 7d13ef2..9926a42 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
@@ -6,20 +6,17 @@
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.contants.AppContants;
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.AdminDeleteDto;
-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.dto.*;
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 com.xcong.farmer.cms.modules.system.vo.*;
+import com.xcong.farmer.cms.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -28,6 +25,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.io.Serializable;
import java.util.*;
@Service
@@ -41,12 +39,28 @@
@Resource
private RoleMenuMapper roleMenuMapper;
@Resource
+ private ColumnMapper columnMapper;
+ @Resource
+ private ArticleMapper articleMapper;
+ @Resource
+ private MessageBoardMapper messageBoardMapper;
+ @Resource
private MenuMapper menuMapper;
+ @Resource
+ private RedisUtils redisUtils;
@Override
public Result getUserInPage(AdminUserDto adminUserDto) {
+ UserEntity userlogin = LoginUserUtil.getLoginUser();
Page<AdminUserVo> page = new Page<>(adminUserDto.getPageNum(), adminUserDto.getPageSize());
UserEntity userEntity = new UserEntity();
+ long companyId = userlogin.getCompanyId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getCompanyId();
+ if(companyId > UserEntity.USER_BELONG_TOP){
+ userEntity.setCompanyId(companyId);
+ userEntity.setRoleId(RoleEntity.ROLE_ADMIN_NAME_ID);
+ }else if(companyId == UserEntity.USER_BELONG_TOP){
+ userEntity.setRoleId(RoleEntity.ROLE_SUPER_NAME_ID);
+ }
if(StrUtil.isNotEmpty(adminUserDto.getUsername())){
userEntity.setUsername(adminUserDto.getUsername());
}
@@ -77,17 +91,19 @@
@Override
@Transactional
public Result addUser(AdminAddUserDto adminAddUserDto) {
+ UserEntity userlogin = LoginUserUtil.getLoginUser();
String username = adminAddUserDto.getUsername();
- if(StrUtil.isEmpty(username)){
- return Result.fail("请输入用户名");
+ QueryWrapper<UserEntity> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("username",username);
+ List<UserEntity> userEntities = this.baseMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(userEntities)){
+ return Result.fail("用户名重复");
}
String roleIds = adminAddUserDto.getRoleIds();
- if(StrUtil.isEmpty(roleIds)){
- return Result.fail("请选择用户角色");
- }
String phone = adminAddUserDto.getPhone();
- if(StrUtil.isEmpty(phone)){
- return Result.fail("请输入联系电话");
+ Long belongId = adminAddUserDto.getBelongId() == null ? UserEntity.USER_BELONG_TOP:adminAddUserDto.getBelongId();
+ if(belongId == UserEntity.USER_BELONG_TOP){
+ return Result.fail("请选择所属公司");
}
UserEntity userEntity = new UserEntity();
userEntity.setUsername(username);
@@ -100,6 +116,7 @@
}
userEntity.setPassword(SecureUtil.md5(UserEntity.PASSWORD_DEFAULT));
userEntity.setStatus(UserEntity.STATUS_ENABLE);
+ userEntity.setCompanyId(belongId);
int insert = this.baseMapper.insert(userEntity);
if(insert > 0){
saveUserRole(roleIds,userEntity.getId());
@@ -159,6 +176,7 @@
adminSeeUserInfoVo.setNickname(userEntity.getNickname());
adminSeeUserInfoVo.setPhone(userEntity.getPhone());
adminSeeUserInfoVo.setEmail(userEntity.getEmail());
+ adminSeeUserInfoVo.setBelongId(userEntity.getCompanyId());
List<AdminRoleVo> adminRoleVos = new ArrayList<>();
QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>();
@@ -192,10 +210,15 @@
if(StrUtil.isEmpty(phone)){
return Result.fail("请输入联系电话");
}
+ Long belongId = adminUpdateUserDto.getBelongId() == null ? UserEntity.USER_BELONG_TOP : adminUpdateUserDto.getBelongId();
+ if(UserEntity.USER_BELONG_TOP == belongId){
+ return Result.fail("请输入所属公司");
+ }
UserEntity userEntity = this.baseMapper.selectById(adminUpdateUserDto.getId());
if(ObjectUtil.isEmpty(userEntity)){
return Result.fail("用户不存在");
}
+ userEntity.setCompanyId(belongId);
userEntity.setUsername(username);
userEntity.setPhone(phone);
if(StrUtil.isNotEmpty(adminUpdateUserDto.getNickname())){
@@ -230,7 +253,8 @@
@Override
public Result userMenu() {
- Long userId = LoginUserUtil.getLoginUser().getId();
+ UserEntity loginUser = LoginUserUtil.getLoginUser();
+ Long userId = loginUser.getId();
List<AdminUserMenuVo> adminUserMenuVos = new ArrayList<>();
QueryWrapper<UserRoleEntity> userRoleQueryWrapper = new QueryWrapper<>();
@@ -238,11 +262,20 @@
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(UserEntity.USERNAME_DEFAULT.equals(loginUser.getUsername())){
+ List<MenuEntity> menuEntities = menuMapper.selectList(new QueryWrapper<>());
+ if(CollUtil.isNotEmpty(menuEntities)){
+ for(MenuEntity menuEntity : menuEntities){
+ menuIds.add(menuEntity.getId());
+ }
+ }
+ }else{
+ for(UserRoleEntity userRoleEntity : userRoleEntities){
+ List<RoleMenuEntity> roleMenuEntities = roleMenuMapper.selectListByRoleId(userRoleEntity.getRoleId());
+ if(CollUtil.isNotEmpty(roleMenuEntities)){
+ for(RoleMenuEntity roleMenuEntity : roleMenuEntities){
+ menuIds.add(roleMenuEntity.getMenuId());
+ }
}
}
}
@@ -291,6 +324,20 @@
}
}
+ if(CollUtil.isNotEmpty(adminUserMenuVos)){
+ for(AdminUserMenuVo adminUserMenuVo : adminUserMenuVos){
+ List<AdminUserMenuVo> child = adminUserMenuVo.getChild();
+ if(CollUtil.isNotEmpty(child)){
+ List<Long> menuIdChilds = new ArrayList<>();
+ for(AdminUserMenuVo adminUserMenuVoChild : child){
+ Long id = adminUserMenuVoChild.getId();
+ menuIdChilds.add(id);
+ }
+ List<AdminUserMenuVo> adminUserMenuVoByOrderNum = menuMapper.selectAdminUserMenuVoOrderByOrderNum(menuIdChilds);
+ adminUserMenuVo.setChild(adminUserMenuVoByOrderNum);
+ }
+ }
+ }
return Result.ok(adminUserMenuVos);
}
@@ -308,12 +355,94 @@
userRoleMapper.delete(objectQueryWrapper);
this.baseMapper.deleteById(userId);
+
+ String redisMember = AppContants.APP_LOGIN_PREFIX + userId;
+ String token = redisUtils.getString(redisMember);
+ redisUtils.del(AppContants.APP_LOGIN_PREFIX + token);
+ SecurityContextHolder.clearContext();
}
}
return Result.ok("删除成功");
}
+ @Override
+ @Transactional
+ public Result updatePassword(AdminUpdatePasswordDto adminUpdatePasswordDto) {
+ UserEntity loginUser = LoginUserUtil.getLoginUser();
+ Long userId = loginUser.getId();
+ UserEntity userEntity = this.baseMapper.selectById(userId);
+ if(ObjectUtil.isEmpty(userEntity)){
+ return Result.fail("用户不存在");
+ }
+ String oldPassword = adminUpdatePasswordDto.getOldPassword();
+ if(StrUtil.isEmpty(oldPassword)){
+ return Result.fail("请输入原密码");
+ }
+ String newPassword = adminUpdatePasswordDto.getNewPassword();
+ if(StrUtil.isEmpty(newPassword)){
+ return Result.fail("请输入新密码");
+ }
+ String s = SecureUtil.md5(oldPassword);
+ if(!userEntity.getPassword().equals(s)){
+ return Result.fail("原密码不正确,请联系管理员重置密码");
+ }
+ userEntity.setPassword(SecureUtil.md5(newPassword));
+ this.baseMapper.updateById(userEntity);
+ return Result.ok("修改成功");
+ }
+
+ @Override
+ public Result userInfo() {
+ UserEntity loginUser = LoginUserUtil.getLoginUser();
+ Long id = loginUser.getId();
+ UserEntity userEntity = this.baseMapper.selectById(id);
+ if(ObjectUtil.isEmpty(userEntity)){
+ return Result.fail("用户不存在");
+ }
+ AdminUserInfoVo adminUserInfoVo = new AdminUserInfoVo();
+ adminUserInfoVo.setId(userEntity.getId());
+ adminUserInfoVo.setUsername(userEntity.getUsername());
+ adminUserInfoVo.setNickname(userEntity.getNickname());
+ adminUserInfoVo.setPhone(userEntity.getPhone());
+ adminUserInfoVo.setEmail(userEntity.getEmail());
+ return Result.ok(adminUserInfoVo);
+ }
+
+ @Override
+ public Result viewHomePage() {
+ UserEntity loginUser = LoginUserUtil.getLoginUser();
+ Long companyId = LoginUserUtil.getCompanyId();
+
+ AdminHomePageInfoVo adminHomePageInfoVo = new AdminHomePageInfoVo();
+
+ QueryWrapper<UserRoleEntity> userRoleQueryWrapper = new QueryWrapper<>();
+ userRoleQueryWrapper.eq("user_id",loginUser.getId());
+ List<UserRoleEntity> userRoleEntities = userRoleMapper.selectList(userRoleQueryWrapper);
+ if(CollUtil.isNotEmpty(userRoleEntities)){
+ List<String> roleNames = new ArrayList<>();
+ for(UserRoleEntity userRoleEntity : userRoleEntities){
+ RoleEntity roleEntity = roleMapper.selectById(userRoleEntity.getRoleId());
+ roleNames.add(roleEntity.getRoleName());
+ }
+ adminHomePageInfoVo.setRoleNames(roleNames);
+ }
+
+ QueryWrapper<ColumnEntity> columnQueryWrapper = new QueryWrapper<>();
+ columnQueryWrapper.eq("company_id",companyId);
+ adminHomePageInfoVo.setColumnNum(columnMapper.selectCount(columnQueryWrapper));
+
+ QueryWrapper<ArticleEntity> articleQueryWrapper = new QueryWrapper<>();
+ articleQueryWrapper.eq("company_id",companyId);
+ articleQueryWrapper.eq("del_status",ArticleEntity.DELETE_STATUS_NO);
+ adminHomePageInfoVo.setArticleNum(articleMapper.selectCount(articleQueryWrapper));
+
+ QueryWrapper<MessageBoardEntity> messageQueryWrapper = new QueryWrapper<>();
+ messageQueryWrapper.eq("company_id",companyId);
+ adminHomePageInfoVo.setMessageNum(messageBoardMapper.selectCount(messageQueryWrapper));
+ return Result.ok(adminHomePageInfoVo);
+ }
+
private void saveUserRole(String roleIds,Long userId) {
if (StrUtil.isNotEmpty(roleIds)) {
String[] roleIdList = roleIds.split(StringPool.COMMA);
--
Gitblit v1.9.1