From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001
From: sws <15810472099@163.com>
Date: 星期六, 26 十一月 2022 16:12:02 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/sys/UserService.java |  275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 275 insertions(+), 0 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
new file mode 100644
index 0000000..f9bb60e
--- /dev/null
+++ b/src/main/java/com/lf/server/service/sys/UserService.java
@@ -0,0 +1,275 @@
+package com.lf.server.service.sys;
+
+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.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;
+
+    @Override
+    public Integer selectCount(String uname) {
+        uname = StringHelper.getLikeStr(uname);
+
+        return userMapper.selectCount(uname);
+    }
+
+    @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, Integer limit, Integer offset) {
+        uname = StringHelper.getLikeStr(uname);
+
+        return userMapper.selectByPage(uname, limit, offset);
+    }
+
+    @Override
+    public UserEntity selectByToken(String token) {
+        return userMapper.selectByToken(token);
+    }
+
+    @Override
+    public Integer selectForIsAdmin(Integer id) {
+        return userMapper.selectForIsAdmin(id);
+    }
+
+    @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 updateUsers(UserEntity userEntity) {
+        return userMapper.updateUsers(userEntity);
+    }
+
+    @Override
+    public Integer selectCountForRole(String uname, Integer roleid, Integer depid) {
+        uname = StringHelper.getLikeStr(uname);
+
+        return userMapper.selectCountForRole(uname, roleid, depid);
+    }
+
+    @Override
+    public List<UserEntity> selectByPageForRole(String uname, Integer roleid, Integer depid, Integer limit, Integer offset) {
+        uname = StringHelper.getLikeStr(uname);
+
+        return userMapper.selectByPageForRole(uname, roleid, depid, 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;
+            }
+
+            // 瑙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) {
+            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.checkPwdValid(pwd)) {
+                return "瀵嗙爜涓嶇鍚堣姹�";
+            }
+
+            String newPwd = Md5Helper.reverse(Md5Helper.generate(pwd));
+            entity.setPwd(newPwd);*/
+            entity.setUid(uid);
+
+            return null;
+        } catch (Exception 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.checkPwdValid(salt)) {
+                return "瀵嗙爜涓嶇鍚堣姹�";
+            }
+
+            String newPwd = Md5Helper.reverse(Md5Helper.generate(salt));
+            entity.setPwd(newPwd);
+            entity.setSalt(null);
+            entity.setUid(uid);
+
+            return null;
+        } catch (Exception 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.checkPwdValid(pwd)) {
+                return "瀵嗙爜涓嶇鍚堣姹�";
+            }
+
+            String dbPwd = Md5Helper.reverse(Md5Helper.generate(pwd));
+            ue.setSalt(dbPwd);
+
+            return null;
+        } catch (Exception ex) {
+            return "瑙e瘑澶辫触";
+        }
+    }
+}

--
Gitblit v1.9.3