Bladeren bron

原世界版本

lyhzzz 2 jaren geleden
bovenliggende
commit
8e0b945164

+ 4 - 1
src/main/java/com/fdkankan/manage/common/RedisKeyUtil.java

@@ -7,7 +7,10 @@ public class RedisKeyUtil {
     public static final String SCENE_NUMS_LOADING = "4dkankan:scene:nums:loading";
     public static final String loginNum= "manage:login:userName:%s:ip:%s";
 
-    public static final String loginToken= "manage:login:token:%s";
+    public static final String loginToken= "token#%s";
+
+    public static final String loginTokenUser= "manage:login:userName:%s";
+
 
 
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/service/IUserService.java

@@ -5,6 +5,7 @@ import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.entity.User;
 import com.fdkankan.manage.vo.request.UserIncrementParam;
 import com.fdkankan.manage.vo.request.UserParam;
+import com.fdkankan.manage.vo.response.ManageLoginResponse;
 import com.fdkankan.manage.vo.response.UserVo;
 
 import java.util.HashMap;
@@ -39,4 +40,6 @@ public interface IUserService extends IService<User> {
     void ReUcenterUserPassword(UserParam userParam);
 
     void updateUcenterUser(UserParam userParam);
+
+    ManageLoginResponse getUserByUserNameAndPassword(String userName, String passwordMd5);
 }

+ 8 - 34
src/main/java/com/fdkankan/manage/service/impl/ManageService.java

@@ -11,6 +11,7 @@ import com.fdkankan.manage.common.RedisKeyUtil;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.service.ISysUserService;
+import com.fdkankan.manage.service.IUserService;
 import com.fdkankan.manage.vo.request.ManageLoginRequest;
 import com.fdkankan.manage.vo.response.ManageLoginResponse;
 import com.fdkankan.redis.constant.RedisKey;
@@ -25,23 +26,21 @@ import javax.servlet.http.HttpServletRequest;
 public class ManageService {
 
     @Autowired
-    ISysUserService sysUserService;
+    IUserService userService;
     @Autowired
     RedisUtil redisUtil;
 
 
     public ManageLoginResponse login(String ip,String userName, String password) {
 
-        this.checkLoginNum(ip,userName);
 
         if(StringUtils.isBlank(userName) || StringUtils.isBlank(password)){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         //对前端传的密码解密
-        String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(password)));
-        ManageLoginResponse result = sysUserService.getUserByUserNameAndPassword(userName, passwordMd5);
+        String passwordMd5 = Base64Converter.decode(Base64Converter.subText(password));
+        ManageLoginResponse result = userService.getUserByUserNameAndPassword(userName,passwordMd5);
         if(result == null){
-            this.addLoginErrorNum(ip,userName);
             throw new BusinessException(ResultCode.PASSWORD_ERROR);
         }
         if(result.getStatus() == 0){
@@ -53,7 +52,10 @@ public class ManageService {
                 .setExtra("userName",result.getUserName())
                 .setExtra("nickName",result.getNickName()));
         result.setToken(StpUtil.getTokenValue());
-        redisUtil.set(String.format(RedisKeyUtil.loginToken ,result.getToken()), JSONObject.toJSONString(result), 216000);
+
+        redisUtil.set(String.format(RedisKeyUtil.loginToken ,result.getToken()), JSONObject.toJSONString(result), 2 * 60 * 60);
+        redisUtil.set(RedisKeyUtil.loginTokenUser+userName, result.getToken(),2 * 60 * 60);
+
         return result;
     }
 
@@ -64,32 +66,4 @@ public class ManageService {
         StpUtil.logout();
     }
 
-    public void checkLoginNum(String ip, String userName) {
-        if(StringUtils.isNotBlank(userName)){
-            String redisKey = String.format(RedisKeyUtil.loginNum,userName,ip);
-            if(redisUtil.hasKey(redisKey)){
-                String value = redisUtil.get(redisKey);
-                if("5".equals(value)){
-                    throw new BusinessException(ResultCode.LOGIN_NUM_MUCH);
-                }
-            }
-        }
-    }
-
-    public void addLoginErrorNum(String ip, String userName) {
-        if(StringUtils.isNotBlank(userName)){
-            String redisKey = String.format(RedisKeyUtil.loginNum,userName,ip);
-            if(redisUtil.hasKey(redisKey)){
-                String value = redisUtil.get(redisKey);
-                if("5".equals(value)){
-                    throw new BusinessException(ResultCode.LOGIN_NUM_MUCH);
-                }
-                Integer num = Integer.parseInt(value) + 1;
-                redisUtil.set(redisKey,num.toString(),60 * 5);
-            }else {
-                redisUtil.set(redisKey,"1",60 * 5);
-            }
-        }
-    }
-
 }

+ 18 - 0
src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java

@@ -24,6 +24,7 @@ import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.request.UserIncrementParam;
 import com.fdkankan.manage.vo.request.UserParam;
+import com.fdkankan.manage.vo.response.ManageLoginResponse;
 import com.fdkankan.manage.vo.response.UserVo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -253,4 +254,21 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         wrapper.set(User::getNickName,userParam.getNickName());
         this.update(wrapper);
     }
+
+    @Override
+    public ManageLoginResponse getUserByUserNameAndPassword(String userName, String passwordMd5) {
+        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(User::getUserName,userName);
+        wrapper.eq(User::getPassword,passwordMd5);
+        User user = this.getOne(wrapper);
+        ManageLoginResponse manageLoginResponse = new ManageLoginResponse();
+        manageLoginResponse.setId(user.getId());
+        manageLoginResponse.setUserName(user.getUserName());
+        manageLoginResponse.setNickName(user.getNickName());
+        manageLoginResponse.setToken("");
+        manageLoginResponse.setRoleId(0L);
+        manageLoginResponse.setRoleName("");
+
+        return manageLoginResponse;
+    }
 }