From d2d9faedd535a89c57d4a75bb284f6fb8f54dc70 Mon Sep 17 00:00:00 2001 From: s2042968 Date: Fri, 15 Nov 2024 17:25:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E8=BF=94?= =?UTF-8?q?=E5=9B=9Eresult=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E5=99=A8=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/user/UserController.java | 7 +++++-- .../user/repository/TokenRepository.java | 7 +++++++ .../boardservice/user/service/TokenService.java | 5 +++++ .../user/service/impl/TokenServiceImpl.java | 14 ++++++++++++++ .../user/service/impl/UserServiceImpl.java | 2 +- electromagnetic-framework/pom.xml | 4 ++++ .../data/framework/share/sign/AESUtils.java | 2 +- .../data/manage/facade/user/UserFacade.java | 5 +++-- .../data/manage/repository/dao/TokenMapper.java | 7 +++++++ .../repository/impl/TokenRepositoryImpl.java | 8 ++++++++ .../src/main/resources/sqlmapper/TokenMapper.xml | 10 ++++++++++ .../manage/service/facade/user/UserFacadeImpl.java | 14 ++++++++------ 12 files changed, 73 insertions(+), 12 deletions(-) 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 fce74d2..e9d1282 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 @@ -5,6 +5,7 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserModiRe import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserRequest; +import electromagnetic.data.framework.share.model.ElectromagneticResult; import electromagnetic.data.framework.share.result.BaseResult; import electromagnetic.data.framework.share.result.LoginResult; import io.swagger.annotations.ApiOperation; @@ -21,19 +22,21 @@ public class UserController { @ApiOperation(value = "登录", notes = "") @PostMapping("/login") - public LoginResult login(@RequestBody UserLoginRequest loginRequest) { + public ElectromagneticResult login(@RequestBody UserLoginRequest loginRequest) { return userFacade.login(loginRequest); } @ApiOperation(value = "新增用户信息", notes = "") @PostMapping - public BaseResult createUser(@RequestBody UserRequest userRequest) { + public ElectromagneticResult createUser(@RequestBody UserRequest userRequest) { return userFacade.createUser(userRequest); } + @ApiOperation(value="编辑用户信息",notes = "") @PutMapping public BaseResult editUser(@RequestBody UserModiRequest userModiRequest){ return userFacade.modifyUser(userModiRequest);} + @ApiOperation(value = "发布用户信息", notes = "") @RequestMapping(value = "/publish", method = RequestMethod.POST) public BaseResult publishUser(@RequestBody UserPublishRequest userPublishRequest) { 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 01b6928..88afa9d 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 @@ -10,4 +10,11 @@ public interface TokenRepository { * @return */ int insert(Token token); + + /** + * 查询令牌 + * @param token + * @return + */ + public Token selectToken(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 6446c4c..a17daed 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 @@ -20,4 +20,9 @@ public interface TokenService { * @return */ public Boolean createUserToken (User user, String tokenStr); + + /** + * 查看token是否有效 + */ + public Boolean isTokenValid(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 9bfbc3a..a852c88 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 @@ -1,6 +1,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.impl; import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.SystemClock; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.Token; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User; import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo; @@ -56,4 +57,17 @@ public class TokenServiceImpl implements TokenService { token.setExpireAt(new DateTime(now()+UserConstant.DEFAULT_EXPIRE_TIME)); return tokenRepository.insert(token)>0; } + + /** + * 查看token是否有效 + */ + @Override + public Boolean isTokenValid(String tokenStr){ + Token token = tokenRepository.selectToken(tokenStr); + DateTime now = new DateTime(SystemClock.now()); + if (token != null && now.before(token.getExpireAt())) { + return true; + } + return false; + } } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java index fe5847f..59d017b 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java @@ -59,7 +59,7 @@ public class UserServiceImpl implements UserService { @Override public Boolean matchPassword(User user, String password){ String salt = user.getSalt(); - String encodePwd = SignUtils.MD5(UserConstant.DEFAULT_PASSWORD+salt); + String encodePwd = SignUtils.MD5(password+salt); return user.getUserPwd().equals(encodePwd); } diff --git a/electromagnetic-framework/pom.xml b/electromagnetic-framework/pom.xml index 899213d..9e7d955 100644 --- a/electromagnetic-framework/pom.xml +++ b/electromagnetic-framework/pom.xml @@ -71,6 +71,10 @@ org.apache.tomcat.embed tomcat-embed-core + + org.springframework + spring-webmvc + \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java index c8bcbf8..3bb0e57 100644 --- a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java @@ -132,7 +132,7 @@ public class AESUtils { Security.addProvider(new BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); - return cipher.doFinal(Base64.decodeBase64(enc)).toString(); + return new String(cipher.doFinal(Base64.decodeBase64(enc))); } catch (NoSuchPaddingException e) { throw new RuntimeException(e); } catch (IllegalBlockSizeException e) { 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 84201a0..b0de169 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 @@ -4,6 +4,7 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserModiRe import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest; import com.electromagnetic.industry.software.data.manage.request.user.UserRequest; +import electromagnetic.data.framework.share.model.ElectromagneticResult; import electromagnetic.data.framework.share.result.BaseResult; import electromagnetic.data.framework.share.result.LoginResult; @@ -14,14 +15,14 @@ public interface UserFacade { * @param loginRequest * @return */ - LoginResult login(UserLoginRequest loginRequest); + ElectromagneticResult login(UserLoginRequest loginRequest); /** * 新增用户信息 * @param userRequest * @return */ - BaseResult createUser(UserRequest userRequest); + ElectromagneticResult createUser(UserRequest userRequest); /** * 编辑用户信息 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 fb67a60..9a9690d 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 @@ -12,4 +12,11 @@ public interface TokenMapper { * @return */ int insert(Token token); + + /** + * 查询 + * @param token + * @return Token + */ + Token selectToken(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 af4e7b7..f4c178e 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 @@ -22,4 +22,12 @@ public class TokenRepositoryImpl implements TokenRepository { public int insert(Token token){ return tokenMapper.insert(token); } + + /** + * 查询令牌 + * @param token + * @return + */ + @Override + public Token selectToken(String token) {return tokenMapper.selectToken(token);} } diff --git a/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml index 0ab10d0..6a3061f 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml @@ -10,6 +10,10 @@ + + select id, user_id, token, is_long_term, created_at, expire_at from tokens + + insert into tokens( user_id, @@ -26,4 +30,10 @@ #{expireAt} ) + + + \ 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 2a7dd00..bcb0066 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 @@ -12,6 +12,8 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserLoginR import com.electromagnetic.industry.software.data.manage.request.user.UserRequest; import com.electromagnetic.industry.software.data.manage.service.mappers.UserMappers; import electromagnetic.data.framework.share.id.IdWorker; +import electromagnetic.data.framework.share.model.ElectromagneticResult; +import electromagnetic.data.framework.share.model.ElectromagneticResultUtil; import electromagnetic.data.framework.share.result.BaseResult; import electromagnetic.data.framework.share.result.LoginResult; import electromagnetic.data.framework.share.sign.AESUtils; @@ -37,16 +39,16 @@ public class UserFacadeImpl implements UserFacade { * @return */ @Override - public LoginResult login(UserLoginRequest loginRequest) { + public ElectromagneticResult login(UserLoginRequest loginRequest) { UserLoginInfo info = UserMappers.INSTANCE.getUserLoginRequestToModel(loginRequest); String decodePwd = AESUtils.decrypt(info.getUserPwd(), UserConstant.SECRET_KEY); User user = userService.getUserByWorkNumber(info.getWorkNumber()); - if (user==null || userService.matchPassword(user, decodePwd)) { + if ( user!=null && userService.matchPassword(user, decodePwd)) { String tokenStr = tokenService.createToken(info); tokenService.createUserToken(user, tokenStr); - return LoginResultUtil.success(tokenStr); + return ElectromagneticResultUtil.success(tokenStr); } - return LoginResultUtil.fail("500","用户不存在/密码错误"); + return ElectromagneticResultUtil.fail("500","用户不存在/密码错误"); } /** @@ -55,13 +57,13 @@ public class UserFacadeImpl implements UserFacade { * @return */ @Override - public BaseResult createUser(UserRequest userRequest){ + public ElectromagneticResult createUser(UserRequest userRequest){ User user = UserMappers.INSTANCE.getUserRequestToModel(userRequest); user.setSalt(RandomStringUtils.randomAlphanumeric(16)); user.setUserId(IdWorker.getSnowFlakeIdString()); user.setUserPwd(SignUtils.MD5(UserConstant.DEFAULT_PASSWORD+user.getSalt())); user.setIsPublished(UserConstant.DEFAULT_PUBLISH_STATUS); - return BaseResultUtil.success(userService.createUser(user)); + return ElectromagneticResultUtil.success(userService.createUser(user)); } /**