¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.lf.server.service.sys; |
| | | |
| | | 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.List; |
| | | |
| | | /** |
| | | * ç¨æ·è¡¨ |
| | | * @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 Integer selectCount(String uname, String depcode) { |
| | | uname = StringHelper.getLikeStr(uname); |
| | | depcode = StringHelper.getLeftLike(depcode); |
| | | |
| | | return userMapper.selectCount(uname, depcode); |
| | | } |
| | | |
| | | @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.getLikeStr(uname); |
| | | depcode = StringHelper.getLeftLike(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.getLikeStr(uname); |
| | | depcode = StringHelper.getLeftLike(depcode); |
| | | |
| | | return userMapper.selectCountForRole(uname, roleid, depcode); |
| | | } |
| | | |
| | | @Override |
| | | public List<UserEntity> selectByPageForRole(String uname, Integer roleid, String depcode, Integer limit, Integer offset) { |
| | | uname = StringHelper.getLikeStr(uname); |
| | | depcode = StringHelper.getLeftLike(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 "ç¨æ·å¯ç ä¸è½ä¸ºç©º"; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ç»å½ç¨æ·å¯ç |
| | | */ |
| | | public String validateLoginPwd(UserEntity entity) { |
| | | try { |
| | | String str = validateUserEntity(entity); |
| | | if (str != null) { |
| | | return str; |
| | | } |
| | | |
| | | // è§£å¯ |
| | | 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 "è§£å¯å¤±è´¥"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * éªè¯æ°ç¨æ·å¯ç |
| | | */ |
| | | @SuppressWarnings("AlibabaRemoveCommentedCode") |
| | | public String validateNewPwd(UserEntity entity) { |
| | | try { |
| | | String str = validateUserEntity(entity); |
| | | if (str != null) { |
| | | return str; |
| | | } |
| | | |
| | | // è§£å¯ |
| | | 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 "è§£å¯å¤±è´¥"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * éªè¯èç¨æ·å¯ç |
| | | */ |
| | | 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 "æ§å¯ç 䏿£ç¡®"; |
| | | } |
| | | 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 "è§£å¯å¤±è´¥"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ç®¡çåå¯ç |
| | | */ |
| | | 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 "管çåå¯ç 䏿£ç¡®"; |
| | | } |
| | | |
| | | return null; |
| | | } catch (Exception ex) { |
| | | return "è§£å¯å¤±è´¥"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * éªè¯æ°å¯ç |
| | | */ |
| | | 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 "è§£å¯å¤±è´¥"; |
| | | } |
| | | } |
| | | } |