Browse Source

调第三方feign改成HTTP Client

master
zhaoqifeng 5 years ago
parent
commit
868db9c798
  1. 30
      epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java
  2. 36
      epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java
  3. 6
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaCategoryResult.java
  4. 10
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java

30
epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java

@ -0,0 +1,30 @@
package com.epmet.constant;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/30 10:46
*/
public interface ThirdApiConstant {
/**
* 根据openId新增或更新用户信息
*/
String THIRD_PAUSER_SAVEUSER = "https://epmet-cloud.elinkservice.cn/api/third/pauser/saveuser";
/**
* 根据手机号查询公众号用户基本信息校验用户是否存在
*/
String THIRD_PAUSER_CHECKPAUSER = "https://epmet-cloud.elinkservice.cn/api/third/pauser/checkpauser/";
/**
* 用户登陆新增访问记录数据
*/
String THIRD_PAUSERVISITED_SAVEUSERVISITED = "https://epmet-cloud.elinkservice.cn/api/third/pauservisited/saveuservisited";
/**
* 根据客户Id查询各项注册信息
*/
String THIRD_PACUSTOMER_GETCUSTOMERAGENCYUSER = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/getcustomeragencyuser/";
/**
* 修改客户数据状态为已完成初始化
*/
String THIRD_PACUSTOMER_UPDATECUSTOMER = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/updatecustomer/";
}

36
epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java

