package cn.ictgu.API; import cn.ictgu.config.security.AnyUser; import cn.ictgu.dto.SimpleResponse; import cn.ictgu.serv.model.User; import cn.ictgu.serv.service.UserService; import cn.ictgu.tools.CheckUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; /** * User API * Created by Silence on 2017/3/11. */ @RestController public class UserApi { @Autowired private UserService userService; @PostMapping("/user/name") public SimpleResponse updateUserInfo(@AuthenticationPrincipal AnyUser user, HttpServletRequest request){ SimpleResponse response = new SimpleResponse(); String nickname = request.getParameter("nickname"); if (!CheckUtils.checkNickname(nickname)){ response.setCode(200); response.setMessage("修改失败,参数不正确!"); return response; } if(userService.updateNickname(user.getId(), nickname)){ response.setCode(100); return response; } response.setCode(200); response.setMessage("修改失败,参数不正确!"); return response; } @PostMapping(value = "/register") public SimpleResponse signUp(HttpServletRequest request){ User user = createUser(request); SimpleResponse response = checkSignUpRequest(user); if (response.getCode() == 100){ if (!userService.signUp(user)){ response.setCode(200); response.setMessage("此邮箱已注册,请勿重复注册!"); return response; }else { response.setMessage("注册激活邮件已发送至您邮箱,请在12小时内激活完成注册!"); return response; } } return response; } private SimpleResponse checkSignUpRequest(User user){ SimpleResponse response = new SimpleResponse(); String email = user.getEmail(); if (!CheckUtils.checkEmail(email)){ response.setCode(200); response.setMessage("邮箱格式不合法"); return response; } String password = user.getPassword(); if (!CheckUtils.checkPassword(password)){ response.setCode(200); response.setMessage("密码长度必须为8-16位,且必须包含数字和字母"); return response; } String nickname = user.getNickname(); if (!CheckUtils.checkNickname(nickname)){ response.setCode(200); response.setMessage("昵称长度不合法"); return response; } response.setCode(100); return response; } private User createUser(HttpServletRequest request){ User user = new User(); user.setEmail(request.getParameter("username")); user.setPassword(request.getParameter("password")); user.setNickname(request.getParameter("nickname")); return user; } }