From 247f19f6c3f17c2ac2f37b55c7d0550731f31ffe Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Thu, 25 Mar 2021 17:24:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 128 ++++++++++++++++++++++++++++-------------- 1 files changed, 86 insertions(+), 42 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index fb42e30..8263599 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.Group; import com.moral.api.entity.Menu; import com.moral.api.entity.Organization; @@ -76,7 +77,7 @@ //������������ String password = parameters.get("password").toString(); //������������ - //password = AESUtils.decrypt(password, AESKey); + password = AESUtils.decrypt(password, AESKey); if (!MD5Utils.saltMD5Verify(password, userBo.getPassword())) { result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); @@ -113,7 +114,9 @@ userInfo.put("organizationName", organization.getName()); userInfo.put("locationLevel", organization.getLocationLevel()); userInfo.put("groups", groups); - userInfo.putAll(getMenus(userBo.getId())); + Map<String, Object> map = new HashMap<>(); + map.put("userId", userBo.getId()); + userInfo.putAll(getMenus(map)); try { //������token������������redis String token = TokenUtils.getToken(userBo.getId().toString(), userInfo); @@ -129,9 +132,15 @@ return result; } - //������userId������������������������ - private Map<String, Object> getMenus(int userId) { - List<Menu> allMenus = menuMapper.selectUserMenu(userId); + @Override + public Map<String, Object> getMenus(Map<String, Object> parameters) { + List<Menu> allMenus; + if (parameters.containsKey("userId")) { + allMenus = menuMapper.selectUserMenu(Integer.parseInt(parameters.get("userId").toString())); + } else { + allMenus = menuMapper.selectOrganizationMenu(Integer.parseInt(parameters.get("orgId").toString())); + } + Map<String, Object> resultMap = new LinkedHashMap<>(); //��������������� List<Menu> oneMenu = allMenus.stream() @@ -156,7 +165,6 @@ //������������������������������������ private List<Map<String, Object>> getMenusByRecursion(Menu menu, List<Menu> menus) { - List<List<Map<String, Object>>> resultList = new ArrayList(); Menu newMenu = new Menu(); newMenu.setParentId(menu.getId()); //������������������������������ @@ -176,7 +184,6 @@ menuMap.put("menus", getMenusByRecursion(o, menus)); list.add(menuMap); }); - resultList.add(list); } return list; } @@ -224,7 +231,7 @@ } //������������ user.setPassword(MD5Utils.saltMD5(password)); - user.setOrganizationId(Integer.parseInt(currentUserInfo.get("organizationId").toString())); + user.setOrganizationId((int) currentUserInfo.get("organizationId")); user.setIsAdmin(false); //��������������������������� Date userExpireTime = user.getExpireTime(); @@ -240,12 +247,19 @@ @Override @Transactional public void deleteUser(User user) { - //������������������ + String userId = user.getId().toString(); + //������������user user.setIsDelete(Constants.DELETE); - //������������������������������ - UpdateWrapper<UserGroup> updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("is_delete", Constants.DELETE).eq("user_id", user.getId()); - userGroupMapper.update(null, updateWrapper); + userMapper.updateById(user); + //������������user_group + UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>(); + deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", userId); + //������redis + if (TokenUtils.hHasKey(userId)) { + String token = TokenUtils.hget(userId).toString(); + TokenUtils.destoryToken(userId, token); + } + userGroupMapper.update(null, deleteWrapper); } @Override @@ -253,17 +267,11 @@ public Map<String, Object> updateUser(User user, String token) { Map<String, Object> result = new HashMap<>(); Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); - QueryWrapper<User> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("id", user.getId()).eq("is_delete", Constants.NOT_DELETE); - if (userMapper.selectOne(queryWrapper) == null) { - result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode()); - result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg()); - return result; - } - queryWrapper.clear(); - queryWrapper.eq("account", user.getAccount()).eq("is_delete", Constants.NOT_DELETE); - //������������������������ + queryWrapper.ne("id", user.getId()) + .eq("account", user.getAccount()) + .eq("is_delete", Constants.NOT_DELETE); + //��������������������������� if (userMapper.selectOne(queryWrapper) != null) { result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode()); result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg()); @@ -283,12 +291,14 @@ } //������������������ String password = user.getPassword(); - //������������ - //password = AESUtils.decrypt(password, AESKey); - if (!RegexUtils.checkPassword(password)) { - result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); - result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); - return result; + if (password != null) { + //������������ + //password = AESUtils.decrypt(password, AESKey); + if (!RegexUtils.checkPassword(password)) { + result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); + result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); + return result; + } } //��������������������� if (user.getMobile() != null && !RegexUtils.checkMobile(user.getMobile())) { @@ -296,35 +306,69 @@ result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg()); return result; } - //������������ + //������MD5������ user.setPassword(MD5Utils.saltMD5(password)); - user.setOrganizationId(Integer.parseInt(currentUserInfo.get("organizationId").toString())); + user.setOrganizationId((int) currentUserInfo.get("organizationId")); user.setIsAdmin(false); - //��������������������������� + //������������������������������ Date userExpireTime = user.getExpireTime(); //��������������������������� Date currentUserExpireTime = (Date) currentUserInfo.get("expireTime"); if (userExpireTime == null || userExpireTime.getTime() > currentUserExpireTime.getTime()) { user.setExpireTime(currentUserExpireTime); } + //������redis + String userId = user.getId().toString(); + if (TokenUtils.hHasKey(userId)) { + String deleterToken = TokenUtils.hget(userId).toString(); + TokenUtils.destoryToken(userId, deleterToken); + } userMapper.updateById(user); return result; } @Override - public Map<String, Object> getUsers(Map<String, Object> parameters) { - Map<String, Object> resultMap = new HashMap<>(); + public Page<User> selectUsers(Map<String, Object> parameters) { Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(parameters.get("token").toString()); - if (!(boolean) currentUserInfo.get("isAdmin")) { - resultMap.put("msg", "������������"); - return resultMap; + Object organizationId = currentUserInfo.get("organizationId"); + QueryWrapper<User> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("organization_id", organizationId) + .eq("is_delete", Constants.NOT_DELETE); + Object order = parameters.get("order"); + Object account = parameters.get("account"); + Object userName = parameters.get("userName"); + Object mobile = parameters.get("mobile"); + Object email = parameters.get("mobile"); + Object wechat = parameters.get("wechat"); + //������������������ + if (account != null) { + queryWrapper.like("account", account); } - if (!parameters.containsKey("userId")) { - parameters.put("orgId", currentUserInfo.get("organizationId")); + if (userName != null) { + queryWrapper.like("user_name", userName); } - List<Map<String, Object>> users = userMapper.selectUsers(parameters); - resultMap.put("users", users); - return resultMap; + if (mobile != null) { + queryWrapper.like("mobile", mobile); + } + if (email != null) { + queryWrapper.like("email", email); + } + if (wechat != null) { + queryWrapper.like("wechat", wechat); + } + + int page = Integer.parseInt(parameters.get("page").toString()); + int size = Integer.parseInt(parameters.get("size").toString()); + Page<User> pageData = new Page<>(page, size); + //������������,������id������ + if (order == null) { + queryWrapper.orderByAsc("id"); + } else { + queryWrapper.orderByAsc(order.toString(), "id"); + } + Page<User> userPage = userMapper.selectPage(pageData, queryWrapper); + pageData.setRecords(userPage.getRecords()); + return userPage; } } -- Gitblit v1.8.0