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("token")) {
|
return ResultMessage.fail((int) result.get("code"), (String) result.get("msg"));
|
}
|
return ResultMessage.ok(result);
|
}
|
|
@ApiOperation(value = "获取用户信息", notes = "获取用户信息")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
|
})
|
@RequestMapping(value = "getUserInfo", method = RequestMethod.POST)
|
public ResultMessage getUserInfo() {
|
Map<String, Object> result = userService.getCurrentUserInfo();
|
return ResultMessage.ok(result);
|
}
|
|
@ApiOperation(value = "退出", notes = "退出")
|
@RequestMapping(value = "logout", method = RequestMethod.GET)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
|
})
|
public ResultMessage logout(Integer userId, HttpServletRequest request) {
|
if (userId == null) {
|
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
|
ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
|
}
|
String token = request.getHeader("token");
|
TokenUtils.destoryToken(userId.toString(), token);
|
return ResultMessage.ok();
|
}
|
|
@ApiOperation(value = "获取验证码是否开启", notes = "获取验证码是否开启")
|
@RequestMapping(value = "verificationCode/config", method = RequestMethod.GET)
|
public ResultMessage verifyConfig(HttpServletResponse response) {
|
QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq(Constants.FRONT_VERIFICATIONCODE_COLUMN, Constants.FRONT_ERIFICATIONCODE_VALUE);
|
SysConfig sysConfig = sysConfigService.getOne(queryWrapper);
|
if (Constants.VERFICATIONCODE_OPEN.equals(sysConfig.getCode())) {
|
return new ResultMessage(ResponseCodeEnum.VERIFICATION_OPEN, null);
|
}
|
return new ResultMessage(ResponseCodeEnum.VERIFICATION_CLOSE, null);
|
}
|
|
@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();
|
}
|
}
|