From 2d5f732402cfa5f81c6ce89956d9b267a8cf74b3 Mon Sep 17 00:00:00 2001 From: yinzuomei <57602893@qq.com> Date: Fri, 20 Mar 2020 14:18:31 +0800 Subject: [PATCH] =?UTF-8?q?loginbywxcode=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=9AencryptedData=E3=80=81iv=E4=B8=8D=E5=BF=85?= =?UTF-8?q?=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/LoginServiceImpl.java | 52 +++++++++++-------- .../token/dto/form/LoginByWxCodeFormDTO.java | 2 - .../java/com/epmet/dto/CustomerUserDTO.java | 7 ++- .../com/epmet/entity/CustomerUserEntity.java | 5 ++ .../main/resources/mapper/CustomerUserDao.xml | 20 ------- 5 files changed, 40 insertions(+), 46 deletions(-) diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java index 23e04e4f9a..ab79c52b24 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java @@ -124,29 +124,35 @@ public class LoginServiceImpl implements LoginService { * @since 2020/3/14 19:34 */ private String getUserId(LoginByWxCodeFormDTO formDTO, WxMaJscode2SessionResult wxMaJscode2SessionResult) { - WxLoginUserInfoFormDTO wxLoginUserInfoFormDTO=new WxLoginUserInfoFormDTO(); + WxLoginUserInfoFormDTO wxLoginUserInfoFormDTO = new WxLoginUserInfoFormDTO(); wxLoginUserInfoFormDTO.setApp(formDTO.getApp()); wxLoginUserInfoFormDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); - Result userResult=epmetUserFeignClient.selecWxLoginUserInfo(wxLoginUserInfoFormDTO); - String userId=""; - if(!userResult.success()){ - throw new RenException("获取用户信息失败"+userResult.getMsg()); + Result userResult = epmetUserFeignClient.selecWxLoginUserInfo(wxLoginUserInfoFormDTO); + String userId = ""; + if (!userResult.success()) { + throw new RenException("获取用户信息失败" + userResult.getMsg()); } - userId= (String) userResult.getData(); - if (StringUtils.isBlank(userId)&&LoginConstant.APP_GOV.equals(formDTO.getApp())) { + userId = (String) userResult.getData(); + if (StringUtils.isBlank(userId) && LoginConstant.APP_GOV.equals(formDTO.getApp())) { //查询customer_staff待完善 - } else if (StringUtils.isBlank(userId)&&LoginConstant.APP_OPER.equals(formDTO.getApp())) { + } else if (StringUtils.isBlank(userId) && LoginConstant.APP_OPER.equals(formDTO.getApp())) { //查询oper_user待完善 - } else if (StringUtils.isBlank(userId)&&LoginConstant.APP_RESI.equals(formDTO.getApp())) { + } else if (StringUtils.isBlank(userId) && LoginConstant.APP_RESI.equals(formDTO.getApp())) { //查询customer_user - WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.resiWxMaService().getUserService() - .getUserInfo(wxMaJscode2SessionResult.getSessionKey(), - formDTO.getEncryptedData(), - formDTO.getIv()); - CustomerUserDTO customerUserDTO=this.packageCustomerUserDTO(wxMaUserInfo); - Result saveCustomerUserResult=epmetUserFeignClient.saveCustomerUser(customerUserDTO); - if(!saveCustomerUserResult.success()){ - throw new RenException("创建用户失败"+userResult.getMsg()); + CustomerUserDTO customerUserDTO = new CustomerUserDTO(); + if (StringUtils.isNotBlank(formDTO.getIv()) && StringUtils.isNotBlank(formDTO.getEncryptedData())) { + WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.resiWxMaService().getUserService() + .getUserInfo(wxMaJscode2SessionResult.getSessionKey(), + formDTO.getEncryptedData(), + formDTO.getIv()); + customerUserDTO = this.packageCustomerUserDTO(wxMaUserInfo); + } else { + customerUserDTO.setWxOpenId(wxMaJscode2SessionResult.getOpenid()); + customerUserDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); + } + Result saveCustomerUserResult = epmetUserFeignClient.saveCustomerUser(customerUserDTO); + if (!saveCustomerUserResult.success()) { + throw new RenException("创建用户失败" + userResult.getMsg()); } userId = saveCustomerUserResult.getData(); } @@ -222,22 +228,22 @@ public class LoginServiceImpl implements LoginService { public Result loginByPassword(LoginByPassWordFormDTO formDTO) { //1、验证码是否正确 boolean flag = captchaService.validate(formDTO.getUuid(), formDTO.getCaptcha()); - if(!flag){ + if (!flag) { return new Result().error(ErrorCode.CAPTCHA_ERROR); } //2、账号是否存在 //获取用户信息 - PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO=new PasswordLoginUserInfoFormDTO(); + PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO = new PasswordLoginUserInfoFormDTO(); passwordLoginUserInfoFormDTO.setApp(formDTO.getApp()); passwordLoginUserInfoFormDTO.setPhone(formDTO.getPhone()); - Result userInfoResult=epmetUserFeignClient.selectLoginUserInfoByPassword(passwordLoginUserInfoFormDTO); - logger.info(userInfoResult.getCode()+userInfoResult.getMsg()); - if(!userInfoResult.success()||null==userInfoResult.getData()){ + Result userInfoResult = epmetUserFeignClient.selectLoginUserInfoByPassword(passwordLoginUserInfoFormDTO); + logger.info(userInfoResult.getCode() + userInfoResult.getMsg()); + if (!userInfoResult.success() || null == userInfoResult.getData()) { return new Result().error("账号不存在"); } //3、密码是否正确 //密码错误 - if(!PasswordUtils.matches(formDTO.getPassword(),userInfoResult.getData().getPassWord())){ + if (!PasswordUtils.matches(formDTO.getPassword(), userInfoResult.getData().getPassWord())) { throw new RenException(ErrorCode.ACCOUNT_PASSWORD_ERROR); } //4、生成token返回,且将TokenDto存到redis diff --git a/epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/form/LoginByWxCodeFormDTO.java b/epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/form/LoginByWxCodeFormDTO.java index 149514a0a3..0f61c36255 100644 --- a/epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/form/LoginByWxCodeFormDTO.java +++ b/epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/form/LoginByWxCodeFormDTO.java @@ -23,12 +23,10 @@ public class LoginByWxCodeFormDTO extends LoginCommonFormDTO implements Serializ /** * 用户信息 */ - @NotBlank(message = "用户信息不能为空") private String encryptedData; /** * 加密算法的初始向量 */ - @NotBlank(message = "初始向量不能为空") private String iv; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerUserDTO.java index 348dc373d2..2964c379c3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerUserDTO.java @@ -48,6 +48,11 @@ public class CustomerUserDTO implements Serializable { */ private String wxOpenId; + /** + * 微信unionId + */ + private String unionId; + /** * 手机号 */ @@ -118,4 +123,4 @@ public class CustomerUserDTO implements Serializable { */ private Date updatedTime; -} \ No newline at end of file +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerUserEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerUserEntity.java index 11a6e86b09..9b93cd7ee3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerUserEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerUserEntity.java @@ -48,6 +48,11 @@ public class CustomerUserEntity extends BaseEpmetEntity { */ private String wxOpenId; + /** + * 微信unionId + */ + private String unionId; + /** * 手机号 */ diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerUserDao.xml index 09dbe55a56..4841a86795 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerUserDao.xml @@ -3,26 +3,6 @@ - - - - - - - - - - - - - - - - - - - -