| 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; | 
|    } | 
|     /** | 
|      * 获取B端用户登陆token | 
|      * @param mobile | 
|      * @return | 
|      */ | 
|    @Override | 
|    public ZTSysuserGetTokenResponse getSysuserToken(String  mobile){ | 
|        ZTBaseResponse<ZTSysuserGetTokenResponse> result = sendSysHttpRequest( | 
|                ZTConstants.IntegerUrl.USER_MOBILE_FASTLOGIN_URL+"?mobile="+mobile, | 
|                ZTConstants.IntegerName.USER_MOBILE_FASTLOGIN_NAME, | 
|                null, | 
|                null, | 
|                "", | 
|                new TypeReference<ZTBaseResponse<ZTSysuserGetTokenResponse>>(){}); | 
|        if(result!=null){ | 
|            return result.getData(); | 
|        } | 
|        return null; | 
|    } | 
|     /** | 
|      * 获取用户登陆token | 
|      * @return | 
|      */ | 
|   | 
|     /** | 
|      * 用户信息同步 | 
|      * @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 ZTBasePageResponse<ZTZbDecoInfoResponse> pageZbDecoList(ZTContentListRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTZbDecoInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.ZBDECO_PAGE_LIST_URL, | 
|                 ZTConstants.IntegerName.ZBDECO_PAGE_LIST_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTZbDecoInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|     /** | 
|      * 获取视频列表分页 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBasePageResponse<ZTVideoInfoResponse> pageVideoList(ZTContentListRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTVideoInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.VIDEO_PAGE_LIST_URL, | 
|                 ZTConstants.IntegerName.VIDEO_PAGE_LIST_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTVideoInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|     /** | 
|      * 获取产品资讯列表分页 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBasePageResponse<ZTProductNewsInfoResponse> pageProductNewsList(ZTContentListRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTProductNewsInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.PRODUCT_NEWS_PAGE_LIST_URL, | 
|                 ZTConstants.IntegerName.PRODUCT_NEWS_PAGE_LIST_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTProductNewsInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|     /** | 
|      * 获取产品列表分页 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBasePageResponse<ZTProductInfoResponse> pageProductList(ZTContentListRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTProductInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.PRODUCT_PAGE_LIST_URL, | 
|                 ZTConstants.IntegerName.PRODUCT_PAGE_LIST_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTProductInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|     /** | 
|      * 获取全屋案例列表分页 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBasePageResponse<ZTCaseInfoResponse> pageWholecaseList(ZTContentListRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTCaseInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.WHOLECASE_PAGE_LIST_URL, | 
|                 ZTConstants.IntegerName.WHOLECASE_PAGE_LIST_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCaseInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|     /** | 
|      * 获取实景案例列表分页 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBasePageResponse<ZTRealcaseInfoResponse> pageRealcaseList(ZTContentListRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTRealcaseInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.REALCASE_PAGE_LIST_URL, | 
|                 ZTConstants.IntegerName.REALCASE_PAGE_LIST_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTRealcaseInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|     /** | 
|      * 获取产品详情 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTProductInfoResponse getProductInfo(ZTContentInfoRequest param){ | 
|         ZTBaseResponse<ZTProductInfoResponse> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.PRODUCT_INFO_URL, | 
|                 ZTConstants.IntegerName.PRODUCT_INFO_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTProductInfoResponse>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return  null; | 
|     } | 
|     /** | 
|      * 获取产品资讯详情 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTProductNewsInfoResponse getProductNewsInfo(ZTContentInfoRequest param){ | 
|         ZTBaseResponse<ZTProductNewsInfoResponse> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.PRODUCT_NEWS_INFO_URL, | 
|                 ZTConstants.IntegerName.PRODUCT_NEWS_INFO_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTProductNewsInfoResponse>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return  null; | 
|     } | 
|     /** | 
|      * 获取实景资讯详情 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTRealcaseInfoResponse getRealcaseInfo(ZTContentInfoRequest param){ | 
|         ZTBaseResponse<ZTRealcaseInfoResponse> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.REALCASE_INFO_URL, | 
|                 ZTConstants.IntegerName.REALCASE_INFO_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTRealcaseInfoResponse>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return  null; | 
|     } | 
|     /** | 
|      * 获取全屋资讯详情 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTCaseInfoResponse getWholecaseInfo(ZTContentInfoRequest param){ | 
|         ZTBaseResponse<ZTCaseInfoResponse> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.WHOLECASE_INFO_URL, | 
|                 ZTConstants.IntegerName.WHOLECASE_INFO_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTCaseInfoResponse>>(){}); | 
|         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.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<ZTCusCarouselImageResponse> carouselImageList(ZTContentListRequest param){ | 
|         ZTBaseResponse<List<ZTCusCarouselImageResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.CUSTOMER_CAROUSEL_IMAGE_URL, | 
|                 ZTConstants.IntegerName.CUSTOMER_CAROUSEL_IMAGE_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<List<ZTCusCarouselImageResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return  null; | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public ZTCusCarouselImageResponse carouselImageDetail(ZTDataDetailRequest param){ | 
|         ZTBaseResponse<ZTCusCarouselImageResponse> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.CUSTOMER_CAROUSEL_IMAGE_DETAIL_URL, | 
|                 ZTConstants.IntegerName.CUSTOMER_CAROUSEL_IMAGE_DETAIL_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTCusCarouselImageResponse>>(){}); | 
|         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<>(); | 
|             if(StringUtils.equals(userType,ZTConstants.CUSTOMER)){ | 
|                 //如果是C端客户 | 
|                 headers.put(ZTConstants.HEADER_TOKEN,token); | 
|             }else{ | 
|                 //如果是B端用户 | 
|                 headers.put(ZTConstants.HEADER_SYSUSER_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   <T>   ZTBaseResponse<T> sendSysHttpRequest(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<>(); | 
|             if(StringUtils.equals(userType,ZTConstants.CUSTOMER)){ | 
|                 //如果是C端客户 | 
|                 headers.put(ZTConstants.HEADER_TOKEN,token); | 
|             }else{ | 
|                 //如果是B端用户 | 
|                 headers.put(ZTConstants.HEADER_SYSUSER_TOKEN,token); | 
|             } | 
|             headers.put(ZTConstants.HEADER_USERTYPE,userType); | 
|             String index = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ZHONGTAI_SYS_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); | 
|         } | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 获取我的喜欢/收藏列表 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest param){ | 
|         ZTBaseResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.FAVORITES_PAGE_URL, | 
|                 ZTConstants.IntegerName.FAVORITES_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>>>(){}); | 
|         if(result!=null){ | 
|             return result.getData(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     /** | 
|      * 获取分类和分类下的标签 | 
|      * @param param | 
|      * @return | 
|      */ | 
|     @Override | 
|     public ZTBaseResponse batchAddLike(ZTBatchAddListRequest param){ | 
|         ZTBaseResponse result = sendHttpRequest( | 
|                 ZTConstants.IntegerUrl.BATCH_ADD_LIKE_URL, | 
|                 ZTConstants.IntegerName.BATCH_ADD_LIKE_NAME, | 
|                 param.getToken(), | 
|                 param.getUserType(), | 
|                 JSONObject.toJSONString(param ), | 
|                 new TypeReference<ZTBaseResponse<Object>>(){}); | 
|         if(result!=null){ | 
|             return result; | 
|         } | 
|         return null; | 
|     } | 
|   | 
| } |