package com.doumee.biz.zbom.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.TypeReference;
|
import com.doumee.biz.zbom.ZbomZhongTaiService;
|
import com.doumee.biz.zbom.model.zhongtai.*;
|
import com.doumee.biz.zbom.model.zhongtai.response.*;
|
import com.doumee.core.haikang.model.HKConstants;
|
import com.doumee.core.haikang.model.HKTools;
|
import com.doumee.core.haikang.model.param.BaseResponse;
|
import com.doumee.core.haikang.model.param.request.VisitAppointmentCancelRequest;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.HttpsUtil;
|
import com.doumee.dao.business.CrmInterfaceLogMapper;
|
import com.doumee.dao.business.InterfaceLogMapper;
|
import com.doumee.dao.business.MemberMapper;
|
import com.doumee.dao.business.model.CrmInterfaceLog;
|
import com.doumee.dao.business.model.InterfaceLog;
|
import com.doumee.dao.web.response.ZSZXCatalogResponse;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 人员信息表Service实现
|
* @author 江蹄蹄
|
* @date 2023/11/30 15:33
|
*/
|
@Service
|
@Slf4j
|
public class ZbomZhongTaiServiceImpl implements ZbomZhongTaiService {
|
@Autowired
|
private InterfaceLogMapper interfaceLogMapper;
|
@Autowired
|
private RedisTemplate<String, Object> redisTemplate;
|
|
/**
|
* 获取用户登陆token
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTUserGetTokenResponse getUserToken(ZTUserGetTokenRequest param){
|
ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.USER_GET_TOKEN_URL,
|
ZTConstants.IntegerName.USER_GET_TOKEN_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTUserGetTokenResponse>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取用户登陆token
|
* @return
|
*/
|
@Override
|
public ZSZXCatalogResponse getZSZXCatalogs(){
|
ZSZXCatalogResponse response = new ZSZXCatalogResponse();
|
ZTCatalogListRequest param = new ZTCatalogListRequest();
|
param.setCatalogCode(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU);
|
List<ZTCatalogInfoResponse> cataList = getCatalogList(param);
|
if(cataList!=null ){
|
for(ZTCatalogInfoResponse data : cataList){
|
if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.JIADE_ID)){
|
response.setJdId(data);
|
}else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.CHUFANGSHEJI)){
|
response.setCfsj(data);
|
}else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.QW_SHEJI)){
|
response.setQwsj(data);
|
}else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.SHOUNASHEJI)){
|
response.setSnsj(data);
|
}
|
}
|
}
|
return response;
|
}
|
/**
|
* 用户信息同步
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBaseResponse userUpdateInfo(ZTUserInfoUpdateRequest param){
|
ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.USER_UPDATE_URL,
|
ZTConstants.IntegerName.USER_UPDATE_NAME,
|
null,
|
null,
|
JSONObject.toJSONString(param),
|
new TypeReference<ZTBaseResponse<ZTUserGetTokenResponse>>(){});
|
// if(result!=null){
|
// return result.getData();
|
// }
|
return result;
|
}
|
/**
|
* 注销用户
|
* @param param
|
* @return
|
*/
|
@Override
|
public boolean userLogout(ZTBaseRequst param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.USER_LOGOUT_URL,
|
ZTConstants.IntegerName.USER_LOGOUT_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<Object>>(){});
|
if(result!=null ){
|
return true;
|
}
|
return false;
|
}
|
|
/**
|
* 获取分类和分类下的标签
|
* @param param
|
* @return
|
*/
|
@Override
|
public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param){
|
|
ZTBaseResponse<List<ZTCatalogInfoResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.CATALOG_LIST_URL,
|
ZTConstants.IntegerName.CATALOG_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<List<ZTCatalogInfoResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取分类和分类下的标签
|
* @param param
|
* @return
|
*/
|
@Override
|
public List<ZTTagInfoResponse> getTagList(ZTCatalogListRequest param){
|
ZTBaseResponse<List<ZTTagInfoResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.TAG_LIST_URL,
|
ZTConstants.IntegerName.TAG_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<List<ZTTagInfoResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
|
/**
|
* 获取内容列表分页
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param){
|
ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.CONTENT_LIST_URL,
|
ZTConstants.IntegerName.CONTENT_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
// TypeReference<ZTBasePageResponse<ZTContentListResponse>> typeReference = new TypeReference<ZTBasePageResponse<ZTContentListResponse>>(){};
|
// ZTBasePageResponse<ZTContentListResponse> ztBasePageResponse = JSONObject.parseObject(result.getData(), typeReference.getType());
|
// return ztBasePageResponse;
|
}
|
return null;
|
}
|
/**
|
* 获取内容详情
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param){
|
ZTBaseResponse<ZTContentInfoResponse> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.CONTENT_INFO_URL+ param.getId(),
|
ZTConstants.IntegerName.CONTENT_INFO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTContentInfoResponse>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 内容收藏
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBaseResponse collectDo(ZTActionDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.COLLECT_DO_URL,
|
ZTConstants.IntegerName.COLLECT_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<Object>>(){});
|
|
return result;
|
}
|
/**
|
* 内容喜欢
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBaseResponse likeDo(ZTActionBatchDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.LIKE_DO_URL,
|
ZTConstants.IntegerName.LIKE_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<Object>>(){});
|
|
return result;
|
}
|
/**
|
* 内容分享
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBaseResponse shareDo(ZTActionDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.SHARE_DO_URL,
|
ZTConstants.IntegerName.SHARE_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<Object>>(){});
|
return result;
|
}
|
/**
|
* 内容浏览
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBaseResponse viewDo(ZTActionDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.VIEW_DO_URL,
|
ZTConstants.IntegerName.VIEW_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<Object>>(){});
|
return result;
|
}
|
/**
|
* 用户绑定客户喜欢清单,可绑定多个内容
|
* @param param
|
* @return
|
*/
|
@Override
|
public boolean bindCustomerFavorites(ZTBindCusFavoriteDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.BIND_CUSTOMER_FAVORITES_URL,
|
ZTConstants.IntegerName.BIND_CUSTOMER_FAVORITES_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<Object>>(){});
|
if(result!=null ){
|
return true;
|
}
|
return false;
|
}
|
/**
|
* 获取我的收藏列表分页
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBasePageResponse<ZTCollectInfoResponse> pageCollectList(ZTContentListRequest param){
|
ZTBaseResponse< ZTBasePageResponse<ZTCollectInfoResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.COLLECT_LIST_URL,
|
ZTConstants.IntegerName.COLLECT_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCollectInfoResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取我的收藏列表分页
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBasePageResponse<ZTBehaviorInfoResponse> pageBehavoirList(ZTContentListRequest param){
|
ZTBaseResponse< ZTBasePageResponse<ZTBehaviorInfoResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.BEHAVIOR_LIST_URL,
|
ZTConstants.IntegerName.BEHAVIOR_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTBehaviorInfoResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取客户喜欢
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBasePageResponse<ZTCusFavoritesInfoResponse> pageCusFavoriteList(ZTContentListRequest param){
|
ZTBaseResponse< ZTBasePageResponse<ZTCusFavoritesInfoResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.CUSTOMER_FAVORITES_LIST_URL,
|
ZTConstants.IntegerName.CUSTOMER_FAVORITES_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCusFavoritesInfoResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取我的喜欢列表分页
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param){
|
|
ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.LIKE_LIST_URL,
|
ZTConstants.IntegerName.LIKE_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
|
}
|
/**
|
* 获取获取省市区集合
|
* @param param
|
* @return
|
*/
|
@Override
|
public List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param){
|
if(StringUtils.isBlank(param.getPid())){
|
param.setPid(ZTConstants.DEFAULT_PID);//默认取全部省份
|
}
|
ZTBaseResponse<List<ZTAreaInfoResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.AREA_LIST_URL,
|
ZTConstants.IntegerName.AREA_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<List<ZTAreaInfoResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取获取省市区集合
|
* @param param
|
* @return
|
*/
|
@Override
|
public List<ZTAreaTreeResponse> getAreaTreeList(ZTAreaListRequest param){
|
if(StringUtils.isBlank(param.getPid())){
|
param.setPid(ZTConstants.DEFAULT_PID);//默认取全部省份
|
}
|
ZTBaseResponse<List<ZTAreaTreeResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.AREA_TREE_URL,
|
ZTConstants.IntegerName.AREA_TREE_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ),
|
new TypeReference<ZTBaseResponse<List<ZTAreaTreeResponse>>>(){});
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
|
public <T> ZTBaseResponse<T> sendHttpRequest(String url,String name,String token,String userType,String param,TypeReference<ZTBaseResponse<T>> typeReference){
|
log.info("【"+name+"】================开始===="+ JSONObject.toJSONString(param));
|
String res = null;
|
int success = 0;
|
try {
|
Map<String,String> headers = new HashMap<>();
|
headers.put(ZTConstants.HEADER_TOKEN,token);
|
headers.put(ZTConstants.HEADER_USERTYPE,userType);
|
String index = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL);
|
res = HttpsUtil.postJsonWithHeaders(index+url,param,headers);
|
ZTBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType());
|
logResult(result,name);
|
if(Constants.equalsInteger(result.getCode(),ZTConstants.CODE_SUCCESS)){
|
return result;
|
}else{
|
success =1;
|
}
|
}catch (Exception e){
|
success = 1;
|
log.error("【"+name+"】================失败===="+ JSONObject.toJSONString(param));
|
}finally {
|
saveInterfaceLog(url,name,param,success,res);
|
}
|
return null;
|
}
|
public void saveInterfaceLog(String url,String name,String param,Integer success,String respone){
|
if(interfaceLogMapper ==null){
|
return;
|
}
|
InterfaceLog log = new InterfaceLog();
|
log.setCreateDate(new Date());
|
log.setUrl(url);
|
log.setEditDate(log.getCreateDate());
|
log.setPlat(Constants.ZERO);
|
log.setName(name);
|
log.setIsdeleted(Constants.ZERO);
|
log.setRequest(param);
|
log.setType(Constants.ONE);
|
log.setSuccess(success);
|
log.setRepose(respone);
|
interfaceLogMapper.insert(log);
|
}
|
private static void logResult(ZTBaseResponse res,String name) {
|
if(Constants.equalsInteger(res.getCode(),ZTConstants.CODE_SUCCESS)){
|
log.info("【中台接口:"+name+"】================成功====\n"+res);
|
}else{
|
log.error("【中台接口:"+name+"】================失败====:\n"+ res);
|
}
|
}
|
}
|