package com.moral.api.controller;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.io.IOException;
|
import java.util.Map;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.ObjectUtils;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.moral.api.entity.SysConfig;
|
import com.moral.api.service.SysConfigService;
|
import com.moral.api.service.UserService;
|
import com.moral.constant.Constants;
|
import com.moral.constant.ResponseCodeEnum;
|
import com.moral.constant.ResultMessage;
|
import com.moral.pojo.VerificationCode;
|
import com.moral.util.KaptchaUtils;
|
import com.moral.util.TokenUtils;
|
|
@Slf4j
|
@Api(tags = {"登陆"})
|
@RestController
|
public class LoginController {
|
|
@Autowired
|
private UserService userService;
|
|
@Autowired
|
private SysConfigService sysConfigService;
|
|
@ApiOperation(value = "登陆", notes = "登陆")
|
@RequestMapping(value = "login", method = RequestMethod.POST)
|
public ResultMessage login(@RequestBody Map<String, Object> parameters) {
|
if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
|
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
|
}
|
Map<String, Object> result = userService.login(parameters);
|
if (!result.containsKey("data")) {
|
return ResultMessage.fail((int) result.get("code"), (String) result.get("msg"));
|
}
|
return ResultMessage.ok(result.get("data"));
|
}
|
|
@ApiOperation(value = "退出", notes = "退出")
|
@RequestMapping(value = "logout", method = RequestMethod.POST)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "uid", value = "用户id", required = true, paramType = "query", dataType = "String"),
|
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
|
})
|
public ResultMessage logout(String uid, HttpServletRequest request) {
|
if (uid == null) {
|
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
|
}
|
String token = request.getHeader("token");
|
TokenUtils.destoryToken(uid, token);
|
return ResultMessage.ok();
|
}
|
|
/**
|
* @Description: 获取验证码是否开启
|
* @Param: []
|
* @return: com.moral.constant.ResultMessage
|
* @Author: 陈凯裕
|
* @Date: 2021/3/18
|
*/
|
|
@ApiOperation(value = "获取验证码是否开启", notes = "获取验证码是否开启")
|
@RequestMapping(value = "verificationCode/config", method = RequestMethod.GET)
|
public void verifyConfig(HttpServletResponse response) {
|
QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("type", Constants.VERIFICATION_TYPE);
|
SysConfig sysConfig = sysConfigService.getOne(queryWrapper);
|
String code = sysConfig.getCode();
|
if (Constants.VERIFICATION_OPEN_CODE.equals(code)) {
|
try {
|
response.sendRedirect("/verificationCode/get");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
@ApiOperation(value = "获取验证码", notes = "获取验证码")
|
@RequestMapping(value = "verificationCode/get", method = RequestMethod.GET)
|
public ResultMessage getVerificationCode() {
|
VerificationCode verificationCode = null;
|
try {
|
verificationCode = KaptchaUtils.createVerificationCode();
|
} catch (IOException e) {
|
log.error(e.getMessage());
|
}
|
if (ObjectUtils.isEmpty(verificationCode))
|
return ResultMessage.fail();
|
return ResultMessage.ok(verificationCode);
|
}
|
|
@ApiOperation(value = "校验验证码", notes = "校验验证码")
|
@RequestMapping(value = "verificationCode/verify", method = RequestMethod.GET)
|
public ResultMessage gverifyVerificationCode(VerificationCode verificationCode) {
|
if (!verificationCode.valid())
|
return ResultMessage.fail();
|
if (KaptchaUtils.verify(verificationCode))
|
return ResultMessage.ok();
|
return ResultMessage.fail();
|
}
|
}
|