From d5bb894f9be2e0a3b62d475b60b44f2ab138528c Mon Sep 17 00:00:00 2001 From: guoyujie <guoyujie@ng.com> Date: 星期四, 12 六月 2025 16:48:35 +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 | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 221 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..3b0510c --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java @@ -0,0 +1,221 @@ +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.Role; +import com.example.erp.entity.userInfo.User; +import com.example.erp.mapper.pp.ProductionSchedulingMapper; +import com.example.erp.mapper.userInfo.*; +import com.example.erp.tools.TokenTools; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +@Service +@DS("user_info") +public class UserService { + + private final UserMapper userMapper; + private final RoleMapper roleMapper; + private final UserRoleMapper userRoleMapper; + + private final PermissionRoleMapper permissionRoleMapper; + private final ProductionSchedulingMapper productionSchedulingMapper; + + public UserService(UserMapper userMapper, RoleMapper roleMapper, PermissionRoleMapper permissionRoleMapper, UserRoleMapper userRoleMapper, ProductionSchedulingMapper productionSchedulingMapper) { + this.userMapper = userMapper; + this.roleMapper = roleMapper; + this.permissionRoleMapper = permissionRoleMapper; + this.userRoleMapper = userRoleMapper; + this.productionSchedulingMapper = productionSchedulingMapper; + } + + + @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; + + } + + @Transactional + public Boolean updateUserName(Map<String,Object> object) { + boolean saveState = false; + int userId =0; + String userName = ""; + if (object.get("userId") != null) { + userId = Integer.parseInt(object.get("userId").toString()); + } + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + + if (userMapper.updateUserNameById(userId,userName)){ + 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()) + .eq("state",1) + ); + if(user!=null){ + //妫�鏌ユ槸璁╂湁鐧诲綍锛屾湁鐧诲綍鐩存帴閫�鍑� + StpUtil.logout(user.getId()); + //閲嶆柊杩涜鐧诲綍 + StpUtil.login(user.getId()); + userDTO.setPass(null); + userDTO.setId(user.getId()); + userDTO.setUserName(user.getUserName()); + userDTO.setAddress(user.getAddress()); + 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); + } + + public Map<String, Object> selectProcessSv() { + Map<String, Object> map = new HashMap<>(); + map.put("process", productionSchedulingMapper.selectProcess()); + return map; + } + + public Boolean updateProcessSv(Integer id, String process) { + return userMapper.updateProcessMp(id,process); + } + + public Object findByAddress(Map<String,String> userName) { + if(Objects.equals(userName.get("userName"), "")){ + userName.put("userName", null) ; + } + List<User> users = userMapper.findByAddress(userName.get("userName")); + List<Map<String,Object>> userList = new ArrayList<>(); + users.forEach(user -> { + Map<String,Object> userMap = new HashMap<>(); + userMap.put("value", user.getLoginName()); + userMap.put("text", user.getUserName()); + userList.add(userMap); + }); + Map<String,List<Object>> map = new HashMap<>(); + + map.put("users", Collections.singletonList(userList)); + return map; + } + + +//鏌ヨ鐢ㄦ埛浼樺寲鍙傛暟 +public String getOptimizeParms(String username) { + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + + return userMapper.selectOptimizeParmsById(username); + } + +} + + -- Gitblit v1.8.0