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.

168 lines
5.9 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.repository.android.VisitorPeopleDao;
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;
@Autowired
private VisitorPeopleDao visitorPeopleDao;
/**
* 用户注册
*
* @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);
//保存默认预约配置信息
visitorPeopleDao.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);
}
}
}