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 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 ));
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 用户信息同步
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param){
|
ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.USER_UPDATE_URL,
|
ZTConstants.IntegerName.USER_UPDATE_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 注销用户
|
* @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 ));
|
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 ));
|
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 ));
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 获取内容详情
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param){
|
ZTBaseResponse<ZTContentInfoResponse> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.CONTENT_INFO_URL+ param.getArticleId(),
|
ZTConstants.IntegerName.CONTENT_INFO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
/**
|
* 内容收藏
|
* @param param
|
* @return
|
*/
|
@Override
|
public boolean collectDo(ZTActionDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.COLLECT_DO_URL,
|
ZTConstants.IntegerName.COLLECT_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
if(result!=null ){
|
return true;
|
}
|
return false;
|
}
|
/**
|
* 内容喜欢
|
* @param param
|
* @return
|
*/
|
@Override
|
public boolean likeDo(ZTActionBatchDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.LIKE_DO_URL,
|
ZTConstants.IntegerName.LIKE_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
if(result!=null ){
|
return true;
|
}
|
return false;
|
}
|
/**
|
* 内容分享
|
* @param param
|
* @return
|
*/
|
@Override
|
public boolean shareDo(ZTActionDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.SHARE_DO_URL,
|
ZTConstants.IntegerName.SHARE_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
if(result!=null ){
|
return true;
|
}
|
return false;
|
}
|
/**
|
* 内容浏览
|
* @param param
|
* @return
|
*/
|
@Override
|
public boolean viewDo(ZTActionDoRequest param){
|
ZTBaseResponse result = sendHttpRequest(
|
ZTConstants.IntegerUrl.VIEW_DO_URL,
|
ZTConstants.IntegerName.VIEW_DO_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
if(result!=null ){
|
return true;
|
}
|
return false;
|
}
|
/**
|
* 获取我的收藏列表分页
|
* @param param
|
* @return
|
*/
|
@Override
|
public ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param){
|
ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest(
|
ZTConstants.IntegerUrl.COLLECT_LIST_URL,
|
ZTConstants.IntegerName.COLLECT_LIST_NAME,
|
param.getToken(),
|
param.getUserType(),
|
JSONObject.toJSONString(param ));
|
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 ));
|
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 ));
|
if(result!=null){
|
return result.getData();
|
}
|
return null;
|
}
|
|
|
public <T> ZTBaseResponse<T> sendHttpRequest(String url,String name,String token,String userType,String param){
|
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);
|
TypeReference typeReference =
|
new TypeReference<ZTBaseResponse<T>>(){};
|
ZTBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType());
|
logResult(result,name);
|
if(StringUtils.equals(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(StringUtils.equals(res.getCode(), ZTConstants.CODE_SUCCESS)){
|
log.info("【中台接口:"+name+"】================成功====\n"+res);
|
}else{
|
log.error("【中台接口:"+name+"】================失败====:\n"+ res);
|
}
|
}
|
}
|