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.
212 lines
7.4 KiB
212 lines
7.4 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.*;
|
|
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;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 用户接口
|
|
*/
|
|
@RestController
|
|
public class UserController {
|
|
|
|
@Autowired
|
|
private UserDao userDao;
|
|
|
|
@Autowired
|
|
private EmailDao emailDao;
|
|
|
|
@Autowired
|
|
private EmailService emailService;
|
|
|
|
@Autowired
|
|
private TokenService tokenService;
|
|
|
|
@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.isNotDiffPwd(userResetPwd)) {
|
|
return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_diff_password);
|
|
} else {
|
|
if (userDao.resetPwd(userResetPwd)) {
|
|
return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step3_ok);
|
|
} else {
|
|
return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_fail);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@PostMapping("/uploadHeadImg")
|
|
public InfoResponse upload(UserHeadImg userHeadImg) {
|
|
return tokenService.checkToken(userHeadImg, new DoCheck<InfoResponse, UserHeadImg>() {
|
|
@Override
|
|
public InfoResponse ok(UserHeadImg userHeadImg) {
|
|
if (userDao.uploadImg(userHeadImg)) {
|
|
return new InfoResponse(Result.OK, InfoResponse.Msg.ok);
|
|
} else {
|
|
return new InfoResponse(Result.FAIL, InfoResponse.Msg.fail);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public InfoResponse fail() {
|
|
return new InfoResponse(Result.FAIL, InfoResponse.Msg.fail, InfoResponse.Msg.token);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 用户登录
|
|
*
|
|
* @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(Token token) {
|
|
return tokenService.checkToken(token, new DoCheck<LoginResponse, Token>() {
|
|
@Override
|
|
public LoginResponse ok(Token token) {
|
|
LoginResponse response = new LoginResponse(Result.OK, LoginResponse.Msg.ok, token.getUsername());
|
|
response.setToken(token);
|
|
return response;
|
|
}
|
|
|
|
@Override
|
|
public LoginResponse fail() {
|
|
return new LoginResponse(Result.FAIL, LoginResponse.Msg.fail);
|
|
}
|
|
});
|
|
}
|
|
|
|
//检索投诉人
|
|
@GetMapping("/query/user")
|
|
public QueryUserResponse searchPeople(QueryUserForm userForm) {
|
|
QueryUserResponse queryUserResponse;
|
|
List<String> peopleList = userDao.queryUser(userForm);
|
|
if (peopleList.isEmpty()) {
|
|
queryUserResponse = new QueryUserResponse(Result.OK, QueryUserResponse.Msg.ok_empty);
|
|
} else {
|
|
queryUserResponse = new QueryUserResponse(Result.OK, QueryUserResponse.Msg.ok);
|
|
}
|
|
queryUserResponse.setPeopleList(peopleList);
|
|
return queryUserResponse;
|
|
}
|
|
|
|
//修改密码
|
|
@PostMapping("/my/info/modifyPwd")
|
|
public InfoResponse modifyPwd(ModifyPwdForm modifyPwdForm) {
|
|
return tokenService.checkToken(modifyPwdForm, new DoCheck<InfoResponse, ModifyPwdForm>() {
|
|
@Override
|
|
public InfoResponse ok(ModifyPwdForm modifyPwdForm) {
|
|
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);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public InfoResponse fail() {
|
|
return new InfoResponse(Result.FAIL, InfoResponse.Msg.token);
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
|