You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xian/UserCenterService

56 lines
1.9 KiB

package com.power.travel.service;
import com.power.travel.core.Result;
import com.power.travel.core.ResultGenerator;
import com.power.travel.core.ServiceException;
import com.power.travel.model.User;
import com.power.travel.util.CookieUitl;
import com.power.travel.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Service
public class UserCenterService {
@Autowired
private UserRepository userRepository;
@Autowired
private LoginService loginService;
public User getUser(HttpServletRequest request) {
Cookie cookie = CookieUitl.get(request, "username");
User user = null;
if (cookie != null) {
user = userRepository.findUserByUsername(cookie.getValue());
} else {
throw new ServiceException("不存在该用户!");
}
return user;
}
public Result centerEdit(User user) {
User oldUser = userRepository.findById(user.getId()).orElseThrow(() -> new ServiceException("用户ID错误!"));
oldUser.setName(user.getName());
userRepository.save(oldUser);
return ResultGenerator.genSuccessResult();
}
public Result centerEditPW(HttpServletRequest request, HttpServletResponse response, String id, String oldPassword, String newPassword) {
User oldUser = userRepository.findById(id).orElseThrow(() -> new ServiceException("用户ID错误!"));
if (!oldUser.getPassword().equals(oldPassword)) {
return ResultGenerator.genFailResult("原始密码错误!");
}
oldUser.setPassword(newPassword);
userRepository.save(oldUser);
//重新登录
loginService.logout(request, response);
return ResultGenerator.genSuccessResult();
}
}