From ad2fbb2d22305e5a2dbb657392036136b7d5f614 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 30 Jul 2020 15:51:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/constant/ThirdApiConstant.java | 2 +- .../controller/PublicUserLoginController.java | 10 ++++--- .../epmet/dto/form/LoginByPhoneFormDTO.java | 5 ++++ .../dto/form/PublicSendSmsCodeFormDTO.java | 6 +++++ .../impl/PublicUserLoginServiceImpl.java | 21 ++++++++++----- .../epmet/dto/form/CheckPaUserFormDTO.java | 27 +++++++++++++++++++ .../com/epmet/dto/form/RegisterFormDTO.java | 5 ++++ .../epmet/controller/PaUserController.java | 7 ++--- .../main/java/com/epmet/dao/PaUserDao.java | 15 ++++++++--- .../java/com/epmet/service/PaUserService.java | 7 ++--- .../service/impl/PaCustomerServiceImpl.java | 14 +++++----- .../epmet/service/impl/PaUserServiceImpl.java | 7 ++--- .../impl/PaUserVisitedServiceImpl.java | 1 + .../src/main/resources/mapper/PaUserDao.xml | 19 ++++++++++++- .../resources/mapper/PaUserVisitedDao.xml | 3 ++- 15 files changed, 116 insertions(+), 33 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java diff --git a/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java b/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java index 9cae0fa6ed..80bd70e7b7 100644 --- a/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java +++ b/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java @@ -13,7 +13,7 @@ public interface ThirdApiConstant { /** * 根据手机号查询公众号用户基本信息,校验用户是否存在 */ - String THIRD_PAUSER_CHECKPAUSER = "https://epmet-cloud.elinkservice.cn/api/third/pauser/checkpauser/"; + String THIRD_PAUSER_CHECKPAUSER = "https://epmet-cloud.elinkservice.cn/api/third/pauser/checkpauser"; /** * 用户登陆,新增访问记录数据 */ diff --git a/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java index 4b7beadab0..8f93ab52fb 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java @@ -54,11 +54,12 @@ public class PublicUserLoginController { * @Description 公众号登录-发送验证码 **/ @PostMapping(value = "/sendsmscode") - public Result sendSmsCode(@RequestBody PublicSendSmsCodeFormDTO formDTO) { + public Result sendSmsCode(@RequestHeader("source") String source, @RequestBody PublicSendSmsCodeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO,PublicSendSmsCodeFormDTO.AddUserShowGroup.class); - if(formDTO.getIsLogon()!=true&&formDTO.getIsLogon()!=false){ + if (formDTO.getIsLogon() != true && formDTO.getIsLogon() != false) { throw new RenException(PublicUserLoginConstant.PARAMETER_EXCEPTION); } + formDTO.setSource(source); publicUserLoginService.sendSmsCode(formDTO); return new Result(); } @@ -72,7 +73,7 @@ public class PublicUserLoginController { @PostMapping(value = "/loginbyphone") public Result loginByPhone(@RequestHeader("source") String source, @LoginUser TokenDto tokenDTO, @RequestBody LoginByPhoneFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, LoginByPhoneFormDTO.AddUserShowGroup.class, LoginByPhoneFormDTO.LoginByPhone.class); - System.out.println(source); + formDTO.setSource(source); return new Result().ok(publicUserLoginService.loginByPhone(tokenDTO, formDTO)); } @@ -83,9 +84,10 @@ public class PublicUserLoginController { * @Description 公众号-手机号注册 **/ @PostMapping(value = "/register") - public Result register(@LoginUser TokenDto tokenDTO, @RequestBody RegisterFormDTO formDTO) { + public Result register(@RequestHeader("source") String source, @LoginUser TokenDto tokenDTO, @RequestBody RegisterFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, RegisterFormDTO.AddUserInternalGroup.class, RegisterFormDTO.AddUserShowGroup.class); formDTO.setUserId(tokenDTO.getUserId()); + formDTO.setSource(source); return new Result().ok(publicUserLoginService.register(formDTO)); } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java index 8b09d458d9..40a1851c89 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java @@ -34,5 +34,10 @@ public class LoginByPhoneFormDTO implements Serializable { @NotBlank(message="验证码不能为空", groups = {LoginByPhone.class}) private String smsCode; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java index 22b096ca6a..cfedfd3a40 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java @@ -26,8 +26,14 @@ public class PublicSendSmsCodeFormDTO implements Serializable { */ @NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class}) private String phone; + /** * 是否登陆(登陆:true 注册:false) */ private Boolean isLogon; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java index 7cd1fddc8e..3c04b206be 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java @@ -162,9 +162,12 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), EpmetErrorCode.ERROR_PHONE.getCode(), EpmetErrorCode.ERROR_PHONE.getMsg())); throw new RenException(EpmetErrorCode.ERROR_PHONE.getCode()); } - //2、根据手机号校验用户是否存在 - String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER + formDTO.getPhone(); - Result result = HttpClientManager.getInstance().sendPostByJSON(url, null); + //2、根据数据来源和手机号校验用户是否存在 + CheckPaUserFormDTO dto = new CheckPaUserFormDTO(); + dto.setPhone(formDTO.getPhone()); + dto.setSource(formDTO.getSource()); + String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER; + Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)); if (!result.success()) { logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), result.getCode(), result.getMsg())); throw new RenException(result.getCode()); @@ -201,9 +204,12 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { **/ @Override public UserTokenResultDTO loginByPhone(TokenDto tokenDTO, LoginByPhoneFormDTO formDTO) { - //1.根据手机号查询到用户、客户信息 - String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER + formDTO.getPhone(); - Result result = HttpClientManager.getInstance().sendPostByJSON(url, null); + //1.根据数据来源和手机号查询用户、客户信息 + CheckPaUserFormDTO dto = new CheckPaUserFormDTO(); + dto.setPhone(formDTO.getPhone()); + dto.setSource(formDTO.getSource()); + String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER; + Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)); if (!result.success()) { logger.error(String.format("手机验证码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getPhone(), result.getCode(), result.getMsg())); throw new RenException(result.getCode()); @@ -244,6 +250,7 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { visited.setUserId(userDTO.getId()); visited.setLogonUserId(tokenDTO.getUserId()); visited.setPhone(formDTO.getPhone()); + visited.setSource(formDTO.getSource()); String saveUserVisitedUrl = ThirdApiConstant.THIRD_PAUSERVISITED_SAVEUSERVISITED; Result visitedResult = HttpClientManager.getInstance().sendPostByJSON(saveUserVisitedUrl, JSON.toJSONString(visited)); if(!visitedResult.success()){ @@ -269,7 +276,7 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { JSONObject toResult = JSON.parseObject(data); Result result = ConvertUtils.mapToEntity(toResult, Result.class); if (!result.success()) { - logger.error("调用epmet_third服务初始化用户信息失败"); + logger.error(String.format("调用epmet_third服务初始化用户信息失败,数据来源[%s],手机号[%s],userId:[%S]", formDTO.getSource(), formDTO.getPhone(), formDTO.getUserId())); throw new RenException(result.getCode()); } Object RegisterResult = result.getData(); diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java new file mode 100644 index 0000000000..c3bf330549 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 公众号-发送短信验证码-接口入参 + * @Author sun + */ +@Data +public class CheckPaUserFormDTO implements Serializable { + + private static final long serialVersionUID = -6163303184086480522L; + + /** + * s手机号 + */ + private String phone; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java index fe16eaab4c..55c822466a 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java @@ -51,4 +51,9 @@ public class RegisterFormDTO implements Serializable { */ private String userId; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java index 5c28f75d2c..a0270dbe4b 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java @@ -26,6 +26,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; import com.epmet.dto.form.WxCodeToTokenFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO; @@ -106,14 +107,14 @@ public class PaUserController { } /** - * @param phone + * @param formDTO * @return * @Author sun * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 **/ @PostMapping(value = "/checkpauser/{phone}") - public Result checkPaUser(@PathVariable("phone") String phone) { - return new Result().ok(paUserService.checkPaUser(phone)); + public Result checkPaUser(@RequestBody CheckPaUserFormDTO formDTO) { + return new Result().ok(paUserService.checkPaUser(formDTO)); } } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserDao.java index 2cdd7a9bb4..5595a3d61f 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; import com.epmet.entity.PaUserEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -35,12 +36,12 @@ import java.util.List; public interface PaUserDao extends BaseDao { /** - * @param phone + * @param phone source * @return * @Author sun - * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 + * @Description 根据数据来源和手机号查询公众号用户基本信息,校验用户是否存在 **/ - List selectUserByPhone(@Param("phone") String phone); + List selectUserByPhone(@Param("phone") String phone, @Param("source") String source); /** * @param customerId @@ -49,4 +50,12 @@ public interface PaUserDao extends BaseDao { * @Description 根据客户Id级联查询客户管理员注册信息 **/ PaUserDTO selectPaUser(@Param("customerId") String customerId); + + /** + * @param id source + * @return + * @Author sun + * @Description 根据数据来源和手机号查询公众号用户基本信息,校验用户是否存在 + **/ + PaUserDTO selectUser(@Param("id") String id, @Param("source") String source); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java index 1105fe6301..52bbd09614 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; import com.epmet.dto.form.WxCodeToTokenFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO; @@ -105,10 +106,10 @@ public interface PaUserService extends BaseService { SaveUserResultDTO saveUser(WxCodeToTokenFormDTO formDTO); /** - * @param phone + * @param formDTO * @return * @Author sun - * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 + * @Description 根据数据来源和手机号查询公众号用户基本信息,校验用户是否存在 **/ - CustomerUserResultDTO checkPaUser(String phone); + CustomerUserResultDTO checkPaUser(CheckPaUserFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java index 3c2205f2c4..5404602aed 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java @@ -164,21 +164,21 @@ public class PaCustomerServiceImpl extends BaseServiceImpl userList = paUserDao.selectUserByPhone(formDTO.getPhone()); + //1.根据数据来源和手机号查询到用户信息,判断用户是否存 + List userList = paUserDao.selectUserByPhone(formDTO.getPhone(), formDTO.getSource()); if (null != userList && userList.size() > NumConstant.ZERO) { throw new RenException(EpmetErrorCode.MOBILE_USED.getCode()); } - //2.根据token中的userId查询pa_user表数据,根据手机号是否为空判断后续是新增还是更新user数据 - PaUserEntity paUserEntity = paUserDao.selectById(formDTO.getUserId()); - if (null == paUserEntity) { - logger.error("根据token中userId查询pa_user表信息失败,userId->"+formDTO.getUserId()); + //2.根据数据来源和token中的userId查询pa_user表数据,根据手机号是否为空判断后续是新增还是更新user数据 + PaUserDTO paUserDTO= paUserDao.selectUser(formDTO.getUserId(), formDTO.getSource()); + if (null == paUserDTO) { + logger.error("根据数据来源和token中userId查询pa_user表信息失败,数据来源->" + formDTO.getSource() + ",userId->" + formDTO.getUserId()); throw new RenException(PaConstant.SELECT_USER_EXCEPTION); } //3.手机号不为空说明是同一个微信用户用第二个手机号注册,手机为空说明当前微信用户用第一个手机号注册 - if(StringUtils.isNotBlank(paUserEntity.getPhone())){ + if(StringUtils.isNotBlank(paUserDTO.getPhone())){ //手机号不为空说明是同一个微信用户用第二个手机号注册,新增user和user_wechat表数据 //3-1.user表新增数据 PaUserEntity userEntity = new PaUserEntity(); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java index 093f167936..6bd58a8be9 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java @@ -34,6 +34,7 @@ import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserVisitedDTO; import com.epmet.dto.PaUserWechatDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; import com.epmet.dto.form.SaveUserVisitedFormDTO; import com.epmet.dto.form.WxCodeToTokenFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; @@ -201,16 +202,16 @@ public class PaUserServiceImpl extends BaseServiceImpl } /** - * @param phone + * @param formDTO * @return * @Author sun * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 **/ @Override - public CustomerUserResultDTO checkPaUser(String phone) { + public CustomerUserResultDTO checkPaUser(CheckPaUserFormDTO formDTO) { CustomerUserResultDTO resultDTO = new CustomerUserResultDTO(); //1.根据手机号查询用户信息 - List userList = baseDao.selectUserByPhone(phone); + List userList = baseDao.selectUserByPhone(formDTO.getPhone(), formDTO.getSource()); if (null == userList || userList.size() < NumConstant.ONE) { resultDTO.setPaUserResult(null); resultDTO.setPaCustomerResult(null); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java index 2071fde88f..e0c67c9a6b 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java @@ -135,6 +135,7 @@ public class PaUserVisitedServiceImpl extends BaseServiceImpl + + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml index 15ed900ef8..2bdeaee6c7 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml @@ -9,7 +9,8 @@ user_id, wx_open_id, open_id, - phone + phone, + source FROM pa_user_visited WHERE