From b6684d857539400e53f55db4f55b5c3dcab1575e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E9=A3=9E=E4=BA=91?= <1941783199@qq.com> Date: Mon, 28 Sep 2020 09:48:30 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 119 ++++++++++++++--------------------------------------- 1 file changed, 31 insertions(+), 88 deletions(-) diff --git a/.gitignore b/.gitignore index 49f72f7b..c12cb906 100644 --- a/.gitignore +++ b/.gitignore @@ -1,95 +1,38 @@ -### Java template -*.class - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -### JetBrains template -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/workspace.xml -.idea/tasks.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml - -# Sensitive or high-churn files: -.idea/dataSources.ids -.idea/dataSources.xml -.idea/dataSources.local.xml -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml +target/ +logs/ +.mvn/ +mvnw +mvnw.cmd +!**/src/main/** +!**/src/test/** -# Gradle: -.idea/gradle.xml -.idea/ +src/main/resources/docs/ -# Mongo Explorer plugin: -.idea/mongoSettings.xml +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache -## File-based project format: +### IntelliJ IDEA ### +.idea *.iws +*.iml +*.ipr -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties -### Windows template -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk -### Maven template -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -# ignore eclipse files -.project -.classpath -.settings -.metadata - -.svn +### VS Code ### +.vscode/ +### Java template +*.class From b2a322ae5f226bf9722fef2e242eea210c24c7a8 Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Mon, 28 Sep 2020 15:25:13 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8B=86=E5=88=86=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=B7=E9=AA=8C=E8=AF=81=E7=A0=81=E9=AA=8C=E8=AF=81=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=AF=86=E7=A0=81=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserLoginController.java | 8 +++++ .../hrauth/service/UserLoginService.java | 1 + .../service/impl/UserLoginServiceImpl.java | 32 +++++++++++++++---- .../domain/hrms/request/UserLoginRequest.java | 4 +++ .../domain/hrms/response/HrmsCode.java | 2 ++ .../src/main/resources/jwt.properties | 2 +- 6 files changed, 41 insertions(+), 8 deletions(-) diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index ed2ad65f..41e4403f 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -36,7 +36,15 @@ public class UserLoginController { return "Hello"; } + @PostMapping("/verifyMobile") + @ApiOperation(value = "验证手机号及验证码") + public ResponseResult verifyMobile(@RequestBody @Valid UserLoginRequest user){ + UserLoginRequest result = userLoginService.verifyMobile(user); + return ResponseResult.SUCCESS(result); + } + @PostMapping("/getBackPwd") + @ApiOperation(value = "重置密码") public ResponseResult getBackPwd(@RequestBody @Valid UserLoginRequest user){ boolean result = userLoginService.getBackPwd(user); return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java index 583a4618..47481c74 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java @@ -12,6 +12,7 @@ import com.daqing.framework.model.response.ResponseResult; */ public interface UserLoginService extends IService { Boolean getBackPwd(UserLoginRequest user); + UserLoginRequest verifyMobile(UserLoginRequest user); //登录 ResponseResult login(LoginRequest loginRequest); diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index 824f8f49..c08cac85 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -43,10 +43,10 @@ public class UserLoginServiceImpl extends ServiceImpl }*/ /** - * 忘记密码 + * 验证手机号及验证码 */ @Override - public Boolean getBackPwd(UserLoginRequest user){ + public UserLoginRequest verifyMobile(UserLoginRequest user){ //判断重置密码参数是否为空 if(StringUtils.isEmpty(user.getPhoneAccount())){ ExceptionCast.cast(HrmsCode.PHNOE_ACCOUNT_NOT_EMPTY); @@ -54,9 +54,7 @@ public class UserLoginServiceImpl extends ServiceImpl if(StringUtils.isEmpty(user.getVerifyCode())){ ExceptionCast.cast(HrmsCode.VERIFY_CODE_ILLEGAL); } - if(StringUtils.isEmpty(user.getNewPwd())){ - ExceptionCast.cast(HrmsCode.NEW_PASSWORD_NOT_EMPTY); - } + //校验手机账号是否存在 /* int count = this.count(new QueryWrapper() .eq("phone_account", user.getPhoneAccount()));*/ @@ -65,13 +63,33 @@ public class UserLoginServiceImpl extends ServiceImpl if (count == 0) { ExceptionCast.cast(HrmsCode.PHNOE_ACCOUNT_NOT_EXIST); } - //根据手机号查询相关信息 - UserEntity userEntity = baseMapper.selectByPhoneAccount(user.getPhoneAccount()); //判断验证码是否匹配 String verify = "123456"; if(!verify.equals(user.getVerifyCode())){ ExceptionCast.cast(HrmsCode.VERIFY_CODE_ILLEGAL); } + return user; + } + + + /** + * 重置密码 + */ + @Override + public Boolean getBackPwd(UserLoginRequest user){ + //判断重置密码参数是否为空 + if(StringUtils.isEmpty(user.getNewPwd())){ + ExceptionCast.cast(HrmsCode.NEW_PASSWORD_NOT_EMPTY); + } + if(StringUtils.isEmpty(user.getConfirmPwd())){ + ExceptionCast.cast(HrmsCode.CONFIRM_PWD_NOT_EMPTY); + } + if(!user.getConfirmPwd().equals(user.getNewPwd())){ + ExceptionCast.cast(HrmsCode.TWICE_PWD_DIFFERENT); + } + + //根据手机号查询相关信息 + UserEntity userEntity = baseMapper.selectByPhoneAccount(user.getPhoneAccount()); String newMD5 = Md5Util.md5(user.getNewPwd()+userEntity.getId()); //根据手机号码修改密码 diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/request/UserLoginRequest.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/request/UserLoginRequest.java index 13b39d2c..c6428064 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/request/UserLoginRequest.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/request/UserLoginRequest.java @@ -30,4 +30,8 @@ public class UserLoginRequest implements Serializable { */ @Pattern(regexp = "^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{6,20}$",message = "密码格式不正确!") private String newPwd; + /** + * 确认密码 + */ + private String confirmPwd; } diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java index 52fcc512..528a08de 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java @@ -27,6 +27,8 @@ public enum HrmsCode implements ResultCode { NEW_PASSWORD_ILLEGAL(false,33004,"新密码格式不正确!"), VERIFY_CODE_ILLEGAL(false,33005,"验证码不匹配!"), PHNOE_ACCOUNT_NOT_EXIST(false,33006,"手机号码不存在!"), + CONFIRM_PWD_NOT_EMPTY(false,33007,"确认密码不能为空!"), + TWICE_PWD_DIFFERENT(false,33008,"两次输入密码不一致!"), EMP_POSITION_EXSIT(false, 22006, "该职位下已关联员工!"); diff --git a/dq-govern-gateway/src/main/resources/jwt.properties b/dq-govern-gateway/src/main/resources/jwt.properties index d8152474..441fb9cd 100644 --- a/dq-govern-gateway/src/main/resources/jwt.properties +++ b/dq-govern-gateway/src/main/resources/jwt.properties @@ -1 +1 @@ -jwt.ignoreUrlList=/apiHrmsAuth/hrms/auth/userlogin/getBackPwd,/apiHrmsAuth/hrms/auth/userlogin/login +jwt.ignoreUrlList=/apiHrmsAuth/hrms/auth/userlogin/getBackPwd,/apiHrmsAuth/hrms/auth/userlogin/login,/apiHrmsAuth/hrms/auth/userlogin/verifyMobile From 991f319a89fc2d939bfe22117f42fca5cd1b35d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E9=A3=9E=E4=BA=91?= <1941783199@qq.com> Date: Mon, 28 Sep 2020 15:44:53 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dq-framework-common/dq-framework-common.iml | 164 ++++++++++++++++++ .../com/daqing/framework/util/BasePage.java | 9 + dq-govern-gateway/pom.xml | 23 +-- .../gateway/config/ApiGlobalFilter.java | 3 +- .../financial/gateway/util/JwtUtil.java | 142 +++++++-------- 5 files changed, 246 insertions(+), 95 deletions(-) create mode 100644 dq-framework-common/dq-framework-common.iml create mode 100644 dq-framework-common/src/main/java/com/daqing/framework/util/BasePage.java diff --git a/dq-framework-common/dq-framework-common.iml b/dq-framework-common/dq-framework-common.iml new file mode 100644 index 00000000..f683c485 --- /dev/null +++ b/dq-framework-common/dq-framework-common.iml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dq-framework-common/src/main/java/com/daqing/framework/util/BasePage.java b/dq-framework-common/src/main/java/com/daqing/framework/util/BasePage.java new file mode 100644 index 00000000..ad2d5da3 --- /dev/null +++ b/dq-framework-common/src/main/java/com/daqing/framework/util/BasePage.java @@ -0,0 +1,9 @@ +package com.daqing.framework.util; + +import lombok.Data; +//分页工具类 +@Data +public class BasePage { + private int page = 0; + private int size = 10; +} diff --git a/dq-govern-gateway/pom.xml b/dq-govern-gateway/pom.xml index f34cda2e..1cbbb367 100644 --- a/dq-govern-gateway/pom.xml +++ b/dq-govern-gateway/pom.xml @@ -20,11 +20,6 @@ - org.springframework.cloud @@ -53,27 +48,11 @@ 1.18.12 - - com.auth0 - java-jwt - 3.3.0 - - org.springframework.boot spring-boot-starter-data-redis - - org.springframework.boot - spring-boot-starter-test - test - - - org.junit.vintage - junit-vintage-engine - - - + diff --git a/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/config/ApiGlobalFilter.java b/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/config/ApiGlobalFilter.java index 27639e65..53ad45d0 100644 --- a/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/config/ApiGlobalFilter.java +++ b/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/config/ApiGlobalFilter.java @@ -1,7 +1,6 @@ package com.daqing.financial.gateway.config; import com.alibaba.fastjson.JSONObject; -import com.daqing.financial.gateway.util.JwtUtil; import com.daqing.financial.gateway.util.RedisUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; @@ -86,7 +85,7 @@ public class ApiGlobalFilter implements GlobalFilter, Ordered { */ private Long verifyJWT(String token){ String id = RedisUtil.get("dq:token:"+token); - return JwtUtil.verifyToken(token); + return Long.parseLong(id); } @Override diff --git a/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/util/JwtUtil.java b/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/util/JwtUtil.java index af0d0001..a59c22dd 100644 --- a/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/util/JwtUtil.java +++ b/dq-govern-gateway/src/main/java/com/daqing/financial/gateway/util/JwtUtil.java @@ -1,71 +1,71 @@ -package com.daqing.financial.gateway.util; - - -import com.auth0.jwt.JWT; -import com.auth0.jwt.algorithms.Algorithm; -import com.daqing.financial.gateway.SpringContextHolder; - -import java.util.Date; -import java.util.Set; - -/** - * @author zcw - * @version 1.0 - * @date 2019/11/23 11:06 - * @description jwt工具类 - */ -public class JwtUtil { - - private final static Algorithm algorithm = SpringContextHolder.getBean("algorithm", Algorithm.class); - - //private final static OdcProperties properties = SpringContextHolder.getBean("odcProperties", OdcProperties.class); - - /** - * 创建token - * - * @param userId; - * @param timeout; 单位是秒 - */ - public static String createJwtToken(Long userId, long timeout) { - return JWT.create() - .withClaim("member", userId) - .withExpiresAt(new Date(System.currentTimeMillis() + timeout * 1000)) - .sign(algorithm); - } - - /** - * token正确且有效,则返回userId - */ - public static Long verifyToken(String token) { - try { - String noBearerToken = token.replaceFirst("Bearer ", ""); - Long userId = JWT.require(algorithm) - .build() - .verify(noBearerToken) - .getClaim("member") - .asLong(); - if (RedisUtil.get(getRedisKey(userId, noBearerToken)) != null) { - return userId; - } - } catch (Exception e) { - e.printStackTrace(); - return null; - } - return null; - } - - public static String getRedisKey(Long userId, String token) { - return String.format("dq:token:%d:%s", userId, token); - } - - public static void putTokenToRedis(Long userId, String token, long times) { - RedisUtil.setEx(getRedisKey(userId, token), "nothing", times); - } - - public static void removeTokenByUserId(Long userId) { - Set tokenSet = RedisUtil.keys(getRedisKey(userId, "*")); - for (String key : tokenSet) { - RedisUtil.del(key); - } - } -} +//package com.daqing.financial.gateway.util; +// +// +//import com.auth0.jwt.JWT; +//import com.auth0.jwt.algorithms.Algorithm; +//import com.daqing.financial.gateway.SpringContextHolder; +// +//import java.util.Date; +//import java.util.Set; +// +///** +// * @author zcw +// * @version 1.0 +// * @date 2019/11/23 11:06 +// * @description jwt工具类 +// */ +//public class JwtUtil { +// +// private final static Algorithm algorithm = SpringContextHolder.getBean("algorithm", Algorithm.class); +// +// //private final static OdcProperties properties = SpringContextHolder.getBean("odcProperties", OdcProperties.class); +// +// /** +// * 创建token +// * +// * @param userId; +// * @param timeout; 单位是秒 +// */ +// public static String createJwtToken(Long userId, long timeout) { +// return JWT.create() +// .withClaim("member", userId) +// .withExpiresAt(new Date(System.currentTimeMillis() + timeout * 1000)) +// .sign(algorithm); +// } +// +// /** +// * token正确且有效,则返回userId +// */ +// public static Long verifyToken(String token) { +// try { +// String noBearerToken = token.replaceFirst("Bearer ", ""); +// Long userId = JWT.require(algorithm) +// .build() +// .verify(noBearerToken) +// .getClaim("member") +// .asLong(); +// if (RedisUtil.get(getRedisKey(userId, noBearerToken)) != null) { +// return userId; +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return null; +// } +// return null; +// } +// +// public static String getRedisKey(Long userId, String token) { +// return String.format("dq:token:%d:%s", userId, token); +// } +// +// public static void putTokenToRedis(Long userId, String token, long times) { +// RedisUtil.setEx(getRedisKey(userId, token), "nothing", times); +// } +// +// public static void removeTokenByUserId(Long userId) { +// Set tokenSet = RedisUtil.keys(getRedisKey(userId, "*")); +// for (String key : tokenSet) { +// RedisUtil.del(key); +// } +// } +//} From 17d1f2003dba35d7a218c94ffb7e4bddafb68ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E9=A3=9E=E4=BA=91?= <1941783199@qq.com> Date: Mon, 28 Sep 2020 15:50:36 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 38 ------------------- .../hrms/controller/DeptController.java | 4 ++ .../src/main/resources/jwt.properties | 2 +- 3 files changed, 5 insertions(+), 39 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c12cb906..00000000 --- a/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -target/ -logs/ -.mvn/ -mvnw -mvnw.cmd -!**/src/main/** -!**/src/test/** - -src/main/resources/docs/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ - -### VS Code ### -.vscode/ - -### Java template -*.class diff --git a/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/DeptController.java b/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/DeptController.java index 0a5c2482..886e69b6 100644 --- a/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/DeptController.java +++ b/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/DeptController.java @@ -6,6 +6,8 @@ import com.daqing.framework.domain.hrms.DepartmentVO; import com.daqing.framework.domain.hrms.DeptEntity; import com.daqing.framework.domain.hrms.request.DeptAddRequest; import com.daqing.framework.model.response.ResponseResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -21,6 +23,7 @@ import java.util.List; */ @RestController @RequestMapping("hrms/dept") +@Api(tags = {"测试swagger"}) public class DeptController implements DeptControllerApi { @Autowired @@ -34,6 +37,7 @@ public class DeptController implements DeptControllerApi { */ @Override @PostMapping("/save") + @ApiOperation(value = "111") //@RequiresPermissions("hrms:dept:save") public ResponseResult save(@RequestBody DeptAddRequest deptAddRequest) { boolean result = deptService.saveDept(deptAddRequest); diff --git a/dq-govern-gateway/src/main/resources/jwt.properties b/dq-govern-gateway/src/main/resources/jwt.properties index 441fb9cd..9212031c 100644 --- a/dq-govern-gateway/src/main/resources/jwt.properties +++ b/dq-govern-gateway/src/main/resources/jwt.properties @@ -1 +1 @@ -jwt.ignoreUrlList=/apiHrmsAuth/hrms/auth/userlogin/getBackPwd,/apiHrmsAuth/hrms/auth/userlogin/login,/apiHrmsAuth/hrms/auth/userlogin/verifyMobile +jwt.ignoreUrlList=/apiHrmsAuth/hrms/auth/userlogin/getBackPwd,/apiHrmsAuth/hrms/auth/userlogin/login,/apiHrmsAuth/hrms/auth/userlogin/verifyMobile \ No newline at end of file From 49cce00232de09ccdc71d88624a2bc73be376faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E9=A3=9E=E4=BA=91?= <1941783199@qq.com> Date: Mon, 28 Sep 2020 16:48:41 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dq-framework-common/pom.xml | 17 ++++ .../com/daqing/framework/util/RandomUtil.java | 15 ++++ .../com/daqing/framework/util/SendSMS.java | 80 +++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 dq-framework-common/src/main/java/com/daqing/framework/util/RandomUtil.java create mode 100644 dq-framework-common/src/main/java/com/daqing/framework/util/SendSMS.java diff --git a/dq-framework-common/pom.xml b/dq-framework-common/pom.xml index 2207e522..893d737a 100644 --- a/dq-framework-common/pom.xml +++ b/dq-framework-common/pom.xml @@ -115,23 +115,40 @@ spring-cloud-starter-alibaba-nacos-config + com.auth0 java-jwt 3.3.0 + com.alibaba fastjson 1.2.70 + org.springframework.boot spring-boot-starter-data-redis 2.1.8.RELEASE + + + + com.github.suxingli + aliyuncs + 1.0.1 + + + + com.aliyun + aliyun-java-sdk-dysmsapi + 1.1.0 + + diff --git a/dq-framework-common/src/main/java/com/daqing/framework/util/RandomUtil.java b/dq-framework-common/src/main/java/com/daqing/framework/util/RandomUtil.java new file mode 100644 index 00000000..39277703 --- /dev/null +++ b/dq-framework-common/src/main/java/com/daqing/framework/util/RandomUtil.java @@ -0,0 +1,15 @@ +package com.daqing.framework.util; + +import java.util.Random; + +public class RandomUtil { + public static String getRandomNum(int num) { + String str = "0123456789"; + StringBuilder sb = new StringBuilder(4); + for (int i = 0; i < num; i++) { + char ch = str.charAt(new Random().nextInt(str.length())); + sb.append(ch); + } + return sb.toString(); + } +} diff --git a/dq-framework-common/src/main/java/com/daqing/framework/util/SendSMS.java b/dq-framework-common/src/main/java/com/daqing/framework/util/SendSMS.java new file mode 100644 index 00000000..34587a05 --- /dev/null +++ b/dq-framework-common/src/main/java/com/daqing/framework/util/SendSMS.java @@ -0,0 +1,80 @@ +package com.daqing.framework.util; + +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; +import com.aliyuncs.profile.IClientProfile; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class SendSMS { + + + public static void main(String[] args){ + String mobile="13888888888";//需要接受短信验证码的手机号 + String sendTemplate="SMS_134188888";//短信模板ID,需要去阿里云平台申请,审核通过后方能使用,通常是以"SMS_"开头字符串 + String code = (int)((Math.random() * 9 + 1) * 100000)+ "";//要发送给用户的短信验证码,行业通常使用六位纯数字 + + String result= sendCode(mobile,sendTemplate,code); + if(result!=null&&"OK".equals(result.toUpperCase())){ + System.out.println("短信发送成功"); + }else{ + System.out.println("短信发送失败"); + } + + } + /** + * 通过阿里云平台发送短信,如果发送成功,返回"OK" ;否则返回的是错误信息 + * @param mobile 要接收该短信的用户手机号 + * @param sendTemplate 短信模板id,此处将其封装为变量,是为了由该方法的调用者决定自己来发送哪种类型的短信验证码,比如注册,重置密码类的 + * @param code 您将发送到用户手机的短信验证码 + */ + public static String sendCode(String mobile,String sendTemplate,String code){ + //请求失败这里会抛ClientException异常 + String result=""; + try { + //设置超时时间-可自行调整 + System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); + System.setProperty("sun.net.client.defaultReadTimeout", "10000"); + //初始化ascClient需要的几个参数 + final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改) + final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改) + //替换成你的AK + final String accessKeyId = "LTAI3IJDEVkXgY0E";//你的accessKeyId,参考本文档步骤2 + final String accessKeySecret = "kmnOeksdTEauInvea9Hf6dqssDdvho";//你的accessKeySecret,参考本文档步骤2 + //初始化ascClient,暂时不支持多region(请勿修改) + IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, + accessKeySecret); + DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); + IAcsClient acsClient = new DefaultAcsClient(profile); + //组装请求对象 + SendSmsRequest request = new SendSmsRequest(); + //使用post提交 + request.setMethod(MethodType.POST); + //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000” + request.setPhoneNumbers(mobile); + //必填:短信签名-可在短信控制台中找到 + request.setSignName("");//注意要与你在短信控制台中的签名一致 + //必填:短信模板-可在短信控制台中找到 + request.setTemplateCode(sendTemplate); + //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 + //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败 +// request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}"); + request.setTemplateParam("{\"code\":\""+code+"\"}"); + //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段) + //request.setSmsUpExtendCode("90997"); + //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 +// request.setOutId("yourOutId"); + + SendSmsResponse response = acsClient.getAcsResponse(request); + result=response.getCode(); + } catch (Exception e) { + result=e.getMessage(); + } + return result; + } + +} \ No newline at end of file From b091feba29feb6d57935fc748a9cb9e56233460c Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Mon, 28 Sep 2020 16:52:55 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97swagger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrauth/UserLoginControllerApi.java | 30 +++++++++++++++++++ dq-financial-hrms-auth/pom.xml | 5 ++++ .../controller/UserLoginController.java | 3 +- .../service/impl/UserLoginServiceImpl.java | 5 ++++ .../domain/hrms/response/HrmsCode.java | 1 + 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 dq-financial-api/src/main/java/com/daqing/financial/hrauth/UserLoginControllerApi.java diff --git a/dq-financial-api/src/main/java/com/daqing/financial/hrauth/UserLoginControllerApi.java b/dq-financial-api/src/main/java/com/daqing/financial/hrauth/UserLoginControllerApi.java new file mode 100644 index 00000000..5a32c03c --- /dev/null +++ b/dq-financial-api/src/main/java/com/daqing/financial/hrauth/UserLoginControllerApi.java @@ -0,0 +1,30 @@ +package com.daqing.financial.hrauth; + +import com.daqing.framework.domain.hrms.request.LoginRequest; +import com.daqing.framework.domain.hrms.request.UserLoginRequest; +import com.daqing.framework.model.response.ResponseResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +/** + * @Author: gongsj. + * @Description: 登录controllerApi定义 + * @Date:Created in 2020/09/07 11:33. + * @Modified By: + */ +@Api(value = "登录相关操作", tags = "提供登录相关操作") +public interface UserLoginControllerApi { + + /** + * 验证手机号及验证码 + */ + @ApiOperation(value = "验证手机号及验证码", notes = "验证手机号及验证码") + ResponseResult verifyMobile(UserLoginRequest user); + + @ApiOperation(value = "重置密码") + ResponseResult getBackPwd(UserLoginRequest user); + + @ApiOperation(value = "登录") + ResponseResult login(LoginRequest loginRequest); + +} diff --git a/dq-financial-hrms-auth/pom.xml b/dq-financial-hrms-auth/pom.xml index e9b706df..51f3e298 100644 --- a/dq-financial-hrms-auth/pom.xml +++ b/dq-financial-hrms-auth/pom.xml @@ -89,6 +89,11 @@ mybatis-plus-boot-starter 3.0.5 --> + + com.daqing.financial + dq-financial-api + 0.0.1-SNAPSHOT + diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index 41e4403f..195035db 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -1,5 +1,6 @@ package com.daqing.financial.hrauth.controller; +import com.daqing.financial.hrauth.UserLoginControllerApi; import com.daqing.financial.hrauth.service.UserLoginService; import com.daqing.framework.domain.hrms.request.LoginRequest; import com.daqing.framework.domain.hrms.request.UserLoginRequest; @@ -19,7 +20,7 @@ import javax.validation.Valid; @RestController @RequestMapping("/hrms/auth/userlogin") @Api(tags = {"登录"}) -public class UserLoginController { +public class UserLoginController implements UserLoginControllerApi { @Autowired private UserLoginService userLoginService; diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index c08cac85..1d3c0fac 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -91,6 +91,11 @@ public class UserLoginServiceImpl extends ServiceImpl //根据手机号查询相关信息 UserEntity userEntity = baseMapper.selectByPhoneAccount(user.getPhoneAccount()); + //新密码不能与账号相同 + if(user.getNewPwd().equals(userEntity.getAccount())){ + ExceptionCast.cast(HrmsCode.NEW_PASSWORD_DIFFERENT); + } + String newMD5 = Md5Util.md5(user.getNewPwd()+userEntity.getId()); //根据手机号码修改密码 int i = userLoginDao.updatePasswordByPhoneAccount(user.getPhoneAccount(),newMD5); diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java index 528a08de..cbfea710 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java @@ -29,6 +29,7 @@ public enum HrmsCode implements ResultCode { PHNOE_ACCOUNT_NOT_EXIST(false,33006,"手机号码不存在!"), CONFIRM_PWD_NOT_EMPTY(false,33007,"确认密码不能为空!"), TWICE_PWD_DIFFERENT(false,33008,"两次输入密码不一致!"), + NEW_PASSWORD_DIFFERENT(false,33008,"输入的新密码不能与账号相同!"), EMP_POSITION_EXSIT(false, 22006, "该职位下已关联员工!");