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.

160 lines
5.6 KiB

package com.community.pocket.api.android;
import com.community.pocket.entity.po.android.Token;
import com.community.pocket.entity.vo.Result;
import com.community.pocket.entity.vo.android.*;
import com.community.pocket.repository.EmailDao;
import com.community.pocket.repository.android.TokenDao;
import com.community.pocket.repository.android.UserDao;
import com.community.pocket.util.EmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 用户接口
*/
@RestController
public class UserController {
@Autowired
private UserDao userDao;
@Autowired
private EmailDao emailDao;
@Autowired
private EmailService emailService;
@Autowired
private TokenDao tokenDao;
/**
* 用户注册
* @param userRegister 注册表单信息
*/
@PostMapping("/register")
public RegisterResponse register(UserRegister userRegister){
if(userDao.hasUser(userRegister.getUsername())){
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.name,userRegister.getUsername());
}else if(userDao.hasMobie(userRegister.getMobie())){
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.mobie,userRegister.getMobie());
}else if(userDao.hasEmail(userRegister.getEmail())){
return new RegisterResponse(Result.FAIL,RegisterResponse.Msg.email,userRegister.getEmail());
}else{
userDao.save(userRegister);
return new RegisterResponse(Result.OK,RegisterResponse.Msg.ok);
}
}
/**
* 检查用户邮箱
*/
@PostMapping("/resetpwd/checkUser")
public ResetPwdResponse checkUser(UserResetPwd userResetPwd){
if(userDao.hasUseWithEmail(userResetPwd.getUsername(),userResetPwd.getEmail())){
return new ResetPwdResponse(Result.OK,ResetPwdResponse.Msg.step1_ok);
}else{
return new ResetPwdResponse(Result.FAIL,ResetPwdResponse.Msg.step1_fail);
}
}
/**
* 发送重置密码验证码
*/
@PostMapping("/resetpwd/sendCode")
public ResetPwdResponse sendCode(UserResetPwd userResetPwd) {
if(emailService.sendUserCode(userResetPwd.getEmail())){
return new ResetPwdResponse(Result.OK,ResetPwdResponse.Msg.step2_ok);
}else{
return new ResetPwdResponse(Result.FAIL,ResetPwdResponse.Msg.step2_fail);
}
}
/**
* 检查验证码
*/
@PostMapping("/resetpwd/checkCode")
public ResetPwdResponse checkCode(UserResetPwd userResetPwd) {
if(emailDao.checkCode(userResetPwd.getEmail(),userResetPwd.getCode())){
return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step2_valid_ok);
}else{
return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step2_valid_fail);
}
}
/**
* 重置密码
*/
@PostMapping("/resetpwd/resetPwd")
public ResetPwdResponse resetPwd(UserResetPwd userResetPwd) {
if(userDao.resetPwd(userResetPwd.getUsername(),userResetPwd.getPassword())){
return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step3_ok);
}else{
return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_fail);
}
}
/**
* 用户登录
* @param username 用户
* @param password 密码
*/
@PostMapping("/login")
public LoginResponse login(String username, String password) {
if(userDao.login(username, password)){
Token token=tokenDao.save(username);
LoginResponse response;
if(token!=null) {
response=new LoginResponse(Result.OK, LoginResponse.Msg.ok,username);
response.setToken(token);
}else{
response=new LoginResponse(Result.FAIL,LoginResponse.Msg.fail);
}
return response;
}else{
return new LoginResponse(Result.FAIL,LoginResponse.Msg.fail);
}
}
@PostMapping("/login/token")
public LoginResponse check(String token){
if(tokenDao.checkToken(token)){
Token t=tokenDao.get(token);
if(t!=null){
LoginResponse response= new LoginResponse(Result.OK, LoginResponse.Msg.ok,t.getUsername());
response.setToken(t);
return response;
}
}
return new LoginResponse(Result.FAIL, LoginResponse.Msg.fail);
}
//检索投诉人
@GetMapping("/query/user")
public QueryUserResponse searchPeople(QueryUserForm userForm) {
QueryUserResponse queryUserResponse=new QueryUserResponse(Result.OK, QueryUserResponse.Msg.ok);
queryUserResponse.setPeopleList(userDao.queryUser(userForm));
return queryUserResponse;
}
//修改密码
@PostMapping("/my/info/modifyPwd")
public InfoResponse modifyPwd(ModifyPwdForm modifyPwdForm) {
if(tokenDao.checkToken(modifyPwdForm.getToken())){
if(userDao.login(modifyPwdForm.getUsername(),modifyPwdForm.getOldPassword())){
if(userDao.modifyPwd(modifyPwdForm)){
return new InfoResponse(Result.OK,InfoResponse.Msg.modify_pwd_ok);
}else{
return new InfoResponse(Result.FAIL,InfoResponse.Msg.modify_pwd_fail);
}
}else{
return new InfoResponse(Result.FAIL,InfoResponse.Msg.modify_oldpwd_fail);
}
}else {
return new InfoResponse(Result.FAIL,InfoResponse.Msg.token);
}
}
}