|
@@ -20,7 +20,6 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import javax.servlet.http.Cookie;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -137,7 +136,8 @@ public class LoginService implements ILoginService {
|
|
|
userAccount.setPassword(newPassword);
|
|
|
userAccountService.updateById(userAccount);
|
|
|
//用户修改密码后,需要重新登录,将redis中的用户信息置空
|
|
|
- redisTemplate.opsForValue().set(userAccount.getMobile() + ApiConstants.UserConstants.USER_INFO_FIELD, null);
|
|
|
+ String mobileUserInfo = (String) redisTemplate.opsForValue().get(userRequest.getToken());
|
|
|
+ redisTemplate.opsForValue().set(mobileUserInfo, null);
|
|
|
return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "重置密码成功");
|
|
|
}
|
|
|
|
|
@@ -197,18 +197,17 @@ public class LoginService implements ILoginService {
|
|
|
private UserResponse initLoginInfo(HttpServletRequest request, Long userId) {
|
|
|
//获取用户信息
|
|
|
UserResponse userResponse = userService.getLoginUserInfo(userId);
|
|
|
- //将用户登录的手机号放入session中
|
|
|
- request.getSession().setAttribute(ApiConstants.UserConstants.USER_INFO_MOBILE, userResponse.getMobile());
|
|
|
-
|
|
|
- Cookie[] cookies = request.getCookies();
|
|
|
- System.out.println("JSESSIONID:" + cookies[0].getValue());
|
|
|
- System.out.println("test:" + request.getSession().getAttribute("test"));
|
|
|
- System.out.println("sessionId:" + request.getSession().getId());
|
|
|
+ //将用户手机号放入session中
|
|
|
+ request.getSession().setAttribute(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
|
|
|
//封装登录用户信息
|
|
|
Map<String, Object> currentUserInfoMap = getUserInfoMap(userResponse);
|
|
|
- //将手机号对应的用户信息放入redis中,设置过期时间为30分钟
|
|
|
- redisTemplate.opsForValue().set(userResponse.getMobile() + ApiConstants.UserConstants.USER_INFO_FIELD,
|
|
|
- JSONUtil.toJsonPrettyStr(currentUserInfoMap), 30L, TimeUnit.MINUTES);
|
|
|
+ String mobileUserInfo = JSONUtil.toJsonPrettyStr(userResponse.getMobile()
|
|
|
+ + ApiConstants.UserConstants.USER_INFO_MOBILE);
|
|
|
+ //将token对应用户手机号放入redis中,设置过期时间为30分钟
|
|
|
+ redisTemplate.opsForValue().set(userResponse.getToken(), mobileUserInfo, 30L, TimeUnit.MINUTES);
|
|
|
+ //将用户手机号对应的用户信息放入redis中, 过期时间为30分钟
|
|
|
+ redisTemplate.opsForValue().set(mobileUserInfo, JSONUtil.toJsonPrettyStr(currentUserInfoMap),
|
|
|
+ 30L, TimeUnit.MINUTES);
|
|
|
return userResponse;
|
|
|
}
|
|
|
|
|
@@ -236,8 +235,13 @@ public class LoginService implements ILoginService {
|
|
|
Map<String, Object> currentUserInfoMap = new HashMap<>();
|
|
|
//当前用户id
|
|
|
currentUserInfoMap.put(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
|
|
|
+ //如果用户类型为空,设置用户类型为普通类型
|
|
|
+ int userType = 3;
|
|
|
+ if (userResponse.getType() != null) {
|
|
|
+ userType = userResponse.getType();
|
|
|
+ }
|
|
|
//当前用户信息
|
|
|
- currentUserInfoMap.put(ApiConstants.CURRENT_USER_TYPE, userResponse.getType());
|
|
|
+ currentUserInfoMap.put(ApiConstants.CURRENT_USER_TYPE, userType);
|
|
|
//当前公司id
|
|
|
MaintenanceCompany maintenanceCompany = userResponse.getMaintenanceCompany();
|
|
|
if (maintenanceCompany != null) {
|