.idea/artifacts/service_goods_war_exploded.xml
@@ -93,6 +93,7 @@ <element id="library" level="project" name="Maven: com.github.qcloudsms:qcloudsms:1.0.2" /> <element id="library" level="project" name="Maven: org.json:json:20170516" /> <element id="library" level="project" name="Maven: org.apache.httpcomponents:httpmime:4.5.10" /> <element id="library" level="project" name="Maven: org.mongodb:mongo-java-driver:3.11.2" /> <element id="library" level="project" name="Maven: org.springframework.data:spring-data-mongodb:2.2.4.RELEASE" /> <element id="library" level="project" name="Maven: org.springframework.data:spring-data-commons:2.2.4.RELEASE" /> <element id="library" level="project" name="Maven: org.springframework.data:spring-data-mongodb-cross-store:1.10.10.RELEASE" /> @@ -199,7 +200,6 @@ <element id="library" level="project" name="Maven: org.mongodb:mongodb-driver:3.11.2" /> <element id="library" level="project" name="Maven: org.mongodb:bson:3.11.2" /> <element id="library" level="project" name="Maven: org.mongodb:mongodb-driver-core:3.11.2" /> <element id="library" level="project" name="Maven: org.mongodb:mongo-java-driver:3.12.0" /> <element id="library" level="project" name="Maven: org.hamcrest:hamcrest:2.1" /> <element id="library" level="project" name="Maven: org.springframework:spring-core:5.2.3.RELEASE" /> <element id="library" level="project" name="Maven: org.springframework:spring-jcl:5.2.3.RELEASE" /> .idea/compiler.xml
@@ -9,7 +9,6 @@ <module name="facade-goods" /> <module name="facede-common" /> <module name="fanli" /> <module name="service-goods" /> <module name="utils" /> </profile> </annotationProcessing> .idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
File was deleted .idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
File was deleted .idea/libraries/Maven__com_carrotsearch_hppc_0_7_1.xml
File was deleted .idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_2.xml
File was deleted .idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_2.xml
File was deleted .idea/libraries/Maven__com_github_spullara_mustache_java_compiler_0_9_3.xml
File was deleted .idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml
File was deleted .idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml
File was deleted .idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_15.xml
File was deleted .idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml
File was deleted .idea/libraries/Maven__com_yeshi_goods_facade_0_0_1_SNAPSHOT.xml
New file @@ -0,0 +1,15 @@ <component name="libraryTable"> <library name="Maven: com.yeshi:goods.facade:0.0.1-SNAPSHOT"> <CLASSES> <root url="jar://$MAVEN_REPOSITORY$/com/yeshi/goods.facade/0.0.1-SNAPSHOT/goods.facade-0.0.1-SNAPSHOT.jar!/" /> </CLASSES> <JAVADOC> <root url="jar://$PROJECT_DIR$/facade-goods/goods.facade-0.0.1-SNAPSHOT-javadoc.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/yeshi/goods.facade/0.0.1-SNAPSHOT/goods.facade-0.0.1-SNAPSHOT-javadoc.jar!/" /> </JAVADOC> <SOURCES> <root url="jar://$PROJECT_DIR$/facade-goods/goods.facade-0.0.1-SNAPSHOT-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/yeshi/goods.facade/0.0.1-SNAPSHOT/goods.facade-0.0.1-SNAPSHOT-sources.jar!/" /> </SOURCES> </library> </component> .idea/libraries/Maven__commons_codec_commons_codec_1_13.xml
File was deleted .idea/libraries/Maven__commons_pool_commons_pool_1_6.xml
File was deleted .idea/libraries/Maven__io_netty_netty_all_4_1_45_Final.xml
File was deleted .idea/libraries/Maven__io_netty_netty_tcnative_boringssl_static_2_0_28_Final.xml
File was deleted .idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_1.xml
File was deleted .idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
File was deleted .idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
File was deleted .idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml
File was deleted .idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml
File was deleted .idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml
File was deleted .idea/libraries/Maven__joda_time_joda_time_2_10_5.xml
File was deleted .idea/libraries/Maven__junit_junit_4_12.xml
File was deleted .idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml
File was deleted .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_6.xml
File was deleted .idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_6.xml
File was deleted .idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml
File was deleted .idea/libraries/Maven__net_minidev_json_smart_2_3.xml
File was deleted .idea/libraries/Maven__org_apache_commons_commons_dbcp2_2_7_0.xml
File was deleted .idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml
File was deleted .idea/libraries/Maven__org_apache_commons_commons_pool2_2_7_0.xml
File was deleted .idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_10.xml
File was deleted .idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml
File was deleted .idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_13.xml
File was deleted .idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_10.xml
File was deleted .idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml
File was deleted .idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_12_1.xml
File was deleted .idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_analyzers_common_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_backward_codecs_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_core_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_grouping_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_highlighter_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_join_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_memory_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_misc_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_queries_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_queryparser_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_sandbox_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_spatial3d_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_spatial_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_spatial_extras_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_lucene_lucene_suggest_7_7_2.xml
File was deleted .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_30.xml
File was deleted .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_30.xml
File was deleted .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_30.xml
File was deleted .idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml
File was deleted .idea/libraries/Maven__org_aspectj_aspectjrt_1_9_5.xml
File was deleted .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml
File was deleted .idea/libraries/Maven__org_assertj_assertj_core_3_13_2.xml
File was deleted .idea/libraries/Maven__org_codehaus_groovy_groovy_2_5_9.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_client_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_elasticsearch_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_elasticsearch_cli_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_elasticsearch_core_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_elasticsearch_secure_sm_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_elasticsearch_x_content_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_plugin_lang_mustache_client_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_plugin_parent_join_client_6_8_6.xml
File was deleted .idea/libraries/Maven__org_elasticsearch_plugin_rank_eval_client_6_8_6.xml
File was deleted .idea/libraries/Maven__org_freemarker_freemarker_2_3_29.xml
File was deleted .idea/libraries/Maven__org_hamcrest_hamcrest_2_1.xml
File was deleted .idea/libraries/Maven__org_hamcrest_hamcrest_core_2_1.xml
File was deleted .idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml
File was deleted .idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml
File was deleted .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
File was deleted .idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml
File was deleted .idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml
File was deleted .idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml
File was deleted .idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml
File was deleted .idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_5_2.xml
File was deleted .idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_5_2.xml
File was deleted .idea/libraries/Maven__org_mockito_mockito_core_3_1_0.xml
File was deleted .idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml
File was deleted .idea/libraries/Maven__org_mongodb_bson_3_11_2.xml
File was deleted .idea/libraries/Maven__org_mongodb_mongo_java_driver_3_12_0.xml
File was deleted .idea/libraries/Maven__org_mongodb_mongodb_driver_3_11_2.xml
File was deleted .idea/libraries/Maven__org_mongodb_mongodb_driver_core_3_11_2.xml
File was deleted .idea/libraries/Maven__org_objenesis_objenesis_2_6.xml
File was deleted .idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
File was deleted .idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml
File was deleted .idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_2.xml
File was deleted .idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml
File was deleted .idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_30.xml
File was deleted .idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml
File was deleted .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_mongodb_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_data_spring_data_commons_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_data_spring_data_mongodb_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_4_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_aop_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_aspects_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_beans_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_context_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_context_support_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_core_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_expression_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_jcl_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_jdbc_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_orm_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_oxm_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_test_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_tx_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_web_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_springframework_spring_webmvc_5_2_3_RELEASE.xml
File was deleted .idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_3.xml
File was deleted .idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml
File was deleted .idea/modules.xml
@@ -6,7 +6,6 @@ <module fileurl="file://$PROJECT_DIR$/facade-goods/facade-goods.iml" filepath="$PROJECT_DIR$/facade-goods/facade-goods.iml" /> <module fileurl="file://$PROJECT_DIR$/facede-common/facede-common.iml" filepath="$PROJECT_DIR$/facede-common/facede-common.iml" /> <module fileurl="file://$PROJECT_DIR$/fanli/fanli.iml" filepath="$PROJECT_DIR$/fanli/fanli.iml" /> <module fileurl="file://$PROJECT_DIR$/service-goods/service-goods.iml" filepath="$PROJECT_DIR$/service-goods/service-goods.iml" /> <module fileurl="file://$PROJECT_DIR$/utils/utils.iml" filepath="$PROJECT_DIR$/utils/utils.iml" /> </modules> </component> facade-goods/pom.xml
@@ -26,4 +26,8 @@ </dependency> </dependencies> <build> <finalName>facade-goods</finalName> </build> </project> facade-goods/src/main/java/com/yeshi/goods/facade/utils/taobao/HaoDanKuApiUtil.java
File was renamed from fanli/src/main/java/com/yeshi/fanli/util/taobao/HaoDanKuApiUtil.java @@ -1,443 +1,443 @@ package com.yeshi.fanli.util.taobao; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.yeshi.utils.HttpUtil; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.yeshi.goods.facade.dto.taobao.haodanku.HDKGoodsListResultDTO; import com.yeshi.goods.facade.dto.taobao.haodanku.HDKSearchFilter; import com.yeshi.goods.facade.dto.taobao.haodanku.HDKWXCircleContentDTO; import com.yeshi.goods.facade.entity.taobao.haodanku.HDKGoodsDetail; import com.yeshi.fanli.util.StringUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * 好单库API * @author Administrator * */ public class HaoDanKuApiUtil { private final static String API_KEY = "blks"; private static HaoDanKuApiUtil instance; public static HaoDanKuApiUtil getInstance() { if (instance == null) instance = new HaoDanKuApiUtil(); return instance; } private String baseGetRequest(String path, List<ParamsKeyValue> params) { params.add(0, new HaoDanKuApiUtil.ParamsKeyValue("apikey", API_KEY)); String url = "http://v2.api.haodanku.com/" + path; for (ParamsKeyValue keyValue : params) { url += ("/" + keyValue.key + "/" + keyValue.value); } return HttpUtil.get(url); } private String basePostRequest(String url, List<ParamsKeyValue> params) { params.add(0, new HaoDanKuApiUtil.ParamsKeyValue("apikey", API_KEY)); Map<String, String> parmasMap = new HashMap<>(); for (ParamsKeyValue keyValue : params) { parmasMap.put(keyValue.key, keyValue.value); } return HttpUtil.post(url, parmasMap, null); } /** * 获取朋友圈API的内容 * @Title: getSendWXCircleContent * @Description: * void 返回类型 * @throws */ public void getSendWXCircleContent(Integer minId) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId + "")); String result = baseGetRequest("selected_item", params); System.out.println(result); } public String convertLink(Long auctionId, String pid, String activityId,String specialId,String relationId) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("itemid", auctionId + "")); params.add(new ParamsKeyValue("pid", pid)); if(!StringUtil.isNullOrEmpty(specialId)){ params.add(new ParamsKeyValue("special_id", specialId)); } if(!StringUtil.isNullOrEmpty(relationId)){ params.add(new ParamsKeyValue("relation_id", relationId)); } if (activityId != null) params.add(new ParamsKeyValue("activityid", activityId)); String result = basePostRequest("http://v2.api.haodanku.com/ratesurl", params); System.out.println(result); JSONObject resultData = JSONObject.fromObject(result); String link = ""; if (resultData.optInt("code") == 1) { resultData = resultData.optJSONObject("data"); link = resultData.optString("coupon_click_url"); if (StringUtil.isNullOrEmpty(link)) { link = resultData.optString("item_url"); } } return link; } /** * 商品列表 * @Title: listGoods * @Description: * @param minId * @param catIds * @param pageSize * @return * HDKGoodsListResultDTO 返回类型 * @throws */ // 详情:https://www.haodanku.com/api/detail/show/1.html public HDKGoodsListResultDTO listGoods(Integer minId, List<Integer> catIds, int pageSize) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("nav", 3 + "")); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); params.add(new ParamsKeyValue("sort", 0 + "")); if (catIds != null && catIds.size() > 0) { params.add(new ParamsKeyValue("cid", StringUtil.concat(catIds, ","))); } String result = baseGetRequest("itemlist", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 商品列表筛选 * @param filter * @return */ public HDKGoodsListResultDTO queryList(HDKSearchFilter filter) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("back", filter.getBack() + "")); params.add(new ParamsKeyValue("min_id", filter.getMinId() + "")); params.add(new ParamsKeyValue("nav", filter.getNav() + "")); if (!StringUtil.isNullOrEmpty(filter.getCid())) params.add(new ParamsKeyValue("cid", filter.getCid())); if (filter.getPriceMin() != null) params.add(new ParamsKeyValue("price_min", filter.getPriceMin() + "")); if (filter.getPriceMax() != null) params.add(new ParamsKeyValue("price_max", filter.getPriceMax() + "")); if (filter.getSaleMin() != null) params.add(new ParamsKeyValue("sale_min", filter.getSaleMin() + "")); if (filter.getSaleMax() != null) params.add(new ParamsKeyValue("sale_max", filter.getSaleMax() + "")); if (filter.getCouponMin() != null) params.add(new ParamsKeyValue("coupon_min", filter.getCouponMin() + "")); if (filter.getCouponMax() != null) params.add(new ParamsKeyValue("coupon_max", filter.getCouponMax() + "")); if (filter.getTkratesMin()!= null) params.add(new ParamsKeyValue("tkrates_min", filter.getTkratesMin() + "")); if (filter.getTkratesMax() != null) params.add(new ParamsKeyValue("tkrates_max", filter.getTkratesMax() + "")); if (filter.getTkmoneyMin()!= null) params.add(new ParamsKeyValue("tkmoney_min", filter.getTkmoneyMin() + "")); if (filter.getItemType()!= null) params.add(new ParamsKeyValue("item_type", filter.getItemType() + "")); String result = baseGetRequest("itemlist", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 商品爆单列表 * @Title: listGoods * @Description: * @param minId * @param catIds * @param pageSize * @return * HDKGoodsListResultDTO 返回类型 * @throws */ public HDKGoodsListResultDTO listHotGoods(Integer minId, int pageSize, int saleType, List<Integer> catIds) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("sale_type", saleType +"")); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); params.add(new ParamsKeyValue("item_type", 1 + "")); // 是否只获取营销返利商品,1是,0否 if (catIds != null && catIds.size() > 0) { params.add(new ParamsKeyValue("cid", StringUtil.concat(catIds, ","))); } String result = baseGetRequest("sales_list", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 增量更新的商品 * @Title: listAddGoods * @Description: * @param minId * @param startHour * @param endHour * @param pageSize * @return * HDKGoodsListResultDTO 返回类型 * @throws */ public HDKGoodsListResultDTO listAddGoods(Integer minId, int startHour, int endHour, int pageSize) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); params.add(new ParamsKeyValue("start", startHour + "")); params.add(new ParamsKeyValue("end", endHour + "")); String result = baseGetRequest("timing_items", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 更新商品信息 * @Title: listUpdateGoods * @Description: * @param minId * @param pageSize * void 返回类型 * @throws */ public HDKGoodsListResultDTO listUpdateGoods(Integer minId, int pageSize) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); String result = baseGetRequest("update_item", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 拉取失效商品 * @Title: listInvalidGoods * @Description: * @param startHour * @param endHour * @return * List<Long> 返回类型 * @throws */ public List<Long> listInvalidGoods(int startHour, int endHour) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("start", startHour + "")); params.add(new ParamsKeyValue("end", endHour + "")); String result = baseGetRequest("get_down_items", params); JSONObject resultData = JSONObject.fromObject(result); List<Long> goodsIdList = new ArrayList<>(); if (resultData.optInt("code") == 1) { JSONArray array = resultData.optJSONArray("data"); for (int i = 0; i < array.size(); i++) { goodsIdList.add(array.optJSONObject(i).optLong("itemid")); } } return goodsIdList; } class ParamsKeyValue { String key; String value; public ParamsKeyValue(String key, String value) { super(); this.key = key; this.value = value; } } public HDKGoodsListResultDTO listSelected(Integer minId) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId + "")); String result = baseGetRequest("selected_item", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { JSONArray array = resultData.optJSONArray("data"); if (array != null) { List<HDKWXCircleContentDTO> list = new ArrayList<>(); for (int i = 0; i <array.size(); i ++) { JSONObject item = array.optJSONObject(i); HDKWXCircleContentDTO dto = new HDKWXCircleContentDTO(); dto.setTitle(item.optString("title")); dto.setItemid(item.optString("itemid")); dto.setItemtitle(item.optString("itemtitle")); dto.setContent(item.optString("content")); dto.setCopy_content(item.optString("copy_content")); dto.setShow_content(item.optString("show_content")); JSONArray imgArray = item.optJSONArray("itempic"); if (imgArray != null) { List<String> imgList = new ArrayList<>(); for (int n = 0; n < imgArray.size(); n++) { imgList.add(imgArray.optString(n)); } dto.setItempic(imgList); } list.add(dto); } HDKGoodsListResultDTO dto = new HDKGoodsListResultDTO(); dto.setList(list); dto.setMinId(minId); return dto; } } return null; } /** * 单品详情API * @param itemid * @return */ public HDKGoodsDetail getItemDetail(String itemid) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("itemid", itemid)); String result = baseGetRequest("item_detail", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Type type = new TypeToken<HDKGoodsDetail>() {}.getType(); HDKGoodsDetail goodsDetail = new Gson().fromJson(resultData.optJSONObject("data").toString(), type); return goodsDetail; } return null; } /** * 精选低价包邮专区API * @param minId * @param pageSize * @return */ public HDKGoodsListResultDTO getLowPricePinkageData(Integer minId, int pageSize, Integer typeNum) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId +"")); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("type", typeNum + "")); String result = baseGetRequest("low_price_Pinkage_data", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 高佣专场商品API * @param minId * @param pageSize * @return */ public HDKGoodsListResultDTO getHighitems(Integer minId, int pageSize, Integer catId) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId +"")); params.add(new ParamsKeyValue("back", pageSize + "")); if (catId != null) params.add(new ParamsKeyValue("cat_id", catId +"")); String result = baseGetRequest("get_highitems", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 200) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } } package com.yeshi.goods.facade.utils.taobao; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.yeshi.utils.HttpUtil; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.yeshi.goods.facade.dto.taobao.haodanku.HDKGoodsListResultDTO; import com.yeshi.goods.facade.dto.taobao.haodanku.HDKSearchFilter; import com.yeshi.goods.facade.dto.taobao.haodanku.HDKWXCircleContentDTO; import com.yeshi.goods.facade.entity.taobao.haodanku.HDKGoodsDetail; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.yeshi.utils.StringUtil; /** * 好单库API * @author Administrator * */ public class HaoDanKuApiUtil { private final static String API_KEY = "blks"; private static HaoDanKuApiUtil instance; public static HaoDanKuApiUtil getInstance() { if (instance == null) instance = new HaoDanKuApiUtil(); return instance; } private String baseGetRequest(String path, List<ParamsKeyValue> params) { params.add(0, new HaoDanKuApiUtil.ParamsKeyValue("apikey", API_KEY)); String url = "http://v2.api.haodanku.com/" + path; for (ParamsKeyValue keyValue : params) { url += ("/" + keyValue.key + "/" + keyValue.value); } return HttpUtil.get(url); } private String basePostRequest(String url, List<ParamsKeyValue> params) { params.add(0, new HaoDanKuApiUtil.ParamsKeyValue("apikey", API_KEY)); Map<String, String> parmasMap = new HashMap<>(); for (ParamsKeyValue keyValue : params) { parmasMap.put(keyValue.key, keyValue.value); } return HttpUtil.post(url, parmasMap, null); } /** * 获取朋友圈API的内容 * @Title: getSendWXCircleContent * @Description: * void 返回类型 * @throws */ public void getSendWXCircleContent(Integer minId) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId + "")); String result = baseGetRequest("selected_item", params); System.out.println(result); } public String convertLink(Long auctionId, String pid, String activityId,String specialId,String relationId) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("itemid", auctionId + "")); params.add(new ParamsKeyValue("pid", pid)); if(!StringUtil.isNullOrEmpty(specialId)){ params.add(new ParamsKeyValue("special_id", specialId)); } if(!StringUtil.isNullOrEmpty(relationId)){ params.add(new ParamsKeyValue("relation_id", relationId)); } if (activityId != null) params.add(new ParamsKeyValue("activityid", activityId)); String result = basePostRequest("http://v2.api.haodanku.com/ratesurl", params); System.out.println(result); JSONObject resultData = JSONObject.fromObject(result); String link = ""; if (resultData.optInt("code") == 1) { resultData = resultData.optJSONObject("data"); link = resultData.optString("coupon_click_url"); if (StringUtil.isNullOrEmpty(link)) { link = resultData.optString("item_url"); } } return link; } /** * 商品列表 * @Title: listGoods * @Description: * @param minId * @param catIds * @param pageSize * @return * HDKGoodsListResultDTO 返回类型 * @throws */ // 详情:https://www.haodanku.com/api/detail/show/1.html public HDKGoodsListResultDTO listGoods(Integer minId, List<Integer> catIds, int pageSize) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("nav", 3 + "")); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); params.add(new ParamsKeyValue("sort", 0 + "")); if (catIds != null && catIds.size() > 0) { params.add(new ParamsKeyValue("cid", StringUtil.concat(catIds, ","))); } String result = baseGetRequest("itemlist", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 商品列表筛选 * @param filter * @return */ public HDKGoodsListResultDTO queryList(HDKSearchFilter filter) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("back", filter.getBack() + "")); params.add(new ParamsKeyValue("min_id", filter.getMinId() + "")); params.add(new ParamsKeyValue("nav", filter.getNav() + "")); if (!StringUtil.isNullOrEmpty(filter.getCid())) params.add(new ParamsKeyValue("cid", filter.getCid())); if (filter.getPriceMin() != null) params.add(new ParamsKeyValue("price_min", filter.getPriceMin() + "")); if (filter.getPriceMax() != null) params.add(new ParamsKeyValue("price_max", filter.getPriceMax() + "")); if (filter.getSaleMin() != null) params.add(new ParamsKeyValue("sale_min", filter.getSaleMin() + "")); if (filter.getSaleMax() != null) params.add(new ParamsKeyValue("sale_max", filter.getSaleMax() + "")); if (filter.getCouponMin() != null) params.add(new ParamsKeyValue("coupon_min", filter.getCouponMin() + "")); if (filter.getCouponMax() != null) params.add(new ParamsKeyValue("coupon_max", filter.getCouponMax() + "")); if (filter.getTkratesMin()!= null) params.add(new ParamsKeyValue("tkrates_min", filter.getTkratesMin() + "")); if (filter.getTkratesMax() != null) params.add(new ParamsKeyValue("tkrates_max", filter.getTkratesMax() + "")); if (filter.getTkmoneyMin()!= null) params.add(new ParamsKeyValue("tkmoney_min", filter.getTkmoneyMin() + "")); if (filter.getItemType()!= null) params.add(new ParamsKeyValue("item_type", filter.getItemType() + "")); String result = baseGetRequest("itemlist", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 商品爆单列表 * @Title: listGoods * @Description: * @param minId * @param catIds * @param pageSize * @return * HDKGoodsListResultDTO 返回类型 * @throws */ public HDKGoodsListResultDTO listHotGoods(Integer minId, int pageSize, int saleType, List<Integer> catIds) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("sale_type", saleType +"")); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); params.add(new ParamsKeyValue("item_type", 1 + "")); // 是否只获取营销返利商品,1是,0否 if (catIds != null && catIds.size() > 0) { params.add(new ParamsKeyValue("cid", StringUtil.concat(catIds, ","))); } String result = baseGetRequest("sales_list", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 增量更新的商品 * @Title: listAddGoods * @Description: * @param minId * @param startHour * @param endHour * @param pageSize * @return * HDKGoodsListResultDTO 返回类型 * @throws */ public HDKGoodsListResultDTO listAddGoods(Integer minId, int startHour, int endHour, int pageSize) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); params.add(new ParamsKeyValue("start", startHour + "")); params.add(new ParamsKeyValue("end", endHour + "")); String result = baseGetRequest("timing_items", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 更新商品信息 * @Title: listUpdateGoods * @Description: * @param minId * @param pageSize * void 返回类型 * @throws */ public HDKGoodsListResultDTO listUpdateGoods(Integer minId, int pageSize) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("min_id", minId + "")); String result = baseGetRequest("update_item", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 拉取失效商品 * @Title: listInvalidGoods * @Description: * @param startHour * @param endHour * @return * List<Long> 返回类型 * @throws */ public List<Long> listInvalidGoods(int startHour, int endHour) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("start", startHour + "")); params.add(new ParamsKeyValue("end", endHour + "")); String result = baseGetRequest("get_down_items", params); JSONObject resultData = JSONObject.fromObject(result); List<Long> goodsIdList = new ArrayList<>(); if (resultData.optInt("code") == 1) { JSONArray array = resultData.optJSONArray("data"); for (int i = 0; i < array.size(); i++) { goodsIdList.add(array.optJSONObject(i).optLong("itemid")); } } return goodsIdList; } class ParamsKeyValue { String key; String value; public ParamsKeyValue(String key, String value) { super(); this.key = key; this.value = value; } } public HDKGoodsListResultDTO listSelected(Integer minId) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId + "")); String result = baseGetRequest("selected_item", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { JSONArray array = resultData.optJSONArray("data"); if (array != null) { List<HDKWXCircleContentDTO> list = new ArrayList<>(); for (int i = 0; i <array.size(); i ++) { JSONObject item = array.optJSONObject(i); HDKWXCircleContentDTO dto = new HDKWXCircleContentDTO(); dto.setTitle(item.optString("title")); dto.setItemid(item.optString("itemid")); dto.setItemtitle(item.optString("itemtitle")); dto.setContent(item.optString("content")); dto.setCopy_content(item.optString("copy_content")); dto.setShow_content(item.optString("show_content")); JSONArray imgArray = item.optJSONArray("itempic"); if (imgArray != null) { List<String> imgList = new ArrayList<>(); for (int n = 0; n < imgArray.size(); n++) { imgList.add(imgArray.optString(n)); } dto.setItempic(imgList); } list.add(dto); } HDKGoodsListResultDTO dto = new HDKGoodsListResultDTO(); dto.setList(list); dto.setMinId(minId); return dto; } } return null; } /** * 单品详情API * @param itemid * @return */ public HDKGoodsDetail getItemDetail(String itemid) { List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("itemid", itemid)); String result = baseGetRequest("item_detail", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Type type = new TypeToken<HDKGoodsDetail>() {}.getType(); HDKGoodsDetail goodsDetail = new Gson().fromJson(resultData.optJSONObject("data").toString(), type); return goodsDetail; } return null; } /** * 精选低价包邮专区API * @param minId * @param pageSize * @return */ public HDKGoodsListResultDTO getLowPricePinkageData(Integer minId, int pageSize, Integer typeNum) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId +"")); params.add(new ParamsKeyValue("back", pageSize + "")); params.add(new ParamsKeyValue("type", typeNum + "")); String result = baseGetRequest("low_price_Pinkage_data", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 1) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } /** * 高佣专场商品API * @param minId * @param pageSize * @return */ public HDKGoodsListResultDTO getHighitems(Integer minId, int pageSize, Integer catId) { if (minId == null) minId = 1; List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>(); params.add(new ParamsKeyValue("min_id", minId +"")); params.add(new ParamsKeyValue("back", pageSize + "")); if (catId != null) params.add(new ParamsKeyValue("cat_id", catId +"")); String result = baseGetRequest("get_highitems", params); JSONObject resultData = JSONObject.fromObject(result); if (resultData.optInt("code") == 200) { Integer newMinId = resultData.optInt("min_id"); Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() { }.getType(); List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type); return new HDKGoodsListResultDTO(list, newMinId); } return null; } } fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java
@@ -5,7 +5,10 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.yeshi.fanli.entity.SystemFunction; import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; import com.yeshi.fanli.util.SystemInfoUtil; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; @@ -52,396 +55,419 @@ @RequestMapping(value = "api/v1/goods") public class GoodsController { @Resource private ShareGoodsService shareGoodsService; @Resource private ShareGoodsService shareGoodsService; @Resource private TBPidService tbPidService; @Resource private TBPidService tbPidService; @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @Resource private MonitorService monitorService; @Resource private MonitorService monitorService; @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private UserInfoService userInfoService; @Resource private UserInfoService userInfoService; @Resource private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService; @Resource private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService; @Resource private BusinessEmergent110Service businessEmergent110Service; @Resource private BusinessEmergent110Service businessEmergent110Service; @Resource private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; @Resource private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; @Resource private TLJBuyGoodsService tljBuyGoodsService; @Resource private TLJBuyGoodsService tljBuyGoodsService; @Resource private IntegralGetService integralGetService; @Resource private IntegralGetService integralGetService; @Resource private TaoBaoLinkManager taoBaoLinkManager; @Resource private TaoBaoLinkManager taoBaoLinkManager; private void doTaoLiJinBuy(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) { JSONObject data = new JSONObject(); TaoBaoLink taoBaoLink = null; try { // 根据日期与商品ID查询 TLJBuyGoods tljBuyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(auctionId, TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd")); if (tljBuyGoods == null) { out.print(JsonUtil.loadFalseResult(1, "商品不存在")); return; } String appKey = tljBuyGoods.getAppKey(); TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(appKey); if (config == null) { out.print(JsonUtil.loadFalseResult(2, "生成推广链接失败")); return; } TaoKeAppInfo app = new TaoKeAppInfo(config.getAppKey(), config.getAppSecret(), config.getDefaultPid()); taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuyWithOutFanLi(uid, auctionId, app); } catch (TaoLiJinCreateException e1) { out.print(JsonUtil.loadFalseResult(e1.getCode(), "淘礼金红包创建失败")); return; } catch (ShareGoodsException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); return; } data.put("native", true); JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); out.print(JsonUtil.loadTrueResult(data)); private void doTaoLiJinBuy(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) { JSONObject data = new JSONObject(); TaoBaoLink taoBaoLink = null; try { // 根据日期与商品ID查询 TLJBuyGoods tljBuyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(auctionId, TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd")); if (tljBuyGoods == null) { out.print(JsonUtil.loadFalseResult(1, "商品不存在")); return; } String appKey = tljBuyGoods.getAppKey(); TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(appKey); if (config == null) { out.print(JsonUtil.loadFalseResult(2, "生成推广链接失败")); return; } TaoKeAppInfo app = new TaoKeAppInfo(config.getAppKey(), config.getAppSecret(), config.getDefaultPid()); taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuyWithOutFanLi(uid, auctionId, app); } catch (TaoLiJinCreateException e1) { out.print(JsonUtil.loadFalseResult(e1.getCode(), "淘礼金红包创建失败")); return; } catch (ShareGoodsException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); return; } data.put("native", true); JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); out.print(JsonUtil.loadTrueResult(data)); integralGetService.addTaoLiJinBuy(uid, auctionId); } integralGetService.addTaoLiJinBuy(uid, auctionId); } /** * 获取淘宝的分享链接 * * @param acceptData * @param uid * -用户ID * @param auctionId-商品ID * @param out */ @RequestMapping(value = "gettaobaolink") public void getTaoBaoLink(AcceptData acceptData, Long uid, Long auctionId, String from, String source, HttpServletRequest request, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } private void getTaoBaoLinkWithoutFanLi(AcceptData acceptData, Long auctionId, String from, String source, HttpServletRequest request, PrintWriter out) { try { TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForRecieveCoupon(auctionId, null, TaoBaoConstant.TAOBAO_COUPON_PID); JSONObject data = new JSONObject(); JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); data.put("native", true); out.print(JsonUtil.loadTrueResult(data)); } catch (TaoBaoConvertLinkException e) { e.printStackTrace(); out.print(JsonUtil.loadFalseResult("领券出错")); } } if (auctionId == null || auctionId <= 0) { out.print(JsonUtil.loadFalseResult(2, "商品ID不能为空")); return; } /** * 获取淘宝的分享链接 * * @param acceptData * @param uid -用户ID * @param auctionId-商品ID * @param out */ @RequestMapping(value = "gettaobaolink") public void getTaoBaoLink(AcceptData acceptData, Long uid, Long auctionId, String from, String source, HttpServletRequest request, PrintWriter out) { try { // 日志记录 String info = String.format("type=buy&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, auctionId, source, Constant.SOURCE_TYPE_TAOBAO); LogHelper.orderInfo(info); } catch (Exception e) { } if (auctionId == null || auctionId <= 0) { out.print(JsonUtil.loadFalseResult(2, "商品ID不能为空")); return; } TaoBaoGoodsBrief goods = null; if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { getTaoBaoLinkWithoutFanLi(acceptData, auctionId, from, source, request, out); return; } try { goods = TaoKeApiUtil.getSimpleGoodsInfo(auctionId); } catch (TaobaoGoodsDownException e) { out.print(JsonUtil.loadFalseResult(3, "商品已下架")); return; } catch (Exception e) { try { LogHelper.errorDetailInfo(e, "获取商品简版详情出错", auctionId + ""); } catch (Exception e1) { e1.printStackTrace(); } } if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } if ("taolijin_buy".equalsIgnoreCase(source)) { doTaoLiJinBuy(acceptData, uid, auctionId, out); return; } ClientTBPid clientTBPid = null; UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } String dpid = null; if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { dpid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; } else { dpid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID; } String psiteId = dpid.split("_")[2]; String padzoneId = dpid.split("_")[3]; TaoBaoUnionConfig config1 = taoBaoUnionConfigService.getConfigByAppIdCache(psiteId); clientTBPid = new ClientTBPid(config1.getAppKey(), dpid, psiteId, padzoneId); try { // 日志记录 String info = String.format("type=buy&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, auctionId, source, Constant.SOURCE_TYPE_TAOBAO); LogHelper.orderInfo(info); } catch (Exception e) { } JSONObject data = new JSONObject(); boolean isNative = false; String pid = null; TaoBaoGoodsBrief goods = null; boolean specialConvert = false; try { goods = TaoKeApiUtil.getSimpleGoodsInfo(auctionId); } catch (TaobaoGoodsDownException e) { out.print(JsonUtil.loadFalseResult(3, "商品已下架")); return; } catch (Exception e) { try { LogHelper.errorDetailInfo(e, "获取商品简版详情出错", auctionId + ""); } catch (Exception e1) { e1.printStackTrace(); } } if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { specialConvert = true; } else specialConvert = false; if ("taolijin_buy".equalsIgnoreCase(source)) { doTaoLiJinBuy(acceptData, uid, auctionId, out); return; } String specialId = null; String relationId = null; // 查询用户ID是否绑定了会员运营ID UserExtraTaoBaoInfo userInfo = userExtraTaoBaoInfoService.getByUid(uid); if (userInfo != null && !StringUtil.isNullOrEmpty(userInfo.getSpecialId()) && userInfo.getSpecialValid() != null && userInfo.getSpecialValid() == true) { specialId = userInfo.getSpecialId(); relationId = userInfo.getRelationId(); // 已经绑定 if (specialConvert) { isNative = true; } else isNative = false; ClientTBPid clientTBPid = null; pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; String dpid = null; if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { dpid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; } else { dpid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID; } String psiteId = dpid.split("_")[2]; String padzoneId = dpid.split("_")[3]; TaoBaoUnionConfig config1 = taoBaoUnionConfigService.getConfigByAppIdCache(psiteId); clientTBPid = new ClientTBPid(config1.getAppKey(), dpid, psiteId, padzoneId); } else {// 尚未绑定 isNative = true; } JSONObject data = new JSONObject(); boolean isNative = false; String pid = null; data.put("native", isNative); boolean specialConvert = false; int pidType = PidUser.TYPE_FANLI_ANDROID; if (acceptData.getPlatform().equalsIgnoreCase("ios")) pidType = PidUser.TYPE_FANLI_IOS; try { TaoBaoLink taoBaoLink = null; if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { specialConvert = true; } else specialConvert = false; // 是返利商品库的商品 if (specialConvert) { if (!StringUtil.isNullOrEmpty(specialId)) { if (source != null && "taolijin_free_buy".equals(source)) { taoBaoLink = taoBaoLinkManager.getTaoLiJinLinkForBuy(uid, auctionId, null); } String specialId = null; String relationId = null; // 查询用户ID是否绑定了会员运营ID UserExtraTaoBaoInfo userInfo = userExtraTaoBaoInfoService.getByUid(uid); if (userInfo != null && !StringUtil.isNullOrEmpty(userInfo.getSpecialId()) && userInfo.getSpecialValid() != null && userInfo.getSpecialValid() == true) { specialId = userInfo.getSpecialId(); relationId = userInfo.getRelationId(); // 已经绑定 if (specialConvert) { isNative = true; } else isNative = false; if (taoBaoLink == null) { taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForBuy(uid, auctionId,specialId,null); if(taoBaoLink!=null) clientTBPid=null; } pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; data.put("native", true); } else { if (!specialConvert && !isNative) { if (pidType == PidUser.TYPE_FANLI_ANDROID) taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getAndroidDefault().getPid()); else taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getIOSDefault().getPid()); } else taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForBuy(uid, auctionId, specialId,null); LogHelper.test("购买转链:默认PID转链-" + uid + ":" + auctionId); } } else {// 不是返利库的商品,用特殊PID替代 try { relationId = taoBaoBuyRelationMapService.getRelationId(uid); } catch (Exception e) { LogHelper.errorDetailInfo(e, "uid:" + uid, null); } if (!StringUtil.isNullOrEmpty(relationId)) {// if (source != null && "taolijin_free_buy".equals(source)) { taoBaoLink = taoBaoLinkManager.getTaoLiJinLinkForBuy(uid, auctionId, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); } else { taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(uid, auctionId, relationId, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); } } else {// 尚未绑定 isNative = true; } data.put("native", true); } else { if (pidType == PidUser.TYPE_FANLI_ANDROID) taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getAndroidDefault().getPid()); else taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getIOSDefault().getPid()); data.put("native", isNative); LogHelper.test("购买转链:默认PID转链-非返利库商品-" + uid + ":" + auctionId); } } JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); if (clientTBPid != null) data.put("tbPidInfo", clientTBPid); out.print(JsonUtil.loadTrueResult(data)); int pidType = PidUser.TYPE_FANLI_ANDROID; if (acceptData.getPlatform().equalsIgnoreCase("ios")) pidType = PidUser.TYPE_FANLI_IOS; try { TaoBaoLink taoBaoLink = null; TaoKeLogHelper.convertLinkInfo( String.format("uid:%s auctionId:%s 输出结果:", uid, auctionId + "") + data.toString()); // 是返利商品库的商品 if (specialConvert) { if (!StringUtil.isNullOrEmpty(specialId)) { if (source != null && "taolijin_free_buy".equals(source)) { taoBaoLink = taoBaoLinkManager.getTaoLiJinLinkForBuy(uid, auctionId, null); } // 获得金币 integralGetService.addCouponRebate(uid); if (taoBaoLink == null) { taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForBuy(uid, auctionId, specialId, null); if (taoBaoLink != null) clientTBPid = null; } } catch (ShareGoodsException e) { if (e.getCode() == 1001 || e.getCode() == 1002) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } else { out.print(JsonUtil.loadFalseResult(1, e.getMsg())); } } catch (Exception e) { data.put("native", true); } else { if (!specialConvert && !isNative) { if (pidType == PidUser.TYPE_FANLI_ANDROID) taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getAndroidDefault().getPid()); else taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getIOSDefault().getPid()); } else taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForBuy(uid, auctionId, specialId, null); LogHelper.test("购买转链:默认PID转链-" + uid + ":" + auctionId); } } else {// 不是返利库的商品,用特殊PID替代 try { relationId = taoBaoBuyRelationMapService.getRelationId(uid); } catch (Exception e) { LogHelper.errorDetailInfo(e, "uid:" + uid, null); } if (!StringUtil.isNullOrEmpty(relationId)) {// if (source != null && "taolijin_free_buy".equals(source)) { taoBaoLink = taoBaoLinkManager.getTaoLiJinLinkForBuy(uid, auctionId, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); } else { taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(uid, auctionId, relationId, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); } LogHelper.errorDetailInfo(e); data.put("native", true); } else { if (pidType == PidUser.TYPE_FANLI_ANDROID) taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getAndroidDefault().getPid()); else taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getIOSDefault().getPid()); isNative = false; try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "购买淘宝商品转链出错")); } catch (Exception e1) { e1.printStackTrace(); } LogHelper.test("购买转链:默认PID转链-非返利库商品-" + uid + ":" + auctionId); } } JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); if (clientTBPid != null) data.put("tbPidInfo", clientTBPid); out.print(JsonUtil.loadTrueResult(data)); TBPid tbPid = null; if (acceptData.getPlatform().equalsIgnoreCase("android")) { tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_ANDROID); } else { tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_IOS); } TaoKeLogHelper.convertLinkInfo( String.format("uid:%s auctionId:%s 输出结果:", uid, auctionId + "") + data.toString()); LogHelper.test("购买转链:默认PID转链-异常商品-" + uid + ":" + auctionId); // 获得金币 integralGetService.addCouponRebate(uid); data.put("native", isNative); } catch (ShareGoodsException e) { if (e.getCode() == 1001 || e.getCode() == 1002) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } else { out.print(JsonUtil.loadFalseResult(1, e.getMsg())); } } catch (Exception e) { if (tbPid != null) { LogHelper.errorDetailInfo(e); try { TaoBaoLink taoBaoLink = null; if (pidType == PidUser.TYPE_FANLI_ANDROID) taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getAndroidDefault().getPid()); else taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getIOSDefault().getPid()); isNative = false; try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "购买淘宝商品转链出错")); } catch (Exception e1) { e1.printStackTrace(); } JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); data.put("native", true); } catch (Exception e1) { String siteId = tbPid.getPid().split("_")[2]; String adzoneId = tbPid.getPid().split("_")[3]; TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId); ClientTBPid clientTBPid1 = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId); data.put("type", 2); data.put("tbPidInfo", clientTBPid1); data.put("native", true); } TBPid tbPid = null; if (acceptData.getPlatform().equalsIgnoreCase("android")) { tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_ANDROID); } else { tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_IOS); } out.print(JsonUtil.loadTrueResult(data)); } else { out.print(JsonUtil.loadFalseResult(1, "请求失败")); } LogHelper.test("购买转链:默认PID转链-异常商品-" + uid + ":" + auctionId); businessEmergent110Service.buyTaoBaoGoodsError(StringUtil.Md5(auctionId + ""),acceptData.getSystem()); } } data.put("native", isNative); /** * 是否在参与推广 */ if (tbPid != null) { /** * 是否在参与推广 * * @param goodsId * -商品ID * @param goodsType * -TB/JD * @param out */ @RequestMapping(value = "isGoodsExtend") public void isGoodsExtend(AcceptData acceptData, String goodsId, String goodsType, PrintWriter out) { if (StringUtil.isNullOrEmpty(goodsId)) { out.print(JsonUtil.loadFalseResult(1, "未参与推广")); return; } if (StringUtil.isNullOrEmpty(goodsType)) { out.print(JsonUtil.loadFalseResult(2, "缺少goodsType")); return; } if ("TB".equalsIgnoreCase(goodsType)) { TaoBaoGoodsBrief goods = null; try { goods = TaoKeApiUtil.getSimpleGoodsInfo(Long.parseLong(goodsId)); } catch (NumberFormatException e) { e.printStackTrace(); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } try { TaoBaoLink taoBaoLink = null; if (pidType == PidUser.TYPE_FANLI_ANDROID) taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getAndroidDefault().getPid()); else taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, tbPidService.getIOSDefault().getPid()); JSONObject data = new JSONObject(); JSONObject link = new JSONObject(); link.put("clickUrl", taoBaoLink.getClickUrl()); link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); data.put("native", true); } catch (Exception e1) { String siteId = tbPid.getPid().split("_")[2]; String adzoneId = tbPid.getPid().split("_")[3]; TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId); ClientTBPid clientTBPid1 = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId); data.put("type", 2); data.put("tbPidInfo", clientTBPid1); data.put("native", true); } if (goods == null) { data.put("extend", false); data.put("url", "https://h5.m.taobao.com/awp/core/detail.htm?id=" + goodsId); } else { data.put("extend", true); } out.print(JsonUtil.loadTrueResult(data)); } else { out.print(JsonUtil.loadFalseResult(3, "暂不支持其他商品类型")); } } out.print(JsonUtil.loadTrueResult(data)); } else { out.print(JsonUtil.loadFalseResult(1, "请求失败")); } /** * 删除推荐商品 * * @param acceptData * @param goodsId * @param source * @param uid * @param reason * @param out */ @RequestMapping(value = "deleteRecommendGoods") public void deleteRecommendGoods(AcceptData acceptData, Long goodsId, Integer source, Long uid, String reason, PrintWriter out) { if (goodsId == null) { out.print(JsonUtil.loadFalseResult(1, "请上传商品")); return; } businessEmergent110Service.buyTaoBaoGoodsError(StringUtil.Md5(auctionId + ""), acceptData.getSystem()); } } RecommendGoodsDeleteHistory history = new RecommendGoodsDeleteHistory(); history.setDevice(acceptData.getDevice()); history.setReason(reason); history.setUid(uid); history.setGoodsSource(source == null ? Constant.SOURCE_TYPE_TAOBAO : source); history.setGoodsId(goodsId); recommendGoodsDeleteHistoryService.addRecommendGoodsDeleteHistory(history); out.print(JsonUtil.loadTrueResult("")); /** * 是否在参与推广 */ // 获得金币 integralGetService.addCloseRecommendGoods(uid); } /** * 是否在参与推广 * * @param goodsId -商品ID * @param goodsType -TB/JD * @param out */ @RequestMapping(value = "isGoodsExtend") public void isGoodsExtend(AcceptData acceptData, String goodsId, String goodsType, PrintWriter out) { if (StringUtil.isNullOrEmpty(goodsId)) { out.print(JsonUtil.loadFalseResult(1, "未参与推广")); return; } if (StringUtil.isNullOrEmpty(goodsType)) { out.print(JsonUtil.loadFalseResult(2, "缺少goodsType")); return; } if ("TB".equalsIgnoreCase(goodsType)) { TaoBaoGoodsBrief goods = null; try { goods = TaoKeApiUtil.getSimpleGoodsInfo(Long.parseLong(goodsId)); } catch (NumberFormatException e) { e.printStackTrace(); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } JSONObject data = new JSONObject(); if (goods == null) { data.put("extend", false); data.put("url", "https://h5.m.taobao.com/awp/core/detail.htm?id=" + goodsId); } else { data.put("extend", true); } out.print(JsonUtil.loadTrueResult(data)); } else { out.print(JsonUtil.loadFalseResult(3, "暂不支持其他商品类型")); } } /** * 删除推荐商品 * * @param acceptData * @param goodsId * @param source * @param uid * @param reason * @param out */ @RequestMapping(value = "deleteRecommendGoods") public void deleteRecommendGoods(AcceptData acceptData, Long goodsId, Integer source, Long uid, String reason, PrintWriter out) { if (goodsId == null) { out.print(JsonUtil.loadFalseResult(1, "请上传商品")); return; } RecommendGoodsDeleteHistory history = new RecommendGoodsDeleteHistory(); history.setDevice(acceptData.getDevice()); history.setReason(reason); history.setUid(uid); history.setGoodsSource(source == null ? Constant.SOURCE_TYPE_TAOBAO : source); history.setGoodsId(goodsId); recommendGoodsDeleteHistoryService.addRecommendGoodsDeleteHistory(history); out.print(JsonUtil.loadTrueResult("")); // 获得金币 integralGetService.addCloseRecommendGoods(uid); } } fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -10,7 +10,9 @@ import javax.annotation.Resource; import com.yeshi.fanli.entity.SystemEnum; import com.yeshi.fanli.entity.SystemFunction; import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; import com.yeshi.fanli.util.*; import org.json.simple.JSONArray; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -86,14 +88,8 @@ import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; import com.yeshi.fanli.service.manger.user.UserLevelManager; import com.yeshi.fanli.util.Constant; import org.yeshi.utils.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.ThreadUtil; import org.yeshi.utils.TimeUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; @@ -357,7 +353,7 @@ try { goods = TaoKeApiUtil.searchGoodsDetail(id, app); if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) { TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app,null,null); TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app, null, null); if (linkInfo != null) { goods.setAuctionUrl(linkInfo.getAuctionUrl()); goods.setCouponLink(linkInfo.getCouponLink()); @@ -1602,6 +1598,49 @@ } } /** * 获取京东领券链接(不返利) * * @param acceptData * @param id * @param couponUrl * @param source * @param out */ private void getJDLinkWithoutFanLi(AcceptData acceptData, Long id, String couponUrl, String source, PrintWriter out) { JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(id); if (goods == null) { out.print(JsonUtil.loadFalseResult(2, "商品已下架")); return; } String jumpLink = null; String materialId = "https://item.jd.com/" + id + ".html"; if (StringUtil.isNullOrEmpty(couponUrl)) { JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods.getCouponInfoList(), goods.getPrice()); if (couponInfo != null) { couponUrl = couponInfo.getLink(); } jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_COUPON + "", ""); if (jumpLink == null) { jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, JDApiUtil.POSITION_COUPON + "", ""); } } else { jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_COUPON + "", ""); if (StringUtil.isNullOrEmpty(jumpLink)) { jumpLink = couponUrl; } } JSONObject data = new JSONObject(); data.put("native", true); data.put("jumpLink", jumpLink); out.print(JsonUtil.loadTrueResult(data)); } /** * 京东购买链接 * @@ -1614,15 +1653,23 @@ */ @RequestMapping(value = "getJDLink") public void getJDLink(AcceptData acceptData, Long uid, Long id, String couponUrl, String source, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "商品ID不能为空")); return; } if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { getJDLinkWithoutFanLi(acceptData, id, couponUrl, source, out); return; } if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { @@ -1702,21 +1749,32 @@ */ @RequestMapping(value = "getPDDLink") public void getPDDLink(AcceptData acceptData, Long uid, Long id, String source, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "商品ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; String pid = PinDuoDuoApiUtil.PID_FANLI; //只是领券 if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { pid = PinDuoDuoApiUtil.PID_COUPON; uid = null; } else { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } } PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(id); if (goods == null) { @@ -1724,10 +1782,9 @@ return; } PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_FANLI + "", uid + ""); PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, pid + "", uid + ""); JSONObject data = new JSONObject(); data.put("native", true); data.put("jumpLink", convertUrl.getUrl()); data.put("nativeJumpLink", PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl())); out.print(JsonUtil.loadTrueResult(data)); @@ -1747,20 +1804,28 @@ */ @RequestMapping(value = "getVIPLink") public void getVIPLink(AcceptData acceptData, Long uid, Long id, String source, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "商品ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; String tag = null; //只是领券 if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { tag = VipShopUtil.getCouponChanTag(); } else { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } tag = VipShopUtil.getBuyChanTag(uid); } VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(id + ""); @@ -1769,7 +1834,7 @@ return; } VIPConvertResultDTO convertUrl = VipShopApiUtil.convertLink(id + "", VipShopUtil.getBuyChanTag(uid)); VIPConvertResultDTO convertUrl = VipShopApiUtil.convertLink(id + "", tag); JSONObject data = new JSONObject(); data.put("native", true); data.put("jumpLink", convertUrl.getUrl()); @@ -1782,21 +1847,27 @@ @RequestMapping(value = "getSuningLink") public void getSuningLink(AcceptData acceptData, Long uid, String id, String source, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } if (StringUtil.isNullOrEmpty(id)) { out.print(JsonUtil.loadFalseResult(1, "商品ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; String pid = SuningApiUtil.PID_BUY; if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { pid=SuningApiUtil.PID_COUPON; uid=null; } else { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } } String[] sts = SuningUtil.getGoodsIdDetail(id); String supplierCode = sts[0]; @@ -1812,7 +1883,7 @@ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) quanUrl = goods.getCouponInfo().getCouponUrl(); String link = SuningApiUtil.convertLink(SuningUtil.getProductUrl(supplierCode, goodsCode), quanUrl, SuningApiUtil.PID_BUY, uid + ""); pid, uid + ""); JSONObject data = new JSONObject(); data.put("native", false); data.put("jumpLink", link); fanli/src/main/java/com/yeshi/fanli/entity/SystemEnum.java
@@ -8,9 +8,10 @@ */ public enum SystemEnum { blks("com.yeshi.ec.rebate", "com.xyj.ec.fanli-ios", new String[]{}, new SystemFunction[]{ SystemFunction.bindPhone, SystemFunction.threeSale, SystemFunction.cloudOrder, SystemFunction.godenCorn, SystemFunction.redPack,SystemFunction.faQuan SystemFunction.bindPhone, SystemFunction.threeSale, SystemFunction.cloudOrder, SystemFunction.godenCorn, SystemFunction.redPack,SystemFunction.faQuan,SystemFunction.fanli }, 1, "板栗快省"), flq("com.fanliunion.android", "com.xyj.ec.flq-ios", new String[]{}, new SystemFunction[]{SystemFunction.faQuan}, 2, "返利联盟"); flq("com.fanliunion.android", "com.xyj.ec.flq-ios", new String[]{}, new SystemFunction[]{SystemFunction.faQuan,SystemFunction.fanli}, 11, "返利联盟"), yhqjx("com.youhuiquanjx.android","com.youhuiquanjx.ios",new String[]{}, new SystemFunction[]{SystemFunction.faQuan}, 12, "优惠券精选"); private String packageName; private String bundleId; private int systemId; fanli/src/main/java/com/yeshi/fanli/entity/SystemFunction.java
@@ -10,7 +10,9 @@ cloudOrder("云发单"), redPack("红包"), faQuan("发圈"), vip("超级会员"); vip("超级会员"), fanli("是否需要返利") ; private SystemFunction(String desc) { fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java
@@ -51,7 +51,7 @@ import com.yeshi.fanli.util.factory.goods.TaoBaoGoodsFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.taobao.HaoDanKuApiUtil; import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; @Component fanli/src/main/java/com/yeshi/fanli/job/goods/FreeGoodsCouponJob.java
@@ -35,7 +35,7 @@ import com.yeshi.fanli.util.factory.goods.TaoBaoGoodsFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.HaoDanKuApiUtil; import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil; import com.yeshi.fanli.vo.goods.GoodsDetailVO; @Component fanli/src/main/java/com/yeshi/fanli/job/goods/HDKGoodsJob.java
@@ -14,7 +14,7 @@ import com.yeshi.goods.facade.entity.taobao.haodanku.HDKGoodsDetail; import com.yeshi.fanli.service.inter.goods.PullNewGoodsService; import com.yeshi.goods.facade.service.HDKGoodsDetailService; import com.yeshi.fanli.util.taobao.HaoDanKuApiUtil; import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil; @Component public class HDKGoodsJob { fanli/src/main/java/com/yeshi/fanli/job/goods/PullNewJob.java
@@ -20,7 +20,7 @@ import com.yeshi.fanli.service.inter.goods.PullNewGoodsService; import com.yeshi.fanli.service.inter.redpack.RedPackConfigService; import com.yeshi.fanli.service.inter.user.UserRankingsService; import com.yeshi.fanli.util.taobao.HaoDanKuApiUtil; import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil; @Component public class PullNewJob { fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java
@@ -29,7 +29,7 @@ import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; import com.yeshi.fanli.util.taobao.HaoDanKuApiUtil; import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java
@@ -58,19 +58,15 @@ @Resource private TaoBaoCouponCacheService taoBaoCouponCacheService; /** * 获取淘宝购买链接 * * @param uid * 只领券 * @param auctionId * @param specialId * @param pid * @return */ public TaoBaoLink getTaoBaoLinkForBuy(Long uid, Long auctionId, String specialId, String pid) throws TaoBaoConvertLinkException { if (uid == null || uid <= 0) { throw new TaoBaoConvertLinkException(1, "用户ID不能为空"); } public TaoBaoLink getTaoBaoLinkForRecieveCoupon(Long auctionId, String specialId, String pid) throws TaoBaoConvertLinkException{ if (auctionId == null || auctionId <= 0) { throw new TaoBaoConvertLinkException(2, "商品ID不能为空"); } @@ -128,6 +124,21 @@ return taoBaoLink; } /** * 获取淘宝购买链接 * * @param uid * @param auctionId * @param pid * @return */ public TaoBaoLink getTaoBaoLinkForBuy(Long uid, Long auctionId, String specialId, String pid) throws TaoBaoConvertLinkException { if (uid == null || uid <= 0) { throw new TaoBaoConvertLinkException(1, "用户ID不能为空"); } return getTaoBaoLinkForRecieveCoupon(auctionId,specialId,pid); } /** * 记录淘宝转链的券信息 fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java
@@ -28,6 +28,9 @@ //口碑PID public static final String TAOBAO_KOUBEI_PID = "mm_124933865_56750082_19511700026"; //单纯领券PID public static final String TAOBAO_COUPON_PID = "mm_124933865_56750082_19509400077"; // 淘礼金会员 fanli/src/main/java/com/yeshi/fanli/util/suning/SuningApiUtil.java
@@ -34,6 +34,7 @@ public final static String PID_SHARE = "666527"; public final static String PID_BUY = "666526"; public final static String PID_COUPON = "666528"; private static String post(String url, String entity, Map<String, String> headers) { String charset = "utf-8"; fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopUtil.java
@@ -48,6 +48,11 @@ } public static String getCouponChanTag() { return getBase64Str("coupon"); } public static String getUidFromChanTag(String tag) { String decodeTag = StringUtil.getFromBase64(tag); return decodeTag.split("#")[1]; pom.xml
@@ -552,6 +552,5 @@ <module>fanli</module> <module>facade-goods</module> <module>facede-common</module> <module>service-goods</module> </modules> </project> service-goods/.gitignore
File was deleted service-goods/.idea/workspace.xml
New file @@ -0,0 +1,828 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> <list default="true" id="d8c7d01e-e41b-49c4-a713-aa47cb9aad37" name="Default Changelist" comment=""> <change beforePath="$PROJECT_DIR$/../.idea/artifacts/service_goods_war_exploded.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/artifacts/service_goods_war_exploded.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/compiler.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_carrotsearch_hppc_0_7_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_github_spullara_mustache_java_compiler_0_9_3.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_15.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__commons_pool_commons_pool_1_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__io_netty_netty_all_4_1_45_Final.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__io_netty_netty_tcnative_boringssl_static_2_0_28_Final.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__joda_time_joda_time_2_10_5.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__junit_junit_4_12.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__net_minidev_json_smart_2_3.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_commons_commons_dbcp2_2_7_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_commons_commons_pool2_2_7_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_10.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_13.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_10.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_12_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_analyzers_common_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_backward_codecs_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_core_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_grouping_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_highlighter_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_join_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_memory_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_misc_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_queries_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_queryparser_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_sandbox_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_spatial3d_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_spatial_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_spatial_extras_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_lucene_lucene_suggest_7_7_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_30.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_30.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_30.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_aspectj_aspectjrt_1_9_5.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_assertj_assertj_core_3_13_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_codehaus_groovy_groovy_2_5_9.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_client_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_elasticsearch_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_elasticsearch_cli_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_elasticsearch_core_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_elasticsearch_secure_sm_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_elasticsearch_x_content_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_plugin_lang_mustache_client_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_plugin_parent_join_client_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_elasticsearch_plugin_rank_eval_client_6_8_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_freemarker_freemarker_2_3_29.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_hamcrest_hamcrest_2_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_1.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_5_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_5_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_mockito_mockito_core_3_1_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_mongodb_bson_3_11_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_mongodb_mongo_java_driver_3_12_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_mongodb_mongodb_driver_3_11_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_mongodb_mongodb_driver_core_3_11_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_2.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_30.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_mongodb_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_data_spring_data_mongodb_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_4_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_aop_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_aspects_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_beans_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_context_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_context_support_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_core_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_expression_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_jcl_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_orm_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_oxm_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_test_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_tx_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_web_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_3_RELEASE.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_3.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/modules.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../facade-goods/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../facade-goods/pom.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/entity/SystemEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/entity/SystemEnum.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/entity/SystemFunction.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/entity/SystemFunction.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/DynamicInfoJob.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/goods/FreeGoodsCouponJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/goods/FreeGoodsCouponJob.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/goods/HDKGoodsJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/goods/HDKGoodsJob.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/goods/PullNewJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/job/goods/PullNewJob.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/service/manger/goods/ConvertLinkManager.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/service/manger/goods/TaoBaoLinkManager.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/suning/SuningApiUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/suning/SuningApiUtil.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/taobao/HaoDanKuApiUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../facade-goods/src/main/java/com/yeshi/goods/facade/utils/taobao/HaoDanKuApiUtil.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../fanli/src/main/java/com/yeshi/fanli/util/vipshop/VipShopUtil.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../pom.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/.mvn/wrapper/MavenWrapperDownloader.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/.mvn/wrapper/maven-wrapper.jar" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/.mvn/wrapper/maven-wrapper.properties" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/mvnw" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/mvnw.cmd" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/blks/goods/GoodsApplication.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/blks/goods/dao/taobao/TaoBaoCouponCacheDao.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/blks/goods/service/remote/TaoBaoCouponCacheServiceRemote.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/test/java/com/blks/goods/GoodsApplicationTests.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/../utils/src/main/java/org/yeshi/utils/StringUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../utils/src/main/java/org/yeshi/utils/StringUtil.java" afterDir="false" /> </list> <ignored path="$PROJECT_DIR$/target/" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="FUSProjectUsageTrigger"> <session id="1422008948"> <usages-collector id="statistics.lifecycle.project"> <counts> <entry key="project.closed" value="1" /> <entry key="project.open.time.10" value="1" /> <entry key="project.open.time.2" value="1" /> <entry key="project.opened" value="2" /> </counts> </usages-collector> <usages-collector id="statistics.file.extensions.open"> <counts> <entry key="1-SNAPSHOT" value="1" /> <entry key="class" value="1" /> <entry key="java" value="1" /> <entry key="xml" value="1" /> </counts> </usages-collector> <usages-collector id="statistics.file.types.open"> <counts> <entry key="CLASS" value="1" /> <entry key="JAVA" value="1" /> <entry key="UML" value="1" /> <entry key="XML" value="1" /> </counts> </usages-collector> <usages-collector id="statistics.file.extensions.edit"> <counts> <entry key="xml" value="1" /> </counts> </usages-collector> <usages-collector id="statistics.file.types.edit"> <counts> <entry key="XML" value="1" /> </counts> </usages-collector> </session> </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file pinned="false" current-in-tab="true"> <entry file="jar://$MAVEN_REPOSITORY$/com/yeshi/common/0.0.1-SNAPSHOT/common-0.0.1-SNAPSHOT.jar!/com/yeshi/common/MongodbBaseDao.class"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="117"> <caret line="22" column="5" lean-forward="true" selection-start-line="22" selection-start-column="5" selection-end-line="22" selection-end-column="5" /> </state> </provider> </entry> </file> </leaf> </component> <component name="FindInProjectRecents"> <findStrings> <find>mongo</find> </findStrings> </component> <component name="Git.Settings"> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." /> </component> <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> <option value="$PROJECT_DIR$/pom.xml" /> </list> </option> </component> <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> <component name="JsGulpfileManager"> <detection-done>true</detection-done> <sorting>DEFINITION_ORDER</sorting> </component> <component name="MavenImportPreferences"> <option name="generalSettings"> <MavenGeneralSettings> <option name="mavenHome" value="D:/maven/apache-maven-3.3.9" /> </MavenGeneralSettings> </option> <option name="importingSettings"> <MavenImportingSettings> <option name="importAutomatically" value="true" /> </MavenImportingSettings> </option> </component> <component name="MavenProjectNavigator"> <treeState> <expand> <path> <item name="" type="16c1761:MavenProjectsStructure$RootNode" /> <item name="goods" type="9519ce18:MavenProjectsStructure$ProjectNode" /> </path> <path> <item name="" type="16c1761:MavenProjectsStructure$RootNode" /> <item name="goods" type="9519ce18:MavenProjectsStructure$ProjectNode" /> <item name="Lifecycle" type="58874e2:MavenProjectsStructure$LifecycleNode" /> </path> </expand> <select /> </treeState> </component> <component name="MavenRunner"> <option name="skipTests" value="true" /> </component> <component name="ProjectFrameBounds" extendedState="6"> <option name="x" value="-8" /> <option name="y" value="-8" /> <option name="width" value="1874" /> <option name="height" value="1096" /> </component> <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectView"> <navigator proportions="" version="1"> <foldersAlwaysOnTop value="true" /> </navigator> <panes> <pane id="Scope" /> <pane id="ProjectPane"> <subPane> <expand> <path> <item name="goods" type="b2602c69:ProjectViewProjectNode" /> <item name="service-goods" type="462c0819:PsiDirectoryNode" /> </path> </expand> <select /> </subPane> </pane> <pane id="PackagesPane" /> </panes> </component> <component name="PropertiesComponent"> <property name="RequestMappingsPanelOrder0" value="0" /> <property name="RequestMappingsPanelOrder1" value="1" /> <property name="RequestMappingsPanelWidth0" value="75" /> <property name="RequestMappingsPanelWidth1" value="75" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1595582928136" /> <property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> <property name="project.structure.last.edited" value="Modules" /> <property name="project.structure.proportion" value="0.15" /> <property name="project.structure.side.proportion" value="0.19521531" /> <property name="settings.editor.selected.configurable" value="MavenSettings" /> </component> <component name="RunDashboard"> <option name="ruleStates"> <list> <RuleState> <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> </RuleState> <RuleState> <option name="name" value="StatusDashboardGroupingRule" /> </RuleState> </list> </option> </component> <component name="RunManager" selected="JUnit.GoodsApplicationTests.contextLoads"> <configuration name="GoodsApplicationTests.contextLoads" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> <module name="goods" /> <extension name="coverage"> <pattern> <option name="PATTERN" value="com.blks.goods.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> <option name="PACKAGE_NAME" value="com.blks.goods" /> <option name="MAIN_CLASS_NAME" value="com.blks.goods.GoodsApplicationTests" /> <option name="METHOD_NAME" value="contextLoads" /> <option name="TEST_OBJECT" value="method" /> <method v="2"> <option name="Make" enabled="true" /> </method> </configuration> <configuration name="GoodsApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="goods" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.blks.goods.GoodsApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> </configuration> <list> <item itemvalue="Spring Boot.GoodsApplication" /> <item itemvalue="JUnit.GoodsApplicationTests.contextLoads" /> </list> <recent_temporary> <list> <item itemvalue="JUnit.GoodsApplicationTests.contextLoads" /> </list> </recent_temporary> </component> <component name="SvnConfiguration"> <configuration /> </component> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> <changelist id="d8c7d01e-e41b-49c4-a713-aa47cb9aad37" name="Default Changelist" comment="" /> <created>1595581734656</created> <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1595581734656</updated> <workItem from="1595581737449" duration="1180000" /> <workItem from="1595583173631" duration="281000" /> </task> <servers /> </component> <component name="TestHistory"> <history-entry file="GoodsApplicationTests_contextLoads - 2020.07.24 at 17h 18m 19s.xml"> <configuration name="GoodsApplicationTests.contextLoads" configurationId="JUnit" /> </history-entry> </component> <component name="TimeTrackingManager"> <option name="totallyTimeSpent" value="1461000" /> </component> <component name="TodoView"> <todo-panel id="selected-file"> <is-autoscroll-to-source value="true" /> </todo-panel> <todo-panel id="all"> <are-packages-shown value="true" /> <is-autoscroll-to-source value="true" /> </todo-panel> </component> <component name="ToolWindowManager"> <frame x="-8" y="-8" width="1874" height="1096" extended-state="6" /> <editor active="true" /> <layout> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.26130098" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Designer" order="2" /> <window_info id="JRebel" order="3" side_tool="true" /> <window_info id="Image Layers" order="4" /> <window_info id="UI Designer" order="5" /> <window_info id="Favorites" order="6" side_tool="true" /> <window_info id="Capture Tool" order="7" /> <window_info id="Web" order="8" side_tool="true" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.601921" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" weight="0.32977587" /> <window_info anchor="bottom" id="Spring" order="7" weight="0.43863395" /> <window_info anchor="bottom" id="Terminal" order="8" weight="0.32977587" /> <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" /> <window_info anchor="bottom" id="Messages" order="10" /> <window_info anchor="bottom" id="Java Enterprise" order="11" /> <window_info anchor="bottom" id="Database Changes" order="12" show_stripe_button="false" /> <window_info anchor="bottom" id="Version Control" order="13" show_stripe_button="false" /> <window_info anchor="bottom" id="JRebel Executor" order="14" /> <window_info anchor="bottom" id="JRebel Console" order="15" side_tool="true" /> <window_info anchor="right" id="JRebel Setup Guide" visible="true" weight="0.3296582" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" id="Palette" order="3" /> <window_info anchor="right" id="Capture Analysis" order="4" /> <window_info anchor="right" id="Maven Projects" order="5" weight="0.19790518" /> <window_info anchor="right" id="Database" order="6" /> <window_info anchor="right" id="Palette	" order="7" /> <window_info anchor="right" id="Theme Preview" order="8" /> <window_info anchor="right" id="SciView" order="9" weight="0.3296582" /> <window_info anchor="right" id="Bean Validation" order="10" /> </layout> </component> <component name="TypeScriptGeneratedFilesManager"> <option name="version" value="1" /> </component> <component name="VcsContentAnnotationSettings"> <option name="myLimit" value="2678400000" /> </component> <component name="editorHistoryManager"> <entry file="uml://MAVEN/com.blks:goods:0.0.1-SNAPSHOT"> <provider selected="true" editor-type-id="UmlEditorProvider"> <state> <ID>MAVEN</ID> <OriginalElement>com.blks:goods:0.0.1-SNAPSHOT</OriginalElement> <nodes> <node x="" y="">com.blks:goods:0.0.1-SNAPSHOT</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.yeshi:common:jar:0.0.1-SNAPSHOT</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.yeshi:utils:jar:0.0.1-SNAPSHOT</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.yeshi:utils:jar:0.0.1-SNAPSHOT/com.opencsv:opencsv:jar:4.3.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.yeshi:utils:jar:0.0.1-SNAPSHOT/com.opencsv:opencsv:jar:4.3.2/org.apache.commons:commons-text:jar:1.3</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.yeshi:utils:jar:0.0.1-SNAPSHOT/com.opencsv:opencsv:jar:4.3.2/commons-beanutils:commons-beanutils:jar:1.9.3</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.yeshi:utils:jar:0.0.1-SNAPSHOT/com.opencsv:opencsv:jar:4.3.2/org.apache.commons:commons-collections4:jar:4.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.ehcache:ehcache-core:jar:2.6.11</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.ehcache:ehcache-web:jar:2.0.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.ehcache:ehcache-web:jar:2.0.4/net.sf.ehcache:ehcache-core:jar:2.4.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-context:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-context:jar:5.2.3.RELEASE/org.springframework:spring-aop:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-context:jar:5.2.3.RELEASE/org.springframework:spring-beans:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-context:jar:5.2.3.RELEASE/org.springframework:spring-expression:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-webmvc:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-orm:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-orm:jar:5.2.3.RELEASE/org.springframework:spring-jdbc:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-orm:jar:5.2.3.RELEASE/org.springframework:spring-tx:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.quartz-scheduler:quartz:jar:2.3.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.quartz-scheduler:quartz:jar:2.3.2/com.mchange:mchange-commons-java:jar:0.2.15</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework:spring-context-support:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/aspectj:aspectjrt:jar:1.5.3</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.aspectj:aspectjweaver:jar:1.9.5</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/cglib:cglib-nodep:jar:3.2.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.freemarker:freemarker:jar:2.3.29</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/cglib:cglib:jar:2.2.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/cglib:cglib:jar:2.2.2/asm:asm:jar:3.3.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/mysql:mysql-connector-java:jar:8.0.19</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/jstl:jstl:jar:1.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.commons:commons-dbcp2:jar:2.7.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.commons:commons-dbcp2:jar:2.7.0/org.apache.commons:commons-pool2:jar:2.7.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/antlr:antlr:jar:2.7.7</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/dom4j:dom4j:jar:1.6.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/dom4j:dom4j:jar:1.6.1/xml-apis:xml-apis:jar:1.0.b2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-collections:commons-collections:jar:3.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-dbcp:commons-dbcp:jar:1.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-pool:commons-pool:jar:1.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-logging:commons-logging:jar:1.1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/javax.transaction:jta:jar:1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.slf4j:slf4j-api:jar:1.7.30</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.jboss.logging:jboss-logging:jar:3.4.1.Final</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.json-lib:json-lib:jar:jdk15:2.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.json-lib:json-lib:jar:jdk15:2.4/commons-beanutils:commons-beanutils:jar:1.8.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.json-lib:json-lib:jar:jdk15:2.4/commons-collections:commons-collections:jar:3.2.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.json-lib:json-lib:jar:jdk15:2.4/commons-lang:commons-lang:jar:2.5</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.json-lib:json-lib:jar:jdk15:2.4/net.sf.ezmorph:ezmorph:jar:1.0.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sf.json-lib:json-lib:jar:jdk15:2.4/net.sf.ezmorph:ezmorph:jar:1.0.6/commons-lang:commons-lang:jar:2.3</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.jsoup:jsoup:jar:1.9.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.code.gson:gson:jar:2.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-httpclient:commons-httpclient:jar:3.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-httpclient:commons-httpclient:jar:3.1/commons-logging:commons-logging:jar:1.0.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.httpcomponents:httpclient:jar:4.5.10</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.httpcomponents:httpcore:jar:4.4.13</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/javax.mail:mail:jar:1.4.7</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/javax.mail:mail:jar:1.4.7/javax.activation:activation:jar:1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.zxing:core:jar:3.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.zxing:javase:jar:3.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.zxing:javase:jar:3.3.0/com.beust:jcommander:jar:1.48</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.zxing:javase:jar:3.3.0/com.github.jai-imageio:jai-imageio-core:jar:1.3.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.sourceforge.jexcelapi:jxl:jar:2.6.12</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.alibaba:druid:jar:1.1.10</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.poi:poi-ooxml:jar:3.9</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.poi:poi-ooxml:jar:3.9/org.apache.poi:poi:jar:3.9</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.poi:poi-ooxml:jar:3.9/org.apache.poi:poi-ooxml-schemas:jar:3.9</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.poi:poi-ooxml:jar:3.9/org.apache.poi:poi-ooxml-schemas:jar:3.9/org.apache.xmlbeans:xmlbeans:jar:2.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.poi:poi-ooxml:jar:3.9/org.apache.poi:poi-ooxml-schemas:jar:3.9/org.apache.xmlbeans:xmlbeans:jar:2.3.0/stax:stax-api:jar:1.0.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.mybatis:mybatis:jar:3.4.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.mybatis:mybatis-spring:jar:1.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.github.jai-imageio:jai-imageio-core:jar:1.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.qcloud:cos_api:jar:5.2.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.qcloud:cos_api:jar:5.2.4/joda-time:joda-time:jar:2.10.5</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.qcloud:cos_api:jar:5.2.4/com.fasterxml.jackson.core:jackson-databind:jar:2.10.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.qcloud:cos_api:jar:5.2.4/com.fasterxml.jackson.core:jackson-databind:jar:2.10.2/com.fasterxml.jackson.core:jackson-annotations:jar:2.10.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.qcloud:cos_api:jar:5.2.4/com.fasterxml.jackson.core:jackson-databind:jar:2.10.2/com.fasterxml.jackson.core:jackson-core:jar:2.10.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-codec:commons-codec:jar:1.13</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-fileupload:commons-fileupload:jar:1.3.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-fileupload:commons-fileupload:jar:1.3.1/commons-io:commons-io:jar:2.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/commons-io:commons-io:jar:2.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/redis.clients:jedis:jar:3.1.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-redis:jar:2.2.4.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-redis:jar:2.2.4.RELEASE/org.springframework.data:spring-data-keyvalue:jar:2.2.4.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-redis:jar:2.2.4.RELEASE/org.springframework:spring-oxm:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.alibaba:fastjson:jar:1.2.47</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.github.qcloudsms:qcloudsms:jar:1.0.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.github.qcloudsms:qcloudsms:jar:1.0.2/org.json:json:jar:20170516</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.github.qcloudsms:qcloudsms:jar:1.0.2/org.apache.httpcomponents:httpmime:jar:4.5.10</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.mongodb:mongo-java-driver:jar:3.11.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb:jar:2.2.4.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb:jar:2.2.4.RELEASE/org.springframework.data:spring-data-commons:jar:2.2.4.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb-cross-store:jar:1.10.10.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb-cross-store:jar:1.10.10.RELEASE/org.springframework:spring-aspects:jar:5.2.3.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb-cross-store:jar:1.10.10.RELEASE/org.aspectj:aspectjrt:jar:1.9.5</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb-cross-store:jar:1.10.10.RELEASE/org.slf4j:jcl-over-slf4j:jar:1.7.30</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.springframework.data:spring-data-mongodb-log4j:jar:1.10.17.RELEASE</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.googlecode.json-simple:json-simple:jar:1.1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.googlecode.json-simple:json-simple:jar:1.1.1/junit:junit:jar:4.12</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.googlecode.json-simple:json-simple:jar:1.1.1/junit:junit:jar:4.12/org.hamcrest:hamcrest-core:jar:2.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.jdom:jdom:jar:1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-core:jar:4.0.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-core:jar:4.0.6/javax.xml.bind:jaxb-api:jar:2.3.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-core:jar:4.0.6/javax.xml.bind:jaxb-api:jar:2.3.1/javax.activation:javax.activation-api:jar:1.2.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-core:jar:4.0.6/com.sun.xml.bind:jaxb-core:jar:2.1.14</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-core:jar:4.0.6/com.sun.xml.bind:jaxb-impl:jar:2.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-core:jar:4.0.6/javax.activation:activation:jar:1.1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun:aliyun-java-sdk-dysmsapi:jar:1.1.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/com.google.guava:failureaccess:jar:1.0.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/com.google.code.findbugs:jsr305:jar:3.0.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/org.checkerframework:checker-qual:jar:2.5.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/com.google.errorprone:error_prone_annotations:jar:2.2.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/com.google.j2objc:j2objc-annotations:jar:1.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.google.guava:guava:jar:27.0.1-jre/org.codehaus.mojo:animal-sniffer-annotations:jar:1.17</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/net.coobird:thumbnailator:jar:0.4.8</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.aliyun.openservices:ons-client:jar:1.8.0.Final</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.xuxueli:xxl-job-core:jar:2.1.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.xuxueli:xxl-job-core:jar:2.1.2/com.xuxueli:xxl-rpc-core:jar:1.5.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.xuxueli:xxl-job-core:jar:2.1.2/com.xuxueli:xxl-rpc-core:jar:1.5.0/com.caucho:hessian:jar:4.0.63</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.xuxueli:xxl-job-core:jar:2.1.2/com.xuxueli:xxl-rpc-core:jar:1.5.0/com.xuxueli:xxl-registry-client:jar:1.1.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.xuxueli:xxl-job-core:jar:2.1.2/org.codehaus.groovy:groovy:jar:2.5.9</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-core:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-secure-sm:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-x-content:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-x-content:jar:6.8.6/com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.10.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-x-content:jar:6.8.6/com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-x-content:jar:6.8.6/com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.10.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-core:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-analyzers-common:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-backward-codecs:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-grouping:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-highlighter:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-join:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-memory:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-misc:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-queries:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-queryparser:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-sandbox:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-spatial:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-spatial-extras:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-spatial3d:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.apache.lucene:lucene-suggest:jar:7.7.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-cli:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:elasticsearch-cli:jar:6.8.6/net.sf.jopt-simple:jopt-simple:jar:5.0.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/com.carrotsearch:hppc:jar:0.7.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/com.tdunning:t-digest:jar:3.2</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.hdrhistogram:HdrHistogram:jar:2.1.9</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch:elasticsearch:jar:6.8.6/org.elasticsearch:jna:jar:4.5.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.client:elasticsearch-rest-client:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.client:elasticsearch-rest-client:jar:6.8.6/org.apache.httpcomponents:httpasyncclient:jar:4.1.4</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.client:elasticsearch-rest-client:jar:6.8.6/org.apache.httpcomponents:httpcore-nio:jar:4.4.13</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.plugin:parent-join-client:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.plugin:aggs-matrix-stats-client:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.plugin:rank-eval-client:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.plugin:lang-mustache-client:jar:6.8.6</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:6.8.6/org.elasticsearch.plugin:lang-mustache-client:jar:6.8.6/com.github.spullara.mustache.java:compiler:jar:0.9.3</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.logging.log4j:log4j-api:jar:2.12.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.logging.log4j:log4j-core:jar:2.12.1</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.alipay.sdk:alipay-sdk-java:jar:4.9.71.ALL</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.alipay.sdk:alipay-sdk-java:jar:4.9.71.ALL/com.alibaba:fastjson:jar:1.2.50</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/com.alipay.sdk:alipay-sdk-java:jar:4.9.71.ALL/org.bouncycastle:bcprov-jdk15on:jar:1.62</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0/org.apache.rocketmq:rocketmq-common:jar:4.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0/org.apache.rocketmq:rocketmq-common:jar:4.3.0/org.apache.rocketmq:rocketmq-remoting:jar:4.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0/org.apache.rocketmq:rocketmq-common:jar:4.3.0/org.apache.rocketmq:rocketmq-remoting:jar:4.3.0/com.alibaba:fastjson:jar:1.2.29</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0/org.apache.rocketmq:rocketmq-common:jar:4.3.0/org.apache.rocketmq:rocketmq-remoting:jar:4.3.0/org.apache.rocketmq:rocketmq-logging:jar:4.3.0</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0/org.apache.rocketmq:rocketmq-common:jar:4.3.0/org.apache.rocketmq:rocketmq-remoting:jar:4.3.0/io.netty:netty-tcnative-boringssl-static:jar:2.0.28.Final</node> <node x="" y="">com.yeshi:goods.facade:jar:0.0.1-SNAPSHOT/org.apache.rocketmq:rocketmq-client:jar:4.3.0/org.apache.commons:commons-lang3:jar:3.9</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-autoconfigure:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-logging:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-logging:jar:2.2.4.RELEASE/ch.qos.logback:logback-classic:jar:1.2.3</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-logging:jar:2.2.4.RELEASE/ch.qos.logback:logback-classic:jar:1.2.3/ch.qos.logback:logback-core:jar:1.2.3</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-logging:jar:2.2.4.RELEASE/org.apache.logging.log4j:log4j-to-slf4j:jar:2.12.1</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-logging:jar:2.2.4.RELEASE/org.slf4j:jul-to-slf4j:jar:1.7.30</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE/jakarta.annotation:jakarta.annotation-api:jar:1.3.5</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-json:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-json:jar:2.2.4.RELEASE/com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-json:jar:2.2.4.RELEASE/com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-json:jar:2.2.4.RELEASE/com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.4.RELEASE/org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.30</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.4.RELEASE/org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.30</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.4.RELEASE/org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.30</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-validation:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-validation:jar:2.2.4.RELEASE/jakarta.validation:jakarta.validation-api:jar:2.0.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-validation:jar:2.2.4.RELEASE/org.hibernate.validator:hibernate-validator:jar:6.0.18.Final</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-starter-validation:jar:2.2.4.RELEASE/org.hibernate.validator:hibernate-validator:jar:6.0.18.Final/com.fasterxml:classmate:jar:1.5.1</node> <node x="" y="">org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE/org.springframework:spring-web:jar:5.2.3.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-data-mongodb:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-data-mongodb:jar:2.2.4.RELEASE/org.mongodb:mongodb-driver:jar:3.11.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-data-mongodb:jar:2.2.4.RELEASE/org.mongodb:mongodb-driver:jar:3.11.2/org.mongodb:bson:jar:3.11.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-data-mongodb:jar:2.2.4.RELEASE/org.mongodb:mongodb-driver:jar:3.11.2/org.mongodb:mongodb-driver-core:jar:3.11.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-test:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.4.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/com.jayway.jsonpath:json-path:jar:2.4.0</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/com.jayway.jsonpath:json-path:jar:2.4.0/net.minidev:json-smart:jar:2.3</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/com.jayway.jsonpath:json-path:jar:2.4.0/net.minidev:json-smart:jar:2.3/net.minidev:accessors-smart:jar:1.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/com.jayway.jsonpath:json-path:jar:2.4.0/net.minidev:json-smart:jar:2.3/net.minidev:accessors-smart:jar:1.2/org.ow2.asm:asm:jar:5.0.4</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2/jakarta.activation:jakarta.activation-api:jar:1.2.1</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-api:jar:5.5.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-api:jar:5.5.2/org.apiguardian:apiguardian-api:jar:1.1.0</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-api:jar:5.5.2/org.opentest4j:opentest4j:jar:1.2.0</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-api:jar:5.5.2/org.junit.platform:junit-platform-commons:jar:1.5.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-params:jar:5.5.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-engine:jar:5.5.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.junit.jupiter:junit-jupiter:jar:5.5.2/org.junit.jupiter:junit-jupiter-engine:jar:5.5.2/org.junit.platform:junit-platform-engine:jar:1.5.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.mockito:mockito-junit-jupiter:jar:3.1.0</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.assertj:assertj-core:jar:3.13.2</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.hamcrest:hamcrest:jar:2.1</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.mockito:mockito-core:jar:3.1.0</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.mockito:mockito-core:jar:3.1.0/net.bytebuddy:byte-buddy:jar:1.10.6</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.mockito:mockito-core:jar:3.1.0/net.bytebuddy:byte-buddy-agent:jar:1.10.6</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.mockito:mockito-core:jar:3.1.0/org.objenesis:objenesis:jar:2.6</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.skyscreamer:jsonassert:jar:1.5.0</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.skyscreamer:jsonassert:jar:1.5.0/com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.springframework:spring-core:jar:5.2.3.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.springframework:spring-core:jar:5.2.3.RELEASE/org.springframework:spring-jcl:jar:5.2.3.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.springframework:spring-test:jar:5.2.3.RELEASE</node> <node x="" y="">org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE/org.xmlunit:xmlunit-core:jar:2.6.3</node> <node x="" y="">org.apache.dubbo:dubbo:jar:2.7.5</node> <node x="" y="">org.apache.dubbo:dubbo:jar:2.7.5/com.alibaba.spring:spring-context-support:jar:1.0.5</node> <node x="" y="">org.apache.dubbo:dubbo:jar:2.7.5/io.netty:netty-all:jar:4.1.45.Final</node> <node x="" y="">org.apache.dubbo:dubbo:jar:2.7.5/org.yaml:snakeyaml:jar:1.25</node> <node x="" y="">org.apache.zookeeper:zookeeper:jar:3.4.6</node> <node x="" y="">org.apache.zookeeper:zookeeper:jar:3.4.6/jline:jline:jar:0.9.94</node> <node x="" y="">org.apache.curator:curator-framework:jar:2.13.0</node> <node x="" y="">org.apache.curator:curator-framework:jar:2.13.0/org.apache.curator:curator-client:jar:2.13.0</node> <node x="" y="">org.apache.curator:curator-framework:jar:2.13.0/org.apache.curator:curator-client:jar:2.13.0/org.apache.zookeeper:zookeeper:jar:3.4.8</node> <node x="" y="">org.apache.curator:curator-framework:jar:2.13.0/org.apache.curator:curator-client:jar:2.13.0/com.google.guava:guava:jar:16.0.1</node> <node x="" y="">org.apache.curator:curator-recipes:jar:2.13.0</node> <node x="" y="">com.101tec:zkclient:jar:0.10</node> <node x="" y="">com.101tec:zkclient:jar:0.10/org.apache.zookeeper:zookeeper:jar:3.4.6</node> <node x="" y="">org.javassist:javassist:jar:3.18.1-GA</node> </nodes> <notes /> <edges /> <settings layout="Hierarchic Group" zoom="1.0" x="10116.0" y="3705.0" /> <SelectedNodes /> <Categories /> <SCOPE>All</SCOPE> <VISIBILITY>All</VISIBILITY> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/test/java/com/blks/goods/GoodsApplicationTests.java"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="264"> <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/pom.xml"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="198"> <caret line="9" selection-start-line="9" selection-end-line="9" /> </state> </provider> </entry> <entry file="jar://$MAVEN_REPOSITORY$/com/yeshi/common/0.0.1-SNAPSHOT/common-0.0.1-SNAPSHOT.jar!/com/yeshi/common/MongodbBaseDao.class"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="117"> <caret line="22" column="5" lean-forward="true" selection-start-line="22" selection-start-column="5" selection-end-line="22" selection-end-column="5" /> </state> </provider> </entry> </component> <component name="masterDetails"> <states> <state key="ArtifactsStructureConfigurable.UI"> <settings> <artifact-editor /> <last-edited>goods:war</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.2" /> <option value="0.5" /> </list> </option> </splitter-proportions> </settings> </state> <state key="FacetStructureConfigurable.UI"> <settings> <last-edited>Spring</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.2" /> </list> </option> </splitter-proportions> </settings> </state> <state key="GlobalLibrariesConfigurable.UI"> <settings> <last-edited>Python 3.7 interpreter library</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.2" /> </list> </option> </splitter-proportions> </settings> </state> <state key="JdkListConfigurable.UI"> <settings> <last-edited>1.8</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.2" /> </list> </option> </splitter-proportions> </settings> </state> <state key="ModuleStructureConfigurable.UI"> <settings> <last-edited>goods</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.19521531" /> </list> </option> </splitter-proportions> </settings> </state> <state key="ProjectJDKs.UI"> <settings> <last-edited>1.8</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.2" /> </list> </option> </splitter-proportions> </settings> </state> <state key="ProjectLibrariesConfigurable.UI"> <settings> <last-edited>Maven: com.alibaba.spring:spring-context-support:1.0.5</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.64827585" /> </list> </option> </splitter-proportions> </settings> </state> </states> </component> </project> service-goods/.mvn/wrapper/MavenWrapperDownloader.java
File was deleted service-goods/.mvn/wrapper/maven-wrapper.jarBinary files differ
service-goods/.mvn/wrapper/maven-wrapper.properties
File was deleted service-goods/mvnw
File was deleted service-goods/mvnw.cmd
File was deleted service-goods/pom.xml
File was deleted service-goods/src/main/java/com/blks/goods/GoodsApplication.java
File was deleted service-goods/src/main/java/com/blks/goods/dao/taobao/TaoBaoCouponCacheDao.java
File was deleted service-goods/src/main/java/com/blks/goods/service/remote/TaoBaoCouponCacheServiceRemote.java
File was deleted service-goods/src/main/resources/application.yml
File was deleted service-goods/src/test/java/com/blks/goods/GoodsApplicationTests.java
File was deleted utils/src/main/java/org/yeshi/utils/StringUtil.java
@@ -6,6 +6,7 @@ import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -299,4 +300,31 @@ return lArr; } public static String concat(List list, String sperator) { if (list == null) return null; String str = ""; for (Object obj : list) { str += obj + sperator; } if (str.endsWith(sperator)) str = str.substring(0, str.length() - sperator.length()); return str; } public static String concat(Object[] array, String sperator) { if (array == null) return null; String str = ""; for (int i = 0; i < array.length; i++) { str += array[i] + sperator; } if (str.endsWith(sperator)) str = str.substring(0, str.length() - sperator.length()); return str; } }