From 923510deed8c991823db60dbd430bf18d78b98cb Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 07 Apr 2021 17:27:24 +0800 Subject: [PATCH] 登陆用户信息返回修改,用户组查询修改 --- screen-api/src/main/java/com/moral/api/controller/LoginController.java | 146 ++++++++++++++++++++++++++++-------------------- 1 files changed, 84 insertions(+), 62 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/LoginController.java b/screen-api/src/main/java/com/moral/api/controller/LoginController.java index a6cef12..444fa13 100644 --- a/screen-api/src/main/java/com/moral/api/controller/LoginController.java +++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java @@ -1,30 +1,35 @@ package com.moral.api.controller; -import com.moral.constant.Constants; 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.beans.factory.annotation.Value; +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.moral.api.entity.Group; -import com.moral.api.entity.User; -import com.moral.api.service.GroupService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.moral.api.entity.SysConfig; +import com.moral.api.entity.UserLog; +import com.moral.api.service.SysConfigService; +import com.moral.api.service.UserLogService; import com.moral.api.service.UserService; +import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; -import com.moral.util.AESUtils; -import com.moral.util.MD5Utils; +import com.moral.pojo.VerificationCode; +import com.moral.util.KaptchaUtils; import com.moral.util.TokenUtils; import com.moral.util.WebUtils; @@ -37,78 +42,95 @@ private UserService userService; @Autowired - private GroupService groupService; + private SysConfigService sysConfigService; - @Value("${AES.KEY}") - private String AESKey; + @Autowired + private UserLogService userLogService; @ApiOperation(value = "������", notes = "������") - @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String") - }) @RequestMapping(value = "login", method = RequestMethod.POST) - public ResultMessage login(HttpServletRequest request) { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + public ResultMessage login(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { - return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } - //������������ - String password = parameters.get("password").toString(); - //������������ - password = AESUtils.decrypt(password, AESKey); - - User user = userService.selectUserInfo(parameters); - //������������ - if (user == null) { - return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg()); + Map<String, Object> result = userService.login(parameters); + if (!result.containsKey("data")) { + return ResultMessage.fail((int) result.get("code"), (String) result.get("msg")); } - //������������ - if (!MD5Utils.saltMD5Verify(password, user.getPassword())) { - return ResultMessage.fail(ResponseCodeEnum.PASSWORD_INVALID.getCode(), ResponseCodeEnum.PASSWORD_INVALID.getMsg()); - } - //������������������ - if (Constants.DELETE.equals(user.getIsDelete())) { - return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode(), ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg()); - } - //������������������ - if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) { - return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getCode(), ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg()); - } - Map<String, Object> result = userService.login(user); - if (!result.containsKey("token")) { - return ResultMessage.fail(ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode(), ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg()); - } - return ResultMessage.ok(); + Map<String, Object> data = (Map<String, Object>) result.get("data"); + Map<String, Object> userInfo = (Map<String, Object>) data.get("user"); + UserLog userLog = new UserLog(); + String ip = WebUtils.getIpAddr(request); + userLog.setIp(ip); + userLog.setOperateId((Integer) userInfo.get("userId")); + Map<String, Object> organization = (Map<String, Object>) userInfo.get("organization"); + userLog.setOrganizationId((Integer) organization.get("id")); + userLog.setContent(userInfo.get("account") + "���������"); + userLogService.save(userLog); + return ResultMessage.ok(data); } - @ApiOperation(value = "������", notes = "������") + @ApiOperation(value = "������", notes = "������") @RequestMapping(value = "logout", method = RequestMethod.POST) - public ResultMessage logout(HttpServletRequest request) { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + public ResultMessage logout(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { if (!parameters.containsKey("uid")) { - return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } - String userId = request.getParameter("uid"); String token = request.getHeader("token"); - TokenUtils.destoryToken(userId, token); + TokenUtils.destoryToken(parameters.get("uid").toString(), token); return ResultMessage.ok(); } - @ApiOperation(value = "���������", notes = "���������") - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String") - }) - @RequestMapping(value = "addGroup", method = RequestMethod.POST) - private ResultMessage addGroup(Group group, HttpServletRequest request) { - String currentUserId = request.getHeader("uid"); - Map<String, Object> map = groupService.addGroup(group, currentUserId); - String msg = map.get("msg").toString(); - boolean flag = Boolean.parseBoolean(map.get("flag").toString()); - if (flag) { - return ResultMessage.ok(msg); + /** + * @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.VERFICATIONCODE_OPEN.equals(code)) { + try { + response.sendRedirect("/verificationCode/get"); + } catch (IOException e) { + e.printStackTrace(); + } } - return ResultMessage.fail(msg); } + @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(); + } } -- Gitblit v1.8.0