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.
cloudnote_server/src/main/java/com/bupt/note/Controller/UserController.java

89 lines
3.0 KiB

package com.bupt.note.Controller;
import com.bupt.note.Model.User;
import com.bupt.note.Repository.UserRepository;
import com.bupt.note.ResponseData.ResponseData;
import com.bupt.note.ResponseData.ResponseDataUtil;
import com.bupt.note.ResponseData.ResultEnums;
import com.bupt.note.dto.UpdatePwd;
import com.bupt.note.dto.UserForm;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 用户接口
*/
@RestController
@RequestMapping(value = "/v1/api/users")
public class UserController {
@Autowired
UserRepository userRepository;
private Logger logger= LoggerFactory.getLogger(UserController.class);
/**
* 注册用户
* @param user 用户信息
* @return
*/
@PostMapping("/sign_up")
public ResponseData signUp(@RequestBody UserForm user) {
if (!userRepository.existsByUserName(user.getUserName())) {
userRepository.save(user.getUser());
User u = userRepository.findByUserName(user.getUserName());
return ResponseDataUtil.buildSuccess(u);
}
return ResponseDataUtil.buildError(ResultEnums.ErrUserNameConflict);
}
/**
* 登录用户
* @param user 用户信息
* @return
*/
@PostMapping("/sign_in")
public ResponseData signIn(@RequestBody UserForm user){
if(StringUtils.isNoneEmpty(user.getUserName(),user.getPassword())&&
userRepository.existsByUserName(user.getUserName())){
User exists= userRepository.findByUserName(user.getUserName());
if(user.getPassword().equals(exists.getPassword())){
return ResponseDataUtil.buildError(ResultEnums.SUCCESS);
}else{
logger.error("账号或者密码错误");
return ResponseDataUtil.buildError(ResultEnums.ERROR);
}
}else {
logger.error("登陆校验失败");
return ResponseDataUtil.buildSuccess(ResultEnums.ERROR);
}
}
/**
* 修改密码
* @param user
* @return
*/
@PutMapping("update")
public ResponseData put(@RequestBody UpdatePwd user,@CookieValue("user") String username){
if(StringUtils.isNoneEmpty(username,user.getOldpwd(),user.getNewpwd())&&
userRepository.existsByUserName(username)){
User exists= userRepository.findByUserName(username);
if(user.getOldpwd().equals(exists.getPassword())){
exists.setPassword(user.getNewpwd());
userRepository.save(exists);
return ResponseDataUtil.buildSuccess();
}else{
logger.error("原密码错误");
return ResponseDataUtil.buildError("原密码错误");
}
}else{
logger.error("修改密码表单校验失败");
return ResponseDataUtil.buildError();
}
}
}