From f1c3c5f0b840df7fa5fe08a69186c9f2b52ce243 Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Thu, 18 Mar 2021 15:37:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- screen-api/src/main/java/com/moral/api/controller/LoginController.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 114 insertions(+), 0 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 new file mode 100644 index 0000000..a6cef12 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java @@ -0,0 +1,114 @@ +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.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +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.moral.api.service.UserService; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import com.moral.util.AESUtils; +import com.moral.util.MD5Utils; +import com.moral.util.TokenUtils; +import com.moral.util.WebUtils; + +@Slf4j +@Api(tags = {"������"}) +@RestController +public class LoginController { + + @Autowired + private UserService userService; + + @Autowired + private GroupService groupService; + + @Value("${AES.KEY}") + private String AESKey; + + @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); + if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { + 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()); + } + //������������ + 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(); + } + + @ApiOperation(value = "������", notes = "������") + @RequestMapping(value = "logout", method = RequestMethod.POST) + public ResultMessage logout(HttpServletRequest request) { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!parameters.containsKey("uid")) { + 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); + 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); + } + return ResultMessage.fail(msg); + } + +} -- Gitblit v1.8.0