diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java index ca51be6..312feb0 100644 --- a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java +++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; @RequestMapping("/data/ed/user") @RestController @@ -60,4 +61,10 @@ public class UserController { public ElectromagneticResult deleteUser(@RequestBody UserDeleteRequest userDeleteRequest) { return userFacade.deleteUser(userDeleteRequest); } + + @ApiOperation(value="登出", notes = "") + @RequestMapping(value = "/logout", method = RequestMethod.POST) + public ElectromagneticResult logout(@RequestHeader("Authorization") String token) { + return userFacade.logout(token); + } } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java index 88afa9d..b3aa348 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java @@ -17,4 +17,11 @@ public interface TokenRepository { * @return */ public Token selectToken(String token); + + /** + * 删除令牌 + * @param token + * @return + */ + public int deleteToken(String token); } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java index 2bdacf1..4af370e 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java @@ -24,4 +24,9 @@ public interface TokenService { * 查看token是否有效 */ public Boolean isTokenValid(String tokenStr); + + /** + * 删除token + */ + public int deleteToken(String tokenStr); } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java index 3bb3582..4a7df47 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java @@ -71,4 +71,12 @@ public class TokenServiceImpl implements TokenService { } return false; } + + /** + * 删除token + */ + @Override + public int deleteToken(String tokenStr){ + return tokenRepository.deleteToken(tokenStr); + } } diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java index ca41a73..a040d0e 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java @@ -3,6 +3,8 @@ package com.electromagnetic.industry.software.data.manage.facade.user; import com.electromagnetic.industry.software.data.manage.request.user.*; import electromagnetic.data.framework.share.model.ElectromagneticResult; +import javax.servlet.http.HttpServletRequest; + public interface UserFacade { /** @@ -61,4 +63,11 @@ public interface UserFacade { * @return */ ElectromagneticResult deleteUser(UserDeleteRequest userDeleteRequest); + + /** + * 用户登出 + * @param token + * @return + */ + ElectromagneticResult logout(String token); } diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java index 9a9690d..bb07eb4 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java @@ -19,4 +19,11 @@ public interface TokenMapper { * @return Token */ Token selectToken(String token); + + /** + * 删除token + * @param token + * @return + */ + int deleteToken(String token); } diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java index f4c178e..cfaa3be 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java @@ -30,4 +30,12 @@ public class TokenRepositoryImpl implements TokenRepository { */ @Override public Token selectToken(String token) {return tokenMapper.selectToken(token);} + + /** + * 删除令牌 + * @param token + * @return + */ + @Override + public int deleteToken(String token) {return tokenMapper.deleteToken(token);}; } diff --git a/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml index 6a3061f..8cbb683 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml @@ -36,4 +36,8 @@ where token=#{token} + + delete from tokens where token=#{token} + + \ No newline at end of file diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java index fd8f6fb..eb65fb3 100644 --- a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java @@ -24,6 +24,7 @@ import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.util.List; @Service @@ -195,6 +196,14 @@ public class UserFacadeImpl implements UserFacade { } } - - + /** + * 用户登出 + * @param token + * @return + */ + @Override + public ElectromagneticResult logout(String token) { + token = token.substring(7); + return ElectromagneticResultUtil.success(tokenService.deleteToken(token)); + } }