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.
169 lines
6.8 KiB
169 lines
6.8 KiB
package com.community.pocket.api.web;
|
|
|
|
import com.community.pocket.entity.po.Manager;
|
|
import com.community.pocket.entity.po.ManagerToken;
|
|
import com.community.pocket.entity.vo.EmailTypeConfig;
|
|
import com.community.pocket.entity.vo.Result;
|
|
import com.community.pocket.entity.vo.web.*;
|
|
import com.community.pocket.repository.EmailDao;
|
|
import com.community.pocket.repository.ManagerDao;
|
|
import com.community.pocket.repository.ManagerTokenDao;
|
|
import com.community.pocket.util.EmailService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.util.DigestUtils;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/manager")
|
|
//管理员接口
|
|
public class ManagerController {
|
|
|
|
@Autowired
|
|
private ManagerDao managerDao;
|
|
|
|
//邮箱配置
|
|
@Autowired
|
|
private EmailTypeConfig emailTypeConfig;
|
|
|
|
//邮箱服务
|
|
@Autowired
|
|
private EmailService emailService;
|
|
|
|
@Autowired
|
|
private ManagerTokenDao managerTokenDao;
|
|
|
|
@Autowired
|
|
private EmailDao emailDao;
|
|
|
|
// 登陆
|
|
@PostMapping("login")
|
|
public LoginResponse login(@RequestBody ManagerLogin managerLogin) {
|
|
if (StringUtils.isEmpty(managerLogin.getManagerName())) {
|
|
return new LoginResponse(Result.FAIL, LoginResponse.Msg.manager);
|
|
} else if (StringUtils.isEmpty(managerLogin.getPassword())) {
|
|
return new LoginResponse(Result.FAIL, LoginResponse.Msg.password);
|
|
//校验账号密码
|
|
} else if (!managerDao.login(managerLogin)) {
|
|
return new LoginResponse(Result.FAIL, LoginResponse.Msg.fail);
|
|
} else {
|
|
// 验证通过生成令牌响应给服务端
|
|
ManagerToken managerToken = new ManagerToken();
|
|
Calendar c = Calendar.getInstance();
|
|
c.setTime(new Date());
|
|
managerToken.setCreateTime(c.getTimeInMillis());
|
|
// 令牌有效时间1天
|
|
c.add(Calendar.DAY_OF_MONTH, 1);
|
|
managerToken.setUseTime(c.getTimeInMillis());
|
|
// 生成token
|
|
managerToken.setToken(DigestUtils.md5DigestAsHex((managerToken.getCreateTime() + "" + managerToken.getUseTime() + "").getBytes()));
|
|
managerToken.setManagerName(managerLogin.getManagerName());
|
|
managerTokenDao.save(managerToken);
|
|
LoginResponse response = new LoginResponse(Result.OK, LoginResponse.Msg.ok);
|
|
response.setManagerToken(managerToken);
|
|
return response;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取邮箱类型
|
|
*/
|
|
@GetMapping("emailType")
|
|
public EmailTypeResponse getEmailType() {
|
|
EmailTypeResponse response = new EmailTypeResponse(Result.OK, EmailTypeResponse.Msg.ok);
|
|
response.setEmailTypeList(emailTypeConfig.getSupportType());
|
|
return response;
|
|
}
|
|
|
|
// 注册
|
|
@PostMapping("register")
|
|
public RegisterResponse register(@RequestBody ManagerRegister manager) {
|
|
if (StringUtils.isEmpty(manager.getManagerName())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.manager);
|
|
} else if (StringUtils.isEmpty(manager.getPassword())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.password);
|
|
} else if (StringUtils.isEmpty(manager.getConfirmPassword())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.confirmPassword);
|
|
} else if (!manager.getPassword().equals(manager.getConfirmPassword())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.passwordNotMatch);
|
|
} else if (StringUtils.isEmpty(manager.getMobile())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.mobie);
|
|
} else if (StringUtils.isEmpty(manager.getEmail())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.email);
|
|
} else if (managerDao.hasUser(manager.getManagerName())) {
|
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.username);
|
|
} else {
|
|
// 表单数据转换到管理员实体,调用dao层持久化到数据库
|
|
Manager m = new Manager();
|
|
m.setManagerName(manager.getManagerName());
|
|
m.setPassword(DigestUtils.md5DigestAsHex(manager.getPassword().getBytes()));
|
|
m.setMobile(manager.getMobile());
|
|
m.setEmail(manager.getEmail());
|
|
managerDao.save(m);
|
|
return new RegisterResponse(Result.OK, RegisterResponse.Msg.ok);
|
|
}
|
|
}
|
|
|
|
//注销
|
|
@PostMapping("logout")
|
|
public LogoutResponse logout(@RequestBody ManagerLogout managerLogout) {
|
|
if (StringUtils.isEmpty(managerLogout.getManagerName())) {
|
|
return new LogoutResponse(Result.FAIL, LogoutResponse.Msg.fail);
|
|
} else {
|
|
if (managerTokenDao.logout(managerLogout)) {
|
|
return new LogoutResponse(Result.OK, LogoutResponse.Msg.ok);
|
|
} else {
|
|
return new LogoutResponse(Result.FAIL, LogoutResponse.Msg.fail);
|
|
}
|
|
}
|
|
}
|
|
|
|
//检查账号邮箱
|
|
@PostMapping("reset/checkEmail")
|
|
public ResetpwdResponse checkUserWithEmail(@RequestBody ManagerResetPwd managerResetPwd) {
|
|
if (managerDao.checkUserWithEmail(managerResetPwd)) {
|
|
return new ResetpwdResponse(Result.OK, ResetpwdResponse.Msg.check_ok);
|
|
} else {
|
|
return new ResetpwdResponse(Result.FAIL, ResetpwdResponse.Msg.check_fail);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 发送邮件
|
|
*/
|
|
@PostMapping("reset/code")
|
|
public ResetpwdResponse sendEmail(@RequestBody ManagerResetPwd managerResetPwd) {
|
|
if (emailService.sendManagerCode(managerResetPwd)) {
|
|
return new ResetpwdResponse(Result.OK, ResetpwdResponse.Msg.send_code_ok);
|
|
} else {
|
|
return new ResetpwdResponse(Result.FAIL, ResetpwdResponse.Msg.send_code_fail);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 校验验证码
|
|
*/
|
|
@PostMapping("reset/checkCode")
|
|
public ResetpwdResponse validCode(@RequestBody ManagerResetPwd managerResetPwd) {
|
|
if (emailDao.checkCode(managerResetPwd.getEmail() + managerResetPwd.getEmailType(), managerResetPwd.getVerificationCode())) {
|
|
return new ResetpwdResponse(Result.OK, ResetpwdResponse.Msg.valid_code_ok);
|
|
} else {
|
|
return new ResetpwdResponse(Result.FAIL, ResetpwdResponse.Msg.valid_code_fail);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 重置密码
|
|
*/
|
|
@PostMapping("reset/resetPwd")
|
|
public ResetpwdResponse resetpwd(@RequestBody ManagerResetPwd managerResetPwd) {
|
|
if (managerDao.resetpwd(managerResetPwd)) {
|
|
return new ResetpwdResponse(Result.OK, ResetpwdResponse.Msg.resetpwd_ok);
|
|
} else {
|
|
return new ResetpwdResponse(Result.FAIL, ResetpwdResponse.Msg.resetpwd_fail);
|
|
}
|
|
}
|
|
}
|
|
|