From 2f640b1038fa331954f78ed1f4317212cf5bb34d Mon Sep 17 00:00:00 2001 From: chenlu <1320612696@qq.com> Date: 星期五, 07 六月 2024 16:56:06 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 164 insertions(+), 0 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java new file mode 100644 index 0000000..9761456 --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java @@ -0,0 +1,164 @@ +package com.example.erp.service.userInfo; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.example.erp.controller.dto.UserDTO; +import com.example.erp.entity.userInfo.PermissionBasic; +import com.example.erp.entity.userInfo.Role; +import com.example.erp.entity.userInfo.SysError; +import com.example.erp.entity.userInfo.User; +import com.example.erp.mapper.userInfo.*; +import com.example.erp.tools.TokenTools; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@DS("user_info") +public class UserService { + + private final UserMapper userMapper; + private final RoleMapper roleMapper; + private final UserRoleMapper userRoleMapper; + + private final PermissionRoleMapper permissionRoleMapper; + + public UserService(UserMapper userMapper, RoleMapper roleMapper, PermissionRoleMapper permissionRoleMapper, UserRoleMapper userRoleMapper) { + this.userMapper = userMapper; + this.roleMapper = roleMapper; + this.permissionRoleMapper = permissionRoleMapper; + this.userRoleMapper = userRoleMapper; + } + + + @Cacheable(value="users", key="#userDTO.getUserId()") + public UserDTO login(UserDTO userDTO) { + + if(StrUtil.isBlank(userDTO.getUserId()) ||StrUtil.isBlank(userDTO.getPass())){ + return null; + }else{ + int getUserCount=userMapper.checkUser(userDTO.getUserId(),userDTO.getPass()); + if(getUserCount==1){ + String token = TokenTools.getToken(userDTO.getUserId(),userDTO.getPass()); + userDTO.setToken(token); + User user = userMapper.findOneLoginName(userDTO.getUserId()); + userDTO.setUserName(user.getUserName()); + return userDTO; + } + return null; + + } + } + + @CacheEvict(value="users",key="#id",beforeInvocation=true) + public String deleteCache(String id ) { + //System.out.println("delete user by id: " + id); + return null; + + } + + public String getUserByID(String userId){ + return userMapper.getUserByID(userId); + } + + @Transactional + public User register(User user) { + User returnUser = new User(); + if(userMapper.register(user)){ + User getUser = userMapper.findOne(user.getId()); + returnUser.setUserName(getUser.getUserName()); + returnUser.setLoginName(getUser.getLoginName()); + } + return returnUser; + } + + @Transactional + public Boolean updatePassWord(Map<String,Object> object) { + boolean saveState = false; + int userId =0; + String oldPassWord = ""; + String passWord = ""; + if (object.get("userId") != null) { + userId = Integer.parseInt(object.get("userId").toString()); + } + if (object.get("oldPassword") != null) { + oldPassWord = object.get("oldPassword").toString(); + } + if (object.get("password") != null) { + passWord = object.get("password").toString(); + } + + User user =userMapper.findOnePassWord(userId,oldPassWord); + if (user!=null){ + if (userMapper.updatePassWordById(userId,passWord)){ + saveState = true; + } + } + return saveState; + + } + + /*----------------鏂扮増鏈櫥闄�*/ + public UserDTO doLogin(UserDTO userDTO) { + User user = userMapper.selectOne(new QueryWrapper<User>(). + eq("login_name", userDTO.getUserId()).eq("password", userDTO.getPass())); + if(user!=null){ + //妫�鏌ユ槸璁╂湁鐧诲綍锛屾湁鐧诲綍鐩存帴閫�鍑� + StpUtil.logout(user.getId()); + //閲嶆柊杩涜鐧诲綍 + StpUtil.login(user.getId()); + userDTO.setPass(null); + userDTO.setId(user.getId()); + userDTO.setUserName(user.getUserName()); + userDTO.setToken(StpUtil.getTokenValue()); + Boolean userIsAdmin= userRoleMapper.getUserIsAdmin(user.getId()); + userDTO.setPermissions(permissionRoleMapper.getUserEditPermission(user.getId(),userIsAdmin)); + return userDTO; + }else{ + return null; + } + } + + public Boolean isLogin() { + // 杩斿洖褰撳墠鐢ㄦ埛鏄惁鐧诲綍 + return StpUtil.isLogin(); + } + + public Boolean logout() { + StpUtil.logout(); + return true; + } + + public Map<String,List<Object>> findAll() { + List<User> users = userMapper.findAll(); + users.forEach(user -> { + user.setPassword(null); + }); + Map<String,List<Object>> map = new HashMap<>(); + + map.put("users", Collections.singletonList(users)); + map.put("role", Collections.singletonList( + roleMapper.selectList( + new QueryWrapper<Role>() + .ne("role","admin") + ) + )); + return map; + } + + public Boolean userDelete(Integer id) { + + return userMapper.userDelete(id); + } +} + -- Gitblit v1.8.0