@ -1,17 +1,19 @@
package com.epmet.service.impl; package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.epmet.common.token.constant.LoginConstant; import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.PhoneValidatorUtils; import com.epmet.commons.tools.validator.PhoneValidatorUtils;
import com.epmet.constant.PublicUserLoginConstant; import com.epmet.constant.PublicUserLoginConstant;
import com.epmet.constant.SmsTemplateConstant; import com.epmet.constant.SmsTemplateConstant;
import com.epmet.constant.ThirdApiConstant;
import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserDTO;
import com.epmet.dto.PaUserWechatDTO; import com.epmet.dto.PaUserWechatDTO;
@ -32,10 +34,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -70,11 +70,12 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
WxMpUser wxMpUser = this.getWxMpUser(formDTO.getWxCode()); WxMpUser wxMpUser = this.getWxMpUser(formDTO.getWxCode());
//2.将获取的用户基本信息初始化到数据库 //2.将获取的用户基本信息初始化到数据库
Result<SaveUserResultDTO> result = epmetThirdFeignClient.saveUser(wxMpUser); String url = ThirdApiConstant.THIRD_PAUSER_SAVEUSER;
Result<String> result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(wxMpUser));
if (!result.success()) { if (!result.success()) {
throw new RenException(PublicUserLoginConstant.SAVE_USER_EXCEPTION); throw new RenException(PublicUserLoginConstant.SAVE_USER_EXCEPTION);
} }
SaveUserResultDTO resultDTO = result.getData(); SaveUserResultDTO resultDTO = JSONObject.parseObject(result.getData(), SaveUserResultDTO.class);
//3.获取用户token //3.获取用户token
String token = this.generateGovWxmpToken(resultDTO.getUserId()); String token = this.generateGovWxmpToken(resultDTO.getUserId());
@ -157,18 +158,19 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
throw new RenException(EpmetErrorCode.ERROR_PHONE.getCode()); throw new RenException(EpmetErrorCode.ERROR_PHONE.getCode());
} }
//2、根据手机号校验用户是否存在 //2、根据手机号校验用户是否存在
Result<CustomerUserResultDTO> Result = epmetThirdFeignClient.checkPaUser(formDTO.getPhone()); String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER + formDTO.getPhone();
if (!Result.success()) { Result<String> result = HttpClientManager.getInstance().sendPostByJSON(url, null);
logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), Result.getCode(), Result.getMsg())); if (!result.success()) {
throw new RenException(Result.getCode()); logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), result.getCode(), result.getMsg()));
throw new RenException(result.getCode());
} }
CustomerUserResultDTO ResultDTO = Result.getData(); CustomerUserResultDTO resultDTO = JSONObject.parseObject(result.getData(), CustomerUserResultDTO.class);
//登陆 //登陆
if (formDTO.getIsLogon() && null == ResultDTO.getPaUserResult()) { if (formDTO.getIsLogon() && null == resultDTO.getPaUserResult()) {
throw new RenException(EpmetErrorCode.PUBLIC_NOT_EXISTS.getCode()); throw new RenException(EpmetErrorCode.PUBLIC_NOT_EXISTS.getCode());
} }
//注册 //注册
if (!formDTO.getIsLogon() && null != ResultDTO.getPaUserResult()) { if (!formDTO.getIsLogon() && null != resultDTO.getPaUserResult()) {
throw new RenException(EpmetErrorCode.MOBILE_USED.getCode()); throw new RenException(EpmetErrorCode.MOBILE_USED.getCode());
} }
//3、发送短信验证码 //3、发送短信验证码
@ -195,12 +197,13 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
@Override @Override
public UserTokenResultDTO loginByPhone(TokenDto tokenDTO, LoginByPhoneFormDTO formDTO) { public UserTokenResultDTO loginByPhone(TokenDto tokenDTO, LoginByPhoneFormDTO formDTO) {
//1.根据手机号查询到用户、客户信息 //1.根据手机号查询到用户、客户信息
Result<CustomerUserResultDTO> result = epmetThirdFeignClient.checkPaUser(formDTO.getPhone()); String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER + formDTO.getPhone();
Result<String> result = HttpClientManager.getInstance().sendPostByJSON(url, null);
if (!result.success()) { if (!result.success()) {
logger.error(String.format("手机验证码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getPhone(), result.getCode(), result.getMsg())); logger.error(String.format("手机验证码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getPhone(), result.getCode(), result.getMsg()));
throw new RenException(result.getCode()); throw new RenException(result.getCode());
} }
CustomerUserResultDTO resultDTO = result.getData(); CustomerUserResultDTO resultDTO = JSONObject.parseObject(result.getData(), CustomerUserResultDTO.class);
//2.用户不存在时不允许登陆 //2.用户不存在时不允许登陆
PaUserDTO userDTO = resultDTO.getPaUserResult(); PaUserDTO userDTO = resultDTO.getPaUserResult();
@ -236,7 +239,8 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
visited.setUserId(userDTO.getId()); visited.setUserId(userDTO.getId());
visited.setLogonUserId(tokenDTO.getUserId()); visited.setLogonUserId(tokenDTO.getUserId());
visited.setPhone(formDTO.getPhone()); visited.setPhone(formDTO.getPhone());
Result visitedResult = epmetThirdFeignClient.saveUserVisited(visited); String saveUserVisitedUrl = ThirdApiConstant.THIRD_PAUSERVISITED_SAVEUSERVISITED;
Result<String> visitedResult = HttpClientManager.getInstance().sendPostByJSON(saveUserVisitedUrl, JSON.toJSONString(visited));
if(!visitedResult.success()){ if(!visitedResult.success()){
logger.error(PublicUserLoginConstant.SAVE_VISITED_EXCEPTION); logger.error(PublicUserLoginConstant.SAVE_VISITED_EXCEPTION);
} }

6
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaCategoryResult.java

@ -16,26 +16,32 @@ public class WxMaCategoryResult implements Serializable {
/** /**
* 一级类目名称 * 一级类目名称
*/ */
@SerializedName("first_class")
private String firstClass; private String firstClass;
/** /**
* 二级类目名称 * 二级类目名称
*/ */
@SerializedName("second_class")
private String secondClass; private String secondClass;
/** /**
* 三级类目名称 * 三级类目名称
*/ */
@SerializedName("third_class")
private String thirdClass; private String thirdClass;
/** /**
* 一级类目的ID编号 * 一级类目的ID编号
*/ */
@SerializedName("first_id")
private String firstId; private String firstId;
/** /**
* 二级类目的ID编号 * 二级类目的ID编号
*/ */
@SerializedName("second_id")
private String secondId; private String secondId;
/** /**
* 三级类目的ID编号 * 三级类目的ID编号
*/ */
@SerializedName("third_id")
private String thirdId; private String thirdId;
} }

10
epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java

@ -18,6 +18,7 @@
package com.epmet.service.impl; package com.epmet.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -27,6 +28,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.RoleKeyConstants; import com.epmet.constant.RoleKeyConstants;
import com.epmet.constant.UserWorkType; import com.epmet.constant.UserWorkType;
@ -402,11 +404,12 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerDao, CustomerEn
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void init(CustomerInitFormDTO formDTO) { public void init(CustomerInitFormDTO formDTO) {
//1.调用epmet-third服务,根据客户Id查询第三方服务中的客户、组织、管理员等信息 //1.调用epmet-third服务,根据客户Id查询第三方服务中的客户、组织、管理员等信息
Result<InitCustomerResultDTO> thirdResult = epmetThirdFeignClient.getCustomerAgencyUser(formDTO.getCustomerId()); String url = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/getcustomeragencyuser/" + formDTO.getCustomerId();
Result<String> thirdResult = HttpClientManager.getInstance().sendPostByJSON(url, null);
if (!thirdResult.success()) { if (!thirdResult.success()) {
throw new RenException(thirdResult.getCode(), thirdResult.getInternalMsg()); throw new RenException(thirdResult.getCode(), thirdResult.getInternalMsg());
} }
InitCustomerResultDTO initCustomer = thirdResult.getData(); InitCustomerResultDTO initCustomer = JSONObject.parseObject(thirdResult.getData(), InitCustomerResultDTO.class);
PaCustomerDTO paCustomer = initCustomer.getPaCustomer(); PaCustomerDTO paCustomer = initCustomer.getPaCustomer();
PaCustomerAgencyDTO paAgency = initCustomer.getPaAgency(); PaCustomerAgencyDTO paAgency = initCustomer.getPaAgency();
PaUserDTO paUser = initCustomer.getPaUser(); PaUserDTO paUser = initCustomer.getPaUser();
@ -486,7 +489,8 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerDao, CustomerEn
} }
//6.更新第三方数据库中客户数据状态为已初始化 //6.更新第三方数据库中客户数据状态为已初始化
Result customerResult = epmetThirdFeignClient.updateCustomer(formDTO.getCustomerId()); String customerUrl = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/updatecustomer/" + formDTO.getCustomerId();
Result<String> customerResult = HttpClientManager.getInstance().sendPostByJSON(customerUrl, null);
if (!customerResult.success()) { if (!customerResult.success()) {
throw new RenException(customerResult.getCode(), customerResult.getInternalMsg()); throw new RenException(customerResult.getCode(), customerResult.getInternalMsg());
} }

Loading…
Cancel
Save