From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 02 七月 2025 16:43:13 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service --- src/main/java/com/lf/server/service/sys/UserService.java | 298 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 280 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/lf/server/service/sys/UserService.java b/src/main/java/com/lf/server/service/sys/UserService.java index 9d3a767..2301bee 100644 --- a/src/main/java/com/lf/server/service/sys/UserService.java +++ b/src/main/java/com/lf/server/service/sys/UserService.java @@ -1,41 +1,303 @@ package com.lf.server.service.sys; -import com.lf.server.entity.sys.LoginInfo; -import com.lf.server.entity.sys.User; +import com.lf.server.entity.sys.RoleEntity; +import com.lf.server.entity.sys.UserEntity; +import com.lf.server.helper.Md5Helper; +import com.lf.server.helper.RsaHelper; +import com.lf.server.helper.StringHelper; import com.lf.server.mapper.sys.UserMapper; +import com.lf.server.service.all.RedisService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; +import java.util.List; /** - * UserService - * @author + * 鐢ㄦ埛琛� + * @author sws + * @date 2022-09-27 */ + @Service public class UserService implements UserMapper { @Autowired UserMapper userMapper; + @Autowired + RedisService redisService; + + @Autowired + LoginService loginService; + + @Autowired + TokenService tokenService; + + private final static Log log = LogFactory.getLog(UserService.class); + @Override - public User queryUserByName(String loginName) { - return userMapper.queryUserByName(loginName); + public Integer selectCount(String uname, String depcode) { + uname = StringHelper.getLikeUpperStr(uname); + depcode = StringHelper.getRightLike(depcode); + + return userMapper.selectCount(uname, depcode); } - public LoginInfo getLoginInfo(String loginName) { - User user = queryUserByName(loginName); - if (null == user) { - return null; + @Override + public UserEntity selectUser(int id) { + return userMapper.selectUser(id); + } + + @Override + public UserEntity selectByUid(String uid) { + return userMapper.selectByUid(uid); + } + + @Override + public List<UserEntity> selectUserAll() { + return userMapper.selectUserAll(); + } + + @Override + public List<UserEntity> selectByPage(String uname, String depcode, Integer limit, Integer offset) { + uname = StringHelper.getLikeUpperStr(uname); + depcode = StringHelper.getRightLike(depcode); + + return userMapper.selectByPage(uname, depcode, limit, offset); + } + + @Override + public UserEntity selectByToken(String token) { + return userMapper.selectByToken(token); + } + + @Override + public Integer selectForIsAdmin(Integer id) { + return userMapper.selectForIsAdmin(id); + } + + @Override + public List<UserEntity> selectAdminUsers(Integer type) { + return userMapper.selectAdminUsers(type); + } + + @Override + public List<RoleEntity> selectRoleByUserId(Integer id) { + return userMapper.selectRoleByUserId(id); + } + + @Override + public List<UserEntity> selectUserByRoleId(Integer roleId) { + return userMapper.selectUserByRoleId(roleId); + } + + @Override + public Integer insertUser(UserEntity userEntity) { + return userMapper.insertUser(userEntity); + } + + @Override + public Integer insertUsers(List<UserEntity> userEntity) { + return userMapper.insertUsers(userEntity); + } + + @Override + public Integer deleteUser(int id) { + return userMapper.deleteUser(id); + } + + @Override + public Integer deleteUsers(List<Integer> ids) { + return userMapper.deleteUsers(ids); + } + + @Override + public Integer updateUser(UserEntity userEntity) { + return userMapper.updateUser(userEntity); + } + + @Override + public Integer selectCountForRole(String uname, Integer roleid, String depcode) { + uname = StringHelper.getLikeUpperStr(uname); + depcode = StringHelper.getRightLike(depcode); + + return userMapper.selectCountForRole(uname, roleid, depcode); + } + + @Override + public List<UserEntity> selectByPageForRole(String uname, Integer roleid, String depcode, Integer limit, Integer offset) { + uname = StringHelper.getLikeUpperStr(uname); + depcode = StringHelper.getRightLike(depcode); + + return userMapper.selectByPageForRole(uname, roleid, depcode, limit, offset); + } + + @Override + public Integer updateUsersPwd(Integer updateUser, String pwd, List<Integer> ids) { + return userMapper.updateUsersPwd(updateUser, pwd, ids); + } + + /** + * 楠岃瘉鐢ㄦ埛瀹炰綋绫� + */ + public String validateUserEntity(UserEntity entity) { + if (entity == null) { + return "娌℃湁鎵惧埌鐢ㄦ埛"; + } + if (StringHelper.isEmpty(entity.getUid())) { + return "鐢ㄦ埛ID涓嶈兘涓虹┖"; + } + if (StringHelper.isEmpty(entity.getPwd())) { + return "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖"; } - Set<String> roleList = new HashSet<>(); - Set<String> permissionList = new HashSet<>(); + return null; + } - LoginInfo loginInfo = new LoginInfo(user.getUserId(), user.getLoginName(), roleList, permissionList); - loginInfo.setToken(UUID.randomUUID().toString()); + /** + * 楠岃瘉鐧诲綍鐢ㄦ埛瀵嗙爜 + */ + public String validateLoginPwd(UserEntity entity) { + try { + String str = validateUserEntity(entity); + if (str != null) { + return str; + } - return loginInfo; + // 瑙e瘑 + String uid = RsaHelper.decrypt(entity.getUid()); + String pwd = RsaHelper.decrypt(entity.getPwd()); + + entity.setUid(uid); + entity.setPwd(pwd); + + if (tokenService.isUidDisable(entity)) { + return "鐢ㄦ埛ID宸茬鐢�"; + } + + return null; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return "瑙e瘑澶辫触"; + } + } + + /** + * 楠岃瘉鏂扮敤鎴峰瘑鐮� + */ + @SuppressWarnings("AlibabaRemoveCommentedCode") + public String validateNewPwd(UserEntity entity) { + try { + String str = validateUserEntity(entity); + if (str != null) { + return str; + } + + // 瑙e瘑 + String uid = RsaHelper.decrypt(entity.getUid()); + /*String pwd = RsaHelper.decrypt(entity.getPwd()); + if (!StringHelper.isPwdValid(pwd)) { + return "瀵嗙爜涓嶇鍚堣姹�"; + } + + String newPwd = Md5Helper.reverse(Md5Helper.generate(pwd)); + entity.setPwd(newPwd);*/ + entity.setUid(uid); + + return null; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return "瑙e瘑澶辫触"; + } + } + + /** + * 楠岃瘉鑰佺敤鎴峰瘑鐮� + */ + public String validateOldPwd(UserEntity entity) { + try { + String str = validateUserEntity(entity); + if (str != null) { + return str; + } + if (StringHelper.isEmpty(entity.getSalt())) { + return "鏂板瘑鐮佷笉鑳戒负绌�"; + } + + String uid = RsaHelper.decrypt(entity.getUid()); + String pwd = RsaHelper.decrypt(entity.getPwd()); + String salt = RsaHelper.decrypt(entity.getSalt()); + + UserEntity ue = selectByUid(uid); + if (ue == null) { + return "娌℃湁鎵惧埌鐢ㄦ埛"; + } + if (!Md5Helper.validatePassword(pwd, ue.getPwd())) { + tokenService.setPwdErrCache(ue); + return "鏃у瘑鐮佷笉姝g‘"; + } + if (StringHelper.isPwdInvalid(salt)) { + return "瀵嗙爜涓嶇鍚堣姹�"; + } + + String newPwd = Md5Helper.reverse(Md5Helper.generate(salt)); + entity.setPwd(newPwd); + entity.setSalt(null); + entity.setUid(uid); + + return null; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return "瑙e瘑澶辫触"; + } + } + + /** + * 楠岃瘉绠$悊鍛樺瘑鐮� + */ + public String validateAdminPwd(UserEntity ue, String adminPwd) { + if (ue == null) { + return "娌℃湁鐧诲綍鎴栬秴鏃�"; + } + if (StringHelper.isEmpty(adminPwd)) { + return "绠$悊鍛樺瘑鐮佷笉鑳戒负绌�"; + } + + try { + String pwd = RsaHelper.decrypt(adminPwd); + if (!Md5Helper.validatePassword(pwd, ue.getPwd())) { + tokenService.setPwdErrCache(ue); + return "绠$悊鍛樺瘑鐮佷笉姝g‘"; + } + + return null; + } catch (Exception ex) { + return "瑙e瘑澶辫触"; + } + } + + /** + * 楠岃瘉鏂板瘑鐮� + */ + public String validateNewPwd(UserEntity ue, String newPwd) { + if (StringHelper.isEmpty(newPwd)) { + return "鏂板瘑鐮佷笉鑳戒负绌�"; + } + + try { + String pwd = RsaHelper.decrypt(newPwd); + if (StringHelper.isPwdInvalid(pwd)) { + return "瀵嗙爜涓嶇鍚堣姹�"; + } + + String dbPwd = Md5Helper.reverse(Md5Helper.generate(pwd)); + ue.setSalt(dbPwd); + + return null; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return "瑙e瘑澶辫触"; + } } } -- Gitblit v1.9.3