Repository: andy521/Verify Branch: master Commit: 712a9dd67559 Files: 518 Total size: 2.0 MB Directory structure: gitextract_qr3pbyvn/ ├── .idea/ │ ├── compiler.xml │ ├── encodings.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── libraries/ │ │ ├── Maven__antlr_antlr_2_7_7.xml │ │ ├── Maven__ch_qos_logback_logback_classic_1_2_3.xml │ │ ├── Maven__ch_qos_logback_logback_core_1_2_3.xml │ │ ├── Maven__cn_hutool_hutool_all_4_2_1.xml │ │ ├── Maven__cn_hutool_hutool_all_4_5_1.xml │ │ ├── Maven__com_alibaba_boot_dubbo_spring_boot_autoconfigure_0_2_0.xml │ │ ├── Maven__com_alibaba_boot_dubbo_spring_boot_starter_0_2_0.xml │ │ ├── Maven__com_alibaba_dubbo_2_6_2.xml │ │ ├── Maven__com_alibaba_fastjson_1_2_52.xml │ │ ├── Maven__com_baomidou_mybatis_plus_3_0_6.xml │ │ ├── Maven__com_baomidou_mybatis_plus_annotation_3_0_6.xml │ │ ├── Maven__com_baomidou_mybatis_plus_boot_starter_3_0_6.xml │ │ ├── Maven__com_baomidou_mybatis_plus_core_3_0_6.xml │ │ ├── Maven__com_baomidou_mybatis_plus_extension_3_0_6.xml │ │ ├── Maven__com_baomidou_mybatis_plus_generator_3_0_6.xml │ │ ├── Maven__com_baomidou_mybatis_plus_support_2_1_9.xml │ │ ├── Maven__com_fasterxml_classmate_1_3_1.xml │ │ ├── Maven__com_fasterxml_classmate_1_3_4.xml │ │ ├── Maven__com_fasterxml_classmate_1_4_0.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_7.xml │ │ ├── Maven__com_github_jsqlparser_jsqlparser_1_2.xml │ │ ├── Maven__com_google_guava_guava_16_0_1.xml │ │ ├── Maven__com_jayway_jsonpath_json_path_2_4_0.xml │ │ ├── Maven__com_rabbitmq_amqp_client_5_4_3.xml │ │ ├── Maven__com_sun_mail_javax_mail_1_6_2.xml │ │ ├── Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml │ │ ├── Maven__com_zaxxer_HikariCP_2_7_2.xml │ │ ├── Maven__com_zaxxer_HikariCP_2_7_9.xml │ │ ├── Maven__com_zaxxer_HikariCP_3_2_0.xml │ │ ├── Maven__commons_beanutils_commons_beanutils_1_9_3.xml │ │ ├── Maven__commons_codec_commons_codec_1_11.xml │ │ ├── Maven__commons_collections_commons_collections_3_2_2.xml │ │ ├── Maven__io_lettuce_lettuce_core_5_0_5_RELEASE.xml │ │ ├── Maven__io_netty_netty_3_10_5_Final.xml │ │ ├── Maven__io_netty_netty_buffer_4_1_29_Final.xml │ │ ├── Maven__io_netty_netty_codec_4_1_29_Final.xml │ │ ├── Maven__io_netty_netty_common_4_1_29_Final.xml │ │ ├── Maven__io_netty_netty_handler_4_1_29_Final.xml │ │ ├── Maven__io_netty_netty_resolver_4_1_29_Final.xml │ │ ├── Maven__io_netty_netty_transport_4_1_29_Final.xml │ │ ├── Maven__io_projectreactor_reactor_core_3_1_10_RELEASE.xml │ │ ├── Maven__javax_activation_activation_1_1.xml │ │ ├── Maven__javax_activation_javax_activation_api_1_2_0.xml │ │ ├── Maven__javax_annotation_javax_annotation_api_1_3_2.xml │ │ ├── Maven__javax_persistence_javax_persistence_api_2_2.xml │ │ ├── Maven__javax_transaction_javax_transaction_api_1_3.xml │ │ ├── Maven__javax_validation_validation_api_1_1_0_Final.xml │ │ ├── Maven__javax_validation_validation_api_2_0_1_Final.xml │ │ ├── Maven__javax_xml_bind_jaxb_api_2_3_1.xml │ │ ├── Maven__jline_jline_0_9_94.xml │ │ ├── Maven__junit_junit_4_12.xml │ │ ├── Maven__mysql_mysql_connector_java_5_1_40.xml │ │ ├── Maven__net_bytebuddy_byte_buddy_1_7_11.xml │ │ ├── Maven__net_bytebuddy_byte_buddy_1_9_3.xml │ │ ├── Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml │ │ ├── Maven__net_bytebuddy_byte_buddy_agent_1_9_3.xml │ │ ├── Maven__net_minidev_accessors_smart_1_2.xml │ │ ├── Maven__net_minidev_json_smart_2_3.xml │ │ ├── Maven__net_sf_ehcache_ehcache_core_2_6_11.xml │ │ ├── Maven__org_apache_commons_commons_lang3_3_7.xml │ │ ├── Maven__org_apache_commons_commons_lang3_3_8_1.xml │ │ ├── Maven__org_apache_commons_commons_pool2_2_5_0.xml │ │ ├── Maven__org_apache_curator_curator_client_2_12_0.xml │ │ ├── Maven__org_apache_curator_curator_framework_2_12_0.xml │ │ ├── Maven__org_apache_curator_curator_recipes_2_11_0.xml │ │ ├── Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml │ │ ├── Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml │ │ ├── Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml │ │ ├── Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml │ │ ├── Maven__org_apache_shiro_shiro_cache_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_config_core_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_config_ogdl_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_core_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_crypto_cipher_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_crypto_core_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_crypto_hash_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_ehcache_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_event_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_lang_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_spring_1_4_0.xml │ │ ├── Maven__org_apache_shiro_shiro_web_1_4_0.xml │ │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_34.xml │ │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_34.xml │ │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_34.xml │ │ ├── Maven__org_apache_tomcat_tomcat_annotations_api_8_5_34.xml │ │ ├── Maven__org_apache_zookeeper_zookeeper_3_4_9.xml │ │ ├── Maven__org_aspectj_aspectjweaver_1_8_13.xml │ │ ├── Maven__org_aspectj_aspectjweaver_1_9_2.xml │ │ ├── Maven__org_assertj_assertj_core_3_11_1.xml │ │ ├── Maven__org_assertj_assertj_core_3_9_1.xml │ │ ├── Maven__org_crazycake_shiro_redis_2_4_2_1_RELEASE.xml │ │ ├── Maven__org_dom4j_dom4j_2_1_1.xml │ │ ├── Maven__org_hamcrest_hamcrest_core_1_3.xml │ │ ├── Maven__org_hamcrest_hamcrest_library_1_3.xml │ │ ├── Maven__org_hibernate_common_hibernate_commons_annotations_5_0_4_Final.xml │ │ ├── Maven__org_hibernate_hibernate_core_5_3_7_Final.xml │ │ ├── Maven__org_hibernate_hibernate_validator_5_4_1_Final.xml │ │ ├── Maven__org_hibernate_validator_hibernate_validator_6_0_13_Final.xml │ │ ├── Maven__org_javassist_javassist_3_20_0_GA.xml │ │ ├── Maven__org_javassist_javassist_3_23_1_GA.xml │ │ ├── Maven__org_jboss_jandex_2_0_5_Final.xml │ │ ├── Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml │ │ ├── Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml │ │ ├── Maven__org_jboss_netty_netty_3_2_5_Final.xml │ │ ├── Maven__org_mapstruct_mapstruct_jdk8_1_2_0_Final.xml │ │ ├── Maven__org_mockito_mockito_core_2_15_0.xml │ │ ├── Maven__org_mockito_mockito_core_2_23_0.xml │ │ ├── Maven__org_mybatis_generator_mybatis_generator_core_1_3_7.xml │ │ ├── Maven__org_mybatis_mybatis_3_4_5.xml │ │ ├── Maven__org_mybatis_mybatis_3_4_6.xml │ │ ├── Maven__org_mybatis_mybatis_spring_1_3_1.xml │ │ ├── Maven__org_mybatis_mybatis_spring_1_3_2.xml │ │ ├── Maven__org_objenesis_objenesis_2_6.xml │ │ ├── Maven__org_ow2_asm_asm_5_0_4.xml │ │ ├── Maven__org_projectlombok_lombok_1_16_18.xml │ │ ├── Maven__org_reactivestreams_reactive_streams_1_0_2.xml │ │ ├── Maven__org_skyscreamer_jsonassert_1_5_0.xml │ │ ├── Maven__org_slf4j_jul_to_slf4j_1_7_25.xml │ │ ├── Maven__org_slf4j_slf4j_api_1_7_25.xml │ │ ├── Maven__org_springframework_amqp_spring_amqp_2_0_8_RELEASE.xml │ │ ├── Maven__org_springframework_amqp_spring_rabbit_2_0_8_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_configuration_processor_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_configuration_processor_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_amqp_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_aop_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_data_redis_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_json_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_logging_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_logging_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_test_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_test_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_web_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_test_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_test_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_6_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_data_spring_data_commons_2_0_11_RELEASE.xml │ │ ├── Maven__org_springframework_data_spring_data_commons_2_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_data_spring_data_jpa_2_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_data_spring_data_keyvalue_2_0_11_RELEASE.xml │ │ ├── Maven__org_springframework_data_spring_data_redis_2_0_11_RELEASE.xml │ │ ├── Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_aop_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_aop_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_aspects_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_beans_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_beans_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_context_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_context_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_context_support_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_core_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_core_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_expression_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_expression_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_jcl_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_jcl_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_jdbc_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_jdbc_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_messaging_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_orm_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_oxm_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_test_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_test_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_tx_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_tx_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_web_5_0_10_RELEASE.xml │ │ ├── Maven__org_springframework_spring_webmvc_5_0_10_RELEASE.xml │ │ ├── Maven__org_xmlunit_xmlunit_core_2_5_1.xml │ │ ├── Maven__org_xmlunit_xmlunit_core_2_6_2.xml │ │ ├── Maven__org_yaml_snakeyaml_1_19.xml │ │ ├── Maven__org_yaml_snakeyaml_1_23.xml │ │ └── Maven__redis_clients_jedis_2_9_0.xml │ ├── misc.xml │ ├── modules.xml │ ├── uiDesigner.xml │ ├── vcs.xml │ └── verifymaster.iml ├── README.md ├── admin/ │ ├── .gitignore │ ├── .mvn/ │ │ └── wrapper/ │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── log/ │ │ └── admin.log │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── orange/ │ │ │ └── verify/ │ │ │ └── admin/ │ │ │ ├── AdminApplication.java │ │ │ ├── config/ │ │ │ │ ├── MyBatisPlusConfiguration.java │ │ │ │ ├── MyMetaObjectHandler.java │ │ │ │ ├── RabbitMqConfig.java │ │ │ │ ├── RedisConfig.java │ │ │ │ └── ZookeeperLockConfig.java │ │ │ ├── impl/ │ │ │ │ ├── AccountImpl.java │ │ │ │ ├── AccountLoginLogImpl.java │ │ │ │ ├── AccountRegisterLogImpl.java │ │ │ │ ├── BaiduMapApiImpl.java │ │ │ │ ├── CardImpl.java │ │ │ │ ├── CardTypeImpl.java │ │ │ │ ├── EmailAccountImpl.java │ │ │ │ ├── InterfaceManagementImpl.java │ │ │ │ ├── SoftImpl.java │ │ │ │ ├── SoftLeaveMessageImpl.java │ │ │ │ ├── SoftVersionsImpl.java │ │ │ │ └── UserImpl.java │ │ │ ├── mapper/ │ │ │ │ ├── AccountLoginLogMapper.java │ │ │ │ ├── AccountMapper.java │ │ │ │ ├── AccountRegisterLogMapper.java │ │ │ │ ├── BaiduMapApiMapper.java │ │ │ │ ├── CardMapper.java │ │ │ │ ├── CardTypeMapper.java │ │ │ │ ├── EmailAccountMapper.java │ │ │ │ ├── SoftLeaveMessageMapper.java │ │ │ │ ├── SoftMapper.java │ │ │ │ ├── SoftVersionsMapper.java │ │ │ │ └── UserMapper.java │ │ │ ├── rabbitmq/ │ │ │ │ ├── EmailReceive.java │ │ │ │ └── bean/ │ │ │ │ └── LeaveMessage.java │ │ │ ├── scheduler/ │ │ │ │ └── LogDeleteScheduler.java │ │ │ ├── service/ │ │ │ │ └── BaiduMapApiServiceL.java │ │ │ └── transition/ │ │ │ └── Transition.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test/ │ └── java/ │ └── com/ │ └── orange/ │ └── verify/ │ └── admin/ │ ├── AdminApplicationTests.java │ ├── RsaTest.java │ └── TimeTest.java ├── admin-web/ │ ├── .gitignore │ ├── .mvn/ │ │ └── wrapper/ │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── log/ │ │ └── adminweb.log │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── orange/ │ │ │ └── verify/ │ │ │ └── adminweb/ │ │ │ ├── AdminWebApplication.java │ │ │ ├── annotation/ │ │ │ │ ├── Open.java │ │ │ │ ├── ParameterError.java │ │ │ │ ├── RspHandle.java │ │ │ │ └── RspHandleAspect.java │ │ │ ├── config/ │ │ │ │ ├── RedisConfig.java │ │ │ │ ├── ShiroConfig.java │ │ │ │ ├── ShiroFilterConfig.java │ │ │ │ └── ValidatorConfig.java │ │ │ ├── controller/ │ │ │ │ ├── AccountController.java │ │ │ │ ├── AccountLoginLogController.java │ │ │ │ ├── AccountRegisterLogController.java │ │ │ │ ├── BaiduMapApiController.java │ │ │ │ ├── BaseController.java │ │ │ │ ├── CardController.java │ │ │ │ ├── CardTypeController.java │ │ │ │ ├── EmailAccountController.java │ │ │ │ ├── InterfaceManagementController.java │ │ │ │ ├── SoftController.java │ │ │ │ ├── SoftLeaveMessageController.java │ │ │ │ ├── SoftVersionsController.java │ │ │ │ └── UserController.java │ │ │ ├── model/ │ │ │ │ ├── Response.java │ │ │ │ └── ResponseCode.java │ │ │ ├── realm/ │ │ │ │ └── CustomRealm.java │ │ │ └── runner/ │ │ │ └── InterfaceRunner.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test/ │ └── java/ │ └── com/ │ └── orange/ │ └── verify/ │ └── adminweb/ │ ├── AdminWebApplicationTests.java │ └── Time.java ├── admin-web-page/ │ ├── .babelrc │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .postcssrc.js │ ├── .travis.yml │ ├── LICENSE │ ├── README-zh.md │ ├── build/ │ │ ├── build.js │ │ ├── check-versions.js │ │ ├── utils.js │ │ ├── vue-loader.conf.js │ │ ├── webpack.base.conf.js │ │ ├── webpack.dev.conf.js │ │ └── webpack.prod.conf.js │ ├── config/ │ │ ├── dev.env.js │ │ ├── index.js │ │ └── prod.env.js │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.vue │ │ ├── api/ │ │ │ ├── login.js │ │ │ └── table.js │ │ ├── components/ │ │ │ ├── Breadcrumb/ │ │ │ │ └── index.vue │ │ │ ├── Hamburger/ │ │ │ │ └── index.vue │ │ │ └── SvgIcon/ │ │ │ └── index.vue │ │ ├── icons/ │ │ │ ├── index.js │ │ │ └── svgo.yml │ │ ├── main.js │ │ ├── permission.js │ │ ├── router/ │ │ │ └── index.js │ │ ├── store/ │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── modules/ │ │ │ ├── app.js │ │ │ └── user.js │ │ ├── styles/ │ │ │ ├── btn.scss │ │ │ ├── element-ui.scss │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── sidebar.scss │ │ │ ├── transition.scss │ │ │ └── variables.scss │ │ ├── utils/ │ │ │ ├── auth.js │ │ │ ├── index.js │ │ │ ├── request.js │ │ │ ├── time.js │ │ │ └── validate.js │ │ └── views/ │ │ ├── 404.vue │ │ ├── account/ │ │ │ └── account_list.vue │ │ ├── card/ │ │ │ ├── card_form.vue │ │ │ ├── card_list.vue │ │ │ ├── card_type_form.vue │ │ │ └── card_type_list.vue │ │ ├── config/ │ │ │ ├── baidu_map_api_form.vue │ │ │ ├── email_account_form.vue │ │ │ └── email_account_list.vue │ │ ├── dashboard/ │ │ │ └── index.vue │ │ ├── interface/ │ │ │ └── interface_list.vue │ │ ├── layout/ │ │ │ ├── Layout.vue │ │ │ ├── components/ │ │ │ │ ├── AppMain.vue │ │ │ │ ├── Navbar.vue │ │ │ │ ├── Sidebar/ │ │ │ │ │ ├── Item.vue │ │ │ │ │ ├── Link.vue │ │ │ │ │ ├── SidebarItem.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── TagsView.vue │ │ │ │ └── index.js │ │ │ └── mixin/ │ │ │ └── ResizeHandler.js │ │ ├── log/ │ │ │ ├── soft_login_log_list.vue │ │ │ ├── soft_map.vue │ │ │ └── soft_register_log_list.vue │ │ ├── login/ │ │ │ └── index.vue │ │ └── soft/ │ │ ├── soft_form.vue │ │ ├── soft_leave_list.vue │ │ ├── soft_list.vue │ │ └── soft_versions_form.vue │ └── static/ │ └── .gitkeep ├── api/ │ ├── .gitignore │ ├── .mvn/ │ │ └── wrapper/ │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── orange/ │ │ └── verify/ │ │ └── api/ │ │ ├── bean/ │ │ │ ├── Account.java │ │ │ ├── AccountLoginLog.java │ │ │ ├── AccountRegisterLog.java │ │ │ ├── BaiduMapApi.java │ │ │ ├── Card.java │ │ │ ├── CardType.java │ │ │ ├── EmailAccount.java │ │ │ ├── InterfaceManagement.java │ │ │ ├── Soft.java │ │ │ ├── SoftLeaveMessage.java │ │ │ ├── SoftVersions.java │ │ │ └── User.java │ │ ├── redis/ │ │ │ └── RedisKeyConstant.java │ │ ├── sc/ │ │ │ ├── AccountBlackList.java │ │ │ ├── CardClosure.java │ │ │ ├── CardSellStatus.java │ │ │ ├── CardTypeUnit.java │ │ │ ├── CardUseStatus.java │ │ │ ├── EmailAccountIsUse.java │ │ │ ├── InterfaceManagementIpHandle.java │ │ │ ├── InterfaceManagementVisit.java │ │ │ ├── SoftChangeStrategy.java │ │ │ ├── SoftDosingStrategy.java │ │ │ ├── SoftEmailNotificatio.java │ │ │ ├── SoftRegisterStatus.java │ │ │ ├── SoftServiceStatus.java │ │ │ └── SoftVersionsNovatioNecessaria.java │ │ ├── service/ │ │ │ ├── AccountLoginLogService.java │ │ │ ├── AccountRegisterLogService.java │ │ │ ├── AccountService.java │ │ │ ├── BaiduMapApiService.java │ │ │ ├── CardService.java │ │ │ ├── CardTypeService.java │ │ │ ├── EmailAccountService.java │ │ │ ├── InterfaceManagementService.java │ │ │ ├── SoftLeaveMessageService.java │ │ │ ├── SoftService.java │ │ │ ├── SoftVersionsService.java │ │ │ └── UserService.java │ │ ├── sr/ │ │ │ ├── AccountImplBindingCardEnum.java │ │ │ ├── AccountImplBindingCodeEnum.java │ │ │ ├── AccountImplGetPublicKeyEnum.java │ │ │ ├── AccountImplLoginEnum.java │ │ │ ├── AccountImplRegisterEnum.java │ │ │ ├── AccountImplUpdatePasswordEnum.java │ │ │ ├── ServiceResult.java │ │ │ ├── SoftImplGetSoftDescEnum.java │ │ │ └── SoftLeaveMessageImplCreateEnum.java │ │ └── vo/ │ │ ├── AccountLoginLogVo.java │ │ ├── AccountRegisterLogVo.java │ │ ├── AccountVo.java │ │ ├── CardTypeVo.java │ │ ├── CardVo.java │ │ ├── SoftLeaveMessageVo.java │ │ ├── SoftVersionsVo.java │ │ ├── SoftVo.java │ │ └── open/ │ │ ├── AccountBindingCardVo.java │ │ ├── AccountBindingCodeVo.java │ │ ├── AccountLoginVo.java │ │ ├── AccountRegisterVo.java │ │ ├── AccountUpdatePasswordVo.java │ │ ├── AccountVerificationCodeVo.java │ │ ├── CardTimeLimitVo.java │ │ ├── SoftGetSoftDescVo.java │ │ ├── SoftLeaveMeesageSubmitVo.java │ │ └── SoftVersionsVo.java │ └── resources/ │ └── application.properties ├── builder/ │ ├── .gitignore │ ├── .mvn/ │ │ └── wrapper/ │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── orange/ │ │ │ └── verify/ │ │ │ ├── api/ │ │ │ │ ├── Account.java │ │ │ │ ├── AccountLoginLog.java │ │ │ │ ├── AccountRegisterLog.java │ │ │ │ ├── BaiduMapApi.java │ │ │ │ ├── Card.java │ │ │ │ ├── CardType.java │ │ │ │ ├── EmailAccount.java │ │ │ │ ├── Soft.java │ │ │ │ ├── SoftLeaveMessage.java │ │ │ │ ├── SoftVersions.java │ │ │ │ └── User.java │ │ │ ├── builder/ │ │ │ │ ├── BuilderApplication.java │ │ │ │ ├── Generator.java │ │ │ │ └── config/ │ │ │ │ ├── EmptyCommentGenerator.java │ │ │ │ └── MySQLCommentGenerator.java │ │ │ └── common/ │ │ │ └── BaseEntity.java │ │ └── resources/ │ │ ├── application.properties │ │ └── verify-generator-config.xml │ └── test/ │ └── java/ │ └── com/ │ └── orange/ │ └── verify/ │ └── builder/ │ └── BuilderApplicationTests.java ├── common/ │ ├── .gitignore │ ├── .mvn/ │ │ └── wrapper/ │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── orange/ │ └── verify/ │ └── common/ │ ├── email/ │ │ └── MailUtil.java │ ├── ip/ │ │ ├── BaiduIp.java │ │ └── IpUtil.java │ └── rsa/ │ └── RsaUtil.java ├── pom.xml ├── sdk/ │ └── 易语言/ │ ├── HashMap类.ec │ ├── demo.bak │ ├── demo.e │ ├── encrypt.js │ ├── ui/ │ │ ├── .idea/ │ │ │ ├── misc.xml │ │ │ ├── modules.xml │ │ │ ├── ui.iml │ │ │ └── workspace.xml │ │ ├── bootstrap/ │ │ │ ├── css/ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ └── bootstrap.css │ │ │ └── js/ │ │ │ ├── bootstrap.js │ │ │ └── npm.js │ │ ├── common/ │ │ │ ├── alert.js │ │ │ ├── carousel.js │ │ │ └── choice.js │ │ ├── jquery/ │ │ │ ├── jquery.mloading.css │ │ │ └── jquery.mloading.js │ │ ├── layui/ │ │ │ ├── css/ │ │ │ │ ├── layui.css │ │ │ │ ├── layui.mobile.css │ │ │ │ └── modules/ │ │ │ │ ├── code.css │ │ │ │ ├── laydate/ │ │ │ │ │ └── default/ │ │ │ │ │ └── laydate.css │ │ │ │ └── layer/ │ │ │ │ └── default/ │ │ │ │ └── layer.css │ │ │ ├── lay/ │ │ │ │ └── modules/ │ │ │ │ ├── carousel.js │ │ │ │ ├── code.js │ │ │ │ ├── colorpicker.js │ │ │ │ ├── element.js │ │ │ │ ├── flow.js │ │ │ │ ├── form.js │ │ │ │ ├── jquery.js │ │ │ │ ├── laydate.js │ │ │ │ ├── layedit.js │ │ │ │ ├── layer.js │ │ │ │ ├── laypage.js │ │ │ │ ├── laytpl.js │ │ │ │ ├── mobile.js │ │ │ │ ├── rate.js │ │ │ │ ├── slider.js │ │ │ │ ├── table.js │ │ │ │ ├── tree.js │ │ │ │ ├── upload.js │ │ │ │ └── util.js │ │ │ ├── layui.all.js │ │ │ └── layui.js │ │ ├── service.html │ │ └── update.html │ ├── verify.bak │ ├── verify.e │ ├── verify.ec │ ├── 乐易V8.ec │ └── 精易模块6.1.ec └── verifymaster.iml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .idea/compiler.xml ================================================ ================================================ FILE: .idea/encodings.xml ================================================ ================================================ FILE: .idea/inspectionProfiles/Project_Default.xml ================================================ ================================================ FILE: .idea/libraries/Maven__antlr_antlr_2_7_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__cn_hutool_hutool_all_4_2_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__cn_hutool_hutool_all_4_5_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_alibaba_boot_dubbo_spring_boot_autoconfigure_0_2_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_alibaba_boot_dubbo_spring_boot_starter_0_2_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_alibaba_dubbo_2_6_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_alibaba_fastjson_1_2_52.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_3_0_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_0_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_0_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_0_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_0_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_0_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_baomidou_mybatis_plus_support_2_1_9.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_classmate_1_3_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_google_guava_guava_16_0_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_rabbitmq_amqp_client_5_4_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_sun_mail_javax_mail_1_6_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_zaxxer_HikariCP_2_7_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml ================================================ ================================================ FILE: .idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__commons_codec_commons_codec_1_11.xml ================================================ ================================================ FILE: .idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_lettuce_lettuce_core_5_0_5_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_3_10_5_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_buffer_4_1_29_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_codec_4_1_29_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_common_4_1_29_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_handler_4_1_29_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_resolver_4_1_29_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_netty_netty_transport_4_1_29_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__io_projectreactor_reactor_core_3_1_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_activation_activation_1_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_transaction_javax_transaction_api_1_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__jline_jline_0_9_94.xml ================================================ ================================================ FILE: .idea/libraries/Maven__junit_junit_4_12.xml ================================================ ================================================ FILE: .idea/libraries/Maven__mysql_mysql_connector_java_5_1_40.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_9_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_minidev_json_smart_2_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__net_sf_ehcache_ehcache_core_2_6_11.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_commons_commons_lang3_3_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_commons_commons_lang3_3_8_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_commons_commons_pool2_2_5_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_curator_curator_client_2_12_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_curator_curator_framework_2_12_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_curator_curator_recipes_2_11_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_cache_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_core_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_ehcache_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_event_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_lang_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_spring_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_shiro_shiro_web_1_4_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_34.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_34.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_34.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_34.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_apache_zookeeper_zookeeper_3_4_9.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_assertj_assertj_core_3_11_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_crazycake_shiro_redis_2_4_2_1_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_dom4j_dom4j_2_1_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_4_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_hibernate_hibernate_core_5_3_7_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_hibernate_hibernate_validator_5_4_1_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_13_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_javassist_javassist_3_23_1_GA.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_jboss_jandex_2_0_5_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_jboss_netty_netty_3_2_5_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mapstruct_mapstruct_jdk8_1_2_0_Final.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mockito_mockito_core_2_23_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mybatis_generator_mybatis_generator_core_1_3_7.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mybatis_mybatis_3_4_5.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_objenesis_objenesis_2_6.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_projectlombok_lombok_1_16_18.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_0_8_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_0_8_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_6_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_0_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_data_spring_data_commons_2_0_11_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_data_spring_data_commons_2_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_0_11_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_data_spring_data_redis_2_0_11_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_aop_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_aop_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_aspects_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_beans_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_beans_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_context_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_context_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_context_support_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_core_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_core_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_expression_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_expression_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_jcl_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_jcl_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_jdbc_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_jdbc_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_messaging_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_orm_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_oxm_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_test_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_test_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_tx_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_tx_5_1_2_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_web_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_springframework_spring_webmvc_5_0_10_RELEASE.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_2.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml ================================================ ================================================ FILE: .idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml ================================================ ================================================ FILE: .idea/libraries/Maven__redis_clients_jedis_2_9_0.xml ================================================ ================================================ FILE: .idea/misc.xml ================================================ ================================================ FILE: .idea/modules.xml ================================================ ================================================ FILE: .idea/uiDesigner.xml ================================================ ================================================ FILE: .idea/vcs.xml ================================================ ================================================ FILE: .idea/verifymaster.iml ================================================ ================================================ FILE: README.md ================================================ # Verify 1.6 #### 项目介绍 **专门为中小软件提供的开源JAVA网络验证系统** **快速让自己开发的软件拥有以下功能:** **目前的功能主要有:注册,登陆,绑定卡密,绑定机器,取软件版本,软件留言,修改密码,取卡密期限,rsa算法加密登陆,取软件信息** **后台页面6大模块** 1. 接口管理 2. 软件管理 3. 日志管理 4. 充值卡管理 5. 用户管理 6. 配置管理 **系统亮点:** * 开放接口全部可以后台配置,进行ip限流配置管理,限制接口在 xx 分钟内容只能访问 xx 次 * 开放接口全部进行了严格认证处理 * 用户登陆注册日志看得见!图表展示,表格数据展示 * 软件用户全可控,系统后台配置一下就行 * 开源、稳定、安全的软件加密授权系统,让软件开发更简单、迅速 #### 软件架构 **项目采用spring boot + vue前后端分离架构开发,Idea ide开发** 1. admin(为admin-web提供服务,service,mapper层处理) 2. admin-web(提供给外部访问接口,controller) 3. api(提供给各个服务的vo,bean等等使用) 4. commom(自写的工具包) 5. buider(数据库和java bean一键生成的项目) 6. admin-web-page(后台管理页面(vue编写)) 7. sdk(各大语言的sdk(1.易语言sdk)) **主要采用的技术有:** 1. dubbo(项目rpc通信) 2. mybatis plus(mapper访问层) 3. hibernate(用于生成数据库和验证vo) 4. shiro(登陆验证) 5. 前端采用(vue - element ui) 6. hutool(工具包) 7. redis(用作缓存) 8. mysql 9. rabbit mq队列(用于邮箱发送邮件) 10. mapstruct(对象之间的转换) 11. lombok(用于类自动生成get set方法) 12. zookeeper(用于dubbo和分布锁使用) 13. hikari(数据库连接) #### 版本日志 * 1.6 优化代码,修复已知问题,优化易语言demo * 1.5 优化代码 增加运行日志,增加开放接口后台管理,增强软件日志,优化易语言demo,优化后台页面增加loading * 1.3 修复易语言 demo和sdk,修复sql语句,增加批量删除卡密 * 1.2 修复充值,易语言demo更新,修复vo验证字段,修复RspHandleAspect(优化ip访问控制,限制接口在 xx 分钟内容只能访问 xx 次),优化后台页面 * 1.1 增加注册验证码,注册增加分布式锁,修复大量bug #### 使用说明 1. 系统有个邮箱的概念,当别人发送软件留言的时候,可以通知到我们设置的邮箱号上面,我们设置的邮箱号是接收端,发送端是自己设置账号,重点来了 邮箱号的密码,不是那个QQ密码,QQ邮箱要开启POP3/SMTP服务,然后拿到授权码,那个授权码就是密码了 2. 系统对接了百度地图开放平台,用于拿到用户的ip地理位置 百度开放平台:http://lbsyun.baidu.com/apiconsole/key 进去创建应用,然后拿到那个ak,进入系统后台,设置下就可以了 3. 系统管理的账户密码自行到mysql 数据库中自行录入 4. builder项目运行主类就可以生成数据库了,记得先创建数据库,然后修改下application.properties配置,再运行 5. 项目使用了lombok,请先用idea安好lombok插件 #### 图片参考 1. 后台系统页面 ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-44-43.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-45-09.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-45-25.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-45-45.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-45-57.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-46-06.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2018-12-27_23-46-18.png) 2. 易语言sdk ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2019-01-02_22-15-10.png) 3. 易语言demo ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2019-01-17_17-45-21.png) ![描述](https://open-source-orange.oss-cn-hangzhou.aliyuncs.com/%E7%A0%81%E4%BA%91/verify-%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81/Snipaste_2019-01-17_17-45-50.png) ================================================ FILE: admin/.gitignore ================================================ /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /build/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ================================================ FILE: admin/.mvn/wrapper/maven-wrapper.properties ================================================ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip ================================================ FILE: admin/log/admin.log ================================================ 22:39:27.036 logback [main] INFO c.a.d.common.logger.LoggerFactory - using logger: com.alibaba.dubbo.common.logger.slf4j.Slf4jLoggerAdapter 22:39:27.038 logback [main] INFO c.a.b.d.c.e.WelcomeLogoApplicationListener - :: Dubbo Spring Boot (v0.2.0) : https://github.com/apache/incubator-dubbo-spring-boot-project :: Dubbo (v2.6.2) : https://github.com/apache/incubator-dubbo :: Google group : dev@dubbo.incubator.apache.org 22:39:27.043 logback [main] INFO c.a.b.d.c.e.OverrideDubboConfigApplicationListener - Dubbo Config was overridden by externalized configuration {dubbo.application.name=com-orange-verify-server, dubbo.application.qosEnable=false, dubbo.protocol.port=8078, dubbo.provider.retries=0, dubbo.provider.timeout=10000, dubbo.registry.address=zookeeper://localhost:2181?client=curator, dubbo.registry.id=com-orange-verify, dubbo.scan.basePackages=com.orange.verify} 22:39:27.155 logback [main] INFO c.o.v.admin.AdminApplicationTests - Starting AdminApplicationTests on DESKTOP-K8BN3NL with PID 6404 (started by 10673 in E:\project\java\orange\verifymaster\admin) 22:39:27.157 logback [main] DEBUG c.o.v.admin.AdminApplicationTests - Running with Spring Boot v2.0.6.RELEASE, Spring v5.0.10.RELEASE 22:39:27.158 logback [main] INFO c.o.v.admin.AdminApplicationTests - No active profile set, falling back to default profiles: default 22:39:27.260 logback [main] INFO o.s.w.c.s.GenericWebApplicationContext - Refreshing org.springframework.web.context.support.GenericWebApplicationContext@4bc222e: startup date [Thu Jan 17 22:39:27 CST 2019]; root of context hierarchy 22:39:28.382 logback [main] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.orange.verify.dal.mapper.*]' package. Please check your configuration. 22:39:28.594 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com.alibaba.dubbo.config.ApplicationConfig#0, class : com.alibaba.dubbo.config.ApplicationConfig] has been registered. 22:39:28.596 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ApplicationConfig#0] has been registered. 22:39:28.596 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com-orange-verify, class : com.alibaba.dubbo.config.RegistryConfig] has been registered. 22:39:28.598 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com-orange-verify] has been registered. 22:39:28.598 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com.alibaba.dubbo.config.ProtocolConfig#0, class : com.alibaba.dubbo.config.ProtocolConfig] has been registered. 22:39:28.599 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ProtocolConfig#0] has been registered. 22:39:28.604 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com.alibaba.dubbo.config.ProviderConfig#0, class : com.alibaba.dubbo.config.ProviderConfig] has been registered. 22:39:28.604 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ProviderConfig#0] has been registered. 22:39:28.788 logback [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode! 22:39:28.949 logback [main] INFO c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] BeanNameGenerator bean can't be found in BeanFactory with name [org.springframework.context.annotation.internalConfigurationBeanNameGenerator], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:28.949 logback [main] INFO c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] BeanNameGenerator will be a instance of org.springframework.context.annotation.AnnotationBeanNameGenerator , it maybe a potential problem on bean name generation., dubbo version: 2.6.2, current host: 169.254.195.210 22:39:28.993 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:accountImpl:com.orange.verify.api.service.AccountService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:28.998 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:accountLoginLogImpl:com.orange.verify.api.service.AccountLoginLogService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.002 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:accountRegisterLogImpl:com.orange.verify.api.service.AccountRegisterLogService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.004 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:baiduMapApiImpl:com.orange.verify.api.service.BaiduMapApiService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.006 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:cardImpl:com.orange.verify.api.service.CardService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.009 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:cardTypeImpl:com.orange.verify.api.service.CardTypeService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.012 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:emailAccountImpl:com.orange.verify.api.service.EmailAccountService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.013 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:interfaceManagementImpl:com.orange.verify.api.service.InterfaceManagementService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.017 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:softImpl:com.orange.verify.api.service.SoftService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.019 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:softLeaveMessageImpl:com.orange.verify.api.service.SoftLeaveMessageService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.020 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:softVersionsImpl:com.orange.verify.api.service.SoftVersionsService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.022 logback [main] WARN c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : ServiceBean:userImpl:com.orange.verify.api.service.UserService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.023 logback [main] INFO c.a.d.c.s.b.f.a.ServiceAnnotationBeanPostProcessor - [DUBBO] 12 annotated Dubbo's @Service Components { [Bean definition with name 'accountImpl': Generic bean: class [com.orange.verify.admin.impl.AccountImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\AccountImpl.class], Bean definition with name 'accountLoginLogImpl': Generic bean: class [com.orange.verify.admin.impl.AccountLoginLogImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\AccountLoginLogImpl.class], Bean definition with name 'accountRegisterLogImpl': Generic bean: class [com.orange.verify.admin.impl.AccountRegisterLogImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\AccountRegisterLogImpl.class], Bean definition with name 'baiduMapApiImpl': Generic bean: class [com.orange.verify.admin.impl.BaiduMapApiImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\BaiduMapApiImpl.class], Bean definition with name 'cardImpl': Generic bean: class [com.orange.verify.admin.impl.CardImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\CardImpl.class], Bean definition with name 'cardTypeImpl': Generic bean: class [com.orange.verify.admin.impl.CardTypeImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\CardTypeImpl.class], Bean definition with name 'emailAccountImpl': Generic bean: class [com.orange.verify.admin.impl.EmailAccountImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\EmailAccountImpl.class], Bean definition with name 'interfaceManagementImpl': Generic bean: class [com.orange.verify.admin.impl.InterfaceManagementImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\InterfaceManagementImpl.class], Bean definition with name 'softImpl': Generic bean: class [com.orange.verify.admin.impl.SoftImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\SoftImpl.class], Bean definition with name 'softLeaveMessageImpl': Generic bean: class [com.orange.verify.admin.impl.SoftLeaveMessageImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\SoftLeaveMessageImpl.class], Bean definition with name 'softVersionsImpl': Generic bean: class [com.orange.verify.admin.impl.SoftVersionsImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\SoftVersionsImpl.class], Bean definition with name 'userImpl': Generic bean: class [com.orange.verify.admin.impl.UserImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin\target\classes\com\orange\verify\admin\impl\UserImpl.class]] } were scanned under package[com.orange.verify], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:29.025 logback [main] WARN o.s.c.a.ConfigurationClassPostProcessor - Cannot enhance @Configuration bean definition 'com.alibaba.boot.dubbo.autoconfigure.DubboAutoConfiguration' since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'. 22:39:29.579 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.amqp.rabbit.annotation.RabbitBootstrapConfiguration' of type [org.springframework.amqp.rabbit.annotation.RabbitBootstrapConfiguration$$EnhancerBySpringCGLIB$$b98451cd] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:29.626 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:29.636 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$f318939f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:29.651 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'redisConfig' of type [com.orange.verify.admin.config.RedisConfig$$EnhancerBySpringCGLIB$$dcd29536] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:29.715 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:29.717 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:29.720 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:39:30.669 logback [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... 22:39:31.048 logback [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. 22:39:31.853 logback [main] INFO o.a.c.f.imps.CuratorFrameworkImpl - Starting 22:39:40.890 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT 22:39:40.890 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name=DESKTOP-K8BN3NL 22:39:40.891 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version=1.8.0_161 22:39:40.892 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Oracle Corporation 22:39:40.892 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.home=D:\work\jdk\jdk1.8\jdk\jre 22:39:40.892 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=E:\project\java\orange\verifymaster\admin\target\test-classes;E:\project\java\orange\verifymaster\admin\target\classes;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.6.RELEASE\spring-boot-starter-web-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter\2.0.6.RELEASE\spring-boot-starter-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot\2.0.6.RELEASE\spring-boot-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.6.RELEASE\spring-boot-starter-logging-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\work\maven\m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\work\maven\m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;D:\work\maven\m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;D:\work\maven\m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\work\maven\m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\work\maven\m2\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.6.RELEASE\spring-boot-starter-json-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.7\jackson-databind-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.7\jackson-core-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.7\jackson-datatype-jdk8-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.7\jackson-datatype-jsr310-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.7\jackson-module-parameter-names-2.9.7.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.6.RELEASE\spring-boot-starter-tomcat-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.34\tomcat-embed-el-8.5.34.jar;D:\work\maven\m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.34\tomcat-embed-websocket-8.5.34.jar;D:\work\maven\m2\repository\org\hibernate\validator\hibernate-validator\6.0.13.Final\hibernate-validator-6.0.13.Final.jar;D:\work\maven\m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\work\maven\m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\work\maven\m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;D:\work\maven\m2\repository\org\springframework\spring-web\5.0.10.RELEASE\spring-web-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-beans\5.0.10.RELEASE\spring-beans-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-webmvc\5.0.10.RELEASE\spring-webmvc-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-aop\5.0.10.RELEASE\spring-aop-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-context\5.0.10.RELEASE\spring-context-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-expression\5.0.10.RELEASE\spring-expression-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\mysql\mysql-connector-java\5.1.40\mysql-connector-java-5.1.40.jar;D:\work\maven\m2\repository\com\zaxxer\HikariCP\2.7.2\HikariCP-2.7.2.jar;D:\work\maven\m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-boot-starter\3.0.6\mybatis-plus-boot-starter-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus\3.0.6\mybatis-plus-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-extension\3.0.6\mybatis-plus-extension-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-core\3.0.6\mybatis-plus-core-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-annotation\3.0.6\mybatis-plus-annotation-3.0.6.jar;D:\work\maven\m2\repository\com\github\jsqlparser\jsqlparser\1.2\jsqlparser-1.2.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-generator\3.0.6\mybatis-plus-generator-3.0.6.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.6.RELEASE\spring-boot-autoconfigure-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.6.RELEASE\spring-boot-starter-jdbc-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-configuration-processor\2.0.6.RELEASE\spring-boot-configuration-processor-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.6.RELEASE\spring-boot-starter-test-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-test\2.0.6.RELEASE\spring-boot-test-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.6.RELEASE\spring-boot-test-autoconfigure-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;D:\work\maven\m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;D:\work\maven\m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;D:\work\maven\m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;D:\work\maven\m2\repository\junit\junit\4.12\junit-4.12.jar;D:\work\maven\m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;D:\work\maven\m2\repository\org\mockito\mockito-core\2.15.0\mockito-core-2.15.0.jar;D:\work\maven\m2\repository\net\bytebuddy\byte-buddy\1.7.11\byte-buddy-1.7.11.jar;D:\work\maven\m2\repository\net\bytebuddy\byte-buddy-agent\1.7.11\byte-buddy-agent-1.7.11.jar;D:\work\maven\m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;D:\work\maven\m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\work\maven\m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;D:\work\maven\m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;D:\work\maven\m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\work\maven\m2\repository\org\springframework\spring-core\5.0.10.RELEASE\spring-core-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-jcl\5.0.10.RELEASE\spring-jcl-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-test\5.0.10.RELEASE\spring-test-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;D:\work\maven\m2\repository\com\orange\verify\api\1.0.0\api-1.0.0.jar;D:\work\maven\m2\repository\org\hibernate\hibernate-validator\5.4.1.Final\hibernate-validator-5.4.1.Final.jar;D:\work\maven\m2\repository\com\orange\verify\common\1.0.0\common-1.0.0.jar;D:\work\maven\m2\repository\cn\hutool\hutool-all\4.2.1\hutool-all-4.2.1.jar;D:\work\maven\m2\repository\org\apache\commons\commons-lang3\3.7\commons-lang3-3.7.jar;D:\work\maven\m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;D:\work\maven\m2\repository\com\sun\mail\javax.mail\1.6.2\javax.mail-1.6.2.jar;D:\work\maven\m2\repository\javax\activation\activation\1.1\activation-1.1.jar;D:\work\maven\m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.34\tomcat-embed-core-8.5.34.jar;D:\work\maven\m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.34\tomcat-annotations-api-8.5.34.jar;D:\work\maven\m2\repository\org\projectlombok\lombok\1.16.18\lombok-1.16.18.jar;D:\work\maven\m2\repository\com\alibaba\boot\dubbo-spring-boot-starter\0.2.0\dubbo-spring-boot-starter-0.2.0.jar;D:\work\maven\m2\repository\com\alibaba\dubbo\2.6.2\dubbo-2.6.2.jar;D:\work\maven\m2\repository\org\javassist\javassist\3.20.0-GA\javassist-3.20.0-GA.jar;D:\work\maven\m2\repository\org\jboss\netty\netty\3.2.5.Final\netty-3.2.5.Final.jar;D:\work\maven\m2\repository\org\apache\zookeeper\zookeeper\3.4.9\zookeeper-3.4.9.jar;D:\work\maven\m2\repository\jline\jline\0.9.94\jline-0.9.94.jar;D:\work\maven\m2\repository\io\netty\netty\3.10.5.Final\netty-3.10.5.Final.jar;D:\work\maven\m2\repository\org\apache\curator\curator-framework\2.12.0\curator-framework-2.12.0.jar;D:\work\maven\m2\repository\org\apache\curator\curator-client\2.12.0\curator-client-2.12.0.jar;D:\work\maven\m2\repository\com\google\guava\guava\16.0.1\guava-16.0.1.jar;D:\work\maven\m2\repository\com\alibaba\boot\dubbo-spring-boot-autoconfigure\0.2.0\dubbo-spring-boot-autoconfigure-0.2.0.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-support\2.1.9\mybatis-plus-support-2.1.9.jar;D:\work\maven\m2\repository\org\mybatis\mybatis-spring\1.3.1\mybatis-spring-1.3.1.jar;D:\work\maven\m2\repository\org\mybatis\mybatis\3.4.5\mybatis-3.4.5.jar;D:\work\maven\m2\repository\org\springframework\spring-context-support\5.0.10.RELEASE\spring-context-support-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-jdbc\5.0.10.RELEASE\spring-jdbc-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-tx\5.0.10.RELEASE\spring-tx-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-data-redis\2.0.6.RELEASE\spring-boot-starter-data-redis-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\data\spring-data-redis\2.0.11.RELEASE\spring-data-redis-2.0.11.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\data\spring-data-keyvalue\2.0.11.RELEASE\spring-data-keyvalue-2.0.11.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\data\spring-data-commons\2.0.11.RELEASE\spring-data-commons-2.0.11.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-oxm\5.0.10.RELEASE\spring-oxm-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\io\lettuce\lettuce-core\5.0.5.RELEASE\lettuce-core-5.0.5.RELEASE.jar;D:\work\maven\m2\repository\io\projectreactor\reactor-core\3.1.10.RELEASE\reactor-core-3.1.10.RELEASE.jar;D:\work\maven\m2\repository\org\reactivestreams\reactive-streams\1.0.2\reactive-streams-1.0.2.jar;D:\work\maven\m2\repository\io\netty\netty-common\4.1.29.Final\netty-common-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-transport\4.1.29.Final\netty-transport-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-buffer\4.1.29.Final\netty-buffer-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-resolver\4.1.29.Final\netty-resolver-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-handler\4.1.29.Final\netty-handler-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-codec\4.1.29.Final\netty-codec-4.1.29.Final.jar;D:\work\maven\m2\repository\org\mapstruct\mapstruct-jdk8\1.2.0.Final\mapstruct-jdk8-1.2.0.Final.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-amqp\2.0.6.RELEASE\spring-boot-starter-amqp-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-messaging\5.0.10.RELEASE\spring-messaging-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\amqp\spring-rabbit\2.0.8.RELEASE\spring-rabbit-2.0.8.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\amqp\spring-amqp\2.0.8.RELEASE\spring-amqp-2.0.8.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\retry\spring-retry\1.2.2.RELEASE\spring-retry-1.2.2.RELEASE.jar;D:\work\maven\m2\repository\com\rabbitmq\amqp-client\5.4.3\amqp-client-5.4.3.jar;D:\work\maven\m2\repository\org\apache\curator\curator-recipes\2.11.0\curator-recipes-2.11.0.jar; 22:39:40.893 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=D:\work\jdk\jdk1.8\jdk\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\work\jdk\jdk1.8\jdk\bin;D:\mysql-5.7.11-winx64\mysql-5.7.11-winx64\bin;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\work\maven\apache-maven-3.5.3-bin\apache-maven-3.5.3\bin;D:\work\thrift;C:\WINDOWS\System32\OpenSSH\;D:\work\node\;D:\work\git\Git\bin;D:\tool\\python\Scripts\;D:\;ool\\python\;C:\;sers\10673\AppData\Local\Programs\Python\Launcher\;C:\Users\10673\AppData\Local\Microsoft\WindowsApps;D:\칫;C;\Users\10673\AppData\Local\Microsoft\WindowsApps;C:\Users\10673\AppData\Roaming\npm;D:\work\ץ\fiddler;;D:\work\docker\Docker Toolbox;G:\tool\programming\vscode\Microsoft VS Code\bin;. 22:39:40.894 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.io.tmpdir=C:\Users\10673\AppData\Local\Temp\ 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.compiler= 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.name=Windows 10 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.arch=amd64 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.version=10.0 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.name=10673 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.home=C:\Users\10673 22:39:40.896 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.dir=E:\project\java\orange\verifymaster\admin 22:39:40.897 logback [main] INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@784223e9 22:39:42.078 logback [main-SendThread(127.0.0.1:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 22:39:42.081 logback [main-SendThread(127.0.0.1:2181)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session 22:39:42.092 logback [main-SendThread(127.0.0.1:2181)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x1000027f4430068, negotiated timeout = 40000 22:39:42.103 logback [main-EventThread] INFO o.a.c.f.state.ConnectionStateManager - State change: CONNECTED 22:39:43.942 logback [main] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 22:39:44.831 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: org.springframework.web.context.support.GenericWebApplicationContext@4bc222e: startup date [Thu Jan 17 22:39:27 CST 2019]; root of context hierarchy 22:39:45.003 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 22:39:45.006 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 22:39:45.169 logback [main] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 22:39:45.170 logback [main] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 22:39:45.393 logback [main] INFO c.a.d.c.s.b.f.a.DubboConfigBindingBeanPostProcessor - The properties of bean [name : com.alibaba.dubbo.config.ApplicationConfig#0] have been binding by prefix of configuration properties : dubbo.application 22:39:45.408 logback [main] INFO c.a.d.c.s.b.f.a.DubboConfigBindingBeanPostProcessor - The properties of bean [name : com-orange-verify] have been binding by prefix of configuration properties : dubbo.registry 22:39:45.425 logback [main] INFO c.a.d.c.s.b.f.a.DubboConfigBindingBeanPostProcessor - The properties of bean [name : com.alibaba.dubbo.config.ProtocolConfig#0] have been binding by prefix of configuration properties : dubbo.protocol 22:39:45.467 logback [main] INFO c.a.d.c.s.b.f.a.DubboConfigBindingBeanPostProcessor - The properties of bean [name : com.alibaba.dubbo.config.ProviderConfig#0] have been binding by prefix of configuration properties : dubbo.provider 22:39:47.526 logback [main] INFO o.s.c.s.DefaultLifecycleProcessor - Starting beans in phase 2147483647 22:39:47.565 logback [SimpleAsyncTaskExecutor-1] INFO o.s.a.r.c.CachingConnectionFactory - Attempting to connect to: [localhost:5672] 22:39:47.647 logback [SimpleAsyncTaskExecutor-1] INFO o.s.a.r.c.CachingConnectionFactory - Created new connection: rabbitConnectionFactory#1ab14636:0/SimpleConnection@70e30e6d [delegate=amqp://guest@127.0.0.1:5672/, localPort= 53111] 22:39:47.746 logback [main] INFO o.s.s.a.ScheduledAnnotationBeanPostProcessor - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing 22:39:47.756 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.AccountService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.041 logback [pool-7-thread-1] INFO c.o.v.a.scheduler.LogDeleteScheduler - ½־(ɾ־): 0 22:39:48.043 logback [pool-7-thread-1] INFO c.o.v.a.scheduler.LogDeleteScheduler - ע־(ɾ־): 0 22:39:48.128 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.AccountService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.128 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.AccountService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.128 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.AccountService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735987776 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735987763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.447 logback [main] INFO c.a.d.r.transport.AbstractServer - [DUBBO] Start NettyServer bind /0.0.0.0:8078, export /169.254.195.210:8078, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.477 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Load registry store file C:\Users\10673\.dubbo\dubbo-registry-com-orange-verify-server-localhost:2181.cache, data: {com.orange.verify.api.service.AccountLoginLogService=empty://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982732, com.orange.verify.api.service.InterfaceManagementService=empty://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=17540&side=provider×tamp=1547733982875, com.orange.verify.api.service.BaiduMapApiService=empty://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982786, com.orange.verify.api.service.UserService=empty://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982988, com.orange.verify.api.service.SoftService=empty://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=17540&side=provider×tamp=1547733982907, com.orange.verify.api.service.SoftVersionsService=empty://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982971, com.orange.verify.api.service.CardTypeService=empty://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982838, com.orange.verify.api.service.SoftService:1.0.0=empty://169.254.195.210:20880/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=5000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=8416&revision=1.0.0&side=provider×tamp=1544550062415&version=1.0.0, com.orange.verify.api.service.AccountRegisterLogService=empty://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982759, com.orange.verify.api.service.CardService=empty://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=17540&side=provider×tamp=1547733982811, com.orange.verify.api.service.EmailAccountService=empty://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982855, com.orange.verify.api.service.AccountService=empty://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=17540&side=provider×tamp=1547733982404, com.orange.verify.api.service.SoftLeaveMessageService=empty://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982954}, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.481 logback [main] INFO o.a.c.f.imps.CuratorFrameworkImpl - Starting 22:39:48.506 logback [main] INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=localhost:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@2d4fb0d8 22:39:48.510 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.530 logback [main-SendThread(127.0.0.1:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 22:39:48.531 logback [main-SendThread(127.0.0.1:2181)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session 22:39:48.550 logback [main-SendThread(127.0.0.1:2181)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x1000027f4430069, negotiated timeout = 40000 22:39:48.550 logback [main-EventThread] INFO o.a.c.f.state.ConnectionStateManager - State change: CONNECTED 22:39:48.620 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.730 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.761 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.AccountLoginLogService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.801 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.AccountLoginLogService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.801 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.AccountLoginLogService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.802 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.AccountLoginLogService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988763 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.802 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.834 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.983 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:48.984 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.AccountRegisterLogService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.008 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.AccountRegisterLogService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.009 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.AccountRegisterLogService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.009 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.AccountRegisterLogService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988987 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.010 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.056 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.262 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.263 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.BaiduMapApiService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.305 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.BaiduMapApiService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.305 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.BaiduMapApiService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.305 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.BaiduMapApiService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989275 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.307 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.351 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.427 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.428 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.CardService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.451 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.CardService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.452 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.CardService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.452 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.CardService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989430 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.453 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.533 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.664 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.665 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.CardTypeService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.700 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.CardTypeService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.701 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.CardTypeService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.701 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.CardTypeService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989673 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.702 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.734 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.818 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.820 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.EmailAccountService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.850 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.EmailAccountService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.850 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.EmailAccountService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.850 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.EmailAccountService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989823 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.862 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.877 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.895 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.896 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.InterfaceManagementService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.986 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.InterfaceManagementService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.987 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.InterfaceManagementService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:49.997 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.InterfaceManagementService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989898 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.002 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.027 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.044 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.046 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.SoftService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.071 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.SoftService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.072 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.SoftService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.073 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.SoftService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990050 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.076 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.098 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.114 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.115 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.SoftLeaveMessageService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.193 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.SoftLeaveMessageService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.193 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.SoftLeaveMessageService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.193 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.SoftLeaveMessageService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990117 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.239 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.277 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.302 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.303 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.SoftVersionsService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.324 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.SoftVersionsService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.324 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.SoftVersionsService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.325 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.SoftVersionsService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990311 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.326 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.339 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.348 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.348 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] The service ready on spring started. service: com.orange.verify.api.service.UserService, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.366 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.UserService to local registry, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.366 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Export dubbo service com.orange.verify.api.service.UserService to url dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.366 logback [main] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Register dubbo service com.orange.verify.api.service.UserService url dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990350 to registry registry://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&pid=6404&qos.enable=false®istry=zookeeper×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.368 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.386 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.395 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, urls: [empty://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:50.409 logback [main] INFO c.o.v.admin.AdminApplicationTests - Started AdminApplicationTests in 23.904 seconds (JVM running for 25.281) 22:39:50.412 logback [main] INFO c.o.v.admin.runner.InterfaceRunner - ִȫӿ 22:39:50.963 logback [main] INFO io.lettuce.core.EpollProvider - Starting without optional epoll library 22:39:50.965 logback [main] INFO io.lettuce.core.KqueueProvider - Starting without optional kqueue library 22:39:53.699 logback [main] INFO c.o.v.admin.runner.InterfaceRunner - ִн 22:39:53.923 logback [Thread-2] INFO o.s.w.c.s.GenericWebApplicationContext - Closing org.springframework.web.context.support.GenericWebApplicationContext@4bc222e: startup date [Thu Jan 17 22:39:27 CST 2019]; root of context hierarchy 22:39:53.936 logback [Thread-2] INFO o.s.c.s.DefaultLifecycleProcessor - Stopping beans in phase 2147483647 22:39:53.940 logback [DubboShutdownHook] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Run shutdown hook now., dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.940 logback [DubboShutdownHook] INFO c.a.d.r.s.AbstractRegistryFactory - [DUBBO] Close all registries [zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&interface=com.alibaba.dubbo.registry.RegistryService&pid=6404&qos.enable=false×tamp=1547735987763], dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.940 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy registry:zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-server&client=curator&dubbo=2.6.2&interface=com.alibaba.dubbo.registry.RegistryService&pid=6404&qos.enable=false×tamp=1547735987763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.940 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.948 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.949 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.952 logback [Thread-2] INFO o.s.a.r.l.SimpleMessageListenerContainer - Waiting for workers to finish. 22:39:53.954 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.955 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.963 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.963 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.967 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.968 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.975 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.975 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.984 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.985 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.990 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.990 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.995 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.995 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.998 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:53.999 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.002 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.003 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.008 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.008 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.013 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.013 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.014 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.014 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.014 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.014 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.014 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.014 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.016 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.017 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.018 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.018 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.019 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.020 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.020 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.020 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.020 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.020 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.021 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.022 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.023 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.023 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.023 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.023 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: provider://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.023 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url provider://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&category=configurators&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.027 logback [Curator-Framework-0] INFO o.a.c.f.imps.CuratorFrameworkImpl - backgroundOperationsLoop exiting 22:39:54.034 logback [DubboShutdownHook] INFO org.apache.zookeeper.ZooKeeper - Session: 0x1000027f4430069 closed 22:39:54.034 logback [main-EventThread] INFO org.apache.zookeeper.ClientCnxn - EventThread shut down for session: 0x1000027f4430069 22:39:54.036 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Close dubbo server: /169.254.195.210:8078, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.038 logback [DubboShutdownHook] INFO c.a.d.r.transport.AbstractServer - [DUBBO] Close NettyServer bind /0.0.0.0:8078, export /169.254.195.210:8078, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.040 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.040 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.040 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.040 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.040 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.041 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.043 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.043 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.043 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.043 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.dubbo.DubboProtocol - [DUBBO] Unexport service: dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989823, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735987776, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990311, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989898, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990350, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.044 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989275, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.045 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990050, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.045 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989430, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.045 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988987, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.046 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735988763, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.046 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735990117, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.046 logback [DubboShutdownHook] INFO c.a.d.r.protocol.injvm.InjvmProtocol - [DUBBO] Unexport service: injvm://127.0.0.1/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&bind.ip=169.254.195.210&bind.port=8078&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=6404&qos.enable=false&revision=1.0.0&side=provider×tamp=1547735989673, dubbo version: 2.6.2, current host: 169.254.195.210 22:39:54.943 logback [Thread-2] INFO o.s.a.r.l.SimpleMessageListenerContainer - Successfully waited for workers to finish. 22:39:54.943 logback [Thread-2] INFO o.s.c.s.DefaultLifecycleProcessor - Stopping beans in phase 0 22:39:54.946 logback [Thread-2] INFO o.s.a.r.l.SimpleMessageListenerContainer - Shutdown ignored - container is not active already 22:39:54.958 logback [Thread-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... 22:39:54.975 logback [Thread-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. 22:39:56.097 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - class com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor was destroying! ================================================ FILE: admin/mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Maven2 Start Up Batch script # # Required ENV vars: # ------------------ # JAVA_HOME - location of a JDK home dir # # Optional ENV vars # ----------------- # M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. cygwin=false; darwin=false; mingw=false case "`uname`" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then export JAVA_HOME="`/usr/libexec/java_home`" else export JAVA_HOME="/Library/Java/Home" fi fi ;; esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then JAVA_HOME=`java-config --jre-home` fi fi if [ -z "$M2_HOME" ] ; then ## resolve links - $0 may be a link to maven's home PRG="$0" # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG="`dirname "$PRG"`/$link" fi done saveddir=`pwd` M2_HOME=`dirname "$PRG"`/.. # make it fully qualified M2_HOME=`cd "$M2_HOME" && pwd` cd "$saveddir" # echo Using m2 at $M2_HOME fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then javaExecutable="`which javac`" if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=`which readlink` if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then if $darwin ; then javaHome="`dirname \"$javaExecutable\"`" javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" else javaExecutable="`readlink -f \"$javaExecutable\"`" fi javaHome="`dirname \"$javaExecutable\"`" javaHome=`expr "$javaHome" : '\(.*\)/bin'` JAVA_HOME="$javaHome" export JAVA_HOME fi fi fi if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" return 1 fi basedir="$1" wdir="$1" while [ "$wdir" != '/' ] ; do if [ -d "$wdir"/.mvn ] ; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then wdir=`cd "$wdir/.."; pwd` fi # end of workaround done echo "${basedir}" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then echo "$(tr -s '\n' ' ' < "$1")" fi } BASE_DIR=`find_maven_basedir "$(pwd)"` if [ -z "$BASE_DIR" ]; then exit 1; fi ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found .mvn/wrapper/maven-wrapper.jar" fi else if [ "$MVNW_VERBOSE" = true ]; then echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" while IFS="=" read key value; do case "$key" in (wrapperUrl) jarUrl="$value"; break ;; esac done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" if [ "$MVNW_VERBOSE" = true ]; then echo "Downloading from: $jarUrl" fi wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" if command -v wget > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found wget ... using wget" fi wget "$jarUrl" -O "$wrapperJarPath" elif command -v curl > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found curl ... using curl" fi curl -o "$wrapperJarPath" "$jarUrl" else if [ "$MVNW_VERBOSE" = true ]; then echo "Falling back to using Java to download" fi javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" if [ -e "$javaClass" ]; then if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo " - Compiling MavenWrapperDownloader.java ..." fi # Compiling the Java class ("$JAVA_HOME/bin/javac" "$javaClass") fi if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then # Running the downloader if [ "$MVNW_VERBOSE" = true ]; then echo " - Running MavenWrapperDownloader.java ..." fi ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") fi fi fi fi ########################################################################################## # End of extension ########################################################################################## export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} if [ "$MVNW_VERBOSE" = true ]; then echo $MAVEN_PROJECTBASEDIR fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` [ -n "$MAVEN_PROJECTBASEDIR" ] && MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" ================================================ FILE: admin/mvnw.cmd ================================================ @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files @REM ---------------------------------------------------------------------------- @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off @REM set title of command window title %0 @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") @REM Execute a user defined script before this one if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre @REM check for pre script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" :skipRcPre @setlocal set ERROR_CODE=0 @REM To isolate internal variables from possible post scripts, we use another setlocal @setlocal @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init echo. echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error @REM ==== END VALIDATION ==== :init @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". @REM Fallback to current working directory if not found. set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir set EXEC_DIR=%CD% set WDIR=%EXEC_DIR% :findBaseDir IF EXIST "%WDIR%"\.mvn goto baseDirFound cd .. IF "%WDIR%"=="%CD%" goto baseDirNotFound set WDIR=%CD% goto findBaseDir :baseDirFound set MAVEN_PROJECTBASEDIR=%WDIR% cd "%EXEC_DIR%" goto endDetectBaseDir :baseDirNotFound set MAVEN_PROJECTBASEDIR=%EXEC_DIR% cd "%EXEC_DIR%" :endDetectBaseDir IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig @setlocal EnableExtensions EnableDelayedExpansion for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B ) @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central @REM This allows using the maven wrapper in projects that prohibit checking in binary data. if exist %WRAPPER_JAR% ( echo Found %WRAPPER_JAR% ) else ( echo Couldn't find %WRAPPER_JAR%, downloading it ... echo Downloading from: %DOWNLOAD_URL% powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" echo Finished downloading %WRAPPER_JAR% ) @REM End of extension %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end :error set ERROR_CODE=1 :end @endlocal & set ERROR_CODE=%ERROR_CODE% if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost @REM check for post script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" :skipRcPost @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% ================================================ FILE: admin/pom.xml ================================================ 4.0.0 com.orange.verify admin 1.0.0 jar admin Verify org.springframework.boot spring-boot-starter-parent 2.0.6.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter mysql mysql-connector-java 5.1.40 com.zaxxer HikariCP 2.7.2 com.baomidou mybatis-plus-boot-starter 3.0.6 org.springframework.boot spring-boot-starter-test test com.orange.verify api 1.0.0 compile com.orange.verify common 1.0.0 compile org.projectlombok lombok 1.16.18 compile com.alibaba.boot dubbo-spring-boot-starter 0.2.0 com.baomidou mybatis-plus-support 2.1.9 org.springframework.boot spring-boot-starter-data-redis org.mapstruct mapstruct-jdk8 1.2.0.Final org.springframework.boot spring-boot-starter-amqp org.apache.curator curator-recipes 2.11.0 org.aspectj aspectjweaver 1.8.13 compile com.fasterxml.jackson.core jackson-annotations 2.9.0 compile com.fasterxml.jackson.core jackson-databind 2.9.6 compile org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-compiler-plugin 3.5.1 ${java.version} ${java.version} UTF-8 org.mapstruct mapstruct-processor 1.2.0.Final ================================================ FILE: admin/src/main/java/com/orange/verify/admin/AdminApplication.java ================================================ package com.orange.verify.admin; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication @EnableTransactionManagement @MapperScan("com.orange.verify.admin.mapper") @ComponentScan("com.orange.verify") public class AdminApplication { public static void main(String[] args) { SpringApplication.run(AdminApplication.class, args); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/config/MyBatisPlusConfiguration.java ================================================ package com.orange.verify.admin.config; import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableTransactionManagement @Configuration @MapperScan("com.orange.verify.dal.mapper.*") public class MyBatisPlusConfiguration { /** * 注册逻辑删除 */ @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); } /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/config/MyMetaObjectHandler.java ================================================ package com.orange.verify.admin.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createDate", System.currentTimeMillis(), metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateDate", System.currentTimeMillis(), metaObject); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/config/RabbitMqConfig.java ================================================ package com.orange.verify.admin.config; import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class RabbitMqConfig { public static final String EMAIL_SEND_CODE = "email_send_code"; @Bean public Queue queue() { return new Queue(EMAIL_SEND_CODE); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/config/RedisConfig.java ================================================ package com.orange.verify.admin.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * RedisTemple */ @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式) Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); //使用StringRedisSerializer来序列化和反序列化redis的key值 RedisSerializer redisSerializer = new StringRedisSerializer(); //key redisTemplate.setKeySerializer(redisSerializer); redisTemplate.setHashKeySerializer(redisSerializer); //value redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/config/ZookeeperLockConfig.java ================================================ package com.orange.verify.admin.config; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.recipes.locks.InterProcessMutex; import org.apache.curator.retry.ExponentialBackoffRetry; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ZookeeperLockConfig { @Bean public InterProcessMutex lock() { //1、重试策略:初试时间为1s 重试3次 RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); //2、通过工厂创建连接 CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", retryPolicy); //3、开启连接 client.start(); //4 分布式锁 InterProcessMutex mutex = new InterProcessMutex(client, "/curator/lock"); return mutex; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/AccountImpl.java ================================================ package com.orange.verify.admin.impl; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.*; import com.orange.verify.admin.service.BaiduMapApiServiceL; import com.orange.verify.admin.transition.Transition; import com.orange.verify.api.bean.*; import com.orange.verify.api.sc.*; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.service.AccountService; import com.orange.verify.api.sr.*; import com.orange.verify.api.vo.AccountVo; import com.orange.verify.api.vo.open.*; import com.orange.verify.common.rsa.RsaUtil; import org.apache.curator.framework.recipes.locks.InterProcessMutex; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; import java.util.Map; import java.util.concurrent.TimeUnit; @Service public class AccountImpl extends ServiceImpl implements AccountService { @Autowired private SoftMapper softMapper; @Autowired private CardMapper cardMapper; @Autowired private Transition transition; @Autowired private CardTypeMapper cardTypeMapper; @Autowired private AccountRegisterLogMapper accountRegisterLogMapper; @Autowired private AccountLoginLogMapper accountLoginLogMapper; @Autowired private RedisTemplate redisTemplate; @Autowired private BaiduMapApiServiceL baiduMapApiServiceL; @Autowired private InterProcessMutex lock; @Override public Page page(AccountVo accountVo, Page page) { return page.setRecords(super.baseMapper.page(accountVo,page)); } @Override public ServiceResult getPublicKey() { ServiceResult result = new ServiceResult<>(); try { Map initKey = RsaUtil.initKey(); String publicKeyToBase64 = RsaUtil.getPublicKeyToBase64(initKey); String privateKeyToBase64 = RsaUtil.getPrivateKeyToBase64(initKey); redisTemplate.opsForValue().set(publicKeyToBase64,privateKeyToBase64,10,TimeUnit.MINUTES); result.setCode(AccountImplGetPublicKeyEnum.SUCCESS); result.setData(publicKeyToBase64); return result; } catch (Exception e) { result.setCode(AccountImplGetPublicKeyEnum.KEY_ERROR); return result; } } @Override public void saveVerificationCode(AccountVerificationCodeVo accountVerificationCodeVo) { String privateKey = (String) redisTemplate.opsForValue().get(accountVerificationCodeVo.getPublicKey()); if (!StrUtil.hasEmpty(privateKey)) { redisTemplate.opsForValue().set("vc=" + accountVerificationCodeVo.getPublicKey(), accountVerificationCodeVo.getCode(),10,TimeUnit.MINUTES); } } @Override @Transactional(rollbackFor = Exception.class) public ServiceResult register(AccountRegisterVo accountRegisterVo) { ServiceResult result = new ServiceResult<>(); String privateKey = (String) redisTemplate.opsForValue().get(accountRegisterVo.getPublicKey()); //钥匙不存在直接返回 if (StrUtil.hasEmpty(privateKey)) { result.setCode(AccountImplRegisterEnum.KEY_EMPTY); return result; } //验证码不匹配直接返回 String vc = (String) redisTemplate.opsForValue().get("vc=" + accountRegisterVo.getPublicKey()); if (StrUtil.hasEmpty(vc)) { result.setCode(AccountImplRegisterEnum.VC_EMPTY); return result; } else if (!accountRegisterVo.getVc().equals(vc)) { result.setCode(AccountImplRegisterEnum.VC_MISMATCHES); return result; } //采用分布式锁进行用户名的唯一控制 try { boolean acquire = lock.acquire(5, TimeUnit.SECONDS); if (acquire == true) { QueryWrapper username = new QueryWrapper().eq("username", accountRegisterVo.getUsername()); Integer selectCount = super.baseMapper.selectCount(username); //用户名是否存在 if (selectCount > 0) { result.setCode(AccountImplRegisterEnum.ACCOUNT_ALREADY_EXIST); return result; } } else { result.setCode(AccountImplRegisterEnum.NIMIETY); return result; } } catch (Exception e) { result.setCode(AccountImplRegisterEnum.SERVER_ERROR); return result; } finally { try { lock.release(); } catch (Exception e) { result.setCode(AccountImplRegisterEnum.SERVER_ERROR); return result; } } Soft soft = softMapper.selectById(accountRegisterVo.getSoftId()); if (soft == null) { result.setCode(AccountImplRegisterEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(AccountImplRegisterEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } else if (soft.getRegisterStatus() == SoftRegisterStatus.CLOSE.getStatusCode()) { result.setCode(AccountImplRegisterEnum.REGISTER_CLOSE); result.setMsg(soft.getRegisteCloseMsg()); return result; } //进行解密 >>> password 和 code >>> 解密成真实文本 String password = null; String code = null; try { password = RsaUtil.decodeRsa(accountRegisterVo.getPassword(), privateKey); code = RsaUtil.decodeRsa(accountRegisterVo.getCode(), privateKey); } catch (Exception e) { result.setCode(AccountImplRegisterEnum.KEY_ERROR); return result; } if (StrUtil.hasEmpty(password)) { result.setCode(AccountImplRegisterEnum.KEY_ERROR); return result; } else if (password.length() > 10 || password.length() < 5) { result.setCode(AccountImplRegisterEnum.PASSWORD_LENGTH_ERROR); return result; } //查询ip信息 String addressByIp = ""; try { addressByIp = baiduMapApiServiceL.getIpInfo(accountRegisterVo.getIp()); } catch (Exception e) { result.setCode(AccountImplRegisterEnum.BAIDU_API_ERROR); return result; } //进行转型然后插入数据库 accountRegisterVo.setPassword(password); accountRegisterVo.setCode(code); Account account = transition.fromVo(accountRegisterVo); account.setCreateIpInfo(addressByIp); int insert = super.baseMapper.insert(account); if (insert > 0) { AccountRegisterLog accountRegisterLog = new AccountRegisterLog(); accountRegisterLog.setAccountId(account.getId()); accountRegisterLog.setIp(account.getCreateIp()); accountRegisterLog.setIpInfo(addressByIp); accountRegisterLog.setSoftId(account.getSoftId()); accountRegisterLogMapper.insert(accountRegisterLog); result.setCode(AccountImplRegisterEnum.REGISTER_SUCCESS); return result; } result.setCode(AccountImplRegisterEnum.REGISTER_ERROR); return result; } @Override public ServiceResult login(AccountLoginVo accountLoginVo) { ServiceResult result = new ServiceResult<>(); String privateKey = (String) redisTemplate.opsForValue().get(accountLoginVo.getPublicKey()); //钥匙不存在直接返回 if (StrUtil.hasEmpty(privateKey)) { result.setCode(AccountImplLoginEnum.KEY_EMPTY); return result; } Soft soft = softMapper.selectById(accountLoginVo.getSoftId()); //软件不存在直接返回 if (soft == null) { result.setCode(AccountImplLoginEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(AccountImplLoginEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } //判断用户不存在直接返回 Integer selectCount = super.baseMapper.selectCount(new QueryWrapper().eq("username", accountLoginVo.getUsername()).eq("soft_id",accountLoginVo.getSoftId())); if (selectCount < 1) { result.setCode(AccountImplLoginEnum.ACCOUNT_EMPTY); return result; } //进行解密 >>> password 和 code >>> 解密成真实文本 String password = null; String code = null; try { password = RsaUtil.decodeRsa(accountLoginVo.getPassword(), privateKey); code = RsaUtil.decodeRsa(accountLoginVo.getCode(), privateKey); } catch (Exception e) { result.setCode(AccountImplLoginEnum.KEY_ERROR); return result; } if (StrUtil.hasEmpty(password,code)) { result.setCode(AccountImplLoginEnum.KEY_ERROR); return result; } else if (password.length() > 10 || password.length() < 5) { result.setCode(AccountImplLoginEnum.PASSWORD_LENGTH_ERROR); return result; } Account account = super.baseMapper.selectOne(new QueryWrapper().eq("username", accountLoginVo.getUsername()).eq("password",password).eq("soft_id",accountLoginVo.getSoftId())); if (account == null) { result.setCode(AccountImplLoginEnum.PASSWORD_ERROR); return result; } //只支持单机进行机器码控制打开软件 if (soft.getDosingStrategy() == SoftDosingStrategy.SINGLE.getStatusCode()) { QueryWrapper queryWrapper = new QueryWrapper().eq("username", accountLoginVo.getUsername()).eq("password",password).eq("soft_id",accountLoginVo.getSoftId()); queryWrapper = queryWrapper.eq("code",code); Account accountQ = super.baseMapper.selectOne(queryWrapper); if (accountQ == null) { result.setCode(AccountImplLoginEnum.LOGIN_ERROR); return result; } } if (account.getBlacklist() == AccountBlackList.YES.getStatusCode()) { result.setCode(AccountImplLoginEnum.ACCOUNT_BLACKLIST); return result; } if (soft.getServiceStatus() == SoftServiceStatus.CHARGE.getStatusCode()) { String cardId = account.getCardId(); if (StrUtil.hasEmpty(cardId)) { result.setCode(AccountImplLoginEnum.ACCOUNT_NOT_BOUND_CARD); return result; } Card card = cardMapper.selectById(cardId); if (card == null) { result.setCode(AccountImplLoginEnum.ACCOUNT_NOT_BOUND_CARD); return result; } else if (card.getClosure() == CardClosure.YES.getStatusCode()) { result.setCode(AccountImplLoginEnum.CARD_CLOSURE); return result; } long totalTime = card.getEndDate() - System.currentTimeMillis(); if (totalTime < 1) { result.setCode(AccountImplLoginEnum.CARD_PAST_DUE); return result; } } //查询ip信息 String addressByIp = ""; try { addressByIp = baiduMapApiServiceL.getIpInfo(accountLoginVo.getIp()); } catch (Exception e) { result.setCode(AccountImplLoginEnum.BAIDU_API_ERROR); return result; } AccountLoginLog accountLoginLog = new AccountLoginLog(); accountLoginLog.setAccountId(account.getId()); accountLoginLog.setIp(accountLoginVo.getIp()); accountLoginLog.setIpInfo(addressByIp); accountLoginLog.setSoftId(accountLoginVo.getSoftId()); accountLoginLogMapper.insert(accountLoginLog); result.setCode(AccountImplLoginEnum.LOGIN_SUCCESS); return result; } @Override @Transactional(rollbackFor = Exception.class) public ServiceResult bindingCard(AccountBindingCardVo accountBindingCardVo) { ServiceResult result = new ServiceResult<>(); String privateKey = (String) redisTemplate.opsForValue().get(accountBindingCardVo.getPublicKey()); //钥匙不存在直接返回 if (StrUtil.hasEmpty(privateKey)) { result.setCode(AccountImplBindingCardEnum.KEY_EMPTY); return result; } Soft soft = softMapper.selectById(accountBindingCardVo.getSoftId()); //软件不存在直接返回 if (soft == null) { result.setCode(AccountImplBindingCardEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(AccountImplBindingCardEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.FREE.getStatusCode()) { result.setCode(AccountImplBindingCardEnum.SOFT_FREE); return result; } //判断用户不存在直接返回 Integer selectCount = super.baseMapper.selectCount(new QueryWrapper().eq("username", accountBindingCardVo.getUsername()).eq("soft_id",accountBindingCardVo.getSoftId())); if (selectCount < 1) { result.setCode(AccountImplBindingCardEnum.ACCOUNT_EMPTY); return result; } //进行解密 >>> password 和 code >>> 解密成真实文本 String password = null; String code = null; try { password = RsaUtil.decodeRsa(accountBindingCardVo.getPassword(), privateKey); code = RsaUtil.decodeRsa(accountBindingCardVo.getCode(), privateKey); } catch (Exception e) { result.setCode(AccountImplBindingCardEnum.KEY_ERROR); return result; } if (StrUtil.hasEmpty(password,code)) { result.setCode(AccountImplBindingCardEnum.KEY_ERROR); return result; } else if (password.length() > 10 || password.length() < 5) { result.setCode(AccountImplBindingCardEnum.PASSWORD_LENGTH_ERROR); return result; } Account account = super.baseMapper.selectOne(new QueryWrapper().eq("username", accountBindingCardVo.getUsername()).eq("password",password).eq("soft_id",accountBindingCardVo.getSoftId())); if (account == null) { result.setCode(AccountImplBindingCardEnum.PASSWORD_ERROR); return result; } else if (account.getBlacklist() == AccountBlackList.YES.getStatusCode()) { result.setCode(AccountImplBindingCardEnum.ACCOUNT_BLACKLIST); return result; } Card card = cardMapper.selectOne(new QueryWrapper().eq("card_number", accountBindingCardVo.getCardNumber())); if (card == null) { result.setCode(AccountImplBindingCardEnum.CARD_EMPTY); return result; } else if (card.getUseStatus() == CardUseStatus.YES.getStatusCode()) { result.setCode(AccountImplBindingCardEnum.CARD_USE); return result; } else if (card.getClosure() == CardClosure.YES.getStatusCode()) { result.setCode(AccountImplBindingCardEnum.CARD_CLOSURE); return result; } CardType cardType = cardTypeMapper.selectById(card.getCardTypeId()); if (cardType == null) { result.setCode(AccountImplBindingCardEnum.CARD_EMPTY); return result; } else if (!accountBindingCardVo.getSoftId().equals(cardType.getSoftId())) { result.setCode(AccountImplBindingCardEnum.SOFT_INCONSISTENCY); return result; } //开始使用时间和结束使用期间 String now = DateUtil.now(); Date date = DateUtil.parse(now); long startTime = date.getTime(); long endTime = 0; DateTime dateTime = null; switch (cardType.getUnit()) { case 0: dateTime = DateUtil.offsetMinute(date, cardType.getValue()); break; case 1: dateTime = DateUtil.offsetHour(date, cardType.getValue()); break; case 2: dateTime = DateUtil.offsetDay(date, cardType.getValue()); break; case 3: dateTime = DateUtil.offsetWeek(date, cardType.getValue()); break; case 4: dateTime = DateUtil.offsetMonth(date, cardType.getValue()); break; case 5: dateTime = DateUtil.offset(date, DateField.YEAR, cardType.getValue()); break; } endTime = dateTime.getTime(); Card cardUpdate = new Card(); cardUpdate.setId(card.getId()); cardUpdate.setStartDate(startTime); cardUpdate.setEndDate(endTime); cardUpdate.setUseStatus(1); cardUpdate.setSellStatus(1); cardUpdate.setAccountId(account.getId()); int cardUpdateResult = cardMapper.updateById(cardUpdate); Account accountUpdate = new Account(); accountUpdate.setId(account.getId()); accountUpdate.setCardId(card.getId()); accountUpdate.setCode(code); int accountUpdateResult = super.baseMapper.updateById(accountUpdate); if (cardUpdateResult > 0 && accountUpdateResult > 0) { result.setCode(AccountImplBindingCardEnum.BINDING_CARD_SUCCESS); return result; } TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result.setCode(AccountImplBindingCardEnum.BINDING_CARD_ERROR); return result; } @Override public ServiceResult bindingCode(AccountBindingCodeVo accountBindingCodeVo) { ServiceResult result = new ServiceResult<>(); String privateKey = (String) redisTemplate.opsForValue().get(accountBindingCodeVo.getPublicKey()); //钥匙不存在直接返回 if (StrUtil.hasEmpty(privateKey)) { result.setCode(AccountImplBindingCodeEnum.KEY_EMPTY); return result; } Soft soft = softMapper.selectById(accountBindingCodeVo.getSoftId()); //软件不存在直接返回 if (soft == null) { result.setCode(AccountImplBindingCodeEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(AccountImplBindingCodeEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } else if (soft.getChangeStrategy() == SoftChangeStrategy.NO.getStatusCode()) { result.setCode(AccountImplBindingCodeEnum.SOFT_NO_CHANGE); return result; } //判断用户不存在直接返回 Integer selectCount = super.baseMapper.selectCount(new QueryWrapper().eq("username", accountBindingCodeVo.getUsername()).eq("soft_id",accountBindingCodeVo.getSoftId())); if (selectCount < 1) { result.setCode(AccountImplBindingCardEnum.ACCOUNT_EMPTY); return result; } //进行解密 >>> password 和 code >>> 解密成真实文本 String password = null; String code = null; try { password = RsaUtil.decodeRsa(accountBindingCodeVo.getPassword(), privateKey); code = RsaUtil.decodeRsa(accountBindingCodeVo.getCode(), privateKey); } catch (Exception e) { result.setCode(AccountImplBindingCodeEnum.KEY_ERROR); return result; } if (StrUtil.hasEmpty(password,code)) { result.setCode(AccountImplBindingCodeEnum.KEY_ERROR); return result; } else if (password.length() > 10 || password.length() < 5) { result.setCode(AccountImplBindingCodeEnum.PASSWORD_LENGTH_ERROR); return result; } Account account = super.baseMapper.selectOne(new QueryWrapper().eq("username", accountBindingCodeVo.getUsername()).eq("password",password).eq("soft_id",accountBindingCodeVo.getSoftId())); if (account == null) { result.setCode(AccountImplBindingCodeEnum.PASSWORD_ERROR); return result; } else if (account.getBlacklist() == AccountBlackList.YES.getStatusCode()) { result.setCode(AccountImplBindingCodeEnum.ACCOUNT_BLACKLIST); return result; } Account accountUpdate = new Account(); accountUpdate.setId(account.getId()); accountUpdate.setCode(code); int updateById = super.baseMapper.updateById(accountUpdate); if (updateById > 0) { result.setCode(AccountImplBindingCodeEnum.BINDING_CODE_SUCCESS); return result; } result.setCode(AccountImplBindingCodeEnum.BINDING_CODE_ERROR); return result; } @Override public ServiceResult updatePassword(AccountUpdatePasswordVo accountUpdatePasswordVo) { ServiceResult result = new ServiceResult<>(); Soft soft = softMapper.selectById(accountUpdatePasswordVo.getSoftId()); //软件不存在直接返回 if (soft == null) { result.setCode(AccountImplUpdatePasswordEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(AccountImplUpdatePasswordEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } Account accountF = super.baseMapper.selectOne(new QueryWrapper().eq("username", accountUpdatePasswordVo.getUsername()).eq("soft_id",accountUpdatePasswordVo.getSoftId())); if (accountF == null) { result.setCode(AccountImplUpdatePasswordEnum.ACCOUNT_EMPTY); return result; } Account account = super.baseMapper.selectOne(new QueryWrapper().eq("username", accountUpdatePasswordVo.getUsername()).eq("security_code",accountUpdatePasswordVo.getSecurityCode())); if (account == null) { result.setCode(AccountImplUpdatePasswordEnum.SECURITY_CODE_ERROR); return result; } else if (account.getBlacklist() == AccountBlackList.YES.getStatusCode()) { result.setCode(AccountImplUpdatePasswordEnum.ACCOUNT_BLACKLIST); return result; } int updatePassword = super.baseMapper.updatePassword(accountUpdatePasswordVo); if (updatePassword > 0) { result.setCode(AccountImplUpdatePasswordEnum.UPDATE_PASSWORD_SUCCESS); return result; } result.setCode(AccountImplUpdatePasswordEnum.UPDATE_PASSWORD_ERROR); return result; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/AccountLoginLogImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.AccountLoginLogMapper; import com.orange.verify.api.bean.AccountLoginLog; import com.orange.verify.api.service.AccountLoginLogService; import com.orange.verify.api.vo.AccountLoginLogVo; import java.util.List; @Service public class AccountLoginLogImpl extends ServiceImpl implements AccountLoginLogService { @Override public List getBeforeData(String softId) { return super.baseMapper.getBeforeData(softId); } @Override public Page page(AccountLoginLogVo accountLoginLog, Page page) { return page.setRecords(super.baseMapper.page(accountLoginLog,page)); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/AccountRegisterLogImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.AccountRegisterLogMapper; import com.orange.verify.api.bean.AccountRegisterLog; import com.orange.verify.api.service.AccountRegisterLogService; import com.orange.verify.api.vo.AccountRegisterLogVo; import java.util.List; @Service public class AccountRegisterLogImpl extends ServiceImpl implements AccountRegisterLogService { @Override public List getBeforeData(String softId) { return super.baseMapper.getBeforeData(softId); } @Override public Page page(AccountRegisterLog accountRegisterLog, Page page) { return page.setRecords(super.baseMapper.page(accountRegisterLog,page)); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/BaiduMapApiImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.BaiduMapApiMapper; import com.orange.verify.api.bean.BaiduMapApi; import com.orange.verify.api.service.BaiduMapApiService; import com.orange.verify.common.ip.BaiduIp; @Service public class BaiduMapApiImpl extends ServiceImpl implements BaiduMapApiService { @Override public boolean create(BaiduMapApi baiduMapApi) { int baiduMapApiCount = super.baseMapper.getBaiduMapApiCount(); if (baiduMapApiCount == 0) { if (super.baseMapper.insert(baiduMapApi) == 1) { return true; } } return false; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/CardImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.CardMapper; import com.orange.verify.api.bean.Card; import com.orange.verify.api.service.CardService; import com.orange.verify.api.vo.CardVo; import com.orange.verify.api.vo.open.CardTimeLimitVo; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.UUID; @Service public class CardImpl extends ServiceImpl implements CardService { @Override public Page page(CardVo cardVo, Page page) { return page.setRecords(super.baseMapper.page(cardVo,page)); } @Override @Transactional(rollbackFor = Exception.class) public void saveLogic(Card card, Integer count) { for (int i = 0;i < count;i++) { Card cardSave = new Card(); cardSave.setCardTypeId(card.getCardTypeId()); cardSave.setCardNumber(UUID.randomUUID().toString().replaceAll("-","")); super.baseMapper.insert(cardSave); } } @Override public CardTimeLimitVo getCardTimeLimit(String username,String password,String softId) { return super.baseMapper.getCardTimeLimit(username,password,softId); } @Override @Transactional(rollbackFor = Exception.class) public void sell(List sell) { for (String id : sell) { Card card = new Card(); card.setId(id); card.setSellStatus(1); super.baseMapper.updateById(card); } } @Override @Transactional(rollbackFor = Exception.class) public void batchRemove(List cardList) { for (String id : cardList) { super.baseMapper.deleteById(id); } } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/CardTypeImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.CardTypeMapper; import com.orange.verify.api.bean.CardType; import com.orange.verify.api.service.CardTypeService; import com.orange.verify.api.vo.CardTypeVo; @Service public class CardTypeImpl extends ServiceImpl implements CardTypeService { @Override public Page page(CardType cardType, Page page) { return page.setRecords(super.baseMapper.page(cardType,page)); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/EmailAccountImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.EmailAccountMapper; import com.orange.verify.api.bean.EmailAccount; import com.orange.verify.api.service.EmailAccountService; import java.util.List; @Service public class EmailAccountImpl extends ServiceImpl implements EmailAccountService { @Override public List getList() { QueryWrapper createDate = new QueryWrapper().orderByDesc( "create_date"); List emailAccounts = super.baseMapper.selectList(createDate); return emailAccounts; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/InterfaceManagementImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.orange.verify.api.bean.InterfaceManagement; import com.orange.verify.api.service.InterfaceManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import java.util.ArrayList; import java.util.List; import java.util.Set; @Service public class InterfaceManagementImpl implements InterfaceManagementService { @Autowired private RedisTemplate template; private static final String PREFIX = "orange.verify:open.interface:"; @Override public List getAll() throws Exception { List interfaceManagements = new ArrayList<>(); Set keys = template.keys(PREFIX + "*"); for (String key : keys) { InterfaceManagement interfaceManagement = (InterfaceManagement) template.opsForValue().get(key); interfaceManagements.add(interfaceManagement); } return interfaceManagements; } @Override public void closeInterface(String key,Integer on) throws Exception { InterfaceManagement interfaceManagementRedis = (InterfaceManagement) template.opsForValue().get(key); interfaceManagementRedis.setVisit(on); template.opsForValue().set(key,interfaceManagementRedis); } @Override public InterfaceManagement getSingle(String key) throws Exception { return (InterfaceManagement) template.opsForValue().get(key); } @Override public void update(InterfaceManagement interfaceManagement) throws Exception { InterfaceManagement interfaceManagementRedis = (InterfaceManagement) template.opsForValue().get(interfaceManagement.getKey()); interfaceManagementRedis.setIpVisits(interfaceManagement.getIpVisits()); interfaceManagementRedis.setIpRedisInterval(interfaceManagement.getIpRedisInterval()); template.opsForValue().set(interfaceManagement.getKey(),interfaceManagementRedis); } @Override public void ipHandle(String key,Integer on) throws Exception { InterfaceManagement interfaceManagementRedis = (InterfaceManagement) template.opsForValue().get(key); interfaceManagementRedis.setIpHandle(on); template.opsForValue().set(key,interfaceManagementRedis); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/SoftImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.SoftMapper; import com.orange.verify.admin.transition.Transition; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.sc.SoftServiceStatus; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.service.SoftService; import com.orange.verify.api.sr.SoftImplGetSoftDescEnum; import com.orange.verify.api.vo.SoftVo; import com.orange.verify.api.vo.open.SoftGetSoftDescVo; import org.springframework.beans.factory.annotation.Autowired; @Service public class SoftImpl extends ServiceImpl implements SoftService { @Autowired private Transition transition; @Override public Page page(Soft soft, Page page) { return page.setRecords(baseMapper.page(soft,page)); } @Override public ServiceResult getSoftDesc(SoftGetSoftDescVo accountGetSoftDescVo) { ServiceResult result = new ServiceResult<>(); Soft soft = super.baseMapper.selectById(accountGetSoftDescVo.getSoftId()); //软件不存在直接返回 if (soft == null) { result.setCode(SoftImplGetSoftDescEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(SoftImplGetSoftDescEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } SoftGetSoftDescVo softGetSoftDescVo = transition.toVo(soft); result.setCode(SoftImplGetSoftDescEnum.SUCCESS); result.setData(softGetSoftDescVo); return result; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/SoftLeaveMessageImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.config.RabbitMqConfig; import com.orange.verify.admin.mapper.EmailAccountMapper; import com.orange.verify.admin.mapper.SoftLeaveMessageMapper; import com.orange.verify.admin.mapper.SoftMapper; import com.orange.verify.admin.rabbitmq.bean.LeaveMessage; import com.orange.verify.admin.service.BaiduMapApiServiceL; import com.orange.verify.admin.transition.Transition; import com.orange.verify.api.bean.EmailAccount; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.bean.SoftLeaveMessage; import com.orange.verify.api.sc.SoftServiceStatus; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.service.SoftLeaveMessageService; import com.orange.verify.api.sr.SoftLeaveMessageImplCreateEnum; import com.orange.verify.api.vo.SoftLeaveMessageVo; import com.orange.verify.api.vo.open.SoftLeaveMeesageSubmitVo; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @Service public class SoftLeaveMessageImpl extends ServiceImpl implements SoftLeaveMessageService { @Autowired private EmailAccountMapper emailAccountMapper; @Autowired private SoftMapper softMapper; @Autowired private BaiduMapApiServiceL baiduMapApiServiceL; @Autowired private Transition transition; @Autowired private AmqpTemplate amqpTemplate; @Override public Page page(SoftLeaveMessageVo softLeaveMessageVo, Page page) { return page.setRecords(super.baseMapper.page(softLeaveMessageVo,page)); } @Override @Transactional(rollbackFor = Exception.class) public ServiceResult create(SoftLeaveMeesageSubmitVo softLeaveMeesageSubmitVo) { ServiceResult result = new ServiceResult<>(); Soft soft = softMapper.selectById(softLeaveMeesageSubmitVo.getSoftId()); if (soft == null) { result.setCode(SoftLeaveMessageImplCreateEnum.SOFT_EMPTY); return result; } else if (soft.getServiceStatus() == SoftServiceStatus.CLOSE.getStatusCode()) { result.setCode(SoftLeaveMessageImplCreateEnum.SOFT_CLOSE); result.setMsg(soft.getServiceCloseMsg()); return result; } //查询ip信息 String addressByIp = ""; try { addressByIp = baiduMapApiServiceL.getIpInfo(softLeaveMeesageSubmitVo.getIp()); } catch (Exception e) { result.setCode(SoftLeaveMessageImplCreateEnum.BAIDU_API_ERROR); return result; } SoftLeaveMessage softLeaveMessage = transition.fromVo(softLeaveMeesageSubmitVo); softLeaveMessage.setIpInfo(addressByIp); int insert = super.baseMapper.insert(softLeaveMessage); if (insert > 0) { if (soft.getEmailNotificatio() == 0) { EmailAccount emailAccount = emailAccountMapper.get(); LeaveMessage leaveMessage = new LeaveMessage(); leaveMessage.setTitle("Orange Verify :接收到一条留言,请查看!"); leaveMessage.setContent("软件名: " + soft.getName() + "\n\nQQ号: " + softLeaveMeesageSubmitVo.getQq() + " 给您留言了 \n\n留言内容: " + softLeaveMeesageSubmitVo.getContent() + "\n\nIP: " + softLeaveMeesageSubmitVo.getIp() + "\n\nIpInfo: " + addressByIp); leaveMessage.setReceiveAccount(soft.getEmailName()); leaveMessage.setSendAccount(emailAccount.getUsername()); leaveMessage.setSendPassword(emailAccount.getPassword()); amqpTemplate.convertAndSend(RabbitMqConfig.EMAIL_SEND_CODE,leaveMessage); emailAccountMapper.use(emailAccount.getId()); } result.setCode(SoftLeaveMessageImplCreateEnum.LEAVE_MESSAGE_SEND_SUCCESS); return result; } result.setCode(SoftLeaveMessageImplCreateEnum.LEAVE_MESSAGE_SEND_ERROR); return result; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/SoftVersionsImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.SoftMapper; import com.orange.verify.admin.mapper.SoftVersionsMapper; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.bean.SoftVersions; import com.orange.verify.api.service.SoftVersionsService; import com.orange.verify.api.vo.SoftVersionsVo; import org.springframework.beans.factory.annotation.Autowired; @Service public class SoftVersionsImpl extends ServiceImpl implements SoftVersionsService { @Autowired private SoftMapper softMapper; @Override public SoftVersionsVo getSingleBySoftId(String softId) { return super.baseMapper.getSingleBySoftId(softId); } @Override public boolean saveLogic(SoftVersions softVersions) { //去取软件是否存在 Soft soft = softMapper.selectById(softVersions.getSoftId()); if (soft == null) { return false; } // 去取软件id有没有在版本表里面 // 有 >>> 新增失败 没有 >>> 做新增 int count = super.count(new QueryWrapper().eq("soft_id",softVersions.getSoftId())); if (count > 0) { return false; } return super.save(softVersions); } @Override public com.orange.verify.api.vo.open.SoftVersionsVo getVersions(String softId) { return super.baseMapper.getVersions(softId); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/impl/UserImpl.java ================================================ package com.orange.verify.admin.impl; import com.alibaba.dubbo.config.annotation.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.orange.verify.admin.mapper.UserMapper; import com.orange.verify.api.bean.User; import com.orange.verify.api.service.UserService; @Service public class UserImpl extends ServiceImpl implements UserService { @Override public int verifyUser(String username, String password) { return super.baseMapper.verifyUser(username,password); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/AccountLoginLogMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.AccountLoginLog; import com.orange.verify.api.vo.AccountLoginLogVo; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface AccountLoginLogMapper extends BaseMapper { @Select("") List getBeforeData(@Param("softId") String softId); @Delete("delete from t_account_login_log\n" + "where TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(create_date/1000)) >= 10\n" + "limit 100") int deleteLog(); @Select("") List page(@Param("accountLoginLog") AccountLoginLogVo accountLoginLog, Page page); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/AccountMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.Account; import com.orange.verify.api.vo.AccountVo; import com.orange.verify.api.vo.open.AccountUpdatePasswordVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.util.List; public interface AccountMapper extends BaseMapper { @Select("") List page(@Param("accountVo") AccountVo accountVo, Page page); @Update("update t_account set password = #{password} where " + "soft_id = #{softId} and " + "username = #{username} and " + "security_code = #{securityCode}") int updatePassword(AccountUpdatePasswordVo accountUpdatePasswordVo); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/AccountRegisterLogMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.AccountRegisterLog; import com.orange.verify.api.vo.AccountRegisterLogVo; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface AccountRegisterLogMapper extends BaseMapper { //找出以往7天到现在的数据 @Select("") List getBeforeData(@Param("softId") String softId); @Delete("delete from t_account_register_log\n" + "where TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(create_date/1000)) >= 10\n" + "limit 100") int deleteLog(); @Select("") List page( @Param("accountRegisterLog") AccountRegisterLog accountRegisterLog, Page page); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/BaiduMapApiMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.orange.verify.api.bean.BaiduMapApi; import org.apache.ibatis.annotations.Select; public interface BaiduMapApiMapper extends BaseMapper { @Select("select count(*) from t_baidu_map_api") int getBaiduMapApiCount(); @Select("select * from t_baidu_map_api limit 1") BaiduMapApi getSingle(); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/CardMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.Card; import com.orange.verify.api.vo.CardVo; import com.orange.verify.api.vo.open.CardTimeLimitVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface CardMapper extends BaseMapper { @Select("") List page(@Param("cardVo") CardVo cardVo, Page page); @Select("SELECT c.start_date,c.end_date FROM t_account a " + "LEFT JOIN t_card c " + "ON a.card_id = c.id " + "WHERE c.del_flag = 0 AND a.del_flag = 0 " + "AND a.username = #{username} AND a.password = #{password} AND a.soft_id = #{softId}") CardTimeLimitVo getCardTimeLimit(@Param("username") String username, @Param("password") String password, @Param("softId") String softId); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/CardTypeMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.CardType; import com.orange.verify.api.vo.CardTypeVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface CardTypeMapper extends BaseMapper { @Select("") List page(@Param("cardType") CardType cardType, Page page); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/EmailAccountMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.orange.verify.api.bean.EmailAccount; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; public interface EmailAccountMapper extends BaseMapper { @Select("SELECT * FROM t_email_account where is_use = 0 and del_flag = 0 ORDER BY total ASC LIMIT 0,1") EmailAccount get(); @Update("UPDATE t_email_account SET total = total+1 WHERE id = #{id}") int use(@Param("id") String id); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/SoftLeaveMessageMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.SoftLeaveMessage; import com.orange.verify.api.vo.SoftLeaveMessageVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface SoftLeaveMessageMapper extends BaseMapper { @Select("") List page(@Param("softLeaveMessageVo") SoftLeaveMessageVo softLeaveMessageVo, Page page); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/SoftMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.vo.SoftVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface SoftMapper extends BaseMapper { @Select("") List page(@Param("soft") Soft soft,Page page); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/SoftVersionsMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.orange.verify.api.bean.SoftVersions; import com.orange.verify.api.vo.SoftVersionsVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; public interface SoftVersionsMapper extends BaseMapper { @Select("SELECT sv.*,(SELECT s.name FROM t_soft s WHERE s.id = sv.soft_id) as soft_name " + "FROM t_soft_versions sv " + "where sv.del_flag = 0 and sv.soft_id = #{softId}") SoftVersionsVo getSingleBySoftId(@Param("softId") String softId); @Select("select number,novatio_necessaria,notice,update_url from t_soft_versions where soft_id = #{softId}") com.orange.verify.api.vo.open.SoftVersionsVo getVersions(@Param("softId") String softId); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/mapper/UserMapper.java ================================================ package com.orange.verify.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.orange.verify.api.bean.User; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper extends BaseMapper { @Select("select count(*) from t_user where username = #{username} and password = #{password} and del_flag=0") int verifyUser(@Param("username") String username,@Param("password") String password); } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/rabbitmq/EmailReceive.java ================================================ package com.orange.verify.admin.rabbitmq; import com.orange.verify.admin.config.RabbitMqConfig; import com.orange.verify.admin.rabbitmq.bean.LeaveMessage; import com.orange.verify.common.email.MailUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import javax.mail.MessagingException; import java.security.GeneralSecurityException; @Component public class EmailReceive { private static final Logger log = LoggerFactory.getLogger(EmailReceive.class); @RabbitListener(queues = RabbitMqConfig.EMAIL_SEND_CODE) public void sendCode(LeaveMessage leaveMessage) { log.info("发送邮件啦~~"); MailUtil mailUtil = new MailUtil(leaveMessage.getSendAccount(), leaveMessage.getSendPassword()); try { mailUtil.send(leaveMessage.getReceiveAccount(),leaveMessage.getTitle(),leaveMessage.getContent()); log.info("邮件发送成功"); } catch (MessagingException e) { log.error("邮件错误:" + e.getMessage()); } catch (GeneralSecurityException e) { log.error("邮件错误:" + e.getMessage()); } } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/rabbitmq/bean/LeaveMessage.java ================================================ package com.orange.verify.admin.rabbitmq.bean; import java.io.Serializable; public class LeaveMessage implements Serializable { private String sendAccount; private String sendPassword; private String title; private String content; private String receiveAccount; public String getSendAccount() { return sendAccount; } public void setSendAccount(String sendAccount) { this.sendAccount = sendAccount; } public String getSendPassword() { return sendPassword; } public void setSendPassword(String sendPassword) { this.sendPassword = sendPassword; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getReceiveAccount() { return receiveAccount; } public void setReceiveAccount(String receiveAccount) { this.receiveAccount = receiveAccount; } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/scheduler/LogDeleteScheduler.java ================================================ package com.orange.verify.admin.scheduler; import com.orange.verify.admin.mapper.AccountLoginLogMapper; import com.orange.verify.admin.mapper.AccountRegisterLogMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; /** * 定时执行删除登陆 注册日志 ,10天前的分段删除 * 10天前的数据比如1万条,每次只删除100条 */ @Configuration @EnableScheduling public class LogDeleteScheduler { private static final Logger log = LoggerFactory.getLogger(LogDeleteScheduler.class); @Autowired private AccountLoginLogMapper accountLoginLogMapper; @Autowired private AccountRegisterLogMapper accountRegisterLogMapper; @Scheduled(fixedRate = 3600000) public void logDeleteTask() { int accountLoginLog = accountLoginLogMapper.deleteLog(); int accountRegisterLog = accountRegisterLogMapper.deleteLog(); log.info("登陆日志(本次删除日志条数): " + accountLoginLog); log.info("注册日志(本次删除日志条数): " + accountRegisterLog); } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/service/BaiduMapApiServiceL.java ================================================ package com.orange.verify.admin.service; import com.orange.verify.admin.mapper.BaiduMapApiMapper; import com.orange.verify.api.bean.BaiduMapApi; import com.orange.verify.common.ip.BaiduIp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BaiduMapApiServiceL { @Autowired private BaiduMapApiMapper apiMapper; public String getIpInfo(String ip) throws Exception { if ("127.0.0.1".equals(ip)) { return "本地测试"; } try { BaiduMapApi single = apiMapper.getSingle(); String ipInfo = BaiduIp.start(single.getAppkey()) .getAddressByIp(ip); return ipInfo; } catch (Exception e) { throw new Exception(); } } } ================================================ FILE: admin/src/main/java/com/orange/verify/admin/transition/Transition.java ================================================ package com.orange.verify.admin.transition; import com.orange.verify.api.bean.Account; import com.orange.verify.api.bean.InterfaceManagement; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.bean.SoftLeaveMessage; import com.orange.verify.api.vo.open.SoftGetSoftDescVo; import com.orange.verify.api.vo.open.AccountRegisterVo; import com.orange.verify.api.vo.open.SoftLeaveMeesageSubmitVo; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @Mapper(componentModel = "spring") public interface Transition { @Mapping(target = "createIp",source = "ip") Account fromVo(AccountRegisterVo accountRegisterVo); SoftLeaveMessage fromVo(SoftLeaveMeesageSubmitVo softLeaveMeesageSubmitVo); SoftGetSoftDescVo toVo(Soft soft); } ================================================ FILE: admin/src/main/resources/application.properties ================================================ server.port=8077 dubbo.application.name = com-orange-verify-server dubbo.scan.basePackages = com.orange.verify dubbo.provider.timeout = 10000 dubbo.provider.retries= 0 dubbo.protocol.port=8078 dubbo.registry.id = com-orange-verify dubbo.registry.address = zookeeper://localhost:2181?client=curator dubbo.application.qosEnable=false logging.config=classpath:logback-spring.xml spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/com_orange_verify_db?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.idle-timeout=600000 spring.datasource.hikari.max-lifetime=1765000 spring.datasource.hikari.maximum-pool-size=15 spring.datasource.hikari.minimum-idle=10 spring.datasource.hikari.connection-test-query=SELECT 1 spring.jpa.properties.hibernate.hbm2ddl.auto=update spring.jpa.properties.hibernate.show_sql=true spring.datasource.hikari.connection-init-sql=SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','') mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= spring.redis.expire=1800 spring.redis.timeout=5000 spring.redis.database=0 spring.redis.pool.max.active=8 spring.redis.pool.max.wait=-1 spring.redis.pool.max.idle=8 spring.redis.pool.min.idle=0 ================================================ FILE: admin/src/main/resources/logback-spring.xml ================================================ logback %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n log/admin.log log/admin.%d.log 20 %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n ================================================ FILE: admin/src/test/java/com/orange/verify/admin/AdminApplicationTests.java ================================================ package com.orange.verify.admin; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; import com.orange.verify.api.bean.Account; import com.orange.verify.api.bean.Card; import lombok.extern.java.Log; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest @Log public class AdminApplicationTests { @Autowired private RedisTemplate redisTemplate; @Test public void contextLoads() { } } ================================================ FILE: admin/src/test/java/com/orange/verify/admin/RsaTest.java ================================================ package com.orange.verify.admin; import com.orange.verify.common.rsa.RsaUtil; public class RsaTest { public static void main(String[] args) throws Exception { String decodeRsa = RsaUtil.decodeRsa("MvH9KjTo0vF+Su5X0sDi9QMwAnJI9oKYxYC/0DkZWtUqRFUfW5pESytoZGwelehIQefsfAGLAg/KaOC882VET4klE97VVo7EV3myGP8ble7a86nxSsPKN8rJjJYFszoHnRcxa7HymbS0be27uZciYD0TcFO7kVaDwIzwxlURQZM=", "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAImJvnLEXlUNK6" + "mWifAKX61PEfE6eQpXTx+sxuvUKcVlRdeximysbdVEwlH5sS1hLjn5nTXeTD" + "+Hh05qtWOQ5Qxhxv6WOuoT" + "DsxuLAkVhwzeShiVOB4abBFugNvQD1kWq6SZNPqISLR4+qnvDjLsAVchAgEEkDAS" + "/zP9vgVvyksXAgMBAAECgYBIZG8" + "Qu1knjTIhJjJeXSd08jxwayWQktn7wxZExLxjwOVdHX7Nqoh5C6L4QOPIDfGl5EOiOeqKOcy3MqVczcQw0xANn4xexFw" + "RP6WzF5uqVUzdB7OSKJohO46pcM8D81gouwG8bn8oXpHtAzhqjtay9Nc3M66KO" + "+BqkWp4HdeM2QJBANzh6JFog+ScURp0" + "hDkC16D0NkJCejIFbTqxErOt4RChd1Bp4IcKOXReICm43kOBLbVdKpr2D3E8S00D9G3awasCQQCfZ6cFOueLlii+gr17" + "78QpFqqbkNJyJ3jTqy0O7gno" + "/eEO6whPg0j2gjmgXUQKNVsf8ddgx6xKnWfOAuGEFEhFAkANhLoCJD5mQHbqQpVRE+50i" + "F3FwmHOK+zaebnmS08KAIfX4RL" + "/0M1hZN1dEFZyFTbh8bjI0SRyzrjhFsvf6VKPAkA7UFRjq9FwrUUn7noXXdY9+8Mr8" + "6168JkTGgTAI27olV9jL619+Lnzj+1lcI7axZPMxS6BQosnkH6Jt6S2gt2JAkBsAlo5rC" + "zv/h6HtfzsmUuk9P9t+LLNu0ZK9O0ftorH9lMbGncqNlhbyRPFJ9UaFumfmShLzKxdeAKFYRhoA2Yv"); System.out.println(decodeRsa); } } ================================================ FILE: admin/src/test/java/com/orange/verify/admin/TimeTest.java ================================================ package com.orange.verify.admin; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import java.util.Date; public class TimeTest { public static void main(String[] args) { long a = 1545910903611L; long totalTime = (System.currentTimeMillis() - a); System.out.println(totalTime); } } ================================================ FILE: admin-web/.gitignore ================================================ /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /build/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ================================================ FILE: admin-web/.mvn/wrapper/maven-wrapper.properties ================================================ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip ================================================ FILE: admin-web/log/adminweb.log ================================================ 22:40:26.853 logback [main] INFO c.a.d.common.logger.LoggerFactory - using logger: com.alibaba.dubbo.common.logger.slf4j.Slf4jLoggerAdapter 22:40:26.855 logback [main] INFO c.a.b.d.c.e.WelcomeLogoApplicationListener - :: Dubbo Spring Boot (v0.2.0) : https://github.com/apache/incubator-dubbo-spring-boot-project :: Dubbo (v2.6.2) : https://github.com/apache/incubator-dubbo :: Google group : dev@dubbo.incubator.apache.org 22:40:26.866 logback [main] INFO c.a.b.d.c.e.OverrideDubboConfigApplicationListener - Dubbo Config was overridden by externalized configuration {dubbo.application.name=com-orange-verify-client, dubbo.application.qosEnable=false, dubbo.consumer.retries=0, dubbo.consumer.timeout=10000, dubbo.protocol.port=8039, dubbo.registry.address=zookeeper://localhost:2181?client=curator, dubbo.registry.id=com-orange-verify} 22:40:26.974 logback [main] INFO c.o.v.a.AdminWebApplicationTests - Starting AdminWebApplicationTests on DESKTOP-K8BN3NL with PID 22068 (started by 10673 in E:\project\java\orange\verifymaster\admin-web) 22:40:26.975 logback [main] DEBUG c.o.v.a.AdminWebApplicationTests - Running with Spring Boot v2.0.6.RELEASE, Spring v5.0.10.RELEASE 22:40:26.981 logback [main] INFO c.o.v.a.AdminWebApplicationTests - No active profile set, falling back to default profiles: default 22:40:27.096 logback [main] INFO o.s.w.c.s.GenericWebApplicationContext - Refreshing org.springframework.web.context.support.GenericWebApplicationContext@3cfdd820: startup date [Thu Jan 17 22:40:27 CST 2019]; root of context hierarchy 22:40:28.060 logback [main] INFO o.s.b.f.s.DefaultListableBeanFactory - Overriding bean definition for bean 'customRealm' with a different definition: replacing [Generic bean: class [com.orange.verify.adminweb.realm.CustomRealm]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\project\java\orange\verifymaster\admin-web\target\classes\com\orange\verify\adminweb\realm\CustomRealm.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=shiroConfig; factoryMethodName=customRealm; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [com/orange/verify/adminweb/config/ShiroConfig.class]] 22:40:28.266 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com.alibaba.dubbo.config.ApplicationConfig#0, class : com.alibaba.dubbo.config.ApplicationConfig] has been registered. 22:40:28.269 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ApplicationConfig#0] has been registered. 22:40:28.271 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com-orange-verify, class : com.alibaba.dubbo.config.RegistryConfig] has been registered. 22:40:28.271 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com-orange-verify] has been registered. 22:40:28.273 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com.alibaba.dubbo.config.ProtocolConfig#0, class : com.alibaba.dubbo.config.ProtocolConfig] has been registered. 22:40:28.274 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ProtocolConfig#0] has been registered. 22:40:28.274 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The dubbo config bean definition [name : com.alibaba.dubbo.config.ConsumerConfig#0, class : com.alibaba.dubbo.config.ConsumerConfig] has been registered. 22:40:28.274 logback [main] INFO c.a.d.c.s.c.a.DubboConfigBindingRegistrar - The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ConsumerConfig#0] has been registered. 22:40:28.342 logback [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode! 22:40:28.867 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.alibaba.boot.dubbo.autoconfigure.DubboAutoConfiguration' of type [com.alibaba.boot.dubbo.autoconfigure.DubboAutoConfiguration$$EnhancerBySpringCGLIB$$87d56b78] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:28.951 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroConfig' of type [com.orange.verify.adminweb.config.ShiroConfig$$EnhancerBySpringCGLIB$$874aaf79] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:31.509 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.alibaba.dubbo.config.ConsumerConfig#0' of type [com.alibaba.dubbo.config.ConsumerConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:31.519 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.alibaba.dubbo.config.ApplicationConfig#0' of type [com.alibaba.dubbo.config.ApplicationConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:31.524 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com-orange-verify' of type [com.alibaba.dubbo.config.RegistryConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:33.960 logback [main] INFO com.alibaba.dubbo.qos.server.Server - [DUBBO] qos-server bind localhost:22222, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:33.976 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Load registry store file C:\Users\10673\.dubbo\dubbo-registry-com-orange-verify-client-localhost:2181.cache, data: {com.orange.verify.api.service.AccountLoginLogService=empty://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490433 empty://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490433 dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountLoginLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982732, com.orange.verify.api.service.InterfaceManagementService=empty://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=17720&side=consumer×tamp=1547733490720 empty://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=17720&side=consumer×tamp=1547733490720 dubbo://169.254.195.210:8078/com.orange.verify.api.service.InterfaceManagementService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=17540&side=provider×tamp=1547733982875, com.orange.verify.api.service.BaiduMapApiService=empty://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490523 empty://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490523 dubbo://169.254.195.210:8078/com.orange.verify.api.service.BaiduMapApiService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982786, com.orange.verify.api.service.UserService=empty://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733477198 empty://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733477198 dubbo://169.254.195.210:8078/com.orange.verify.api.service.UserService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982988, com.orange.verify.api.service.SoftService=empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=17720&side=consumer×tamp=1547733490754 empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=17720&side=consumer×tamp=1547733490754 dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=17540&side=provider×tamp=1547733982907, com.orange.verify.api.service.SoftVersionsService=empty://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490834 empty://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490834 dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftVersionsService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982971, com.orange.verify.api.service.CardTypeService=empty://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490624 empty://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490624 dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardTypeService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982838, com.orange.verify.api.service.SoftService:1.0.0=empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=5000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=7660&qos.enable=false&revision=1.0.0&side=consumer×tamp=1544550079494&version=1.0.0 empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=5000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=7660&qos.enable=false&revision=1.0.0&side=consumer×tamp=1544550079494&version=1.0.0 empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=5000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=7660&qos.enable=false&revision=1.0.0&side=consumer×tamp=1544550079494&version=1.0.0, com.orange.verify.api.service.AccountRegisterLogService=empty://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490482 empty://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490482 dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountRegisterLogService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982759, com.orange.verify.api.service.CardService=empty://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=17720&side=consumer×tamp=1547733490570 empty://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=17720&side=consumer×tamp=1547733490570 dubbo://169.254.195.210:8078/com.orange.verify.api.service.CardService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=17540&side=provider×tamp=1547733982811, com.orange.verify.api.service.EmailAccountService=empty://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490675 empty://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490675 dubbo://169.254.195.210:8078/com.orange.verify.api.service.EmailAccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982855, com.orange.verify.api.service.AccountService=empty://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=17720&side=consumer×tamp=1547733490350 empty://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=17720&side=consumer×tamp=1547733490350 dubbo://169.254.195.210:8078/com.orange.verify.api.service.AccountService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=17540&side=provider×tamp=1547733982404, com.orange.verify.api.service.SoftLeaveMessageService=empty://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490792 empty://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17720&side=consumer×tamp=1547733490792 dubbo://169.254.195.210:8078/com.orange.verify.api.service.SoftLeaveMessageService?anyhost=true&application=com-orange-verify-server&default.retries=0&default.timeout=10000&dubbo=2.6.2&generic=false&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=17540&side=provider×tamp=1547733982954}, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:34.093 logback [main] INFO o.a.c.f.imps.CuratorFrameworkImpl - Starting 22:40:43.122 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT 22:40:43.122 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name=DESKTOP-K8BN3NL 22:40:43.122 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version=1.8.0_161 22:40:43.122 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Oracle Corporation 22:40:43.122 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.home=D:\work\jdk\jdk1.8\jdk\jre 22:40:43.122 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=E:\project\java\orange\verifymaster\admin-web\target\test-classes;E:\project\java\orange\verifymaster\admin-web\target\classes;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.6.RELEASE\spring-boot-starter-web-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter\2.0.6.RELEASE\spring-boot-starter-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot\2.0.6.RELEASE\spring-boot-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.6.RELEASE\spring-boot-autoconfigure-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.6.RELEASE\spring-boot-starter-logging-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\work\maven\m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\work\maven\m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;D:\work\maven\m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;D:\work\maven\m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\work\maven\m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\work\maven\m2\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.6.RELEASE\spring-boot-starter-json-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.7\jackson-databind-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.7\jackson-core-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.7\jackson-datatype-jdk8-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.7\jackson-datatype-jsr310-2.9.7.jar;D:\work\maven\m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.7\jackson-module-parameter-names-2.9.7.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.6.RELEASE\spring-boot-starter-tomcat-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.34\tomcat-embed-el-8.5.34.jar;D:\work\maven\m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.34\tomcat-embed-websocket-8.5.34.jar;D:\work\maven\m2\repository\org\hibernate\validator\hibernate-validator\6.0.13.Final\hibernate-validator-6.0.13.Final.jar;D:\work\maven\m2\repository\org\springframework\spring-web\5.0.10.RELEASE\spring-web-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-beans\5.0.10.RELEASE\spring-beans-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-webmvc\5.0.10.RELEASE\spring-webmvc-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-aop\5.0.10.RELEASE\spring-aop-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-context\5.0.10.RELEASE\spring-context-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-expression\5.0.10.RELEASE\spring-expression-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.6.RELEASE\spring-boot-starter-test-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-test\2.0.6.RELEASE\spring-boot-test-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.6.RELEASE\spring-boot-test-autoconfigure-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;D:\work\maven\m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;D:\work\maven\m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;D:\work\maven\m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;D:\work\maven\m2\repository\junit\junit\4.12\junit-4.12.jar;D:\work\maven\m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;D:\work\maven\m2\repository\org\mockito\mockito-core\2.15.0\mockito-core-2.15.0.jar;D:\work\maven\m2\repository\net\bytebuddy\byte-buddy\1.7.11\byte-buddy-1.7.11.jar;D:\work\maven\m2\repository\net\bytebuddy\byte-buddy-agent\1.7.11\byte-buddy-agent-1.7.11.jar;D:\work\maven\m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;D:\work\maven\m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\work\maven\m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;D:\work\maven\m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;D:\work\maven\m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\work\maven\m2\repository\org\springframework\spring-core\5.0.10.RELEASE\spring-core-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-jcl\5.0.10.RELEASE\spring-jcl-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-test\5.0.10.RELEASE\spring-test-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;D:\work\maven\m2\repository\com\orange\verify\api\1.0.0\api-1.0.0.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-boot-starter\3.0.6\mybatis-plus-boot-starter-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus\3.0.6\mybatis-plus-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-extension\3.0.6\mybatis-plus-extension-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-core\3.0.6\mybatis-plus-core-3.0.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-annotation\3.0.6\mybatis-plus-annotation-3.0.6.jar;D:\work\maven\m2\repository\com\github\jsqlparser\jsqlparser\1.2\jsqlparser-1.2.jar;D:\work\maven\m2\repository\org\mybatis\mybatis-spring\1.3.2\mybatis-spring-1.3.2.jar;D:\work\maven\m2\repository\org\mybatis\mybatis\3.4.6\mybatis-3.4.6.jar;D:\work\maven\m2\repository\com\baomidou\mybatis-plus-generator\3.0.6\mybatis-plus-generator-3.0.6.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.6.RELEASE\spring-boot-starter-jdbc-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;D:\work\maven\m2\repository\org\springframework\spring-jdbc\5.0.10.RELEASE\spring-jdbc-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-configuration-processor\2.0.6.RELEASE\spring-boot-configuration-processor-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\com\orange\verify\common\1.0.0\common-1.0.0.jar;D:\work\maven\m2\repository\cn\hutool\hutool-all\4.2.1\hutool-all-4.2.1.jar;D:\work\maven\m2\repository\org\apache\commons\commons-lang3\3.7\commons-lang3-3.7.jar;D:\work\maven\m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;D:\work\maven\m2\repository\com\sun\mail\javax.mail\1.6.2\javax.mail-1.6.2.jar;D:\work\maven\m2\repository\javax\activation\activation\1.1\activation-1.1.jar;D:\work\maven\m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.34\tomcat-embed-core-8.5.34.jar;D:\work\maven\m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.34\tomcat-annotations-api-8.5.34.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-spring\1.4.0\shiro-spring-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-core\1.4.0\shiro-core-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-lang\1.4.0\shiro-lang-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-crypto-hash\1.4.0\shiro-crypto-hash-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-crypto-core\1.4.0\shiro-crypto-core-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-crypto-cipher\1.4.0\shiro-crypto-cipher-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-config-core\1.4.0\shiro-config-core-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-config-ogdl\1.4.0\shiro-config-ogdl-1.4.0.jar;D:\work\maven\m2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;D:\work\maven\m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-event\1.4.0\shiro-event-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-web\1.4.0\shiro-web-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-ehcache\1.4.0\shiro-ehcache-1.4.0.jar;D:\work\maven\m2\repository\org\apache\shiro\shiro-cache\1.4.0\shiro-cache-1.4.0.jar;D:\work\maven\m2\repository\net\sf\ehcache\ehcache-core\2.6.11\ehcache-core-2.6.11.jar;D:\work\maven\m2\repository\org\crazycake\shiro-redis\2.4.2.1-RELEASE\shiro-redis-2.4.2.1-RELEASE.jar;D:\work\maven\m2\repository\redis\clients\jedis\2.9.0\jedis-2.9.0.jar;D:\work\maven\m2\repository\org\apache\commons\commons-pool2\2.5.0\commons-pool2-2.5.0.jar;D:\work\maven\m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\work\maven\m2\repository\com\alibaba\fastjson\1.2.52\fastjson-1.2.52.jar;D:\work\maven\m2\repository\org\projectlombok\lombok\1.16.18\lombok-1.16.18.jar;D:\work\maven\m2\repository\com\alibaba\boot\dubbo-spring-boot-starter\0.2.0\dubbo-spring-boot-starter-0.2.0.jar;D:\work\maven\m2\repository\com\alibaba\dubbo\2.6.2\dubbo-2.6.2.jar;D:\work\maven\m2\repository\org\javassist\javassist\3.20.0-GA\javassist-3.20.0-GA.jar;D:\work\maven\m2\repository\org\jboss\netty\netty\3.2.5.Final\netty-3.2.5.Final.jar;D:\work\maven\m2\repository\org\apache\zookeeper\zookeeper\3.4.9\zookeeper-3.4.9.jar;D:\work\maven\m2\repository\jline\jline\0.9.94\jline-0.9.94.jar;D:\work\maven\m2\repository\io\netty\netty\3.10.5.Final\netty-3.10.5.Final.jar;D:\work\maven\m2\repository\org\apache\curator\curator-framework\2.12.0\curator-framework-2.12.0.jar;D:\work\maven\m2\repository\org\apache\curator\curator-client\2.12.0\curator-client-2.12.0.jar;D:\work\maven\m2\repository\com\google\guava\guava\16.0.1\guava-16.0.1.jar;D:\work\maven\m2\repository\com\alibaba\boot\dubbo-spring-boot-autoconfigure\0.2.0\dubbo-spring-boot-autoconfigure-0.2.0.jar;D:\work\maven\m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;D:\work\maven\m2\repository\org\hibernate\hibernate-validator\5.4.1.Final\hibernate-validator-5.4.1.Final.jar;D:\work\maven\m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\work\maven\m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\work\maven\m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;D:\work\maven\m2\repository\org\springframework\boot\spring-boot-starter-data-redis\2.0.6.RELEASE\spring-boot-starter-data-redis-2.0.6.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\data\spring-data-redis\2.0.11.RELEASE\spring-data-redis-2.0.11.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\data\spring-data-keyvalue\2.0.11.RELEASE\spring-data-keyvalue-2.0.11.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\data\spring-data-commons\2.0.11.RELEASE\spring-data-commons-2.0.11.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-tx\5.0.10.RELEASE\spring-tx-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-oxm\5.0.10.RELEASE\spring-oxm-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\org\springframework\spring-context-support\5.0.10.RELEASE\spring-context-support-5.0.10.RELEASE.jar;D:\work\maven\m2\repository\io\lettuce\lettuce-core\5.0.5.RELEASE\lettuce-core-5.0.5.RELEASE.jar;D:\work\maven\m2\repository\io\projectreactor\reactor-core\3.1.10.RELEASE\reactor-core-3.1.10.RELEASE.jar;D:\work\maven\m2\repository\org\reactivestreams\reactive-streams\1.0.2\reactive-streams-1.0.2.jar;D:\work\maven\m2\repository\io\netty\netty-common\4.1.29.Final\netty-common-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-transport\4.1.29.Final\netty-transport-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-buffer\4.1.29.Final\netty-buffer-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-resolver\4.1.29.Final\netty-resolver-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-handler\4.1.29.Final\netty-handler-4.1.29.Final.jar;D:\work\maven\m2\repository\io\netty\netty-codec\4.1.29.Final\netty-codec-4.1.29.Final.jar; 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=D:\work\jdk\jdk1.8\jdk\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\work\jdk\jdk1.8\jdk\bin;D:\mysql-5.7.11-winx64\mysql-5.7.11-winx64\bin;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\work\maven\apache-maven-3.5.3-bin\apache-maven-3.5.3\bin;D:\work\thrift;C:\WINDOWS\System32\OpenSSH\;D:\work\node\;D:\work\git\Git\bin;D:\tool\\python\Scripts\;D:\;ool\\python\;C:\;sers\10673\AppData\Local\Programs\Python\Launcher\;C:\Users\10673\AppData\Local\Microsoft\WindowsApps;D:\칫;C;\Users\10673\AppData\Local\Microsoft\WindowsApps;C:\Users\10673\AppData\Roaming\npm;D:\work\ץ\fiddler;;D:\work\docker\Docker Toolbox;G:\tool\programming\vscode\Microsoft VS Code\bin;. 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.io.tmpdir=C:\Users\10673\AppData\Local\Temp\ 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.compiler= 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.name=Windows 10 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.arch=amd64 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.version=10.0 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.name=10673 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.home=C:\Users\10673 22:40:43.123 logback [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.dir=E:\project\java\orange\verifymaster\admin-web 22:40:43.124 logback [main] INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=localhost:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@4613311f 22:40:43.148 logback [main-SendThread(0:0:0:0:0:0:0:1:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error) 22:40:43.150 logback [main-SendThread(0:0:0:0:0:0:0:1:2181)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established to 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:2181, initiating session 22:40:43.161 logback [main-SendThread(0:0:0:0:0:0:0:1:2181)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:2181, sessionid = 0x1000027f443006a, negotiated timeout = 40000 22:40:43.174 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:43.177 logback [main-EventThread] INFO o.a.c.f.state.ConnectionStateManager - State change: CONNECTED 22:40:43.216 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:43.252 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, urls: [empty://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, empty://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, empty://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:43.266 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.resolveBeanReference(ConfigurationClassEnhancer.java:396) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:368) at com.orange.verify.adminweb.config.ShiroConfig$$EnhancerBySpringCGLIB$$874aaf79.customRealm() at com.orange.verify.adminweb.config.ShiroConfig.securityManager(ShiroConfig.java:87) at com.orange.verify.adminweb.config.ShiroConfig$$EnhancerBySpringCGLIB$$874aaf79.CGLIB$securityManager$0() at com.orange.verify.adminweb.config.ShiroConfig$$EnhancerBySpringCGLIB$$874aaf79$$FastClassBySpringCGLIB$$776dbd5e.invoke() at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365) at com.orange.verify.adminweb.config.ShiroConfig$$EnhancerBySpringCGLIB$$874aaf79.securityManager() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:583) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1246) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:819) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:725) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:475) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1246) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:943) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:826) at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:562) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:426) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:389) at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:214) at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1273) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1098) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:819) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:725) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:475) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1246) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:224) at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:708) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.UserService. No provider available for the service com.orange.verify.api.service.UserService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736031536 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 107 common frames omitted 22:40:43.268 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:43.269 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'customRealm' of type [com.orange.verify.adminweb.realm.CustomRealm] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.302 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'redisSessionDAO' of type [org.crazycake.shiro.RedisSessionDAO] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.326 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'sessionManager' of type [org.apache.shiro.web.session.mgt.DefaultWebSessionManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.346 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'securityManager' of type [org.apache.shiro.web.mgt.DefaultWebSecurityManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.509 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'authorizationAttributeSourceAdvisor' of type [org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.547 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'redisConfig' of type [com.orange.verify.adminweb.config.RedisConfig$$EnhancerBySpringCGLIB$$d21936c3] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.877 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.884 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.897 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:43.905 logback [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 22:40:44.642 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:44.655 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:44.667 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, urls: [empty://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, empty://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, empty://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:44.670 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.AccountService. No provider available for the service com.orange.verify.api.service.AccountService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736044599 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:44.674 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:44.796 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:44.804 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:44.828 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, urls: [empty://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, empty://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, empty://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:44.830 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.AccountLoginLogService. No provider available for the service com.orange.verify.api.service.AccountLoginLogService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736044743 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:44.830 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:45.020 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.051 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.072 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, urls: [empty://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, empty://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, empty://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.075 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.AccountRegisterLogService. No provider available for the service com.orange.verify.api.service.AccountRegisterLogService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736044992 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:45.076 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:45.181 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.187 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.220 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, urls: [empty://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, empty://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, empty://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.221 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.BaiduMapApiService. No provider available for the service com.orange.verify.api.service.BaiduMapApiService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736045113 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:45.222 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:45.325 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.405 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.604 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, urls: [empty://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, empty://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, empty://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.605 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.CardService. No provider available for the service com.orange.verify.api.service.CardService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736045297 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:45.606 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:45.702 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.729 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.761 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, urls: [empty://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, empty://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, empty://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.762 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.CardTypeService. No provider available for the service com.orange.verify.api.service.CardTypeService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736045674 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:45.763 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:45.841 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.873 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.928 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, urls: [empty://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, empty://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, empty://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.929 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.EmailAccountService. No provider available for the service com.orange.verify.api.service.EmailAccountService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736045808 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:45.929 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:45.959 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:45.963 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.008 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, urls: [empty://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, empty://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, empty://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.012 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.InterfaceManagementService. No provider available for the service com.orange.verify.api.service.InterfaceManagementService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736045952 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:46.012 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:46.117 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.129 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.144 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, urls: [empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, empty://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.145 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.SoftService. No provider available for the service com.orange.verify.api.service.SoftService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736046093 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:46.145 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:46.192 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.197 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.216 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, urls: [empty://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, empty://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, empty://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.218 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.SoftLeaveMessageService. No provider available for the service com.orange.verify.api.service.SoftLeaveMessageService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736046174 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:46.223 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:46.296 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Register: consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.327 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Subscribe: consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.364 logback [main] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Notify urls for subscribe url consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, urls: [empty://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=providers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, empty://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=configurators&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, empty://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:46.364 logback [main] WARN c.a.dubbo.config.AbstractConfig - [DUBBO] null, dubbo version: 2.6.2, current host: 169.254.195.210 java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alibaba.dubbo.config.AbstractConfig.toString(AbstractConfig.java:474) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at com.alibaba.dubbo.config.spring.beans.factory.annotation.AbstractAnnotationConfigBeanBuilder.build(AbstractAnnotationConfigBeanBuilder.java:79) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.buildReferenceBean(ReferenceAnnotationBeanPostProcessor.java:385) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.access$100(ReferenceAnnotationBeanPostProcessor.java:65) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor$ReferenceFieldElement.inject(ReferenceAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.postProcessPropertyValues(ReferenceAnnotationBeanPostProcessor.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.orange.verify.api.service.SoftVersionsService. No provider available for the service com.orange.verify.api.service.SoftVersionsService from the url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068®ister.ip=169.254.195.210&revision=1.0.0&side=consumer×tamp=1547736046258 to the consumer 169.254.195.210 use dubbo version 2.6.2 at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ... 56 common frames omitted 22:40:46.365 logback [main] INFO c.a.d.c.s.b.f.a.ReferenceBeanBuilder - has been built. 22:40:47.121 logback [main] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 22:40:47.938 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: org.springframework.web.context.support.GenericWebApplicationContext@3cfdd820: startup date [Thu Jan 17 22:40:27 CST 2019]; root of context hierarchy 22:40:48.096 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/remove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.remove(java.lang.String) 22:40:48.098 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/count],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.count() 22:40:48.099 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/register],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.register(com.orange.verify.api.vo.open.AccountRegisterVo,org.springframework.validation.BindingResult,javax.servlet.http.HttpServletRequest) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.099 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/getPublicKey],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.getPublicKey() 22:40:48.101 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/login],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.login(com.orange.verify.api.vo.open.AccountLoginVo,org.springframework.validation.BindingResult,javax.servlet.http.HttpServletRequest) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.105 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.page(com.orange.verify.api.vo.AccountVo,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.108 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/getVerificationCode],methods=[GET]}" onto public void com.orange.verify.adminweb.controller.AccountController.getVerificationCode(com.orange.verify.api.vo.open.AccountVerificationCodeVo,javax.servlet.http.HttpServletResponse) 22:40:48.108 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/bindingCard],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.bindingCard(com.orange.verify.api.vo.open.AccountBindingCardVo,org.springframework.validation.BindingResult) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.108 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/bindingCode],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.bindingCode(com.orange.verify.api.vo.open.AccountBindingCodeVo,org.springframework.validation.BindingResult) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.109 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/updatePassword],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.updatePassword(com.orange.verify.api.vo.open.AccountUpdatePasswordVo,org.springframework.validation.BindingResult) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.110 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/account/blacklist],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountController.blacklist(java.lang.String,java.lang.Integer) 22:40:48.114 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/accountLoginLog/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountLoginLogController.page(com.orange.verify.api.vo.AccountLoginLogVo,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.115 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/accountLoginLog/getBeforeData],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountLoginLogController.getBeforeData(java.lang.String) 22:40:48.119 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/accountRegisterLog/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountRegisterLogController.page(com.orange.verify.api.bean.AccountRegisterLog,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.123 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/accountRegisterLog/getBeforeData],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.AccountRegisterLogController.getBeforeData(java.lang.String) 22:40:48.125 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/baiduMapApi/update],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.BaiduMapApiController.update(com.orange.verify.api.bean.BaiduMapApi) 22:40:48.126 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/baiduMapApi/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.BaiduMapApiController.create(com.orange.verify.api.bean.BaiduMapApi) 22:40:48.127 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/baiduMapApi/single],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.BaiduMapApiController.single() 22:40:48.130 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/remove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.remove(java.lang.String) 22:40:48.130 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/count],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.count() 22:40:48.132 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.create(com.orange.verify.api.bean.Card,java.lang.Integer) 22:40:48.136 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/batchRemove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.batchRemove(java.util.List) 22:40:48.140 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/closure],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.closure(java.lang.String,java.lang.Integer) 22:40:48.149 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.page(com.orange.verify.api.vo.CardVo,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.158 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/getCardTimeLimit],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.getCardTimeLimit(java.lang.String,java.lang.String,java.lang.String) 22:40:48.159 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/sellStatus],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.sellStatus(java.lang.String,java.lang.Integer) 22:40:48.160 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/card/sell],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardController.sell(java.util.List) 22:40:48.162 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/cardType/remove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardTypeController.remove(java.lang.String) 22:40:48.171 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/cardType/update],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardTypeController.update(com.orange.verify.api.bean.CardType) 22:40:48.172 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/cardType/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardTypeController.create(com.orange.verify.api.bean.CardType) 22:40:48.174 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/cardType/list],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardTypeController.list() 22:40:48.186 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/cardType/single],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardTypeController.single(java.lang.String) 22:40:48.196 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/cardType/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.CardTypeController.page(com.orange.verify.api.bean.CardType,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.198 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/emailAccount/remove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.EmailAccountController.remove(java.lang.String) 22:40:48.206 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/emailAccount/update],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.EmailAccountController.update(com.orange.verify.api.bean.EmailAccount) 22:40:48.206 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/emailAccount/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.EmailAccountController.create(com.orange.verify.api.bean.EmailAccount) 22:40:48.206 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/emailAccount/list],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.EmailAccountController.list() 22:40:48.206 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/emailAccount/single],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.EmailAccountController.single(java.lang.String) 22:40:48.210 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/interfaceManagement/update],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.InterfaceManagementController.update(com.orange.verify.api.bean.InterfaceManagement) 22:40:48.226 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/interfaceManagement/list],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.InterfaceManagementController.list() 22:40:48.228 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/interfaceManagement/ipHandle],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.InterfaceManagementController.ipHandle(java.lang.String,java.lang.Integer) 22:40:48.229 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/interfaceManagement/getSingle],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.InterfaceManagementController.getSingle(java.lang.String) 22:40:48.230 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/interfaceManagement/closeInterface],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.InterfaceManagementController.closeInterface(java.lang.String,java.lang.Integer) 22:40:48.246 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/remove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.remove(java.lang.String) 22:40:48.247 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/count],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.count() 22:40:48.256 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/update],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.update(com.orange.verify.api.bean.Soft) 22:40:48.257 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.create(com.orange.verify.api.bean.Soft) 22:40:48.258 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/list],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.list() 22:40:48.261 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/single],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.single(java.lang.String) 22:40:48.262 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.page(com.orange.verify.api.bean.Soft,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.263 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/soft/getSoftDesc],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftController.getSoftDesc(com.orange.verify.api.vo.open.SoftGetSoftDescVo,org.springframework.validation.BindingResult) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.263 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softLeaveMessage/remove],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftLeaveMessageController.remove(java.lang.String) 22:40:48.264 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softLeaveMessage/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftLeaveMessageController.create(com.orange.verify.api.vo.open.SoftLeaveMeesageSubmitVo,org.springframework.validation.BindingResult,javax.servlet.http.HttpServletRequest) throws com.orange.verify.adminweb.annotation.ParameterError 22:40:48.266 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softLeaveMessage/page],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftLeaveMessageController.page(com.orange.verify.api.vo.SoftLeaveMessageVo,com.baomidou.mybatisplus.extension.plugins.pagination.Page) 22:40:48.272 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softVersions/update],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftVersionsController.update(com.orange.verify.api.bean.SoftVersions) 22:40:48.273 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softVersions/create],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftVersionsController.create(com.orange.verify.api.bean.SoftVersions) 22:40:48.273 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softVersions/getVersions],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftVersionsController.getVersions(java.lang.String) 22:40:48.273 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/softVersions/getSingleBySoftId],methods=[GET]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.SoftVersionsController.getSingleBySoftId(java.lang.String) 22:40:48.275 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/user/login],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.UserController.login(com.orange.verify.api.bean.User) 22:40:48.275 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/user/logout],methods=[POST]}" onto public com.orange.verify.adminweb.model.Response com.orange.verify.adminweb.controller.UserController.logout() 22:40:48.281 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 22:40:48.282 logback [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 22:40:48.407 logback [main] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 22:40:48.410 logback [main] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 22:40:48.463 logback [main] INFO o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Detected @ExceptionHandler methods in shiroFilterConfig 22:40:48.662 logback [main] INFO c.a.d.c.s.b.f.a.DubboConfigBindingBeanPostProcessor - The properties of bean [name : com.alibaba.dubbo.config.ProtocolConfig#0] have been binding by prefix of configuration properties : dubbo.protocol 22:40:49.406 logback [main] INFO c.o.v.a.AdminWebApplicationTests - Started AdminWebApplicationTests in 23.16 seconds (JVM running for 24.554) 22:40:49.754 logback [main] INFO io.lettuce.core.EpollProvider - Starting without optional epoll library 22:40:49.757 logback [main] INFO io.lettuce.core.KqueueProvider - Starting without optional kqueue library 22:40:56.003 logback [Thread-2] INFO o.s.w.c.s.GenericWebApplicationContext - Closing org.springframework.web.context.support.GenericWebApplicationContext@3cfdd820: startup date [Thu Jan 17 22:40:27 CST 2019]; root of context hierarchy 22:40:56.003 logback [DubboShutdownHook] INFO c.a.dubbo.config.AbstractConfig - [DUBBO] Run shutdown hook now., dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.004 logback [DubboShutdownHook] INFO c.a.d.r.s.AbstractRegistryFactory - [DUBBO] Close all registries [zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&client=curator&dubbo=2.6.2&interface=com.alibaba.dubbo.registry.RegistryService&pid=22068×tamp=1547736031591], dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.004 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy registry:zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=com-orange-verify-client&client=curator&dubbo=2.6.2&interface=com.alibaba.dubbo.registry.RegistryService&pid=22068×tamp=1547736031591, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.007 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.021 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.021 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.024 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.025 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.027 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.027 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.029 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.030 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.032 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.032 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.035 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.035 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.037 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.037 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.042 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.042 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.045 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.045 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.048 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.048 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.051 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.051 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unregister: consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unregister url consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=consumers&check=false&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.CardService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,sell,count,listObjs,list,getMap,updateById,batchRemove,pageMaps,listByMap,getById,getOne,page,getCardTimeLimit&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045297, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.InterfaceManagementService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.InterfaceManagementService&methods=getSingle,getAll,ipHandle,update,closeInterface&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045952, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.054 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.AccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountService&methods=bindingCard,removeById,save,removeByMap,update,getObj,login,saveOrUpdateBatch,remove,listByIds,removeByIds,saveVerificationCode,updateBatchById,saveOrUpdate,updatePassword,listMaps,saveBatch,count,listObjs,bindingCode,getPublicKey,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page,register&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044599, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.SoftVersionsService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftVersionsService&methods=removeById,save,removeByMap,update,getObj,saveLogic,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getVersions,saveOrUpdate,getSingleBySoftId,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046258, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.AccountLoginLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountLoginLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044743, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.EmailAccountService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.EmailAccountService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,getList,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045808, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.BaiduMapApiService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.BaiduMapApiService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045113, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.055 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.CardTypeService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.CardTypeService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736045674, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.UserService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.UserService&methods=removeById,save,removeByMap,update,getObj,verifyUser,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736031536, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.AccountRegisterLogService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.AccountRegisterLogService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,getBeforeData,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736044992, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.SoftService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getSoftDesc,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046093, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.056 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Unsubscribe: consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.057 logback [DubboShutdownHook] INFO c.a.d.r.zookeeper.ZookeeperRegistry - [DUBBO] Destroy unsubscribe url consumer://169.254.195.210/com.orange.verify.api.service.SoftLeaveMessageService?application=com-orange-verify-client&category=providers,configurators,routers&default.retries=0&default.timeout=10000&dubbo=2.6.2&interface=com.orange.verify.api.service.SoftLeaveMessageService&methods=removeById,save,removeByMap,update,getObj,saveOrUpdateBatch,remove,listByIds,removeByIds,updateBatchById,create,saveOrUpdate,listMaps,saveBatch,count,listObjs,list,getMap,updateById,pageMaps,listByMap,getById,getOne,page&pid=22068&revision=1.0.0&side=consumer×tamp=1547736046174, dubbo version: 2.6.2, current host: 169.254.195.210 22:40:56.058 logback [Curator-Framework-0] INFO o.a.c.f.imps.CuratorFrameworkImpl - backgroundOperationsLoop exiting 22:40:56.062 logback [DubboShutdownHook] INFO org.apache.zookeeper.ZooKeeper - Session: 0x1000027f443006a closed 22:40:56.062 logback [main-EventThread] INFO org.apache.zookeeper.ClientCnxn - EventThread shut down for session: 0x1000027f443006a 22:40:57.133 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.134 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.135 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.137 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.137 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.138 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.138 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.138 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.138 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.139 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.139 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.139 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - was destroying! 22:40:57.139 logback [Thread-2] INFO c.a.d.c.s.b.f.a.ReferenceAnnotationBeanPostProcessor - class com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor was destroying! ================================================ FILE: admin-web/mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Maven2 Start Up Batch script # # Required ENV vars: # ------------------ # JAVA_HOME - location of a JDK home dir # # Optional ENV vars # ----------------- # M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. cygwin=false; darwin=false; mingw=false case "`uname`" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then export JAVA_HOME="`/usr/libexec/java_home`" else export JAVA_HOME="/Library/Java/Home" fi fi ;; esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then JAVA_HOME=`java-config --jre-home` fi fi if [ -z "$M2_HOME" ] ; then ## resolve links - $0 may be a link to maven's home PRG="$0" # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG="`dirname "$PRG"`/$link" fi done saveddir=`pwd` M2_HOME=`dirname "$PRG"`/.. # make it fully qualified M2_HOME=`cd "$M2_HOME" && pwd` cd "$saveddir" # echo Using m2 at $M2_HOME fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then javaExecutable="`which javac`" if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=`which readlink` if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then if $darwin ; then javaHome="`dirname \"$javaExecutable\"`" javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" else javaExecutable="`readlink -f \"$javaExecutable\"`" fi javaHome="`dirname \"$javaExecutable\"`" javaHome=`expr "$javaHome" : '\(.*\)/bin'` JAVA_HOME="$javaHome" export JAVA_HOME fi fi fi if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" return 1 fi basedir="$1" wdir="$1" while [ "$wdir" != '/' ] ; do if [ -d "$wdir"/.mvn ] ; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then wdir=`cd "$wdir/.."; pwd` fi # end of workaround done echo "${basedir}" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then echo "$(tr -s '\n' ' ' < "$1")" fi } BASE_DIR=`find_maven_basedir "$(pwd)"` if [ -z "$BASE_DIR" ]; then exit 1; fi ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found .mvn/wrapper/maven-wrapper.jar" fi else if [ "$MVNW_VERBOSE" = true ]; then echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" while IFS="=" read key value; do case "$key" in (wrapperUrl) jarUrl="$value"; break ;; esac done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" if [ "$MVNW_VERBOSE" = true ]; then echo "Downloading from: $jarUrl" fi wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" if command -v wget > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found wget ... using wget" fi wget "$jarUrl" -O "$wrapperJarPath" elif command -v curl > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found curl ... using curl" fi curl -o "$wrapperJarPath" "$jarUrl" else if [ "$MVNW_VERBOSE" = true ]; then echo "Falling back to using Java to download" fi javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" if [ -e "$javaClass" ]; then if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo " - Compiling MavenWrapperDownloader.java ..." fi # Compiling the Java class ("$JAVA_HOME/bin/javac" "$javaClass") fi if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then # Running the downloader if [ "$MVNW_VERBOSE" = true ]; then echo " - Running MavenWrapperDownloader.java ..." fi ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") fi fi fi fi ########################################################################################## # End of extension ########################################################################################## export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} if [ "$MVNW_VERBOSE" = true ]; then echo $MAVEN_PROJECTBASEDIR fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` [ -n "$MAVEN_PROJECTBASEDIR" ] && MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" ================================================ FILE: admin-web/mvnw.cmd ================================================ @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files @REM ---------------------------------------------------------------------------- @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off @REM set title of command window title %0 @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") @REM Execute a user defined script before this one if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre @REM check for pre script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" :skipRcPre @setlocal set ERROR_CODE=0 @REM To isolate internal variables from possible post scripts, we use another setlocal @setlocal @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init echo. echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error @REM ==== END VALIDATION ==== :init @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". @REM Fallback to current working directory if not found. set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir set EXEC_DIR=%CD% set WDIR=%EXEC_DIR% :findBaseDir IF EXIST "%WDIR%"\.mvn goto baseDirFound cd .. IF "%WDIR%"=="%CD%" goto baseDirNotFound set WDIR=%CD% goto findBaseDir :baseDirFound set MAVEN_PROJECTBASEDIR=%WDIR% cd "%EXEC_DIR%" goto endDetectBaseDir :baseDirNotFound set MAVEN_PROJECTBASEDIR=%EXEC_DIR% cd "%EXEC_DIR%" :endDetectBaseDir IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig @setlocal EnableExtensions EnableDelayedExpansion for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B ) @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central @REM This allows using the maven wrapper in projects that prohibit checking in binary data. if exist %WRAPPER_JAR% ( echo Found %WRAPPER_JAR% ) else ( echo Couldn't find %WRAPPER_JAR%, downloading it ... echo Downloading from: %DOWNLOAD_URL% powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" echo Finished downloading %WRAPPER_JAR% ) @REM End of extension %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end :error set ERROR_CODE=1 :end @endlocal & set ERROR_CODE=%ERROR_CODE% if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost @REM check for post script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" :skipRcPost @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% ================================================ FILE: admin-web/pom.xml ================================================ 4.0.0 com.orange.verify admin-web 1.0.0 jar admin-web Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.0.6.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test com.orange.verify api 1.0.0 compile com.orange.verify common 1.0.0 compile org.apache.shiro shiro-spring 1.4.0 org.apache.shiro shiro-ehcache 1.4.0 org.crazycake shiro-redis 2.4.2.1-RELEASE com.alibaba fastjson 1.2.52 org.projectlombok lombok 1.16.18 compile com.alibaba.boot dubbo-spring-boot-starter 0.2.0 org.aspectj aspectjweaver 1.8.13 compile org.hibernate hibernate-validator 5.4.1.Final org.springframework.boot spring-boot-starter-data-redis cn.hutool hutool-all 4.5.1 org.springframework.boot spring-boot-maven-plugin ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/AdminWebApplication.java ================================================ package com.orange.verify.adminweb; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) public class AdminWebApplication { public static void main(String[] args) { SpringApplication.run(AdminWebApplication.class, args); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/annotation/Open.java ================================================ package com.orange.verify.adminweb.annotation; import java.lang.annotation.*; /** * 如果要Ip限流的注解这个 * @author Ornage软件 * @date 2019.3.15 */ @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Open { /** * 接口说明 */ String explain() default "..."; } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/annotation/ParameterError.java ================================================ package com.orange.verify.adminweb.annotation; public class ParameterError extends Exception { public ParameterError() { super(); } public ParameterError(String msg) { super(msg); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/annotation/RspHandle.java ================================================ package com.orange.verify.adminweb.annotation; import java.lang.annotation.*; /** * rsp 返回操作 * @author Orange * @date 2018/10/13 */ @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RspHandle { //方法体报错 是否返回错误信息 boolean isSetErrorInfo() default false; } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/annotation/RspHandleAspect.java ================================================ package com.orange.verify.adminweb.annotation; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.InterfaceManagement; import com.orange.verify.api.redis.RedisKeyConstant; import com.orange.verify.api.sc.InterfaceManagementIpHandle; import com.orange.verify.api.sc.InterfaceManagementVisit; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; import java.util.concurrent.TimeUnit; /** * rsp简化aop * @author Orange * @date 2018/10/13 */ @Aspect @Component public class RspHandleAspect { private static final Logger log = LoggerFactory.getLogger(RspHandleAspect.class); @Autowired private RedisTemplate redisTemplate; @Pointcut("@annotation(com.orange.verify.adminweb.annotation.RspHandle)") public void annotationPointCut() { } @Around("annotationPointCut()") public Response arround(ProceedingJoinPoint pjp) throws Throwable { RspHandle rspHandle = getRspHandle(pjp); boolean setErrorInfo = rspHandle.isSetErrorInfo(); RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST); String url = pjp.getSignature().getDeclaringTypeName() + "." + pjp.getSignature().getName(); InterfaceManagement interfaceManagement = (InterfaceManagement) redisTemplate.opsForValue().get(RedisKeyConstant.OPEN_INTERFACE + url); if (interfaceManagement != null) { if (interfaceManagement.getVisit() == InterfaceManagementVisit.CLOSE.getStatusCode()) { return Response.build(ResponseCode.INTERFACE_CLOSE); } else if (interfaceManagement.getIpHandle() == InterfaceManagementIpHandle.START.getStatusCode()) { String remoteAddr = RedisKeyConstant.IP_LIBRARY + request.getRemoteAddr().replaceAll(":","."); long count = redisTemplate.opsForValue().increment(remoteAddr, 1); if (count == 1) { redisTemplate.expire(remoteAddr, interfaceManagement.getIpRedisInterval(), TimeUnit.MINUTES); } if (count > interfaceManagement.getIpVisits()) { Long expire = redisTemplate.getExpire(remoteAddr); String msg = "访问过快哦!" + expire + "秒过后才能继续访问"; return Response.build(ResponseCode.TOO_FAST,msg); } } } try { long startTime = System.currentTimeMillis(); Response response = (Response) pjp.proceed(); long endTime = System.currentTimeMillis(); response.setTotalTime(endTime - startTime); return response; } catch (ParameterError e) { return Response.build(ResponseCode.PARAMETER_ERROR,e.getMessage()); } catch (Exception e) { log.error(e.getMessage()); if (setErrorInfo == true) { return Response.build(ResponseCode.UNKNOWN_ERROR,e.getMessage()); } else { return Response.build(ResponseCode.UNKNOWN_ERROR); } } } private RspHandle getRspHandle(ProceedingJoinPoint pjp) { MethodSignature sign = (MethodSignature) pjp.getSignature(); Method method = sign.getMethod(); return method.getAnnotation(RspHandle.class); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/config/RedisConfig.java ================================================ package com.orange.verify.adminweb.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * RedisTemple */ @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式) Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); //使用StringRedisSerializer来序列化和反序列化redis的key值 RedisSerializer redisSerializer = new StringRedisSerializer(); //key redisTemplate.setKeySerializer(redisSerializer); redisTemplate.setHashKeySerializer(redisSerializer); //value redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/config/ShiroConfig.java ================================================ package com.orange.verify.adminweb.config; import com.orange.verify.adminweb.realm.CustomRealm; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.crazycake.shiro.RedisCacheManager; import org.crazycake.shiro.RedisManager; import org.crazycake.shiro.RedisSessionDAO; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.LinkedHashMap; import java.util.Map; @Configuration public class ShiroConfig { @Value("${spring.redis.host}") private String redisHost; @Value("${spring.redis.port}") private int redisPort; @Value("${spring.redis.password}") private String redisPassword; @Value("${spring.redis.timeout}") private int redisTimeout; @Value("${spring.redis.expire}") private int redisExpire; @Bean public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); // 必须设置 SecurityManager shiroFilterFactoryBean.setSecurityManager(securityManager); //随便写个路径都行,因为开启了注解认证登陆权限了 shiroFilterFactoryBean.setLoginUrl("/login"); shiroFilterFactoryBean.setUnauthorizedUrl("/notRole"); // 设置拦截器(不需要设置了,因为开启了注解了) Map filterChainDefinitionMap = new LinkedHashMap<>(); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; } /** * 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使用Shiro注解的类,并在必要时进行安全逻辑验证 * 配置以下两个bean(DefaultAdvisorAutoProxyCreator和AuthorizationAttributeSourceAdvisor)即可实现此功能 * @return */ @Bean public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator(){ DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator(); advisorAutoProxyCreator.setProxyTargetClass(true); return advisorAutoProxyCreator; } /** * 开启aop注解支持 * @param securityManager * @return */ @Bean public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) { AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); return authorizationAttributeSourceAdvisor; } /** * 注入 securityManager */ @Bean public SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); // 设置realm. securityManager.setRealm(customRealm()); securityManager.setCacheManager(cacheManager()); securityManager.setSessionManager(sessionManager()); return securityManager; } public RedisCacheManager cacheManager() { RedisCacheManager redisCacheManager = new RedisCacheManager(); redisCacheManager.setRedisManager(redisManager()); return redisCacheManager; } public RedisManager redisManager() { RedisManager redisManager = new RedisManager(); redisManager.setExpire(redisExpire); redisManager.setHost(redisHost); redisManager.setPassword(redisPassword); redisManager.setTimeout(redisTimeout); redisManager.setPort(redisPort); return redisManager; } @Bean public DefaultWebSessionManager sessionManager() { DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); sessionManager.setSessionDAO(redisSessionDAO()); return sessionManager; } @Bean public RedisSessionDAO redisSessionDAO() { RedisSessionDAO redisSessionDAO = new RedisSessionDAO(); redisSessionDAO.setRedisManager(redisManager()); return redisSessionDAO; } /** * 自定义身份认证 realm; */ @Bean public CustomRealm customRealm() { return new CustomRealm(); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/config/ShiroFilterConfig.java ================================================ package com.orange.verify.adminweb.config; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authz.AuthorizationException; import org.apache.shiro.authz.UnauthenticatedException; import org.apache.shiro.authz.UnauthorizedException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 全局拦截 异常 * @author Orange * @date 2018/11/22 */ @ControllerAdvice public class ShiroFilterConfig { /** * 登录认证异常 */ @ExceptionHandler({ UnauthenticatedException.class, AuthenticationException.class }) @ResponseBody public Response authenticationException(HttpServletRequest request, HttpServletResponse response) { return Response.build(ResponseCode.NOT_LOGIN); } /** * 权限异常 */ @ExceptionHandler({ UnauthorizedException.class, AuthorizationException.class }) @ResponseBody public Response authorizationException(HttpServletRequest request, HttpServletResponse response) { return Response.build(ResponseCode.NOT_ROLE); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/config/ValidatorConfig.java ================================================ package com.orange.verify.adminweb.config; import org.hibernate.validator.HibernateValidator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; @Configuration public class ValidatorConfig { /** * 配置hibernate Validator为快速失败返回模式 */ @Bean public Validator validator(){ ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class ) .configure() .addProperty( "hibernate.validator.fail_fast", "true" ) .buildValidatorFactory(); Validator validator = validatorFactory.getValidator(); return validator; } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/AccountController.java ================================================ package com.orange.verify.adminweb.controller; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.ICaptcha; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.adminweb.annotation.ParameterError; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.Account; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.service.AccountService; import com.orange.verify.api.sr.*; import com.orange.verify.api.vo.AccountVo; import com.orange.verify.api.vo.open.*; import com.orange.verify.common.ip.IpUtil; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 客户... */ @Controller @RequestMapping(value = "account") public class AccountController extends BaseController { @Reference private AccountService accountService; @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(AccountVo accountVo, Page page) { Page cardTypeVoPage = accountService.page(accountVo,page); return Response.build(ResponseCode.QUERY_SUCCESS,cardTypeVoPage); } @RspHandle @RequiresUser @RequestMapping(value = "count",method = RequestMethod.GET) @ResponseBody public Response count() { int count = accountService.count(); return Response.build(ResponseCode.QUERY_SUCCESS,count); } @RspHandle @RequiresUser @RequestMapping(value = "blacklist",method = RequestMethod.POST) @ResponseBody public Response blacklist(String accountId,Integer blacklist) { Account account = new Account(); account.setId(accountId); account.setBlacklist(blacklist); boolean b = accountService.updateById(account); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "remove",method = RequestMethod.POST) @ResponseBody public Response remove(String accountId) { boolean b = accountService.removeById(accountId); if (b == true) { return Response.success(); } return Response.error(); } @Open(explain = "获取RSA公钥") @RspHandle @RequestMapping(value = "getPublicKey",method = RequestMethod.POST) @ResponseBody public Response getPublicKey() { ServiceResult result = accountService.getPublicKey(); switch (result.getCode()) { case AccountImplGetPublicKeyEnum.SUCCESS: return Response.build(ResponseCode.QUERY_SUCCESS,ResponseCode.QUERY_SUCCESS.getDesc(),result.getData()); case AccountImplGetPublicKeyEnum.KEY_ERROR: return Response.build(ResponseCode.KEY_ERROR); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } @RequestMapping(value = "getVerificationCode",method = RequestMethod.GET) public void getVerificationCode(AccountVerificationCodeVo accountVerificationCodeVo,HttpServletResponse response) { ICaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 100, 6, 20); try { if (accountVerificationCodeVo == null) { accountVerificationCodeVo = new AccountVerificationCodeVo(); } accountVerificationCodeVo.setPublicKey(accountVerificationCodeVo.getPublicKey() .replaceAll(" ","+")); accountVerificationCodeVo.setCode(captcha.getCode()); accountService.saveVerificationCode(accountVerificationCodeVo); captcha.write(response.getOutputStream()); } catch (IOException e) { } } @Open(explain = "账号注册") @RspHandle @RequestMapping(value = "register",method = RequestMethod.POST) @ResponseBody public Response register(@Validated AccountRegisterVo accountRegisterVo, BindingResult result, HttpServletRequest request) throws ParameterError { super.parametric(result); accountRegisterVo.setPublicKey(accountRegisterVo.getPublicKey().replaceAll(" ","+")); accountRegisterVo.setPassword(accountRegisterVo.getPassword().replaceAll(" ","+")); accountRegisterVo.setCode(accountRegisterVo.getCode().replaceAll(" ","+")); accountRegisterVo.setIp(IpUtil.getIp(request)); ServiceResult register = accountService.register(accountRegisterVo); switch (register.getCode()) { case AccountImplRegisterEnum.REGISTER_SUCCESS: return Response.build(ResponseCode.REGISTER_SUCCESS); case AccountImplRegisterEnum.REGISTER_ERROR: return Response.build(ResponseCode.REGISTER_ERROR); case AccountImplRegisterEnum.KEY_EMPTY: return Response.build(ResponseCode.KEY_EMPTY); case AccountImplRegisterEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); case AccountImplRegisterEnum.BAIDU_API_ERROR: return Response.build(ResponseCode.BAIDU_API_ERROR); case AccountImplRegisterEnum.KEY_ERROR: return Response.build(ResponseCode.KEY_ERROR); case AccountImplRegisterEnum.ACCOUNT_ALREADY_EXIST: return Response.build(ResponseCode.ACCOUNT_ALREADY_EXIST); case AccountImplRegisterEnum.PASSWORD_LENGTH_ERROR: return Response.build(ResponseCode.PASSWORD_LENGTH_ERROR); case AccountImplRegisterEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE,register.getMsg()); case AccountImplRegisterEnum.REGISTER_CLOSE: return Response.build(ResponseCode.REGISTER_CLOSE,register.getMsg()); case AccountImplRegisterEnum.VC_EMPTY: return Response.build(ResponseCode.VC_EMPTY); case AccountImplRegisterEnum.VC_MISMATCHES: return Response.build(ResponseCode.VC_MISMATCHES); case AccountImplRegisterEnum.NIMIETY: return Response.build(ResponseCode.NIMIETY); case AccountImplRegisterEnum.SERVER_ERROR: return Response.build(ResponseCode.SERVER_ERROR); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } @Open(explain = "账号登陆") @RspHandle @RequestMapping(value = "login",method = RequestMethod.POST) @ResponseBody public Response login(@Validated AccountLoginVo accountLoginVo, BindingResult result, HttpServletRequest request) throws ParameterError { super.parametric(result); accountLoginVo.setPublicKey(accountLoginVo.getPublicKey().replaceAll(" ","+")); accountLoginVo.setPassword(accountLoginVo.getPassword().replaceAll(" ","+")); accountLoginVo.setCode(accountLoginVo.getCode().replaceAll(" ","+")); accountLoginVo.setIp(IpUtil.getIp(request)); ServiceResult login = accountService.login(accountLoginVo); switch (login.getCode()) { case AccountImplLoginEnum.LOGIN_SUCCESS: return Response.build(ResponseCode.LOGIN_SUCCESS); case AccountImplLoginEnum.LOGIN_ERROR: return Response.build(ResponseCode.LOGIN_ERROR); case AccountImplLoginEnum.KEY_EMPTY: return Response.build(ResponseCode.KEY_EMPTY); case AccountImplLoginEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); case AccountImplLoginEnum.KEY_ERROR: return Response.build(ResponseCode.KEY_ERROR); case AccountImplLoginEnum.PASSWORD_LENGTH_ERROR: return Response.build(ResponseCode.PASSWORD_LENGTH_ERROR); case AccountImplLoginEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE,login.getMsg()); case AccountImplLoginEnum.ACCOUNT_NOT_BOUND_CARD: return Response.build(ResponseCode.ACCOUNT_NOT_BOUND_CARD); case AccountImplLoginEnum.CARD_CLOSURE: return Response.build(ResponseCode.CARD_CLOSURE); case AccountImplLoginEnum.CARD_PAST_DUE: return Response.build(ResponseCode.CARD_PAST_DUE); case AccountImplLoginEnum.ACCOUNT_BLACKLIST: return Response.build(ResponseCode.ACCOUNT_BLACKLIST); case AccountImplLoginEnum.BAIDU_API_ERROR: return Response.build(ResponseCode.BAIDU_API_ERROR); case AccountImplLoginEnum.ACCOUNT_EMPTY: return Response.build(ResponseCode.ACCOUNT_EMPTY); case AccountImplLoginEnum.PASSWORD_ERROR: return Response.build(ResponseCode.PASSWORD_ERROR); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } @Open(explain = "绑定卡密") @RspHandle @RequestMapping(value = "bindingCard",method = RequestMethod.POST) @ResponseBody public Response bindingCard(@Validated AccountBindingCardVo accountBindingCardVo, BindingResult result) throws ParameterError { super.parametric(result); accountBindingCardVo.setPublicKey(accountBindingCardVo.getPublicKey().replaceAll(" ","+")); accountBindingCardVo.setPassword(accountBindingCardVo.getPassword().replaceAll(" ","+")); accountBindingCardVo.setCode(accountBindingCardVo.getCode().replaceAll(" ","+")); ServiceResult bindingCard = accountService.bindingCard(accountBindingCardVo); switch (bindingCard.getCode()) { case AccountImplBindingCardEnum.BINDING_CARD_SUCCESS: return Response.build(ResponseCode.BINDING_CARD_SUCCESS); case AccountImplBindingCardEnum.BINDING_CARD_ERROR: return Response.build(ResponseCode.BINDING_CARD_ERROR); case AccountImplBindingCardEnum.KEY_EMPTY: return Response.build(ResponseCode.KEY_EMPTY); case AccountImplBindingCardEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); case AccountImplBindingCardEnum.KEY_ERROR: return Response.build(ResponseCode.KEY_ERROR); case AccountImplBindingCardEnum.PASSWORD_LENGTH_ERROR: return Response.build(ResponseCode.PASSWORD_LENGTH_ERROR); case AccountImplBindingCardEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE,bindingCard.getMsg()); case AccountImplBindingCardEnum.ACCOUNT_EMPTY: return Response.build(ResponseCode.ACCOUNT_EMPTY); case AccountImplBindingCardEnum.PASSWORD_ERROR: return Response.build(ResponseCode.PASSWORD_ERROR); case AccountImplBindingCardEnum.CARD_EMPTY: return Response.build(ResponseCode.CARD_EMPTY); case AccountImplBindingCardEnum.ACCOUNT_BLACKLIST: return Response.build(ResponseCode.ACCOUNT_BLACKLIST); case AccountImplBindingCardEnum.CARD_USE: return Response.build(ResponseCode.CARD_USE); case AccountImplBindingCardEnum.CARD_CLOSURE: return Response.build(ResponseCode.CARD_CLOSURE); case AccountImplBindingCardEnum.SOFT_INCONSISTENCY: return Response.build(ResponseCode.SOFT_INCONSISTENCY); case AccountImplBindingCardEnum.SOFT_FREE: return Response.build(ResponseCode.SOFT_FREE); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } @Open(explain = "机器绑定") @RspHandle @RequestMapping(value = "bindingCode",method = RequestMethod.POST) @ResponseBody public Response bindingCode(@Validated AccountBindingCodeVo accountBindingCodeVo, BindingResult result) throws ParameterError { super.parametric(result); accountBindingCodeVo.setPublicKey(accountBindingCodeVo.getPublicKey().replaceAll(" ","+")); accountBindingCodeVo.setPassword(accountBindingCodeVo.getPassword().replaceAll(" ","+")); accountBindingCodeVo.setCode(accountBindingCodeVo.getCode().replaceAll(" ","+")); ServiceResult bindingCode = accountService.bindingCode(accountBindingCodeVo); switch (bindingCode.getCode()) { case AccountImplBindingCodeEnum.BINDING_CODE_SUCCESS: return Response.build(ResponseCode.BINDING_CODE_SUCCESS); case AccountImplBindingCodeEnum.BINDING_CODE_ERROR: return Response.build(ResponseCode.BINDING_CODE_ERROR); case AccountImplBindingCodeEnum.KEY_EMPTY: return Response.build(ResponseCode.KEY_EMPTY); case AccountImplBindingCodeEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); case AccountImplBindingCodeEnum.KEY_ERROR: return Response.build(ResponseCode.KEY_ERROR); case AccountImplBindingCodeEnum.PASSWORD_LENGTH_ERROR: return Response.build(ResponseCode.PASSWORD_LENGTH_ERROR); case AccountImplBindingCodeEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE,bindingCode.getMsg()); case AccountImplBindingCodeEnum.ACCOUNT_EMPTY: return Response.build(ResponseCode.ACCOUNT_EMPTY); case AccountImplBindingCodeEnum.SOFT_NO_CHANGE: return Response.build(ResponseCode.SOFT_NO_CHANGE); case AccountImplBindingCodeEnum.ACCOUNT_BLACKLIST: return Response.build(ResponseCode.ACCOUNT_BLACKLIST); case AccountImplBindingCodeEnum.PASSWORD_ERROR: return Response.build(ResponseCode.PASSWORD_ERROR); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } @Open(explain = "修改密码") @RspHandle @RequestMapping(value = "updatePassword",method = RequestMethod.POST) @ResponseBody public Response updatePassword(@Validated AccountUpdatePasswordVo accountUpdatePasswordVo, BindingResult result) throws ParameterError { super.parametric(result); ServiceResult bindingCode = accountService.updatePassword(accountUpdatePasswordVo); switch (bindingCode.getCode()) { case AccountImplUpdatePasswordEnum.UPDATE_PASSWORD_SUCCESS: return Response.build(ResponseCode.UPDATE_PASSWORD_SUCCESS); case AccountImplUpdatePasswordEnum.UPDATE_PASSWORD_ERROR: return Response.build(ResponseCode.UPDATE_PASSWORD_ERROR); case AccountImplUpdatePasswordEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); case AccountImplUpdatePasswordEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE); case AccountImplUpdatePasswordEnum.ACCOUNT_EMPTY: return Response.build(ResponseCode.ACCOUNT_EMPTY); case AccountImplUpdatePasswordEnum.ACCOUNT_BLACKLIST: return Response.build(ResponseCode.ACCOUNT_BLACKLIST); case AccountImplUpdatePasswordEnum.SECURITY_CODE_ERROR: return Response.build(ResponseCode.SECURITY_CODE_ERROR); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/AccountLoginLogController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.service.AccountLoginLogService; import com.orange.verify.api.vo.AccountLoginLogVo; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 客户登陆日志 */ @Controller @RequestMapping(value = "accountLoginLog") public class AccountLoginLogController extends BaseController { @Reference private AccountLoginLogService accountLoginLogService; @RspHandle @RequiresUser @RequestMapping(value = "getBeforeData",method = RequestMethod.GET) @ResponseBody public Response getBeforeData(String softId) { List beforeData = accountLoginLogService.getBeforeData(softId); return Response.build(ResponseCode.QUERY_SUCCESS,beforeData); } @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(AccountLoginLogVo accountLoginLog, Page page) { Page accountLoginLogVoPage = accountLoginLogService.page(accountLoginLog, page); return Response.build(ResponseCode.QUERY_SUCCESS,accountLoginLogVoPage); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/AccountRegisterLogController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.AccountRegisterLog; import com.orange.verify.api.service.AccountRegisterLogService; import com.orange.verify.api.vo.AccountRegisterLogVo; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 客户注册日志 */ @Controller @RequestMapping(value = "accountRegisterLog") public class AccountRegisterLogController { @Reference private AccountRegisterLogService accountRegisterLogService; @RspHandle @RequiresUser @RequestMapping(value = "getBeforeData",method = RequestMethod.GET) @ResponseBody public Response getBeforeData(String softId) { List beforeData = accountRegisterLogService.getBeforeData(softId); return Response.build(ResponseCode.QUERY_SUCCESS,beforeData); } @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(AccountRegisterLog accountRegisterLog, Page page) { Page accountLoginLogVoPage = accountRegisterLogService.page(accountRegisterLog,page); return Response.build(ResponseCode.QUERY_SUCCESS,accountLoginLogVoPage); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/BaiduMapApiController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.BaiduMapApi; import com.orange.verify.api.service.BaiduMapApiService; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 百度 地理 配置 */ @Controller @RequestMapping(value = "baiduMapApi") public class BaiduMapApiController { @Reference private BaiduMapApiService baiduMapApiService; @RspHandle @RequiresUser @RequestMapping(value = "single",method = RequestMethod.GET) @ResponseBody public Response single() { List list = baiduMapApiService.list(); if (list == null || list.size() == 0) { return Response.build(ResponseCode.EMPTY); } return Response.build(ResponseCode.QUERY_SUCCESS,list.get(0)); } @RspHandle @RequiresUser @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(BaiduMapApi baiduMapApi) { boolean b = baiduMapApiService.create(baiduMapApi); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "update",method = RequestMethod.POST) @ResponseBody public Response update(BaiduMapApi baiduMapApi) { boolean b = baiduMapApiService.updateById(baiduMapApi); if (b == true) { return Response.success(); } return Response.error(); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/BaseController.java ================================================ package com.orange.verify.adminweb.controller; import com.orange.verify.adminweb.annotation.ParameterError; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; @Controller public class BaseController { public void parametric(BindingResult result) throws ParameterError { if(result.hasErrors()){ String defaultMessage = result.getAllErrors().get(0).getDefaultMessage(); throw new ParameterError(defaultMessage); } } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/CardController.java ================================================ package com.orange.verify.adminweb.controller; import cn.hutool.core.util.StrUtil; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.Card; import com.orange.verify.api.service.CardService; import com.orange.verify.api.vo.CardVo; import com.orange.verify.api.vo.open.CardTimeLimitVo; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 卡密 */ @Controller @RequestMapping(value = "card") public class CardController { @Reference private CardService cardService; @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(CardVo cardVo, Page page) { Page cardVoPage = cardService.page(cardVo,page); return Response.build(ResponseCode.QUERY_SUCCESS,cardVoPage); } @RspHandle @RequiresUser @RequestMapping(value = "count",method = RequestMethod.GET) @ResponseBody public Response count() { int count = cardService.count(); return Response.build(ResponseCode.QUERY_SUCCESS,count); } @RspHandle @RequiresUser @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(Card card,Integer count) { if (count > 100) { return Response.build(ResponseCode.PRODUCTION_TOO_MUCH); } cardService.saveLogic(card,count); return Response.success(); } @RspHandle @RequiresUser @RequestMapping(value = "closure",method = RequestMethod.POST) @ResponseBody public Response closure(String cardId,Integer closure) { Card card = new Card(); card.setId(cardId); card.setClosure(closure); boolean b = cardService.updateById(card); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "sellStatus",method = RequestMethod.POST) @ResponseBody public Response sellStatus(String cardId,Integer sellStatus) { Card card = new Card(); card.setId(cardId); card.setSellStatus(sellStatus); boolean b = cardService.updateById(card); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "sell",method = RequestMethod.POST) @ResponseBody public Response sell(@RequestBody List sell) { cardService.sell(sell); return Response.success(); } @RspHandle @RequiresUser @RequestMapping(value = "batchRemove",method = RequestMethod.POST) @ResponseBody public Response batchRemove(@RequestBody List cardList) { cardService.batchRemove(cardList); return Response.success(); } @RspHandle @RequiresUser @RequestMapping(value = "remove",method = RequestMethod.POST) @ResponseBody public Response remove(String cardId) { boolean b = cardService.removeById(cardId); if (b == true) { return Response.success(); } return Response.error(); } @Open(explain = "用户-查看卡密什么时候开始用的,什么时候结束的") @RspHandle @RequestMapping(value = "getCardTimeLimit",method = RequestMethod.POST) @ResponseBody public Response getCardTimeLimit(String username,String password,String softId) { if (StrUtil.hasEmpty(username,password,softId)) { return Response.build(ResponseCode.PARAMETER_ERROR); } CardTimeLimitVo cardTimeLimit = cardService.getCardTimeLimit(username, password, softId); if (cardTimeLimit == null) { return Response.build(ResponseCode.CARD_EMPTY); } return Response.build(ResponseCode.QUERY_SUCCESS,cardTimeLimit); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/CardTypeController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.CardType; import com.orange.verify.api.service.CardTypeService; import com.orange.verify.api.vo.CardTypeVo; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 卡类 */ @Controller @RequestMapping(value = "cardType") public class CardTypeController { @Reference private CardTypeService cardTypeService; @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(CardType cardType, Page page) { Page cardTypeVoPage = cardTypeService.page(cardType,page); return Response.build(ResponseCode.QUERY_SUCCESS,cardTypeVoPage); } @RspHandle @RequiresUser @RequestMapping(value = "list",method = RequestMethod.GET) @ResponseBody public Response list() { List list = cardTypeService.list(); return Response.build(ResponseCode.QUERY_SUCCESS,list); } @RspHandle @RequiresUser @RequestMapping(value = "single",method = RequestMethod.GET) @ResponseBody public Response single(String cardTypeId) { CardType cardType = cardTypeService.getById(cardTypeId); return Response.build(ResponseCode.QUERY_SUCCESS,cardType); } @RspHandle @RequiresUser @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(CardType cardType) { boolean b = cardTypeService.save(cardType); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "update",method = RequestMethod.POST) @ResponseBody public Response update(CardType cardType) { boolean b = cardTypeService.updateById(cardType); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "remove",method = RequestMethod.POST) @ResponseBody public Response remove(String cardTypeId) { boolean b = cardTypeService.removeById(cardTypeId); if (b == true) { return Response.success(); } return Response.error(); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/EmailAccountController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.EmailAccount; import com.orange.verify.api.service.EmailAccountService; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 邮箱账户 */ @Controller @RequestMapping(value = "emailAccount") public class EmailAccountController { @Reference private EmailAccountService emailAccountService; @RspHandle @RequiresUser @RequestMapping(value = "list",method = RequestMethod.GET) @ResponseBody public Response list() { List list = emailAccountService.getList(); return Response.build(ResponseCode.QUERY_SUCCESS,list); } @RspHandle @RequiresUser @RequestMapping(value = "single",method = RequestMethod.GET) @ResponseBody public Response single(String emailAccountId) { EmailAccount emailAccount = emailAccountService.getById(emailAccountId); return Response.build(ResponseCode.QUERY_SUCCESS,emailAccount); } @RspHandle @RequiresUser @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(EmailAccount emailAccount) { boolean b = emailAccountService.save(emailAccount); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "update",method = RequestMethod.POST) @ResponseBody public Response update(EmailAccount emailAccount) { boolean b = emailAccountService.updateById(emailAccount); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "remove",method = RequestMethod.POST) @ResponseBody public Response remove(String emailAccountId) { boolean b = emailAccountService.removeById(emailAccountId); if (b == true) { return Response.success(); } return Response.error(); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/InterfaceManagementController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.InterfaceManagement; import com.orange.verify.api.service.InterfaceManagementService; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 接口管理 */ @Controller @RequestMapping(value = "interfaceManagement") public class InterfaceManagementController { @Reference private InterfaceManagementService interfaceManagementService; @RspHandle @RequiresUser @RequestMapping(value = "list",method = RequestMethod.GET) @ResponseBody public Response list() { try { List all = interfaceManagementService.getAll(); return Response.build(ResponseCode.QUERY_SUCCESS,all); } catch (Exception e) { return Response.build(ResponseCode.QUERY_ERROR); } } @RspHandle @RequiresUser @RequestMapping(value = "getSingle",method = RequestMethod.GET) @ResponseBody public Response getSingle(String key) { try { InterfaceManagement interfaceManagement = interfaceManagementService.getSingle(key); return Response.build(ResponseCode.QUERY_SUCCESS,interfaceManagement); } catch (Exception e) { return Response.build(ResponseCode.QUERY_ERROR); } } @RspHandle @RequiresUser @RequestMapping(value = "closeInterface",method = RequestMethod.POST) @ResponseBody public Response closeInterface(String key,Integer on) { try { if (on < 0 || on > 1) { return Response.build(ResponseCode.PARAMETER_ERROR); } interfaceManagementService.closeInterface(key,on); return Response.build(ResponseCode.SUCCESS); } catch (Exception e) { return Response.build(ResponseCode.ERROR); } } @RspHandle @RequiresUser @RequestMapping(value = "ipHandle",method = RequestMethod.POST) @ResponseBody public Response ipHandle(String key,Integer on) { try { if (on < 0 || on > 1) { return Response.build(ResponseCode.PARAMETER_ERROR); } interfaceManagementService.ipHandle(key,on); return Response.build(ResponseCode.SUCCESS); } catch (Exception e) { return Response.build(ResponseCode.ERROR); } } @RspHandle @RequiresUser @RequestMapping(value = "update",method = RequestMethod.POST) @ResponseBody public Response update(InterfaceManagement interfaceManagement) { try { interfaceManagementService.update(interfaceManagement); return Response.build(ResponseCode.SUCCESS); } catch (Exception e) { return Response.build(ResponseCode.ERROR); } } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/SoftController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.adminweb.annotation.ParameterError; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.service.SoftService; import com.orange.verify.api.sr.SoftImplGetSoftDescEnum; import com.orange.verify.api.vo.SoftVo; import com.orange.verify.api.vo.open.SoftGetSoftDescVo; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; /** * 软件 */ @Controller @RequestMapping(value = "soft") public class SoftController extends BaseController { @Reference private SoftService softService; @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(Soft soft, Page page) { Page softVoPage = softService.page(soft,page); return Response.build(ResponseCode.QUERY_SUCCESS,softVoPage); } @RspHandle @RequiresUser @RequestMapping(value = "count",method = RequestMethod.GET) @ResponseBody public Response count() { int count = softService.count(); return Response.build(ResponseCode.QUERY_SUCCESS,count); } @RspHandle @RequiresUser @RequestMapping(value = "list",method = RequestMethod.GET) @ResponseBody public Response list() { List list = softService.list(); return Response.build(ResponseCode.QUERY_SUCCESS,list); } @RspHandle @RequiresUser @RequestMapping(value = "single",method = RequestMethod.GET) @ResponseBody public Response single(String softId) { Soft soft = softService.getById(softId); return Response.build(ResponseCode.QUERY_SUCCESS,soft); } @RspHandle @RequiresUser @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(Soft soft) { boolean b = softService.save(soft); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "update",method = RequestMethod.POST) @ResponseBody public Response update(Soft soft) { boolean b = softService.updateById(soft); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "remove",method = RequestMethod.POST) @ResponseBody public Response remove(String softId) { boolean b = softService.removeById(softId); if (b == true) { return Response.success(); } return Response.error(); } @Open(explain = "获取软件信息") @RspHandle @RequestMapping(value = "getSoftDesc",method = RequestMethod.POST) @ResponseBody public Response getSoftDesc(@Validated SoftGetSoftDescVo accountGetSoftDescVo, BindingResult result) throws ParameterError { super.parametric(result); ServiceResult getSoftDesc = softService.getSoftDesc(accountGetSoftDescVo); switch (getSoftDesc.getCode()) { case SoftImplGetSoftDescEnum.SUCCESS: return Response.build(ResponseCode.QUERY_SUCCESS,getSoftDesc.getData()); case SoftImplGetSoftDescEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE); case SoftImplGetSoftDescEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/SoftLeaveMessageController.java ================================================ package com.orange.verify.adminweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.adminweb.annotation.ParameterError; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.service.SoftLeaveMessageService; import com.orange.verify.api.sr.SoftLeaveMessageImplCreateEnum; import com.orange.verify.api.vo.SoftLeaveMessageVo; import com.orange.verify.api.vo.open.SoftLeaveMeesageSubmitVo; import com.orange.verify.common.ip.IpUtil; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; /** * 软件留言 */ @Controller @RequestMapping(value = "softLeaveMessage") public class SoftLeaveMessageController extends BaseController { @Reference private SoftLeaveMessageService softLeaveMessageService; @RspHandle @RequiresUser @RequestMapping(value = "page",method = RequestMethod.GET) @ResponseBody public Response page(SoftLeaveMessageVo softLeaveMessageVo, Page page) { Page softLeaveMessagePage = softLeaveMessageService.page(softLeaveMessageVo, page); return Response.build(ResponseCode.QUERY_SUCCESS,softLeaveMessagePage); } @RspHandle @RequiresUser @RequestMapping(value = "remove",method = RequestMethod.POST) @ResponseBody public Response remove(String softLeaveMessageId) { boolean b = softLeaveMessageService.removeById(softLeaveMessageId); if (b == true) { return Response.success(); } return Response.error(); } @Open(explain = "用户提交留言反馈") @RspHandle @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(@Validated SoftLeaveMeesageSubmitVo softLeaveMeesageSubmitVo, BindingResult result, HttpServletRequest request) throws ParameterError { super.parametric(result); softLeaveMeesageSubmitVo.setIp(IpUtil.getIp(request)); ServiceResult serviceResult = softLeaveMessageService.create(softLeaveMeesageSubmitVo); switch (serviceResult.getCode()) { case SoftLeaveMessageImplCreateEnum.LEAVE_MESSAGE_SEND_SUCCESS: return Response.build(ResponseCode.LEAVE_MESSAGE_SEND_SUCCESS); case SoftLeaveMessageImplCreateEnum.SOFT_EMPTY: return Response.build(ResponseCode.SOFT_EMPTY); case SoftLeaveMessageImplCreateEnum.SOFT_CLOSE: return Response.build(ResponseCode.SOFT_CLOSE); case SoftLeaveMessageImplCreateEnum.BAIDU_API_ERROR: return Response.build(ResponseCode.BAIDU_API_ERROR); case SoftLeaveMessageImplCreateEnum.LEAVE_MESSAGE_SEND_ERROR: return Response.build(ResponseCode.LEAVE_MESSAGE_SEND_ERROR); default: return Response.build(ResponseCode.UNKNOWN_ERROR); } } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/SoftVersionsController.java ================================================ package com.orange.verify.adminweb.controller; import cn.hutool.core.util.StrUtil; import com.alibaba.dubbo.config.annotation.Reference; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.SoftVersions; import com.orange.verify.api.service.SoftVersionsService; import com.orange.verify.api.vo.SoftVersionsVo; import org.apache.shiro.authz.annotation.RequiresUser; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; /** * 软件版本 */ @Controller @RequestMapping(value = "softVersions") public class SoftVersionsController { @Reference private SoftVersionsService softVersionsService; @RspHandle @RequiresUser @RequestMapping(value = "getSingleBySoftId",method = RequestMethod.GET) @ResponseBody public Response getSingleBySoftId(String softId) { SoftVersionsVo singleBySoftId = softVersionsService.getSingleBySoftId(softId); return Response.build(ResponseCode.QUERY_SUCCESS, singleBySoftId); } @RspHandle @RequiresUser @RequestMapping(value = "create",method = RequestMethod.POST) @ResponseBody public Response create(SoftVersions softVersions) { boolean b = softVersionsService.saveLogic(softVersions); if (b == true) { return Response.success(); } return Response.error(); } @RspHandle @RequiresUser @RequestMapping(value = "update",method = RequestMethod.POST) @ResponseBody public Response update(SoftVersions softVersions) { boolean b = softVersionsService.updateById(softVersions); if (b == true) { return Response.success(); } return Response.error(); } @Open(explain = "获取软件版本信息") @RspHandle @RequestMapping(value = "getVersions",method = RequestMethod.POST) @ResponseBody public Response getVersions(String softId) { if (StrUtil.hasEmpty(softId)) { return Response.build(ResponseCode.PARAMETER_ERROR,"软件id为空"); } com.orange.verify.api.vo.open.SoftVersionsVo versions = softVersionsService.getVersions(softId); if (versions == null) { return Response.build(ResponseCode.VERSIONS_EMPTY); } return Response.build(ResponseCode.QUERY_SUCCESS,versions); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/controller/UserController.java ================================================ package com.orange.verify.adminweb.controller; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.adminweb.annotation.RspHandle; import com.orange.verify.adminweb.model.Response; import com.orange.verify.adminweb.model.ResponseCode; import com.orange.verify.api.bean.User; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authz.annotation.RequiresUser; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; /** * 系统管理账号 */ @Controller @RequestMapping(value = "user") public class UserController { @Open(explain = "系统管理员登陆") @RspHandle @RequestMapping(value = "login",method = RequestMethod.POST) @ResponseBody public Response login(@RequestBody User user) { try { // 从SecurityUtils里边创建一个 subject Subject subject = SecurityUtils.getSubject(); // 在认证提交前准备 token(令牌) UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword()); // 执行认证登陆 subject.login(token); }catch (Exception e) { return Response.build(ResponseCode.LOGIN_ERROR); } return Response.build(ResponseCode.LOGIN_SUCCESS); } @RspHandle @RequiresUser @RequestMapping(value = "logout",method = RequestMethod.POST) @ResponseBody public Response logout() { try { Subject subject = SecurityUtils.getSubject(); subject.logout(); }catch (Exception e) { return Response.build(ResponseCode.LOGOUT_ERROR); } return Response.build(ResponseCode.LOGOUT_SUCCESS); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/model/Response.java ================================================ package com.orange.verify.adminweb.model; /** * web专用返回 * @author Orange * @date 2018/10/28 */ public class Response { private int code; private String msg; private T data; private long totalTime; private Response(ResponseCode responseCode) { this.code = responseCode.getCode(); this.msg = responseCode.getDesc(); } private Response(ResponseCode responseCode,T data) { this.code = responseCode.getCode(); this.msg = responseCode.getDesc(); this.data = data; } private Response(ResponseCode responseCode,String msg) { this.code = responseCode.getCode(); this.msg = msg; } private Response(ResponseCode responseCode,String msg,T data) { this.code = responseCode.getCode(); this.msg = msg; this.data = data; } public static Response success() { return new Response(ResponseCode.SUCCESS); } public static Response error() { return new Response(ResponseCode.ERROR); } public static Response build(ResponseCode responseCode) { return new Response(responseCode); } public static Response build(ResponseCode responseCode,T data) { return new Response(responseCode,data); } public static Response build(ResponseCode responseCode,String msg) { return new Response(responseCode,msg); } public static Response build(ResponseCode responseCode,String msg,T data) { return new Response(responseCode,msg,data); } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } public long getTotalTime() { return totalTime; } public void setTotalTime(long totalTime) { this.totalTime = totalTime; } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/model/ResponseCode.java ================================================ package com.orange.verify.adminweb.model; /** * 基础的返回0-100 * 成功类1xx 单位为百 * 失败类9xx 单位为百 * @author Orange */ public enum ResponseCode { //成功... REGISTER_SUCCESS(101,"注册成功"), LOGIN_SUCCESS(100,"登陆成功"), BINDING_CARD_SUCCESS(102,"卡密绑定成功"), BINDING_CODE_SUCCESS(103,"换绑定成功"), LEAVE_MESSAGE_SEND_SUCCESS(104,"留言发送成功"), UPDATE_PASSWORD_SUCCESS(105,"改密成功"), LOGOUT_SUCCESS(106,"登出成功"), //失败 UNKNOWN_ERROR(901,"不好意思,发生了未知错误!"), PARAMETER_ERROR(902,"提交参数错误,请仔细检查提交参数!"), EMPTY(903,"无"), PRODUCTION_TOO_MUCH(904,"生产过多充值卡密"), REGISTER_ERROR(905,"注册失败"), LOGIN_ERROR(906,"本软件不支持换机器进行使用"), SOFT_CLOSE(907,"软件关闭开放使用"), ACCOUNT_BLACKLIST(908,"此账号已被加入黑名单!"), SOFT_NO_CHANGE(909,"软件不支持换绑机器"), REGISTER_CLOSE(910,"注册关闭"), TOO_FAST(911,"访问过快"), VERSIONS_EMPTY(912,"版本不存在"), KEY_EMPTY(913,"钥匙为空,请重启软件重试!"), ACCOUNT_EMPTY(914,"用户不存在"), CARD_EMPTY(915,"卡密不存在"), CARD_USE(916,"卡密已被使用"), CARD_CLOSURE(917,"卡密已被封停"), CARD_PAST_DUE(918,"卡密已过期"), KEY_ERROR(919,"服务器钥匙错误"), ACCOUNT_ALREADY_EXIST(920,"用户名已存在"), PASSWORD_LENGTH_ERROR(921,"密码长度是5到10位哟!"), SOFT_EMPTY(922,"软件不存在"), BAIDU_API_ERROR(923,"IP错误"), UPDATE_PASSWORD_ERROR(924,"改密失败"), LOGOUT_ERROR(925,"登出失败"), SOFT_INCONSISTENCY(926,"卡密使用绑定软件不一致"), ACCOUNT_NOT_BOUND_CARD(927,"账号还未绑定卡密,请先充值再使用!"), SECURITY_CODE_ERROR(928,"安全码错误!"), BINDING_CARD_ERROR(929,"绑定卡密失败"), PASSWORD_ERROR(930,"密码错误"), BINDING_CODE_ERROR(931,"绑定机器失败"), LEAVE_MESSAGE_SEND_ERROR(932,"留言发送失败"), VC_EMPTY(933,"验证码过期了,请重新获取验证码"), VC_MISMATCHES(934,"验证码输入错误"), NIMIETY(935,"当前注册人数过多,稍后再试!"), SERVER_ERROR(936,"服务器错误"), SOFT_FREE(937,"软件是免费的,无需绑定卡密"), INTERFACE_CLOSE(938,"访问失败,接口已被关闭!"), //基础 QUERY_SUCCESS(9,"查询成功"), SUCCESS(10,"操作成功"), ERROR(11,"操作失败"), NOT_LOGIN(12,"未登录"), QUERY_ERROR(13,"查询失败"), NOT_ROLE(99,"无角色"); private int code; private String desc; ResponseCode(int code,String desc){ this.code = code; this.desc = desc; } public int getCode(){ return code; } public String getDesc(){ return desc; } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/realm/CustomRealm.java ================================================ package com.orange.verify.adminweb.realm; import com.alibaba.dubbo.config.annotation.Reference; import com.orange.verify.api.service.UserService; import org.apache.shiro.authc.*; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import org.springframework.stereotype.Component; import java.util.HashSet; import java.util.Set; @Component public class CustomRealm extends AuthorizingRealm { @Reference private UserService userService; /** * 权限 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); Set set = new HashSet<>(); set.add("role"); info.addRoles(set); return info; } /** * 登陆 */ @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken; String username = token.getUsername(); String password = String.valueOf(token.getPassword()); int verifyUser = userService.verifyUser(username, password); if (verifyUser > 0) { return new SimpleAuthenticationInfo(username,password,getName()); } throw new AuthenticationException(); } } ================================================ FILE: admin-web/src/main/java/com/orange/verify/adminweb/runner/InterfaceRunner.java ================================================ package com.orange.verify.adminweb.runner; import cn.hutool.core.util.ClassUtil; import com.orange.verify.adminweb.annotation.Open; import com.orange.verify.api.bean.InterfaceManagement; import com.orange.verify.api.redis.RedisKeyConstant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * 全部开放接口全部统一管理,提供参数配置,系统可以后台可配置 * redis作为存储 * 系统启动后第一时间执行 * @author Orange软件 * @date 2019.3.15 */ @Component @Order(value = 1) public class InterfaceRunner implements CommandLineRunner { private static final Logger log = LoggerFactory.getLogger(InterfaceRunner.class); @Value("${interface.scan.path}") private String interfaceScanPath; @Autowired private RedisTemplate template; @Override public void run(String... args) throws Exception { log.info("正在执行全部接口入存管理"); Map productionInterface = productionInterface(); InterfaceManagement setting = getSetting(); for (Map.Entry m : productionInterface.entrySet()) { String key = m.getKey(); String remarks = m.getValue(); Boolean hasKey = template.hasKey(key); if (hasKey == false) { setting.setKey(key); setting.setRemarks(remarks); template.opsForValue().set(key,setting); } else { InterfaceManagement o = (InterfaceManagement) template.opsForValue().get(key); if (!remarks.equals(o.getRemarks())) { setting.setKey(key); setting.setRemarks(remarks); template.opsForValue().set(key,setting); } } } Set keys = template.keys(RedisKeyConstant.OPEN_INTERFACE + "*"); for (String key : keys) { int l = 0; for (Map.Entry m : productionInterface.entrySet()) { if (m.getKey().equals(key)) { l = 1; break; } } if (l == 0) { Boolean delete = template.delete(key); if (delete == true) { log.info("删除无用(过期)开放接口成功"); } else { log.info("删除无用(过期)开放接口失败"); } } } log.info("执行结束"); } /** * 接口地址管理 作为redis键 接口备注作为值 */ private Map productionInterface() { Map map = new HashMap(); Set> classes = ClassUtil.scanPackage(interfaceScanPath); for (Class c : classes) { Method[] methods = c.getMethods(); for (Method method : methods) { Open annotation = method.getAnnotation(Open.class); if (annotation != null) { map.put(RedisKeyConstant.OPEN_INTERFACE + c.getName() + "." + method.getName(),annotation.explain()); } } } return map; } /** * 接口默认控制配置 * visit 1=可以访问 0=接口关闭 * ipHandle 1开启ip限流控制 0关闭 * ipVisits ip访问次数,限制接口在 xx 分钟内容只能访问 xx 次,默认60次 * ipRedisInterval ip redis缓存多少分钟 默认1分钟 */ private InterfaceManagement getSetting() { InterfaceManagement interfaceManagement = new InterfaceManagement(); interfaceManagement.setVisit(1); interfaceManagement.setIpHandle(1); interfaceManagement.setIpVisits(60L); interfaceManagement.setIpRedisInterval(1L); return interfaceManagement; } } ================================================ FILE: admin-web/src/main/resources/application.properties ================================================ server.port = 8038 server.servlet.path=/verify interface.scan.path = com.orange.verify.adminweb.controller dubbo.application.name= com-orange-verify-client dubbo.consumer.timeout= 10000 dubbo.consumer.retries= 0 dubbo.protocol.port=8039 dubbo.registry.id = com-orange-verify dubbo.registry.address = zookeeper://localhost:2181?client=curator dubbo.application.qosEnable=false logging.config=classpath:logback-spring.xml spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= spring.redis.timeout=5000 spring.redis.expire=1800 spring.redis.database=0 spring.redis.pool.max.active=8 spring.redis.pool.max.wait=-1 spring.redis.pool.max.idle=8 spring.redis.pool.min.idle=0 spring.redis.jedis.max-active=8 spring.redis.jedis.max-wait=-1 spring.redis.jedis.max-idle=8 spring.redis.jedis.min-idle=0 ================================================ FILE: admin-web/src/main/resources/logback-spring.xml ================================================ logback %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n log/adminweb.log log/adminweb.%d.log 20 %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n ================================================ FILE: admin-web/src/test/java/com/orange/verify/adminweb/AdminWebApplicationTests.java ================================================ package com.orange.verify.adminweb; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.test.context.junit4.SpringRunner; import java.util.concurrent.TimeUnit; @RunWith(SpringRunner.class) @SpringBootTest public class AdminWebApplicationTests { @Autowired private RedisTemplate redisTemplate; @Test public void contextLoads() throws InterruptedException { long count = redisTemplate.opsForValue().increment("1", 1); if (count == 1) { redisTemplate.expire("1", 3, TimeUnit.MINUTES); } Thread.sleep(1000); redisTemplate.opsForValue().increment("1", 1); Thread.sleep(5000); redisTemplate.opsForValue().increment("1", 1); Object o = redisTemplate.opsForValue().get("1"); System.out.println(o); Long expire = redisTemplate.getExpire("1"); System.out.println(expire); } } ================================================ FILE: admin-web/src/test/java/com/orange/verify/adminweb/Time.java ================================================ package com.orange.verify.adminweb; public class Time { public static void main(String[] args) { Long y = 100L; double p = y / 60L; System.out.println(p); } } ================================================ FILE: admin-web-page/.babelrc ================================================ { "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] } }], "stage-2" ], "plugins":["transform-vue-jsx", "transform-runtime"] } ================================================ FILE: admin-web-page/.editorconfig ================================================ # http://editorconfig.org root = true [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.md] insert_final_newline = false trim_trailing_whitespace = false ================================================ FILE: admin-web-page/.eslintignore ================================================ build/*.js config/*.js src/assets ================================================ FILE: admin-web-page/.eslintrc.js ================================================ module.exports = { root: true, parserOptions: { parser: 'babel-eslint', sourceType: 'module' }, env: { browser: true, node: true, es6: true, }, extends: ['plugin:vue/recommended', 'eslint:recommended'], // add your custom rules here //it is base on https://github.com/vuejs/eslint-config-vue rules: { "vue/max-attributes-per-line": [2, { "singleline": 10, "multiline": { "max": 1, "allowFirstLine": false } }], "vue/name-property-casing": ["error", "PascalCase"], 'accessor-pairs': 2, 'arrow-spacing': [2, { 'before': true, 'after': true }], 'block-spacing': [2, 'always'], 'brace-style': [2, '1tbs', { 'allowSingleLine': true }], 'camelcase': [0, { 'properties': 'always' }], 'comma-dangle': [2, 'never'], 'comma-spacing': [2, { 'before': false, 'after': true }], 'comma-style': [2, 'last'], 'constructor-super': 2, 'curly': [2, 'multi-line'], 'dot-location': [2, 'property'], 'eol-last': 2, 'eqeqeq': [2, 'allow-null'], 'generator-star-spacing': [2, { 'before': true, 'after': true }], 'handle-callback-err': [2, '^(err|error)$'], 'indent': [2, 2, { 'SwitchCase': 1 }], 'jsx-quotes': [2, 'prefer-single'], 'key-spacing': [2, { 'beforeColon': false, 'afterColon': true }], 'keyword-spacing': [2, { 'before': true, 'after': true }], 'new-cap': [2, { 'newIsCap': true, 'capIsNew': false }], 'new-parens': 2, 'no-array-constructor': 2, 'no-caller': 2, 'no-console': 'off', 'no-class-assign': 2, 'no-cond-assign': 2, 'no-const-assign': 2, 'no-control-regex': 2, 'no-delete-var': 2, 'no-dupe-args': 2, 'no-dupe-class-members': 2, 'no-dupe-keys': 2, 'no-duplicate-case': 2, 'no-empty-character-class': 2, 'no-empty-pattern': 2, 'no-eval': 2, 'no-ex-assign': 2, 'no-extend-native': 2, 'no-extra-bind': 2, 'no-extra-boolean-cast': 2, 'no-extra-parens': [2, 'functions'], 'no-fallthrough': 2, 'no-floating-decimal': 2, 'no-func-assign': 2, 'no-implied-eval': 2, 'no-inner-declarations': [2, 'functions'], 'no-invalid-regexp': 2, 'no-irregular-whitespace': 2, 'no-iterator': 2, 'no-label-var': 2, 'no-labels': [2, { 'allowLoop': false, 'allowSwitch': false }], 'no-lone-blocks': 2, 'no-mixed-spaces-and-tabs': 2, 'no-multi-spaces': 2, 'no-multi-str': 2, 'no-multiple-empty-lines': [2, { 'max': 1 }], 'no-native-reassign': 2, 'no-negated-in-lhs': 2, 'no-new-object': 2, 'no-new-require': 2, 'no-new-symbol': 2, 'no-new-wrappers': 2, 'no-obj-calls': 2, 'no-octal': 2, 'no-octal-escape': 2, 'no-path-concat': 2, 'no-proto': 2, 'no-redeclare': 2, 'no-regex-spaces': 2, 'no-return-assign': [2, 'except-parens'], 'no-self-assign': 2, 'no-self-compare': 2, 'no-sequences': 2, 'no-shadow-restricted-names': 2, 'no-spaced-func': 2, 'no-sparse-arrays': 2, 'no-this-before-super': 2, 'no-throw-literal': 2, 'no-trailing-spaces': 2, 'no-undef': 2, 'no-undef-init': 2, 'no-unexpected-multiline': 2, 'no-unmodified-loop-condition': 2, 'no-unneeded-ternary': [2, { 'defaultAssignment': false }], 'no-unreachable': 2, 'no-unsafe-finally': 2, 'no-unused-vars': [2, { 'vars': 'all', 'args': 'none' }], 'no-useless-call': 2, 'no-useless-computed-key': 2, 'no-useless-constructor': 2, 'no-useless-escape': 0, 'no-whitespace-before-property': 2, 'no-with': 2, 'one-var': [2, { 'initialized': 'never' }], 'operator-linebreak': [2, 'after', { 'overrides': { '?': 'before', ':': 'before' } }], 'padded-blocks': [2, 'never'], 'quotes': [2, 'single', { 'avoidEscape': true, 'allowTemplateLiterals': true }], 'semi': [2, 'never'], 'semi-spacing': [2, { 'before': false, 'after': true }], 'space-before-blocks': [2, 'always'], 'space-before-function-paren': [2, 'never'], 'space-in-parens': [2, 'never'], 'space-infix-ops': 2, 'space-unary-ops': [2, { 'words': true, 'nonwords': false }], 'spaced-comment': [2, 'always', { 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] }], 'template-curly-spacing': [2, 'never'], 'use-isnan': 2, 'valid-typeof': 2, 'wrap-iife': [2, 'any'], 'yield-star-spacing': [2, 'both'], 'yoda': [2, 'never'], 'prefer-const': 2, 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 'object-curly-spacing': [2, 'always', { objectsInObjects: false }], 'array-bracket-spacing': [2, 'never'] } } ================================================ FILE: admin-web-page/.gitignore ================================================ .DS_Store node_modules/ dist/ npm-debug.log* yarn-debug.log* yarn-error.log* package-lock.json # Editor directories and files .idea .vscode *.suo *.ntvs* *.njsproj *.sln ================================================ FILE: admin-web-page/.postcssrc.js ================================================ // https://github.com/michael-ciniawsky/postcss-load-config module.exports = { "plugins": { "postcss-import": {}, "postcss-url": {}, // to edit target browsers: use "browserslist" field in package.json "autoprefixer": {} } } ================================================ FILE: admin-web-page/.travis.yml ================================================ language: node_js node_js: stable script: npm run test notifications: email: false ================================================ FILE: admin-web-page/LICENSE ================================================ MIT License Copyright (c) 2017-present PanJiaChen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: admin-web-page/README-zh.md ================================================ ## verify 后台管理系统页面 ```bash # Install dependencies npm install # 建议不要用cnpm 安装有各种诡异的bug 可以通过如下操作解决npm速度慢的问题 npm install --registry=https://registry.npm.taobao.org # Serve with hot reload at localhost:9528 npm run dev # Build for production with minification npm run build # Build for production and view the bundle analyzer report npm run build --report ``` ================================================ FILE: admin-web-page/build/build.js ================================================ 'use strict' require('./check-versions')() process.env.NODE_ENV = 'production' const ora = require('ora') const rm = require('rimraf') const path = require('path') const chalk = require('chalk') const webpack = require('webpack') const config = require('../config') const webpackConfig = require('./webpack.prod.conf') const spinner = ora('building for production...') spinner.start() rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { if (err) throw err webpack(webpackConfig, (err, stats) => { spinner.stop() if (err) throw err process.stdout.write( stats.toString({ colors: true, modules: false, children: false, chunks: false, chunkModules: false }) + '\n\n' ) if (stats.hasErrors()) { console.log(chalk.red(' Build failed with errors.\n')) process.exit(1) } console.log(chalk.cyan(' Build complete.\n')) console.log( chalk.yellow( ' Tip: built files are meant to be served over an HTTP server.\n' + " Opening index.html over file:// won't work.\n" ) ) }) }) ================================================ FILE: admin-web-page/build/check-versions.js ================================================ 'use strict' const chalk = require('chalk') const semver = require('semver') const packageConfig = require('../package.json') const shell = require('shelljs') function exec(cmd) { return require('child_process') .execSync(cmd) .toString() .trim() } const versionRequirements = [ { name: 'node', currentVersion: semver.clean(process.version), versionRequirement: packageConfig.engines.node } ] if (shell.which('npm')) { versionRequirements.push({ name: 'npm', currentVersion: exec('npm --version'), versionRequirement: packageConfig.engines.npm }) } module.exports = function() { const warnings = [] for (let i = 0; i < versionRequirements.length; i++) { const mod = versionRequirements[i] if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { warnings.push( mod.name + ': ' + chalk.red(mod.currentVersion) + ' should be ' + chalk.green(mod.versionRequirement) ) } } if (warnings.length) { console.log('') console.log( chalk.yellow( 'To use this template, you must update following to modules:' ) ) console.log() for (let i = 0; i < warnings.length; i++) { const warning = warnings[i] console.log(' ' + warning) } console.log() process.exit(1) } } ================================================ FILE: admin-web-page/build/utils.js ================================================ 'use strict' const path = require('path') const config = require('../config') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const packageConfig = require('../package.json') exports.assetsPath = function(_path) { const assetsSubDirectory = process.env.NODE_ENV === 'production' ? config.build.assetsSubDirectory : config.dev.assetsSubDirectory return path.posix.join(assetsSubDirectory, _path) } exports.cssLoaders = function(options) { options = options || {} const cssLoader = { loader: 'css-loader', options: { sourceMap: options.sourceMap } } const postcssLoader = { loader: 'postcss-loader', options: { sourceMap: options.sourceMap } } // generate loader string to be used with extract text plugin function generateLoaders(loader, loaderOptions) { const loaders = [] // Extract CSS when that option is specified // (which is the case during production build) if (options.extract) { loaders.push(MiniCssExtractPlugin.loader) } else { loaders.push('vue-style-loader') } loaders.push(cssLoader) if (options.usePostCSS) { loaders.push(postcssLoader) } if (loader) { loaders.push({ loader: loader + '-loader', options: Object.assign({}, loaderOptions, { sourceMap: options.sourceMap }) }) } return loaders } // https://vue-loader.vuejs.org/en/configurations/extract-css.html return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass'), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') } } // Generate loaders for standalone style files (outside of .vue) exports.styleLoaders = function(options) { const output = [] const loaders = exports.cssLoaders(options) for (const extension in loaders) { const loader = loaders[extension] output.push({ test: new RegExp('\\.' + extension + '$'), use: loader }) } return output } exports.createNotifierCallback = () => { const notifier = require('node-notifier') return (severity, errors) => { if (severity !== 'error') return const error = errors[0] const filename = error.file && error.file.split('!').pop() notifier.notify({ title: packageConfig.name, message: severity + ': ' + error.name, subtitle: filename || '', icon: path.join(__dirname, 'logo.png') }) } } ================================================ FILE: admin-web-page/build/vue-loader.conf.js ================================================ 'use strict' module.exports = { //You can set the vue-loader configuration by yourself. } ================================================ FILE: admin-web-page/build/webpack.base.conf.js ================================================ 'use strict' const path = require('path') const utils = require('./utils') const config = require('../config') const { VueLoaderPlugin } = require('vue-loader') const vueLoaderConfig = require('./vue-loader.conf') function resolve(dir) { return path.join(__dirname, '..', dir) } const createLintingRule = () => ({ test: /\.(js|vue)$/, loader: 'eslint-loader', enforce: 'pre', include: [resolve('src'), resolve('test')], options: { formatter: require('eslint-friendly-formatter'), emitWarning: !config.dev.showEslintErrorsInOverlay } }) module.exports = { context: path.resolve(__dirname, '../'), entry: { app: './src/main.js' }, output: { path: config.build.assetsRoot, filename: '[name].js', publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath }, resolve: { extensions: ['.js', '.vue', '.json'], alias: { '@': resolve('src') } }, module: { rules: [ ...(config.dev.useEslint ? [] : []), { test: /\.vue$/, loader: 'vue-loader', options: vueLoaderConfig }, { test: /\.js$/, loader: 'babel-loader', include: [ resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client') ] }, { test: /\.svg$/, loader: 'svg-sprite-loader', include: [resolve('src/icons')], options: { symbolId: 'icon-[name]' } }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', exclude: [resolve('src/icons')], options: { limit: 10000, name: utils.assetsPath('img/[name].[hash:7].[ext]') } }, { test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: utils.assetsPath('media/[name].[hash:7].[ext]') } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: utils.assetsPath('fonts/[name].[hash:7].[ext]') } } ] }, plugins: [new VueLoaderPlugin()], node: { // prevent webpack from injecting useless setImmediate polyfill because Vue // source contains it (although only uses it if it's native). setImmediate: false, // prevent webpack from injecting mocks to Node native modules // that does not make sense for the client dgram: 'empty', fs: 'empty', net: 'empty', tls: 'empty', child_process: 'empty' } } ================================================ FILE: admin-web-page/build/webpack.dev.conf.js ================================================ 'use strict' const path = require('path') const utils = require('./utils') const webpack = require('webpack') const config = require('../config') const merge = require('webpack-merge') const baseWebpackConfig = require('./webpack.base.conf') const HtmlWebpackPlugin = require('html-webpack-plugin') const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') const portfinder = require('portfinder') function resolve(dir) { return path.join(__dirname, '..', dir) } const HOST = process.env.HOST const PORT = process.env.PORT && Number(process.env.PORT) const devWebpackConfig = merge(baseWebpackConfig, { mode: 'development', module: { rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) }, // cheap-module-eval-source-map is faster for development devtool: config.dev.devtool, // these devServer options should be customized in /config/index.js devServer: { clientLogLevel: 'warning', historyApiFallback: true, hot: true, compress: true, host: HOST || config.dev.host, port: PORT || config.dev.port, open: config.dev.autoOpenBrowser, overlay: config.dev.errorOverlay ? { warnings: false, errors: true } : false, publicPath: config.dev.assetsPublicPath, proxy: config.dev.proxyTable, quiet: true, // necessary for FriendlyErrorsPlugin watchOptions: { poll: config.dev.poll } }, plugins: [ new webpack.DefinePlugin({ 'process.env': require('../config/dev.env') }), new webpack.HotModuleReplacementPlugin(), // https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true, favicon: resolve('favicon.ico'), title: 'vue-admin-template' }) ] }) module.exports = new Promise((resolve, reject) => { portfinder.basePort = process.env.PORT || config.dev.port portfinder.getPort((err, port) => { if (err) { reject(err) } else { // publish the new Port, necessary for e2e tests process.env.PORT = port // add port to devServer config devWebpackConfig.devServer.port = port // Add FriendlyErrorsPlugin devWebpackConfig.plugins.push( new FriendlyErrorsPlugin({ compilationSuccessInfo: { messages: [ `Your application is running here: http://${ devWebpackConfig.devServer.host }:${port}` ] }, onErrors: config.dev.notifyOnErrors ? utils.createNotifierCallback() : undefined }) ) resolve(devWebpackConfig) } }) }) ================================================ FILE: admin-web-page/build/webpack.prod.conf.js ================================================ 'use strict' const path = require('path') const utils = require('./utils') const webpack = require('webpack') const config = require('../config') const merge = require('webpack-merge') const baseWebpackConfig = require('./webpack.base.conf') const CopyWebpackPlugin = require('copy-webpack-plugin') const HtmlWebpackPlugin = require('html-webpack-plugin') const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') const UglifyJsPlugin = require('uglifyjs-webpack-plugin') function resolve(dir) { return path.join(__dirname, '..', dir) } const env = require('../config/prod.env') // For NamedChunksPlugin const seen = new Set() const nameLength = 4 const webpackConfig = merge(baseWebpackConfig, { mode: 'production', module: { rules: utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true, usePostCSS: true }) }, devtool: config.build.productionSourceMap ? config.build.devtool : false, output: { path: config.build.assetsRoot, filename: utils.assetsPath('js/[name].[chunkhash:8].js'), chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js') }, plugins: [ // http://vuejs.github.io/vue-loader/en/workflow/production.html new webpack.DefinePlugin({ 'process.env': env }), // extract css into its own file new MiniCssExtractPlugin({ filename: utils.assetsPath('css/[name].[contenthash:8].css'), chunkFilename: utils.assetsPath('css/[name].[contenthash:8].css') }), // generate dist index.html with correct asset hash for caching. // you can customize output by editing /index.html // see https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: config.build.index, template: 'index.html', inject: true, favicon: resolve('favicon.ico'), title: 'vue-admin-template', minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference } // default sort mode uses toposort which cannot handle cyclic deps // in certain cases, and in webpack 4, chunk order in HTML doesn't // matter anyway }), new ScriptExtHtmlWebpackPlugin({ //`runtime` must same as runtimeChunk name. default is `runtime` inline: /runtime\..*\.js$/ }), // keep chunk.id stable when chunk has no name new webpack.NamedChunksPlugin(chunk => { if (chunk.name) { return chunk.name } const modules = Array.from(chunk.modulesIterable) if (modules.length > 1) { const hash = require('hash-sum') const joinedHash = hash(modules.map(m => m.id).join('_')) let len = nameLength while (seen.has(joinedHash.substr(0, len))) len++ seen.add(joinedHash.substr(0, len)) return `chunk-${joinedHash.substr(0, len)}` } else { return modules[0].id } }), // keep module.id stable when vender modules does not change new webpack.HashedModuleIdsPlugin(), // copy custom static assets new CopyWebpackPlugin([ { from: path.resolve(__dirname, '../static'), to: config.build.assetsSubDirectory, ignore: ['.*'] } ]) ], optimization: { splitChunks: { chunks: 'all', cacheGroups: { libs: { name: 'chunk-libs', test: /[\\/]node_modules[\\/]/, priority: 10, chunks: 'initial' // 只打包初始时依赖的第三方 }, elementUI: { name: 'chunk-elementUI', // 单独将 elementUI 拆包 priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app test: /[\\/]node_modules[\\/]element-ui[\\/]/ } } }, runtimeChunk: 'single', minimizer: [ new UglifyJsPlugin({ uglifyOptions: { mangle: { safari10: true } }, sourceMap: config.build.productionSourceMap, cache: true, parallel: true }), // Compress extracted CSS. We are using this plugin so that possible // duplicated CSS from different components can be deduped. new OptimizeCSSAssetsPlugin() ] } }) if (config.build.productionGzip) { const CompressionWebpackPlugin = require('compression-webpack-plugin') webpackConfig.plugins.push( new CompressionWebpackPlugin({ asset: '[path].gz[query]', algorithm: 'gzip', test: new RegExp( '\\.(' + config.build.productionGzipExtensions.join('|') + ')$' ), threshold: 10240, minRatio: 0.8 }) ) } if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) { const BundleAnalyzerPlugin = require('webpack-bundle-analyzer') .BundleAnalyzerPlugin if (config.build.bundleAnalyzerReport) { webpackConfig.plugins.push( new BundleAnalyzerPlugin({ analyzerPort: 8080, generateStatsFile: false }) ) } if (config.build.generateAnalyzerReport) { webpackConfig.plugins.push( new BundleAnalyzerPlugin({ analyzerMode: 'static', reportFilename: 'bundle-report.html', openAnalyzer: false }) ) } } module.exports = webpackConfig ================================================ FILE: admin-web-page/config/dev.env.js ================================================ 'use strict' const merge = require('webpack-merge') const prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV: '"development"', BASE_API: '"http://localhost:80/verify"', }) ================================================ FILE: admin-web-page/config/index.js ================================================ 'use strict' // Template version: 1.2.6 // see http://vuejs-templates.github.io/webpack for documentation. const path = require('path') module.exports = { dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/': { target: 'http://localhost:8038', // 需要请求的地址 ws: false, changeOrigin: true, // 是否跨域 pathRewrite: { '^/': '/' // 替换target中的请求地址,也就是说,在请求的时候,url用'/proxy'代替'http://ip.taobao.com' } } }, // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST port: 80, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: false, poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- // Use Eslint Loader? // If true, your code will be linted during bundling and // linting errors and warnings will be shown in the console. useEslint: true, // If true, eslint errors and warnings will also be shown in the error overlay // in the browser. showEslintErrorsInOverlay: false, /** * Source Maps */ // https://webpack.js.org/configuration/devtool/#development devtool: 'cheap-source-map', // CSS Sourcemaps off by default because relative paths are "buggy" // with this option, according to the CSS-Loader README // (https://github.com/webpack/css-loader#sourcemaps) // In our experience, they generally work as expected, // just be aware of this issue when enabling this option. cssSourceMap: false }, build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', /** * You can set by youself according to actual condition * You will need to set this if you plan to deploy your site under a sub path, * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/, * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ assetsPublicPath: '/', /** * Source Maps */ productionSourceMap: false, // https://webpack.js.org/configuration/devtool/#production devtool: 'source-map', // Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: false, productionGzipExtensions: ['js', 'css'], // Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report || false, // `npm run build:prod --generate_report` generateAnalyzerReport: process.env.npm_config_generate_report || false } } ================================================ FILE: admin-web-page/config/prod.env.js ================================================ 'use strict' module.exports = { NODE_ENV: '"production"', BASE_API: '"http://verifyopen.wywxy.top:80/verify"', } ================================================ FILE: admin-web-page/index.html ================================================ 网络验证系统 -Orange Verify
================================================ FILE: admin-web-page/package.json ================================================ { "name": "admin-web-page", "version": "3.8.0", "license": "MIT", "description": "A vue admin template with Element UI & axios & iconfont & permission control & lint", "author": "Pan ", "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "build": "node build/build.js", "build:report": "npm_config_report=true npm run build", "lint": "eslint --ext .js,.vue src", "test": "npm run lint", "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { "axios": "0.18.0", "element-ui": "2.4.6", "js-cookie": "2.2.0", "normalize.css": "7.0.0", "nprogress": "0.2.0", "qs": "^6.6.0", "vue": "2.5.17", "vue-router": "3.0.1", "vuex": "3.0.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", "babel-eslint": "8.2.6", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", "babel-plugin-transform-runtime": "6.23.0", "babel-plugin-transform-vue-jsx": "3.7.0", "babel-preset-env": "1.7.0", "babel-preset-stage-2": "6.24.1", "chalk": "2.4.1", "copy-webpack-plugin": "4.5.2", "css-loader": "1.0.0", "echarts": "^4.2.0-rc.2", "eslint": "4.19.1", "eslint-friendly-formatter": "4.0.1", "eslint-loader": "2.0.0", "eslint-plugin-vue": "4.7.1", "eventsource-polyfill": "0.9.6", "file-loader": "1.1.11", "friendly-errors-webpack-plugin": "1.7.0", "html-webpack-plugin": "4.0.0-alpha", "mini-css-extract-plugin": "0.4.1", "node-notifier": "5.2.1", "node-sass": "^4.7.2", "optimize-css-assets-webpack-plugin": "5.0.0", "ora": "3.0.0", "path-to-regexp": "2.4.0", "portfinder": "1.0.16", "postcss-import": "12.0.0", "postcss-loader": "2.1.6", "postcss-url": "7.3.2", "rimraf": "2.6.2", "sass-loader": "7.0.3", "script-ext-html-webpack-plugin": "2.0.1", "semver": "5.5.0", "shelljs": "0.8.2", "svg-sprite-loader": "3.8.0", "svgo": "1.0.5", "uglifyjs-webpack-plugin": "1.2.7", "url-loader": "1.0.1", "vue-loader": "15.3.0", "vue-style-loader": "4.1.2", "vue-template-compiler": "2.5.17", "webpack": "4.16.5", "webpack-bundle-analyzer": "2.13.1", "webpack-cli": "3.1.0", "webpack-dev-server": "3.1.5", "webpack-merge": "4.1.4" }, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" }, "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ] } ================================================ FILE: admin-web-page/src/App.vue ================================================ ================================================ FILE: admin-web-page/src/api/login.js ================================================ import request from '@/utils/request' export function login(username, password) { return request({ url: '/user/login', method: 'post', data: { username, password } }) } export function getInfo(token) { return request({ url: '/user/info', method: 'get', params: { token } }) } export function logout() { return request({ url: '/user/logout', method: 'post' }) } ================================================ FILE: admin-web-page/src/api/table.js ================================================ import request from '@/utils/request' export function getList(params) { return request({ url: '/table/list', method: 'get', params }) } ================================================ FILE: admin-web-page/src/components/Breadcrumb/index.vue ================================================ ================================================ FILE: admin-web-page/src/components/Hamburger/index.vue ================================================ ================================================ FILE: admin-web-page/src/components/SvgIcon/index.vue ================================================ ================================================ FILE: admin-web-page/src/icons/index.js ================================================ import Vue from 'vue' import SvgIcon from '@/components/SvgIcon' // svg组件 // register globally Vue.component('svg-icon', SvgIcon) const requireAll = requireContext => requireContext.keys().map(requireContext) const req = require.context('./svg', false, /\.svg$/) requireAll(req) ================================================ FILE: admin-web-page/src/icons/svgo.yml ================================================ # replace default config # multipass: true # full: true plugins: # - name # # or: # - name: false # - name: true # # or: # - name: # param1: 1 # param2: 2 - removeAttrs: attrs: - 'fill' - 'fill-rule' ================================================ FILE: admin-web-page/src/main.js ================================================ import Vue from 'vue' import qs from 'qs' import 'normalize.css/normalize.css' // A modern alternative to CSS resets import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n import '@/styles/index.scss' // global css import App from './App' import router from './router' import store from './store' import '@/icons' // icon import '@/permission' // permission control import echarts from 'echarts' Vue.prototype.$echarts = echarts Vue.prototype.$qs = qs; Vue.use(ElementUI, { locale }) Vue.config.productionTip = false new Vue({ el: '#app', router, store, render: h => h(App) }) ================================================ FILE: admin-web-page/src/permission.js ================================================ import router from './router' import store from './store' import NProgress from 'nprogress' // Progress 进度条 import 'nprogress/nprogress.css'// Progress 进度条样式 import { Message } from 'element-ui' import { getToken } from '@/utils/auth' // 验权 const whiteList = ['/login'] // 不重定向白名单 router.beforeEach((to, from, next) => { NProgress.start() if (getToken()) { if (to.path === '/login') { next({ path: '/' }) NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it } else { if (store.getters.roles.length === 0) { store.dispatch('GetInfo').then(res => { // 拉取用户信息 next() }).catch((err) => { store.dispatch('FedLogOut').then(() => { Message.error(err || 'Verification failed, please login again') next({ path: '/' }) }) }) } else { next() } } } else { if (whiteList.indexOf(to.path) !== -1) { next() } else { next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 NProgress.done() } } }) router.afterEach(() => { NProgress.done() // 结束Progress }) ================================================ FILE: admin-web-page/src/router/index.js ================================================ import Vue from 'vue' import Router from 'vue-router' // in development-env not use lazy-loading, because lazy-loading too many pages will cause webpack hot update too slow. so only in production use lazy-loading; // detail: https://panjiachen.github.io/vue-element-admin-site/#/lazy-loading Vue.use(Router) /* Layout */ import Layout from '../views/layout/Layout' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) * alwaysShow: true if set true, will always show the root menu, whatever its child routes length * if not set alwaysShow, only more than one route under the children * it will becomes nested mode, otherwise not show the root menu * redirect: noredirect if `redirect:noredirect` will no redirect in the breadcrumb * name:'router-name' the name is used by (must set!!!) * meta : { title: 'title' the name show in submenu and breadcrumb (recommend set) icon: 'svg-name' the icon show in the sidebar, } **/ export const constantRouterMap = [ { path: '/login', component: () => import('@/views/login/index'), hidden: true }, { path: '/404', component: () => import('@/views/404'), hidden: true }, { path: '/', component: Layout, redirect: '/dashboard', name: 'Dashboard', hidden: true, children: [{ path: 'dashboard', component: () => import('@/views/dashboard/index') }] }, { path: '/interface', component: Layout, alwaysShow: true, name: 'Interface', redirect: 'noredirect', meta: { title: '接口管理', icon: 'eye' }, children: [ { path: 'interface_list', name: 'InterfaceList', component: () => import('@/views/interface/interface_list'), meta: { title: '接口列表', icon: 'eye' } }, ] }, { path: '/soft', component: Layout, alwaysShow: true, name: 'Soft', redirect: 'noredirect', meta: { title: '软件管理', icon: 'software' }, children: [ { path: 'soft_list', name: 'SoftList', component: () => import('@/views/soft/soft_list'), meta: { title: '软件列表', icon: '软件管理' } }, { path: 'soft_form', name: 'SoftForm', hidden: true, component: () => import('@/views/soft/soft_form'), meta: { title: '软件操作', icon: 'tree' } }, { path: 'soft_versions_form', name: 'SoftVersionsForm', hidden: true, component: () => import('@/views/soft/soft_versions_form'), meta: { title: '版本操作', icon: 'tree' } }, { path: 'soft_leave_list', name: 'SoftLeaveList', component: () => import('@/views/soft/soft_leave_list'), meta: { title: '反馈列表', icon: '反馈管理' } }, ] }, { path: '/log', component: Layout, alwaysShow: true, name: 'Log', redirect: 'noredirect', meta: { title: '日志管理', icon: 'eye' }, children: [ { path: 'soft_map', name: 'SoftMap', component: () => import('@/views/log/soft_map'), meta: { title: '软件日志', icon: 'eye' } }, { path: 'soft_login_log_list', name: 'SoftLoginLogList', component: () => import('@/views/log/soft_login_log_list'), meta: { title: '登陆日志', icon: 'eye' } }, { path: 'soft_register_log_list', name: 'SoftRegisterLogList', component: () => import('@/views/log/soft_register_log_list'), meta: { title: '注册日志', icon: 'eye' } }, ] }, { path: '/card', component: Layout, alwaysShow: true, name: 'Card', redirect: 'noredirect', meta: { title: '充值卡管理', icon: '充值' }, children: [ { path: 'card_type_list', name: 'CardTypeList', component: () => import('@/views/card/card_type_list'), meta: { title: '卡类列表', icon: '充值kl' } }, { path: 'card_type_form', name: 'CardTypeForm', hidden: true, component: () => import('@/views/card/card_type_form'), meta: { title: '卡类操作', icon: '充值kl' } }, { path: 'card_list', name: 'CardList', component: () => import('@/views/card/card_list'), meta: { title: '卡密列表', icon: '充值缴费' } }, { path: 'card_form', name: 'CardForm', hidden: true, component: () => import('@/views/card/card_form'), meta: { title: '卡密操作', icon: 'table' } }, ] }, { path: '/account', component: Layout, alwaysShow: true, name: 'Account', redirect: 'noredirect', meta: { title: '用户管理', icon: '用户' }, children: [ { path: 'account_list', name: 'AccountList', component: () => import('@/views/account/account_list'), meta: { title: '用户列表', icon: '用户d' } }, ] }, { path: '/config', component: Layout, alwaysShow: true, name: 'Config', redirect: 'noredirect', meta: { title: '配置管理', icon: '配置' }, children: [ { path: 'email_account_list', name: 'EmailAccountList', component: () => import('@/views/config/email_account_list'), meta: { title: '邮箱列表', icon: '邮箱' } }, { path: 'email_account_form', name: 'EmailAccountForm', hidden: true, component: () => import('@/views/config/email_account_form'), meta: { title: '邮箱操作', icon: 'table' } }, { path: 'baidu_map_api_form', name: 'BaiduMapApiForm', component: () => import('@/views/config/baidu_map_api_form'), meta: { title: '百度地理', icon: '地图' } }, ] }, { path: '*', redirect: '/404', hidden: true } ] export default new Router({ // mode: 'history', //后端支持可开 scrollBehavior: () => ({ y: 0 }), routes: constantRouterMap }) ================================================ FILE: admin-web-page/src/store/getters.js ================================================ const getters = { sidebar: state => state.app.sidebar, device: state => state.app.device, token: state => state.user.token, avatar: state => state.user.avatar, name: state => state.user.name, roles: state => state.user.roles } export default getters ================================================ FILE: admin-web-page/src/store/index.js ================================================ import Vue from 'vue' import Vuex from 'vuex' import app from './modules/app' import user from './modules/user' import getters from './getters' Vue.use(Vuex) const store = new Vuex.Store({ modules: { app, user }, getters }) export default store ================================================ FILE: admin-web-page/src/store/modules/app.js ================================================ import Cookies from 'js-cookie' const app = { state: { sidebar: { opened: !+Cookies.get('sidebarStatus'), withoutAnimation: false }, device: 'desktop' }, mutations: { TOGGLE_SIDEBAR: state => { if (state.sidebar.opened) { Cookies.set('sidebarStatus', 1) } else { Cookies.set('sidebarStatus', 0) } state.sidebar.opened = !state.sidebar.opened state.sidebar.withoutAnimation = false }, CLOSE_SIDEBAR: (state, withoutAnimation) => { Cookies.set('sidebarStatus', 1) state.sidebar.opened = false state.sidebar.withoutAnimation = withoutAnimation }, TOGGLE_DEVICE: (state, device) => { state.device = device } }, actions: { ToggleSideBar: ({ commit }) => { commit('TOGGLE_SIDEBAR') }, CloseSideBar({ commit }, { withoutAnimation }) { commit('CLOSE_SIDEBAR', withoutAnimation) }, ToggleDevice({ commit }, device) { commit('TOGGLE_DEVICE', device) } } } export default app ================================================ FILE: admin-web-page/src/store/modules/user.js ================================================ import { login, logout, getInfo } from '@/api/login' import { getToken, setToken, removeToken } from '@/utils/auth' import { Message, MessageBox } from 'element-ui' const user = { state: { token: getToken(), name: '', avatar: '', roles: [1] }, mutations: { SET_TOKEN: (state, token) => { state.token = token }, SET_NAME: (state, name) => { state.name = name }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, SET_ROLES: (state, roles) => { state.roles = roles } }, actions: { // 登录 Login({ commit }, userInfo) { const username = userInfo.username.trim() return new Promise((resolve, reject) => { login(username, userInfo.password).then(response => { if (response.code == 100) { Message.success("登陆成功"); setToken("1") commit('SET_TOKEN', "1") } else { Message.error("登陆失败"); } resolve() }).catch(error => { reject(error) }) }) }, // 获取用户信息 GetInfo({ commit, state }) { return new Promise((resolve, reject) => { getInfo(state.token).then(response => { const data = response.data if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 commit('SET_ROLES', data.roles) } else { reject('getInfo: roles must be a non-null array !') } commit('SET_NAME', data.name) commit('SET_AVATAR', data.avatar) resolve(response) }).catch(error => { reject(error) }) }) }, // 登出 LogOut({ commit, state }) { return new Promise((resolve, reject) => { logout(state.token).then(() => { commit('SET_TOKEN', '') commit('SET_ROLES', []) removeToken() resolve() }).catch(error => { reject(error) }) }) }, // 前端 登出 FedLogOut({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') removeToken() resolve() }) } } } export default user ================================================ FILE: admin-web-page/src/styles/btn.scss ================================================ @import './variables.scss'; @mixin colorBtn($color) { background: $color; &:hover { color: $color; &:before, &:after { background: $color; } } } .blue-btn { @include colorBtn($blue) } .light-blue-btn { @include colorBtn($light-blue) } .red-btn { @include colorBtn($red) } .pink-btn { @include colorBtn($pink) } .green-btn { @include colorBtn($green) } .tiffany-btn { @include colorBtn($tiffany) } .yellow-btn { @include colorBtn($yellow) } .pan-btn { font-size: 14px; color: #fff; padding: 14px 36px; border-radius: 8px; border: none; outline: none; transition: 600ms ease all; position: relative; display: inline-block; &:hover { background: #fff; &:before, &:after { width: 100%; transition: 600ms ease all; } } &:before, &:after { content: ''; position: absolute; top: 0; right: 0; height: 2px; width: 0; transition: 400ms ease all; } &::after { right: inherit; top: inherit; left: 0; bottom: 0; } } .custom-button { display: inline-block; line-height: 1; white-space: nowrap; cursor: pointer; background: #fff; color: #fff; -webkit-appearance: none; text-align: center; box-sizing: border-box; outline: 0; margin: 0; padding: 10px 15px; font-size: 14px; border-radius: 4px; } ================================================ FILE: admin-web-page/src/styles/element-ui.scss ================================================ //to reset element-ui default css .el-upload { input[type="file"] { display: none !important; } } .el-upload__input { display: none; } //暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 .el-dialog { transform: none; left: 0; position: relative; margin: 0 auto; } //element ui upload .upload-container { .el-upload { width: 100%; .el-upload-dragger { width: 100%; height: 200px; } } } ================================================ FILE: admin-web-page/src/styles/index.scss ================================================ @import './variables.scss'; @import './mixin.scss'; @import './transition.scss'; @import './element-ui.scss'; @import './sidebar.scss'; body { height: 100%; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; } label { font-weight: 700; } html { height: 100%; box-sizing: border-box; } #app{ height: 100%; } *, *:before, *:after { box-sizing: inherit; } a, a:focus, a:hover { cursor: pointer; color: inherit; outline: none; text-decoration: none; } div:focus{ outline: none; } a:focus, a:active { outline: none; } a, a:focus, a:hover { cursor: pointer; color: inherit; text-decoration: none; } .clearfix { &:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } } //main-container全局样式 .app-main{ min-height: 100% } .app-container { padding: 20px; } ================================================ FILE: admin-web-page/src/styles/mixin.scss ================================================ @mixin clearfix { &:after { content: ""; display: table; clear: both; } } @mixin scrollBar { &::-webkit-scrollbar-track-piece { background: #d3dce6; } &::-webkit-scrollbar { width: 6px; } &::-webkit-scrollbar-thumb { background: #99a9bf; border-radius: 20px; } } @mixin relative { position: relative; width: 100%; height: 100%; } ================================================ FILE: admin-web-page/src/styles/sidebar.scss ================================================ #app { // 主体区域 .main-container { min-height: 100%; transition: margin-left .28s; margin-left: 180px; position: relative; } // 侧边栏 .sidebar-container { transition: width 0.28s; width: 180px !important; height: 100%; position: fixed; font-size: 0px; top: 0; bottom: 0; left: 0; z-index: 1001; overflow: hidden; //reset element-ui css .horizontal-collapse-transition { transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; } .el-scrollbar__bar.is-vertical{ right: 0px; } .scrollbar-wrapper { overflow-x: hidden!important; .el-scrollbar__view { height: 100%; } } .is-horizontal { display: none; } a { display: inline-block; width: 100%; overflow: hidden; } .svg-icon { margin-right: 16px; } .el-menu { border: none; height: 100%; width: 100% !important; } .is-active > .el-submenu__title{ color: #f4f4f5!important; } } .hideSidebar { .sidebar-container { width: 36px !important; } .main-container { margin-left: 36px; } .submenu-title-noDropdown { padding-left: 10px !important; position: relative; .el-tooltip { padding: 0 10px !important; } } .el-submenu { overflow: hidden; &>.el-submenu__title { padding-left: 10px !important; .el-submenu__icon-arrow { display: none; } } } .el-menu--collapse { .el-submenu { &>.el-submenu__title { &>span { height: 0; width: 0; overflow: hidden; visibility: hidden; display: inline-block; } } } } } .sidebar-container .nest-menu .el-submenu>.el-submenu__title, .sidebar-container .el-submenu .el-menu-item { min-width: 180px !important; background-color: $subMenuBg !important; &:hover { background-color: $menuHover !important; } } .el-menu--collapse .el-menu .el-submenu { min-width: 180px !important; } //适配移动端 .mobile { .main-container { margin-left: 0px; } .sidebar-container { transition: transform .28s; width: 180px !important; } &.hideSidebar { .sidebar-container { transition-duration: 0.3s; transform: translate3d(-180px, 0, 0); } } } .withoutAnimation { .main-container, .sidebar-container { transition: none; } } } .el-menu--vertical{ & >.el-menu{ .svg-icon{ margin-right: 16px; } } } ================================================ FILE: admin-web-page/src/styles/transition.scss ================================================ //globl transition css /*fade*/ .fade-enter-active, .fade-leave-active { transition: opacity 0.28s; } .fade-enter, .fade-leave-active { opacity: 0; } /*fade-transform*/ .fade-transform-leave-active, .fade-transform-enter-active { transition: all .5s; } .fade-transform-enter { opacity: 0; transform: translateX(-30px); } .fade-transform-leave-to { opacity: 0; transform: translateX(30px); } /*fade*/ .breadcrumb-enter-active, .breadcrumb-leave-active { transition: all .5s; } .breadcrumb-enter, .breadcrumb-leave-active { opacity: 0; transform: translateX(20px); } .breadcrumb-move { transition: all .5s; } .breadcrumb-leave-active { position: absolute; } ================================================ FILE: admin-web-page/src/styles/variables.scss ================================================ //sidebar $menuBg:#304156; $subMenuBg:#1f2d3d; $menuHover:#001528; ================================================ FILE: admin-web-page/src/utils/auth.js ================================================ import Cookies from 'js-cookie' const TokenKey = 'Orange-Verify-Token' export function getToken() { return Cookies.get(TokenKey) } export function setToken(token) { return Cookies.set(TokenKey, token) } export function removeToken() { return Cookies.remove(TokenKey) } ================================================ FILE: admin-web-page/src/utils/index.js ================================================ /** * Created by jiachenpan on 16/11/18. */ export function parseTime(time, cFormat) { if (arguments.length === 0) { return null } const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' let date if (typeof time === 'object') { date = time } else { if (('' + time).length === 10) time = parseInt(time) * 1000 date = new Date(time) } const formatObj = { y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds(), a: date.getDay() } const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { let value = formatObj[key] // Note: getDay() returns 0 on Sunday if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] } if (result.length > 0 && value < 10) { value = '0' + value } return value || 0 }) return time_str } export function formatTime(time, option) { time = +time * 1000 const d = new Date(time) const now = Date.now() const diff = (now - d) / 1000 if (diff < 30) { return '刚刚' } else if (diff < 3600) { // less 1 hour return Math.ceil(diff / 60) + '分钟前' } else if (diff < 3600 * 24) { return Math.ceil(diff / 3600) + '小时前' } else if (diff < 3600 * 24 * 2) { return '1天前' } if (option) { return parseTime(time, option) } else { return ( d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分' ) } } export function isExternal(path) { return /^(https?:|mailto:|tel:)/.test(path) } ================================================ FILE: admin-web-page/src/utils/request.js ================================================ import axios from 'axios' import { Message, MessageBox, Loading } from 'element-ui' import store from '../store' import { getToken } from '@/utils/auth' import Vue from 'vue' // 创建axios实例 const service = axios.create({ baseURL: process.env.BASE_API, // api 的 base_url timeout: 10000 // 请求超时时间 }) let load; // request拦截器 service.interceptors.request.use( config => { if (store.getters.token) { // config.headers['X-Token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 } load = Loading.service({ lock: true, text: 'Loading', spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0.7)' }); return config }, error => { load.close(); Promise.reject(error) } ) // response 拦截器 service.interceptors.response.use( response => { load.close(); const res = response.data if (res.code == 12) { Message.error("登陆失效,请重新登陆") store.dispatch('FedLogOut').then(() => { location.reload() }) } return response.data }, error => { load.close(); Message({ message: error.message, type: 'error', duration: 5 * 1000 }) return Promise.reject(error) } ) Vue.prototype.$axios = service; export default service ================================================ FILE: admin-web-page/src/utils/time.js ================================================ var time = { timeStampDate: function(data) { // 不传参就生成当前时间的13位时间戳 if (data == null) { return ""; } else if (data.time == null) { return ""; } var timeLength = data.time.toString().length; var date; //为13位时间戳的时候怎么办 if (timeLength == 13) { date = new Date(data.time);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 }else if(timeLength == 10) { date = new Date(data.time * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 } let Y = date.getFullYear() + '-'; let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; let D = date.getDate() + ' '; let h = date.getHours() + ':'; let m = date.getMinutes() + ':'; let s = date.getSeconds(); return Y+M+D+h+m+s; } } module.exports = time ================================================ FILE: admin-web-page/src/utils/validate.js ================================================ /** * Created by jiachenpan on 16/11/18. */ export function isvalidUsername(str) { const valid_map = ['admin', 'editor'] return valid_map.indexOf(str.trim()) >= 0 } /* 合法uri*/ export function validateURL(textval) { const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ return urlregex.test(textval) } /* 小写字母*/ export function validateLowerCase(str) { const reg = /^[a-z]+$/ return reg.test(str) } /* 大写字母*/ export function validateUpperCase(str) { const reg = /^[A-Z]+$/ return reg.test(str) } /* 大小写字母*/ export function validatAlphabets(str) { const reg = /^[A-Za-z]+$/ return reg.test(str) } ================================================ FILE: admin-web-page/src/views/404.vue ================================================ ================================================ FILE: admin-web-page/src/views/account/account_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/card/card_form.vue ================================================ ================================================ FILE: admin-web-page/src/views/card/card_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/card/card_type_form.vue ================================================ ================================================ FILE: admin-web-page/src/views/card/card_type_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/config/baidu_map_api_form.vue ================================================ ================================================ FILE: admin-web-page/src/views/config/email_account_form.vue ================================================ ================================================ FILE: admin-web-page/src/views/config/email_account_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/dashboard/index.vue ================================================ ================================================ FILE: admin-web-page/src/views/interface/interface_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/Layout.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/AppMain.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/Navbar.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/Sidebar/Item.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/Sidebar/Link.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/Sidebar/SidebarItem.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/Sidebar/index.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/TagsView.vue ================================================ ================================================ FILE: admin-web-page/src/views/layout/components/index.js ================================================ export { default as Navbar } from './Navbar' export { default as Sidebar } from './Sidebar' export { default as AppMain } from './AppMain' ================================================ FILE: admin-web-page/src/views/layout/mixin/ResizeHandler.js ================================================ import store from '@/store' const { body } = document const WIDTH = 1024 const RATIO = 3 export default { watch: { $route(route) { if (this.device === 'mobile' && this.sidebar.opened) { store.dispatch('CloseSideBar', { withoutAnimation: false }) } } }, beforeMount() { window.addEventListener('resize', this.resizeHandler) }, mounted() { const isMobile = this.isMobile() if (isMobile) { store.dispatch('ToggleDevice', 'mobile') store.dispatch('CloseSideBar', { withoutAnimation: true }) } }, methods: { isMobile() { const rect = body.getBoundingClientRect() return rect.width - RATIO < WIDTH }, resizeHandler() { if (!document.hidden) { const isMobile = this.isMobile() store.dispatch('ToggleDevice', isMobile ? 'mobile' : 'desktop') if (isMobile) { store.dispatch('CloseSideBar', { withoutAnimation: true }) } } } } } ================================================ FILE: admin-web-page/src/views/log/soft_login_log_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/log/soft_map.vue ================================================ ================================================ FILE: admin-web-page/src/views/log/soft_register_log_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/login/index.vue ================================================ ================================================ FILE: admin-web-page/src/views/soft/soft_form.vue ================================================ ================================================ FILE: admin-web-page/src/views/soft/soft_leave_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/soft/soft_list.vue ================================================ ================================================ FILE: admin-web-page/src/views/soft/soft_versions_form.vue ================================================ ================================================ FILE: admin-web-page/static/.gitkeep ================================================ ================================================ FILE: api/.gitignore ================================================ /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /build/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ================================================ FILE: api/.mvn/wrapper/maven-wrapper.properties ================================================ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip ================================================ FILE: api/mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Maven2 Start Up Batch script # # Required ENV vars: # ------------------ # JAVA_HOME - location of a JDK home dir # # Optional ENV vars # ----------------- # M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. cygwin=false; darwin=false; mingw=false case "`uname`" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then export JAVA_HOME="`/usr/libexec/java_home`" else export JAVA_HOME="/Library/Java/Home" fi fi ;; esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then JAVA_HOME=`java-config --jre-home` fi fi if [ -z "$M2_HOME" ] ; then ## resolve links - $0 may be a link to maven's home PRG="$0" # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG="`dirname "$PRG"`/$link" fi done saveddir=`pwd` M2_HOME=`dirname "$PRG"`/.. # make it fully qualified M2_HOME=`cd "$M2_HOME" && pwd` cd "$saveddir" # echo Using m2 at $M2_HOME fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then javaExecutable="`which javac`" if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=`which readlink` if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then if $darwin ; then javaHome="`dirname \"$javaExecutable\"`" javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" else javaExecutable="`readlink -f \"$javaExecutable\"`" fi javaHome="`dirname \"$javaExecutable\"`" javaHome=`expr "$javaHome" : '\(.*\)/bin'` JAVA_HOME="$javaHome" export JAVA_HOME fi fi fi if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" return 1 fi basedir="$1" wdir="$1" while [ "$wdir" != '/' ] ; do if [ -d "$wdir"/.mvn ] ; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then wdir=`cd "$wdir/.."; pwd` fi # end of workaround done echo "${basedir}" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then echo "$(tr -s '\n' ' ' < "$1")" fi } BASE_DIR=`find_maven_basedir "$(pwd)"` if [ -z "$BASE_DIR" ]; then exit 1; fi ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found .mvn/wrapper/maven-wrapper.jar" fi else if [ "$MVNW_VERBOSE" = true ]; then echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" while IFS="=" read key value; do case "$key" in (wrapperUrl) jarUrl="$value"; break ;; esac done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" if [ "$MVNW_VERBOSE" = true ]; then echo "Downloading from: $jarUrl" fi wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" if command -v wget > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found wget ... using wget" fi wget "$jarUrl" -O "$wrapperJarPath" elif command -v curl > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found curl ... using curl" fi curl -o "$wrapperJarPath" "$jarUrl" else if [ "$MVNW_VERBOSE" = true ]; then echo "Falling back to using Java to download" fi javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" if [ -e "$javaClass" ]; then if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo " - Compiling MavenWrapperDownloader.java ..." fi # Compiling the Java class ("$JAVA_HOME/bin/javac" "$javaClass") fi if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then # Running the downloader if [ "$MVNW_VERBOSE" = true ]; then echo " - Running MavenWrapperDownloader.java ..." fi ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") fi fi fi fi ########################################################################################## # End of extension ########################################################################################## export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} if [ "$MVNW_VERBOSE" = true ]; then echo $MAVEN_PROJECTBASEDIR fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` [ -n "$MAVEN_PROJECTBASEDIR" ] && MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" ================================================ FILE: api/mvnw.cmd ================================================ @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files @REM ---------------------------------------------------------------------------- @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off @REM set title of command window title %0 @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") @REM Execute a user defined script before this one if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre @REM check for pre script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" :skipRcPre @setlocal set ERROR_CODE=0 @REM To isolate internal variables from possible post scripts, we use another setlocal @setlocal @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init echo. echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error @REM ==== END VALIDATION ==== :init @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". @REM Fallback to current working directory if not found. set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir set EXEC_DIR=%CD% set WDIR=%EXEC_DIR% :findBaseDir IF EXIST "%WDIR%"\.mvn goto baseDirFound cd .. IF "%WDIR%"=="%CD%" goto baseDirNotFound set WDIR=%CD% goto findBaseDir :baseDirFound set MAVEN_PROJECTBASEDIR=%WDIR% cd "%EXEC_DIR%" goto endDetectBaseDir :baseDirNotFound set MAVEN_PROJECTBASEDIR=%EXEC_DIR% cd "%EXEC_DIR%" :endDetectBaseDir IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig @setlocal EnableExtensions EnableDelayedExpansion for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B ) @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central @REM This allows using the maven wrapper in projects that prohibit checking in binary data. if exist %WRAPPER_JAR% ( echo Found %WRAPPER_JAR% ) else ( echo Couldn't find %WRAPPER_JAR%, downloading it ... echo Downloading from: %DOWNLOAD_URL% powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" echo Finished downloading %WRAPPER_JAR% ) @REM End of extension %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end :error set ERROR_CODE=1 :end @endlocal & set ERROR_CODE=%ERROR_CODE% if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost @REM check for post script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" :skipRcPost @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% ================================================ FILE: api/pom.xml ================================================ 4.0.0 com.orange.verify api 1.0.0 UTF-8 UTF-8 1.8 com.baomidou mybatis-plus-boot-starter 3.0.6 org.projectlombok lombok 1.16.18 compile org.hibernate hibernate-validator 5.4.1.Final org.apache.maven.plugins maven-jar-plugin ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/Account.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 软件用户表 * t_account * @author Orange * @date 2019/05/01 */ @TableName("t_account") @KeySequence("SEQ_TEST") public class Account implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 是否加入了黑名单 0.不是 1.是的 * blacklist */ private Integer blacklist; /** * 卡密绑定id * card_id */ private String cardId; /** * 用户电脑的机器码 * code */ private String code; /** * 用户注册的时候ip地址 * create_ip */ private String createIp; /** * 创建时候的ip信息 * create_ip_info */ private String createIpInfo; /** * 用户的真实姓名 * name */ private String name; /** * 用户密码 * password */ private String password; /** * 用户的联系手机号 * phone_number */ private String phoneNumber; /** * 用户的联系QQ * qq */ private String qq; /** * 安全码,找回密码用 * security_code */ private String securityCode; /** * 软件绑定id * soft_id */ private String softId; /** * 用户名 * username */ private String username; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public Integer getBlacklist() { return blacklist; } public void setBlacklist(Integer blacklist) { this.blacklist = blacklist; } public String getCardId() { return cardId; } public void setCardId(String cardId) { this.cardId = cardId == null ? null : cardId.trim(); } public String getCode() { return code; } public void setCode(String code) { this.code = code == null ? null : code.trim(); } public String getCreateIp() { return createIp; } public void setCreateIp(String createIp) { this.createIp = createIp == null ? null : createIp.trim(); } public String getCreateIpInfo() { return createIpInfo; } public void setCreateIpInfo(String createIpInfo) { this.createIpInfo = createIpInfo == null ? null : createIpInfo.trim(); } public String getName() { return name; } public void setName(String name) { this.name = name == null ? null : name.trim(); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password == null ? null : password.trim(); } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber == null ? null : phoneNumber.trim(); } public String getQq() { return qq; } public void setQq(String qq) { this.qq = qq == null ? null : qq.trim(); } public String getSecurityCode() { return securityCode; } public void setSecurityCode(String securityCode) { this.securityCode = securityCode == null ? null : securityCode.trim(); } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId == null ? null : softId.trim(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username == null ? null : username.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/AccountLoginLog.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 用户登录日志 * t_account_login_log * @author Orange * @date 2019/05/01 */ @TableName("t_account_login_log") @KeySequence("SEQ_TEST") public class AccountLoginLog implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * account_id */ private String accountId; /** * ip */ private String ip; /** * ip_info */ private String ipInfo; /** * soft_id */ private String softId; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getAccountId() { return accountId; } public void setAccountId(String accountId) { this.accountId = accountId == null ? null : accountId.trim(); } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip == null ? null : ip.trim(); } public String getIpInfo() { return ipInfo; } public void setIpInfo(String ipInfo) { this.ipInfo = ipInfo == null ? null : ipInfo.trim(); } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId == null ? null : softId.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/AccountRegisterLog.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 用户注册日志 * t_account_register_log * @author Orange * @date 2019/05/01 */ @TableName("t_account_register_log") @KeySequence("SEQ_TEST") public class AccountRegisterLog implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * account_id */ private String accountId; /** * ip */ private String ip; /** * ip_info */ private String ipInfo; /** * soft_id */ private String softId; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getAccountId() { return accountId; } public void setAccountId(String accountId) { this.accountId = accountId == null ? null : accountId.trim(); } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip == null ? null : ip.trim(); } public String getIpInfo() { return ipInfo; } public void setIpInfo(String ipInfo) { this.ipInfo = ipInfo == null ? null : ipInfo.trim(); } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId == null ? null : softId.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/BaiduMapApi.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 百度地理api配置 * t_baidu_map_api * @author Orange * @date 2019/05/01 */ @TableName("t_baidu_map_api") @KeySequence("SEQ_TEST") public class BaiduMapApi implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * appkey * appkey */ private String appkey; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getAppkey() { return appkey; } public void setAppkey(String appkey) { this.appkey = appkey == null ? null : appkey.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/Card.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 软件充值卡 * t_card * @author Orange * @date 2019/05/01 */ @TableName("t_card") @KeySequence("SEQ_TEST") public class Card implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 用户绑定id * account_id */ private String accountId; /** * 充值卡号 * card_number */ private String cardNumber; /** * 卡类绑定id * card_type_id */ private String cardTypeId; /** * 是否封停使用 0.未封停 1.已封停 * closure */ private Integer closure; /** * 结束时间 * end_date */ private Long endDate; /** * 销售状态 0.未卖出 1.已卖出 * sell_status */ private Integer sellStatus; /** * 开始使用时间 * start_date */ private Long startDate; /** * 使用状态 0.未使用 1.已使用 * use_status */ private Integer useStatus; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getAccountId() { return accountId; } public void setAccountId(String accountId) { this.accountId = accountId == null ? null : accountId.trim(); } public String getCardNumber() { return cardNumber; } public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber == null ? null : cardNumber.trim(); } public String getCardTypeId() { return cardTypeId; } public void setCardTypeId(String cardTypeId) { this.cardTypeId = cardTypeId == null ? null : cardTypeId.trim(); } public Integer getClosure() { return closure; } public void setClosure(Integer closure) { this.closure = closure; } public Long getEndDate() { return endDate; } public void setEndDate(Long endDate) { this.endDate = endDate; } public Integer getSellStatus() { return sellStatus; } public void setSellStatus(Integer sellStatus) { this.sellStatus = sellStatus; } public Long getStartDate() { return startDate; } public void setStartDate(Long startDate) { this.startDate = startDate; } public Integer getUseStatus() { return useStatus; } public void setUseStatus(Integer useStatus) { this.useStatus = useStatus; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/CardType.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 软件充值卡类型 * t_card_type * @author Orange * @date 2019/05/01 */ @TableName("t_card_type") @KeySequence("SEQ_TEST") public class CardType implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 软件绑定id * soft_id */ private String softId; /** * 卡类单位 0.分 1.时 2.天 3.周 4.月 5.年 * unit */ private Integer unit; /** * 卡类值 比如对应的是分填1就是1分钟 以此类推 * value */ private Integer value; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId == null ? null : softId.trim(); } public Integer getUnit() { return unit; } public void setUnit(Integer unit) { this.unit = unit; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/EmailAccount.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 邮箱账户 * t_email_account * @author Orange * @date 2019/05/01 */ @TableName("t_email_account") @KeySequence("SEQ_TEST") public class EmailAccount implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 是否使用 0.使用 1.不使用 * is_use */ private Integer isUse; /** * 用户密码 * password */ private String password; /** * 被使用的次数 * total */ private Long total; /** * 用户名 * username */ private String username; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public Integer getIsUse() { return isUse; } public void setIsUse(Integer isUse) { this.isUse = isUse; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password == null ? null : password.trim(); } public Long getTotal() { return total; } public void setTotal(Long total) { this.total = total; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username == null ? null : username.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/InterfaceManagement.java ================================================ package com.orange.verify.api.bean; import lombok.Data; import java.io.Serializable; /** * 接口默认控制配置 * visit 1=可以访问 0=接口关闭 * ipHandle 1开启ip限流控制 0关闭 * ipVisits ip访问次数,限制接口在 xx 分钟内容只能访问 xx 次,默认60次 * ipRedisInterval ip redis缓存多少分钟 默认1分钟 */ @Data public class InterfaceManagement implements Serializable { private String key; private String remarks; private Integer visit; private Integer ipHandle; private Long ipVisits; private Long ipRedisInterval; } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/Soft.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 软件 * t_soft * @author Orange * @date 2019/05/01 */ @TableName("t_soft") @KeySequence("SEQ_TEST") public class Soft implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 换绑策略 0.支持换绑定 1.不支持换绑定 * change_strategy */ private Integer changeStrategy; /** * 多开策略 0.只支持单机 1.无限制 * dosing_strategy */ private Integer dosingStrategy; /** * 被通知的邮箱账户名 * email_name */ private String emailName; /** * 软件被留言 是否邮件通知 0.通知 1.不通知 * email_notificatio */ private Integer emailNotificatio; /** * 软件名称 * name */ private String name; /** * 公告 * notice */ private String notice; /** * 关闭注册后的返回信息 * registe_close_msg */ private String registeCloseMsg; /** * 注册状态 0.开放注册 1.关闭注册 * register_status */ private Integer registerStatus; /** * 关闭状态下的返回信息 * service_close_msg */ private String serviceCloseMsg; /** * 服务状态 0.收费 1.免费开放 2.关闭开放使用 * service_status */ private Integer serviceStatus; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public Integer getChangeStrategy() { return changeStrategy; } public void setChangeStrategy(Integer changeStrategy) { this.changeStrategy = changeStrategy; } public Integer getDosingStrategy() { return dosingStrategy; } public void setDosingStrategy(Integer dosingStrategy) { this.dosingStrategy = dosingStrategy; } public String getEmailName() { return emailName; } public void setEmailName(String emailName) { this.emailName = emailName == null ? null : emailName.trim(); } public Integer getEmailNotificatio() { return emailNotificatio; } public void setEmailNotificatio(Integer emailNotificatio) { this.emailNotificatio = emailNotificatio; } public String getName() { return name; } public void setName(String name) { this.name = name == null ? null : name.trim(); } public String getNotice() { return notice; } public void setNotice(String notice) { this.notice = notice == null ? null : notice.trim(); } public String getRegisteCloseMsg() { return registeCloseMsg; } public void setRegisteCloseMsg(String registeCloseMsg) { this.registeCloseMsg = registeCloseMsg == null ? null : registeCloseMsg.trim(); } public Integer getRegisterStatus() { return registerStatus; } public void setRegisterStatus(Integer registerStatus) { this.registerStatus = registerStatus; } public String getServiceCloseMsg() { return serviceCloseMsg; } public void setServiceCloseMsg(String serviceCloseMsg) { this.serviceCloseMsg = serviceCloseMsg == null ? null : serviceCloseMsg.trim(); } public Integer getServiceStatus() { return serviceStatus; } public void setServiceStatus(Integer serviceStatus) { this.serviceStatus = serviceStatus; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/SoftLeaveMessage.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 软件留言 * t_soft_leave_message * @author Orange * @date 2019/05/01 */ @TableName("t_soft_leave_message") @KeySequence("SEQ_TEST") public class SoftLeaveMessage implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 用户留言内容 * content */ private String content; /** * ip */ private String ip; /** * ip_info */ private String ipInfo; /** * 用户的QQ号 * qq */ private String qq; /** * 软件绑定id * soft_id */ private String softId; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getContent() { return content; } public void setContent(String content) { this.content = content == null ? null : content.trim(); } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip == null ? null : ip.trim(); } public String getIpInfo() { return ipInfo; } public void setIpInfo(String ipInfo) { this.ipInfo = ipInfo == null ? null : ipInfo.trim(); } public String getQq() { return qq; } public void setQq(String qq) { this.qq = qq == null ? null : qq.trim(); } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId == null ? null : softId.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/SoftVersions.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 软件版本控制 * t_soft_versions * @author Orange * @date 2019/05/01 */ @TableName("t_soft_versions") @KeySequence("SEQ_TEST") public class SoftVersions implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 更新公告 * notice */ private String notice; /** * 是否强制更新 0.不强制 1.强制 * novatio_necessaria */ private Integer novatioNecessaria; /** * 版本号 * number */ private String number; /** * 软件绑定id * soft_id */ private String softId; /** * 更新url * update_url */ private String updateUrl; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getNotice() { return notice; } public void setNotice(String notice) { this.notice = notice == null ? null : notice.trim(); } public Integer getNovatioNecessaria() { return novatioNecessaria; } public void setNovatioNecessaria(Integer novatioNecessaria) { this.novatioNecessaria = novatioNecessaria; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number == null ? null : number.trim(); } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId == null ? null : softId.trim(); } public String getUpdateUrl() { return updateUrl; } public void setUpdateUrl(String updateUrl) { this.updateUrl = updateUrl == null ? null : updateUrl.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/bean/User.java ================================================ package com.orange.verify.api.bean; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; /** * 平台管理用户 * t_user * @author Orange * @date 2019/05/01 */ @TableName("t_user") @KeySequence("SEQ_TEST") public class User implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @TableField(value = "create_date",fill = FieldFill.INSERT) private Long createDate; @TableLogic private Integer delFlag; /** * 备注 * remarks */ private String remarks; @TableField(value = "update_date",fill = FieldFill.UPDATE) private Long updateDate; /** * 管理标识符 * flag */ private String flag; /** * 管理用户密码 * password */ private String password; /** * 管理用户名 * username */ private String username; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } public Integer getDelFlag() { return delFlag; } public void setDelFlag(Integer delFlag) { this.delFlag = delFlag; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks == null ? null : remarks.trim(); } public Long getUpdateDate() { return updateDate; } public void setUpdateDate(Long updateDate) { this.updateDate = updateDate; } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag == null ? null : flag.trim(); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password == null ? null : password.trim(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username == null ? null : username.trim(); } } ================================================ FILE: api/src/main/java/com/orange/verify/api/redis/RedisKeyConstant.java ================================================ package com.orange.verify.api.redis; /** * reis key 常量池 * @author Orange软件 * @date 2019.3.12 */ public class RedisKeyConstant { /** * admin web 开放接口管理key */ public final static String OPEN_INTERFACE = "orange.tbk:open.interface:"; /** * admin web 访问人IP录入key */ public final static String IP_LIBRARY = "orange.tbk:ip-library:"; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/AccountBlackList.java ================================================ package com.orange.verify.api.sc; /** * Account * 是否加入了黑名单 0.不是 1.是的 */ public enum AccountBlackList { YES(1,"是"), NO(0,"不是") ; private int statusCode; private String content; AccountBlackList(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/CardClosure.java ================================================ package com.orange.verify.api.sc; /** * Card * 是否封停使用 0.未封停 1.已封停 */ public enum CardClosure { YES(1,"已封停"), NO(0,"未封停") ; private int statusCode; private String content; CardClosure(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/CardSellStatus.java ================================================ package com.orange.verify.api.sc; /** * Card * 销售状态 0.未卖出 1.已卖出 */ public enum CardSellStatus { YES(1,"已卖出"), NO(0,"未卖出") ; private int statusCode; private String content; CardSellStatus(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/CardTypeUnit.java ================================================ package com.orange.verify.api.sc; /** * CardType * 卡类单位 0.分 1.时 2.天 3.周 4.月 5.年 */ public enum CardTypeUnit { MINUTE(0,"分"), HOUR(1,"时"), DAY(2,"天"), WEEK(3,"周"), MONTH(4,"月"), YEAR(5,"年") ; private int statusCode; private String content; CardTypeUnit(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/CardUseStatus.java ================================================ package com.orange.verify.api.sc; /** * Card * 使用状态 0.未使用 1.已使用 */ public enum CardUseStatus { YES(1,"已使用"), NO(0,"未使用") ; private int statusCode; private String content; CardUseStatus(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/EmailAccountIsUse.java ================================================ package com.orange.verify.api.sc; /** * EmailAccount * 是否使用 0.使用中 1.未使用 */ public enum EmailAccountIsUse { YES(0,"使用中"), NO(1,"未使用") ; private int statusCode; private String content; EmailAccountIsUse(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/InterfaceManagementIpHandle.java ================================================ package com.orange.verify.api.sc; import java.io.Serializable; /** * InterfaceManagement * ipHandle 1开启ip限流控制 0关闭 */ public enum InterfaceManagementIpHandle implements Serializable { CLOSE(0,"关闭"), START(1,"开启") ; private int statusCode; private String content; InterfaceManagementIpHandle(int statusCode, String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/InterfaceManagementVisit.java ================================================ package com.orange.verify.api.sc; import java.io.Serializable; /** * InterfaceManagement * visit 1=可以访问 0=接口关闭 */ public enum InterfaceManagementVisit implements Serializable { CLOSE(0,"拒绝访问"), OPEN(1,"可以访问") ; private int statusCode; private String content; InterfaceManagementVisit(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/SoftChangeStrategy.java ================================================ package com.orange.verify.api.sc; /** * Soft * 换绑策略 0.支持换绑定 1.不支持换绑定 */ public enum SoftChangeStrategy { YES(0,"支持换绑定"), NO(1,"不支持换绑定") ; private int statusCode; private String content; SoftChangeStrategy(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/SoftDosingStrategy.java ================================================ package com.orange.verify.api.sc; /** * Soft * 多开策略 0.只支持单机 1.无限制 */ public enum SoftDosingStrategy { SINGLE(0,"只支持单机"), UNLIMITED(1,"无限制") ; private int statusCode; private String content; SoftDosingStrategy(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/SoftEmailNotificatio.java ================================================ package com.orange.verify.api.sc; /** * Soft * 软件被留言 是否邮件通知 0.通知 1.不通知 */ public enum SoftEmailNotificatio { YES(0,"通知"), NO(1,"不通知") ; private int statusCode; private String content; SoftEmailNotificatio(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/SoftRegisterStatus.java ================================================ package com.orange.verify.api.sc; /** * Soft * 注册状态 0.开放注册 1.关闭注册 */ public enum SoftRegisterStatus { OPEN(0,"开放注册"), CLOSE(1,"关闭注册") ; private int statusCode; private String content; SoftRegisterStatus(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/SoftServiceStatus.java ================================================ package com.orange.verify.api.sc; /** * Soft * 服务状态 0.收费 1.免费开放 2.关闭开放使用 */ public enum SoftServiceStatus { CHARGE(0,"收费"), FREE(1,"免费开放"), CLOSE(2,"关闭开放使用") ; private int statusCode; private String content; SoftServiceStatus(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/sc/SoftVersionsNovatioNecessaria.java ================================================ package com.orange.verify.api.sc; /** * SoftVersions * 是否强制更新 0.不强制 1.强制 */ public enum SoftVersionsNovatioNecessaria { YES(1,"强制"), NO(0,"不强制") ; private int statusCode; private String content; SoftVersionsNovatioNecessaria(int statusCode,String content) { this.statusCode = statusCode; this.content = content; } public int getStatusCode() { return statusCode; } public String getContent() { return content; } } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/AccountLoginLogService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.AccountLoginLog; import com.orange.verify.api.vo.AccountLoginLogVo; import java.util.List; public interface AccountLoginLogService extends IService { List getBeforeData(String softId); Page page(AccountLoginLogVo accountLoginLog, Page page); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/AccountRegisterLogService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.AccountRegisterLog; import com.orange.verify.api.vo.AccountRegisterLogVo; import java.util.List; public interface AccountRegisterLogService extends IService { List getBeforeData(String softId); Page page(AccountRegisterLog accountRegisterLog, Page page); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/AccountService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.Account; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.vo.AccountVo; import com.orange.verify.api.vo.open.*; public interface AccountService extends IService { Page page(AccountVo accountVo, Page page); ServiceResult getPublicKey(); void saveVerificationCode(AccountVerificationCodeVo accountVerificationCodeVo); ServiceResult register(AccountRegisterVo accountRegisterVo); ServiceResult login(AccountLoginVo accountLoginVo); ServiceResult bindingCard(AccountBindingCardVo accountBindingCardVo); ServiceResult bindingCode(AccountBindingCodeVo accountBindingCodeVo); ServiceResult updatePassword(AccountUpdatePasswordVo accountUpdatePasswordVo); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/BaiduMapApiService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.BaiduMapApi; public interface BaiduMapApiService extends IService { boolean create(BaiduMapApi baiduMapApi); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/CardService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.Card; import com.orange.verify.api.vo.CardVo; import com.orange.verify.api.vo.open.CardTimeLimitVo; import java.util.List; public interface CardService extends IService { Page page(CardVo cardVo, Page page); void saveLogic(Card card,Integer count); CardTimeLimitVo getCardTimeLimit(String username,String password,String softId); void sell(List sell); void batchRemove(List cardList); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/CardTypeService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.CardType; import com.orange.verify.api.vo.CardTypeVo; public interface CardTypeService extends IService { Page page(CardType cardType, Page page); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/EmailAccountService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.EmailAccount; import java.util.List; public interface EmailAccountService extends IService { List getList(); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/InterfaceManagementService.java ================================================ package com.orange.verify.api.service; import com.orange.verify.api.bean.InterfaceManagement; import java.util.List; public interface InterfaceManagementService { List getAll() throws Exception; void closeInterface(String key,Integer on) throws Exception; InterfaceManagement getSingle(String key) throws Exception; void update(InterfaceManagement interfaceManagement) throws Exception; void ipHandle(String key,Integer on) throws Exception; } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/SoftLeaveMessageService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.SoftLeaveMessage; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.vo.SoftLeaveMessageVo; import com.orange.verify.api.vo.open.SoftLeaveMeesageSubmitVo; public interface SoftLeaveMessageService extends IService { Page page(SoftLeaveMessageVo softLeaveMessageVo, Page page); ServiceResult create(SoftLeaveMeesageSubmitVo softLeaveMeesageSubmitVo); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/SoftService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.Soft; import com.orange.verify.api.sr.ServiceResult; import com.orange.verify.api.vo.SoftVo; import com.orange.verify.api.vo.open.SoftGetSoftDescVo; public interface SoftService extends IService { Page page(Soft soft,Page page); ServiceResult getSoftDesc(SoftGetSoftDescVo accountGetSoftDescVo); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/SoftVersionsService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.SoftVersions; import com.orange.verify.api.vo.SoftVersionsVo; public interface SoftVersionsService extends IService { SoftVersionsVo getSingleBySoftId(String softId); boolean saveLogic(SoftVersions softVersions); com.orange.verify.api.vo.open.SoftVersionsVo getVersions(String softId); } ================================================ FILE: api/src/main/java/com/orange/verify/api/service/UserService.java ================================================ package com.orange.verify.api.service; import com.baomidou.mybatisplus.extension.service.IService; import com.orange.verify.api.bean.User; public interface UserService extends IService { int verifyUser(String username,String password); } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/AccountImplBindingCardEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class AccountImplBindingCardEnum implements Serializable { public static final int BINDING_CARD_SUCCESS = 1; public static final int KEY_EMPTY = 2; public static final int SOFT_EMPTY = 3; public static final int KEY_ERROR = 4; public static final int PASSWORD_LENGTH_ERROR = 5; public static final int SOFT_CLOSE = 6; public static final int ACCOUNT_EMPTY = 7; public static final int CARD_EMPTY = 8; public static final int ACCOUNT_BLACKLIST = 9; public static final int CARD_USE = 10; public static final int CARD_CLOSURE = 11; public static final int SOFT_INCONSISTENCY = 12; public static final int BINDING_CARD_ERROR = 13; public static final int PASSWORD_ERROR = 14; public static final int SOFT_FREE = 15; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/AccountImplBindingCodeEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class AccountImplBindingCodeEnum implements Serializable { public static final int BINDING_CODE_SUCCESS = 1; public static final int KEY_EMPTY = 2; public static final int SOFT_EMPTY = 3; public static final int KEY_ERROR = 4; public static final int PASSWORD_LENGTH_ERROR = 5; public static final int SOFT_CLOSE = 6; public static final int ACCOUNT_EMPTY = 7; public static final int SOFT_NO_CHANGE = 8; public static final int ACCOUNT_BLACKLIST = 9; public static final int PASSWORD_ERROR = 10; public static final int BINDING_CODE_ERROR = 11; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/AccountImplGetPublicKeyEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class AccountImplGetPublicKeyEnum implements Serializable { public static final int SUCCESS = 1; public static final int KEY_ERROR = 2; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/AccountImplLoginEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class AccountImplLoginEnum implements Serializable { public static final int LOGIN_SUCCESS = 1; public static final int LOGIN_ERROR = 2; public static final int KEY_EMPTY = 3; public static final int SOFT_EMPTY = 4; public static final int SOFT_CLOSE = 5; public static final int KEY_ERROR = 6; public static final int PASSWORD_LENGTH_ERROR = 7; public static final int ACCOUNT_NOT_BOUND_CARD = 8; public static final int CARD_CLOSURE = 9; public static final int CARD_PAST_DUE = 10; public static final int ACCOUNT_BLACKLIST = 11; public static final int ACCOUNT_EMPTY = 12; public static final int BAIDU_API_ERROR = 13; public static final int PASSWORD_ERROR = 14; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/AccountImplRegisterEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class AccountImplRegisterEnum implements Serializable { public static final int KEY_EMPTY = 1; public static final int SOFT_EMPTY = 2; public static final int BAIDU_API_ERROR = 3; public static final int KEY_ERROR = 4; public static final int ACCOUNT_ALREADY_EXIST = 5; public static final int PASSWORD_LENGTH_ERROR = 6; public static final int SOFT_CLOSE = 7; public static final int REGISTER_CLOSE = 8; public static final int REGISTER_SUCCESS = 9; public static final int REGISTER_ERROR = 10; public static final int VC_EMPTY = 11; public static final int VC_MISMATCHES = 12; public static final int NIMIETY = 13; public static final int SERVER_ERROR = 14; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/AccountImplUpdatePasswordEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class AccountImplUpdatePasswordEnum implements Serializable { public static final int UPDATE_PASSWORD_SUCCESS = 1; public static final int UPDATE_PASSWORD_ERROR = 2; public static final int SOFT_EMPTY = 3; public static final int SOFT_CLOSE = 4; public static final int ACCOUNT_EMPTY = 5; public static final int ACCOUNT_BLACKLIST = 6; public static final int SECURITY_CODE_ERROR = 7; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/ServiceResult.java ================================================ package com.orange.verify.api.sr; import lombok.Data; import java.io.Serializable; @Data public class ServiceResult implements Serializable { private Integer code; private String msg; private T data; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/SoftImplGetSoftDescEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class SoftImplGetSoftDescEnum implements Serializable { public static final int SOFT_EMPTY = 1; public static final int SOFT_CLOSE = 2; public static final int SUCCESS = 3; } ================================================ FILE: api/src/main/java/com/orange/verify/api/sr/SoftLeaveMessageImplCreateEnum.java ================================================ package com.orange.verify.api.sr; import java.io.Serializable; public class SoftLeaveMessageImplCreateEnum implements Serializable { public static final int LEAVE_MESSAGE_SEND_SUCCESS = 1; public static final int SOFT_EMPTY = 2; public static final int SOFT_CLOSE = 3; public static final int BAIDU_API_ERROR = 4; public static final int LEAVE_MESSAGE_SEND_ERROR = 5; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/AccountLoginLogVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.AccountLoginLog; import lombok.Data; @Data public class AccountLoginLogVo extends AccountLoginLog { private String softName; private String accountName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/AccountRegisterLogVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.AccountRegisterLog; import lombok.Data; @Data public class AccountRegisterLogVo extends AccountRegisterLog { private String softName; private String accountName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/AccountVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.Account; import lombok.Data; @Data public class AccountVo extends Account { private String softId; private String softName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/CardTypeVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.CardType; import lombok.Data; @Data public class CardTypeVo extends CardType { private String softName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/CardVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.Card; import lombok.Data; @Data public class CardVo extends Card { private String softId; private String softName; private Integer cardTypeUnit; private Long cardTypeValue; private String accountId; private String accountName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/SoftLeaveMessageVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.SoftLeaveMessage; import lombok.Data; @Data public class SoftLeaveMessageVo extends SoftLeaveMessage { private String softId; private String softName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/SoftVersionsVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.SoftVersions; import lombok.Data; @Data public class SoftVersionsVo extends SoftVersions { private String softName; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/SoftVo.java ================================================ package com.orange.verify.api.vo; import com.orange.verify.api.bean.Soft; import lombok.Data; @Data public class SoftVo extends Soft { //软件用户数量 private Long accountTotal; //最新版本 private String versionsNum; private Long leaveMessageNum; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/AccountBindingCardVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @Data public class AccountBindingCardVo implements Serializable { @NotBlank(message = "用户名不能为空") @Size(min = 5,max = 10,message = "用户名长度是5到10位哟") private String username; @NotBlank(message = "密码不能为空") private String password; @NotBlank(message = "软件id不能为空") private String softId; @NotBlank(message = "充值卡密不能为空") private String cardNumber; /** * 用户电脑的机器码 * code */ @NotBlank(message = "code不能为空") private String code; @NotBlank(message = "公钥不能为空") String publicKey; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/AccountBindingCodeVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @Data public class AccountBindingCodeVo implements Serializable { @NotBlank(message = "用户名不能为空") @Size(min = 5,max = 10,message = "用户名长度是5到10位哟") private String username; @NotBlank(message = "密码不能为空") private String password; @NotBlank(message = "软件id不能为空") private String softId; /** * 用户电脑的机器码 * code */ @NotBlank(message = "code不能为空") private String code; @NotBlank(message = "公钥不能为空") String publicKey; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/AccountLoginVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @Data public class AccountLoginVo implements Serializable { @NotBlank(message = "用户名不能为空") @Size(min = 5,max = 10,message = "用户名长度是5到10位哟") private String username; @NotBlank(message = "密码不能为空") private String password; @NotBlank(message = "软件id不能为空") private String softId; @NotBlank(message = "公钥不能为空") String publicKey; /** * 用户电脑的机器码 * code */ @NotBlank(message = "code不能为空") private String code; private String ip; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/AccountRegisterVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @Data public class AccountRegisterVo implements Serializable { @NotBlank(message = "用户名不能为空") @Size(min = 5,max = 10,message = "用户名长度是5到10位哟") private String username; @NotBlank(message = "QQ号不能为空") @Size(min = 1,max = 10,message = "QQ号长度是1到10位哟") private String qq; @NotBlank(message = "密码不能为空") private String password; @NotBlank(message = "软件id不能为空") private String softId; @NotBlank(message = "安全码不能为空") @Size(min = 5,max = 10,message = "安全码长度是5到10位哟") private String securityCode; /** * 用户电脑的机器码 * code */ @NotBlank(message = "code不能为空") private String code; /** * 验证码 */ @NotBlank(message = "验证码不能为空") @Size(min = 6,max = 6,message = "验证码长度是6位哟") private String vc; /** * 用户的真实姓名 * name */ @NotBlank(message = "名字不能为空") @Size(min = 1,max = 10,message = "真实姓名长度是1到10位哟") private String name; private String ip; @NotBlank(message = "公钥不能为空") String publicKey; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/AccountUpdatePasswordVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @Data public class AccountUpdatePasswordVo implements Serializable { @NotBlank(message = "用户名不能为空") @Size(min = 5,max = 10,message = "用户名长度是5到10位哟") private String username; @NotBlank(message = "新密码不能为空") @Size(min = 5,max = 10,message = "新密码长度是5到10位哟") private String password; @NotBlank(message = "安全码不能为空") @Size(min = 5,max = 10,message = "安全码长度是5到10位哟") private String securityCode; @NotBlank(message = "软件id不能为空") private String softId; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/AccountVerificationCodeVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import java.io.Serializable; @Data public class AccountVerificationCodeVo implements Serializable { private String publicKey; private String code; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/CardTimeLimitVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import java.io.Serializable; @Data public class CardTimeLimitVo implements Serializable { private Long startDate; private Long endDate; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/SoftGetSoftDescVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import java.io.Serializable; @Data public class SoftGetSoftDescVo implements Serializable { @NotBlank(message = "软件id不能为空") private String softId; /** * 换绑策略 0.支持换绑定 1.不支持换绑定 * change_strategy */ private Integer changeStrategy; /** * 多开策略 0.只支持单机 1.无限制 * dosing_strategy */ private Integer dosingStrategy; /** * 软件名称 * name */ private String name; /** * 公告 * notice */ private String notice; /** * 关闭注册后的返回信息 * registe_close_msg */ private String registeCloseMsg; /** * 注册状态 0.开放注册 1.关闭注册 * register_status */ private Integer registerStatus; /** * 关闭状态下的返回信息 * service_close_msg */ private String serviceCloseMsg; /** * 服务状态 0.收费 1.免费开放 2.关闭开放使用 * service_status */ private Integer serviceStatus; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/SoftLeaveMeesageSubmitVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import org.hibernate.validator.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @Data public class SoftLeaveMeesageSubmitVo implements Serializable { @NotBlank(message = "留言内容不能为空") @Size(min = 1,max = 255,message = "留言内容长度是255位哟") private String content; @NotBlank(message = "留言QQ不能为空") @Size(min = 1,max = 10,message = "留言QQ长度是10位哟") private String qq; @NotBlank(message = "软件id不能为空") private String softId; private String ip; } ================================================ FILE: api/src/main/java/com/orange/verify/api/vo/open/SoftVersionsVo.java ================================================ package com.orange.verify.api.vo.open; import lombok.Data; import java.io.Serializable; @Data public class SoftVersionsVo implements Serializable { private String notice; private Integer novatioNecessaria; private String number; private String updateUrl; } ================================================ FILE: api/src/main/resources/application.properties ================================================ ================================================ FILE: builder/.gitignore ================================================ /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /build/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ================================================ FILE: builder/.mvn/wrapper/maven-wrapper.properties ================================================ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip ================================================ FILE: builder/mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Maven2 Start Up Batch script # # Required ENV vars: # ------------------ # JAVA_HOME - location of a JDK home dir # # Optional ENV vars # ----------------- # M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. cygwin=false; darwin=false; mingw=false case "`uname`" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then export JAVA_HOME="`/usr/libexec/java_home`" else export JAVA_HOME="/Library/Java/Home" fi fi ;; esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then JAVA_HOME=`java-config --jre-home` fi fi if [ -z "$M2_HOME" ] ; then ## resolve links - $0 may be a link to maven's home PRG="$0" # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG="`dirname "$PRG"`/$link" fi done saveddir=`pwd` M2_HOME=`dirname "$PRG"`/.. # make it fully qualified M2_HOME=`cd "$M2_HOME" && pwd` cd "$saveddir" # echo Using m2 at $M2_HOME fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then javaExecutable="`which javac`" if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=`which readlink` if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then if $darwin ; then javaHome="`dirname \"$javaExecutable\"`" javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" else javaExecutable="`readlink -f \"$javaExecutable\"`" fi javaHome="`dirname \"$javaExecutable\"`" javaHome=`expr "$javaHome" : '\(.*\)/bin'` JAVA_HOME="$javaHome" export JAVA_HOME fi fi fi if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" return 1 fi basedir="$1" wdir="$1" while [ "$wdir" != '/' ] ; do if [ -d "$wdir"/.mvn ] ; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then wdir=`cd "$wdir/.."; pwd` fi # end of workaround done echo "${basedir}" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then echo "$(tr -s '\n' ' ' < "$1")" fi } BASE_DIR=`find_maven_basedir "$(pwd)"` if [ -z "$BASE_DIR" ]; then exit 1; fi ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found .mvn/wrapper/maven-wrapper.jar" fi else if [ "$MVNW_VERBOSE" = true ]; then echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" while IFS="=" read key value; do case "$key" in (wrapperUrl) jarUrl="$value"; break ;; esac done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" if [ "$MVNW_VERBOSE" = true ]; then echo "Downloading from: $jarUrl" fi wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" if command -v wget > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found wget ... using wget" fi wget "$jarUrl" -O "$wrapperJarPath" elif command -v curl > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found curl ... using curl" fi curl -o "$wrapperJarPath" "$jarUrl" else if [ "$MVNW_VERBOSE" = true ]; then echo "Falling back to using Java to download" fi javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" if [ -e "$javaClass" ]; then if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo " - Compiling MavenWrapperDownloader.java ..." fi # Compiling the Java class ("$JAVA_HOME/bin/javac" "$javaClass") fi if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then # Running the downloader if [ "$MVNW_VERBOSE" = true ]; then echo " - Running MavenWrapperDownloader.java ..." fi ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") fi fi fi fi ########################################################################################## # End of extension ########################################################################################## export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} if [ "$MVNW_VERBOSE" = true ]; then echo $MAVEN_PROJECTBASEDIR fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` [ -n "$MAVEN_PROJECTBASEDIR" ] && MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" ================================================ FILE: builder/mvnw.cmd ================================================ @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files @REM ---------------------------------------------------------------------------- @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off @REM set title of command window title %0 @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") @REM Execute a user defined script before this one if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre @REM check for pre script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" :skipRcPre @setlocal set ERROR_CODE=0 @REM To isolate internal variables from possible post scripts, we use another setlocal @setlocal @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init echo. echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error @REM ==== END VALIDATION ==== :init @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". @REM Fallback to current working directory if not found. set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir set EXEC_DIR=%CD% set WDIR=%EXEC_DIR% :findBaseDir IF EXIST "%WDIR%"\.mvn goto baseDirFound cd .. IF "%WDIR%"=="%CD%" goto baseDirNotFound set WDIR=%CD% goto findBaseDir :baseDirFound set MAVEN_PROJECTBASEDIR=%WDIR% cd "%EXEC_DIR%" goto endDetectBaseDir :baseDirNotFound set MAVEN_PROJECTBASEDIR=%EXEC_DIR% cd "%EXEC_DIR%" :endDetectBaseDir IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig @setlocal EnableExtensions EnableDelayedExpansion for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B ) @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central @REM This allows using the maven wrapper in projects that prohibit checking in binary data. if exist %WRAPPER_JAR% ( echo Found %WRAPPER_JAR% ) else ( echo Couldn't find %WRAPPER_JAR%, downloading it ... echo Downloading from: %DOWNLOAD_URL% powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" echo Finished downloading %WRAPPER_JAR% ) @REM End of extension %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end :error set ERROR_CODE=1 :end @endlocal & set ERROR_CODE=%ERROR_CODE% if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost @REM check for post script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" :skipRcPost @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% ================================================ FILE: builder/pom.xml ================================================ 4.0.0 com.orange.verify builder 1.0.0 jar builder Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-jdbc org.mybatis.generator mybatis-generator-core 1.3.7 mysql mysql-connector-java 5.1.40 org.springframework.boot spring-boot-starter-test test com.baomidou mybatis-plus-boot-starter 3.0.6 org.projectlombok lombok 1.16.18 org.springframework.boot spring-boot-maven-plugin ================================================ FILE: builder/src/main/java/com/orange/verify/api/Account.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 软件用户表 * 每个软件对应一批用户 * 软件和用户之间是一对多的关系... */ @Entity(name = "t_account") @Table(appliesTo = "t_account",comment = "软件用户表") public class Account extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '软件绑定id'") private String softId; @Column(columnDefinition = "varchar(100) comment '卡密绑定id'") private String cardId; @Column(columnDefinition = "varchar(100) comment '用户名'") private String username; @Column(columnDefinition = "varchar(100) comment '用户密码'") private String password; @Column(columnDefinition = "varchar(100) comment '用户电脑的机器码'") private String code; @Column(columnDefinition = "varchar(100) comment '安全码,找回密码用'") private String securityCode; @Column(columnDefinition = "varchar(100) comment '用户的联系QQ'") private String qq; @Column(columnDefinition = "varchar(100) comment '用户的联系手机号'") private String phoneNumber; @Column(columnDefinition = "varchar(100) comment '用户的真实姓名'") private String name; @Column(columnDefinition = "varchar(100) comment '用户注册的时候ip地址'") private String createIp; @Column(columnDefinition = "varchar(255) comment '创建时候的ip信息'") private String createIpInfo; @Column(columnDefinition = "int(2) default 0 comment '是否加入了黑名单 0.不是 1.是的'") private Integer blacklist; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/AccountLoginLog.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Entity; /** * 用户登录日志 */ @Entity(name = "t_account_login_log") @Table(appliesTo = "t_account_login_log",comment = "用户登录日志") public class AccountLoginLog extends BaseEntity { private String accountId; private String ip; private String ipInfo; private String softId; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/AccountRegisterLog.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Entity; /** * 用户注册日志 */ @Entity(name = "t_account_register_log") @Table(appliesTo = "t_account_register_log",comment = "用户注册日志") public class AccountRegisterLog extends BaseEntity { private String accountId; private String ip; private String ipInfo; private String softId; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/BaiduMapApi.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 百度地理api配置 * 通过ip拿到ip地理信息 */ @Entity(name = "t_baidu_map_api") @Table(appliesTo = "t_baidu_map_api",comment = "百度地理api配置") public class BaiduMapApi extends BaseEntity { @Column(columnDefinition = "varchar(100) comment 'appkey'") private String appkey; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/Card.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 软件充值卡密 */ @Entity(name = "t_card") @Table(appliesTo = "t_card",comment = "软件充值卡") public class Card extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '用户绑定id'") private String accountId; @Column(columnDefinition = "varchar(100) comment '卡类绑定id'") private String cardTypeId; @Column(columnDefinition = "varchar(255) comment '充值卡号'") private String cardNumber; @Column(columnDefinition = "int(2) default 0 comment '使用状态 0.未使用 1.已使用'") private Integer useStatus; @Column(columnDefinition = "int(2) default 0 comment '销售状态 0.未卖出 1.已卖出'") private Integer sellStatus; @Column(columnDefinition = "int(2) default 0 comment '是否封停使用 0.未封停 1.已封停'") private Integer closure; @Column(columnDefinition = "bigint comment '开始使用时间'") private Long startDate; @Column(columnDefinition = "bigint comment '结束时间'") private Long endDate; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/CardType.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 软件充值卡类型 */ @Entity(name = "t_card_type") @Table(appliesTo = "t_card_type",comment = "软件充值卡类型") public class CardType extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '软件绑定id'") private String softId; @Column(columnDefinition = "int(2) default 0 comment '卡类单位 0.分 1.时 2.天 3.周 4.月 5.年'") private Integer unit; @Column(columnDefinition = "int comment '卡类值 比如对应的是分填1就是1分钟 以此类推'") private Integer value; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/EmailAccount.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 邮箱账户 * 用于通知 留言信息 给那个... */ @Entity(name = "t_email_account") @Table(appliesTo = "t_email_account",comment = "邮箱账户") public class EmailAccount extends BaseEntity { @Column(columnDefinition = "varchar(255) comment '用户名'") private String username; @Column(columnDefinition = "varchar(255) comment '用户密码'") private String password; @Column(columnDefinition = "int(2) default 0 comment '是否使用 0.使用 1.不使用'") private Integer isUse; @Column(columnDefinition = "bigint default 0 comment '被使用的次数'") private Long total; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/Soft.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 软件 */ @Entity(name = "t_soft") @Table(appliesTo = "t_soft",comment = "软件") public class Soft extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '软件名称'") private String name; @Column(columnDefinition = "int(2) default 0 comment '服务状态 0.收费 1.免费开放 2.关闭开放使用'") private Integer serviceStatus; @Column(columnDefinition = "varchar(255) default '' comment '关闭状态下的返回信息'") private String serviceCloseMsg; @Column(columnDefinition = "varchar(255) comment '公告'") private String notice; @Column(columnDefinition = "int(2) default 0 comment '注册状态 0.开放注册 1.关闭注册'") private Integer registerStatus; @Column(columnDefinition = "varchar(255) default '' comment '关闭注册后的返回信息'") private String registeCloseMsg; @Column(columnDefinition = "int(2) default 0 comment '多开策略 0.只支持单机 1.无限制'") private Integer dosingStrategy; @Column(columnDefinition = "int(2) default 0 comment '换绑策略 0.支持换绑定 1.不支持换绑定'") private Integer changeStrategy; @Column(columnDefinition = "int(2) default 0 comment '软件被留言 是否邮件通知 0.通知 1.不通知'") private Integer emailNotificatio; @Column(columnDefinition = "varchar(100) default '' comment '被通知的邮箱账户名'") private String emailName; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/SoftLeaveMessage.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 软件留言 */ @Entity(name = "t_soft_leave_message") @Table(appliesTo = "t_soft_leave_message",comment = "软件留言") public class SoftLeaveMessage extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '软件绑定id'") private String softId; @Column(columnDefinition = "varchar(255) comment '用户留言内容'") private String content; @Column(columnDefinition = "varchar(100) comment '用户的QQ号'") private String qq; private String ip; private String ipInfo; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/SoftVersions.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 软件版本控制 */ @Entity(name = "t_soft_versions") @Table(appliesTo = "t_soft_versions",comment = "软件版本控制") public class SoftVersions extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '软件绑定id'") private String softId; @Column(columnDefinition = "varchar(100) comment '版本号'") private String number; @Column(columnDefinition = "int(2) default 0 comment '是否强制更新 0.不强制 1.强制'") private Integer novatioNecessaria; @Column(columnDefinition = "varchar(255) default '' comment '更新url'") private String updateUrl; @Column(columnDefinition = "varchar(255) default '' comment '更新公告'") private String notice; } ================================================ FILE: builder/src/main/java/com/orange/verify/api/User.java ================================================ package com.orange.verify.api; import com.orange.verify.common.BaseEntity; import org.hibernate.annotations.Table; import javax.persistence.Column; import javax.persistence.Entity; /** * 平台管理用户 * 必须满足三个条件才可登陆 * flag = 另外的条件标志 */ @Entity(name = "t_user") @Table(appliesTo = "t_user",comment = "平台管理用户") public class User extends BaseEntity { @Column(columnDefinition = "varchar(100) comment '管理用户名'") private String username; @Column(columnDefinition = "varchar(100) comment '管理用户密码'") private String password; @Column(columnDefinition = "varchar(100) comment '管理标识符'") private String flag; } ================================================ FILE: builder/src/main/java/com/orange/verify/builder/BuilderApplication.java ================================================ package com.orange.verify.builder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; /** * 根据填写的api bean 生成到数据库 * @author orange */ @SpringBootApplication @EntityScan(basePackages={"${entity.scan.base.packages}"}) public class BuilderApplication { public static void main(String[] args) { SpringApplication.run(BuilderApplication.class, args); } } ================================================ FILE: builder/src/main/java/com/orange/verify/builder/Generator.java ================================================ package com.orange.verify.builder; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; /** * 根据数据库反向生成到bean * @author orange */ public class Generator { public static void main( String[] args ) throws Exception { Properties properties = new Properties(); InputStream in = Generator.class.getClassLoader().getResourceAsStream("application.properties"); properties.load(in); String generator = properties.getProperty("generator"); List warnings = new ArrayList(); boolean overwrite = true; ClassLoader classloader = Thread.currentThread().getContextClassLoader(); InputStream is = classloader.getResourceAsStream(generator); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(is); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } } ================================================ FILE: builder/src/main/java/com/orange/verify/builder/config/EmptyCommentGenerator.java ================================================ package com.orange.verify.builder.config; import org.mybatis.generator.api.CommentGenerator; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.dom.java.*; import org.mybatis.generator.api.dom.xml.XmlElement; import java.util.Properties; import java.util.Set; public class EmptyCommentGenerator implements CommentGenerator { @Override public void addConfigurationProperties(Properties properties) { } @Override public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { } @Override public void addFieldComment(Field field, IntrospectedTable introspectedTable) { } @Override public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { } @Override public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) { } @Override public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean b) { } @Override public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) { } @Override public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { } @Override public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { } @Override public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) { } @Override public void addJavaFileComment(CompilationUnit compilationUnit) { } @Override public void addComment(XmlElement xmlElement) { } @Override public void addRootComment(XmlElement xmlElement) { } @Override public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, Set set) { } @Override public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set set) { } @Override public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, Set set) { } @Override public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set set) { } @Override public void addClassAnnotation(InnerClass innerClass, IntrospectedTable introspectedTable, Set set) { } } ================================================ FILE: builder/src/main/java/com/orange/verify/builder/config/MySQLCommentGenerator.java ================================================ package com.orange.verify.builder.config; import com.orange.verify.common.BaseEntity; import lombok.extern.java.Log; import org.mybatis.generator.api.FullyQualifiedTable; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.dom.java.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; @Log public class MySQLCommentGenerator extends EmptyCommentGenerator { private Properties properties; public MySQLCommentGenerator() { properties = new Properties(); } @Override public void addConfigurationProperties(Properties properties) { // 获取自定义的 properties this.properties.putAll(properties); } @Override public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { String author = properties.getProperty("author"); String dateFormat = properties.getProperty("dateFormat", "yyyy-MM-dd"); SimpleDateFormat dateFormatter = new SimpleDateFormat(dateFormat); FullyQualifiedTable fullyQualifiedTable = introspectedTable.getFullyQualifiedTable(); Field field = new Field(); field.setVisibility(JavaVisibility.PRIVATE); field.setType(new FullyQualifiedJavaType("long")); field.setStatic(true); field.setFinal(true); field.setName("serialVersionUID"); field.setInitializationString("1L"); topLevelClass.addField(field); FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType("Serializable"); FullyQualifiedJavaType imp = new FullyQualifiedJavaType("java.io.Serializable"); FullyQualifiedJavaType imp2 = new FullyQualifiedJavaType("com.baomidou.mybatisplus.annotation.*"); topLevelClass.addSuperInterface(fqjt); topLevelClass.addImportedType(imp); topLevelClass.addImportedType(imp2); topLevelClass.addJavaDocLine("/**"); topLevelClass.addJavaDocLine(" * " + introspectedTable.getRemarks()); topLevelClass.addJavaDocLine(" * " + fullyQualifiedTable.getIntrospectedTableName()); topLevelClass.addJavaDocLine(" * @author " + author); topLevelClass.addJavaDocLine(" * @date " + dateFormatter.format(new Date())); topLevelClass.addJavaDocLine(" */"); topLevelClass.addJavaDocLine("@TableName(\""+ fullyQualifiedTable.getIntrospectedTableName() +"\")"); topLevelClass.addJavaDocLine("@KeySequence(\"SEQ_TEST\")"); log.info("数据库表:" + fullyQualifiedTable.getIntrospectedTableName() + " 生成..."); } @Override public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { // 获取列注释 String remarks = introspectedColumn.getRemarks(); if (introspectedColumn.getJavaProperty().equals("id")) { field.addJavaDocLine("@TableId(value = \""+ introspectedColumn.getActualColumnName() +"\", type = IdType.ID_WORKER_STR)"); } else if (introspectedColumn.getJavaProperty().equals("delFlag")) { field.addJavaDocLine("@TableLogic"); } else if (introspectedColumn.getJavaProperty().equals("createDate")) { field.addJavaDocLine("@TableField(value = \""+ introspectedColumn.getActualColumnName() +"\",fill = FieldFill.INSERT)"); } else if (introspectedColumn.getJavaProperty().equals("updateDate")) { field.addJavaDocLine("@TableField(value = \""+ introspectedColumn.getActualColumnName() +"\",fill = FieldFill.UPDATE)"); } else { field.addJavaDocLine("/**"); if (!remarks.equals("")) { field.addJavaDocLine(" * " + remarks); } field.addJavaDocLine(" * " + introspectedColumn.getActualColumnName()); field.addJavaDocLine(" */"); } } } ================================================ FILE: builder/src/main/java/com/orange/verify/common/BaseEntity.java ================================================ package com.orange.verify.common; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.MappedSuperclass; import java.io.Serializable; @MappedSuperclass public abstract class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(nullable = false,columnDefinition = "varchar(100) comment '主键'") private String id; @Column(columnDefinition = ("int(2) default 0 comment '删除判断'")) private int delFlag; @Column(columnDefinition = ("varchar(100) default null comment '备注'")) private String remarks; @Column(columnDefinition = ("bigint(20) default null comment '创建时间'")) private Long createDate; @Column(columnDefinition = ("bigint(20) default null comment '更新时间'")) private Long updateDate; } ================================================ FILE: builder/src/main/resources/application.properties ================================================ entity.scan.base.packages=com.orange.verify.api generator=verify-generator-config.xml spring.jpa.show-sql=true spring.datasource.url=jdbc:mysql://localhost:3306/com_orange_verify_db?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver #hibernateɳıĬInnoDB spring.jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.properties.hibernate.hbm2ddl.auto=create spring.jpa.properties.hibernate.show_sql=false ================================================ FILE: builder/src/main/resources/verify-generator-config.xml ================================================
================================================ FILE: builder/src/test/java/com/orange/verify/builder/BuilderApplicationTests.java ================================================ package com.orange.verify.builder; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class BuilderApplicationTests { @Test public void contextLoads() { } } ================================================ FILE: common/.gitignore ================================================ /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /build/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ================================================ FILE: common/.mvn/wrapper/maven-wrapper.properties ================================================ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip ================================================ FILE: common/mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Maven2 Start Up Batch script # # Required ENV vars: # ------------------ # JAVA_HOME - location of a JDK home dir # # Optional ENV vars # ----------------- # M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. cygwin=false; darwin=false; mingw=false case "`uname`" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then export JAVA_HOME="`/usr/libexec/java_home`" else export JAVA_HOME="/Library/Java/Home" fi fi ;; esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then JAVA_HOME=`java-config --jre-home` fi fi if [ -z "$M2_HOME" ] ; then ## resolve links - $0 may be a link to maven's home PRG="$0" # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG="`dirname "$PRG"`/$link" fi done saveddir=`pwd` M2_HOME=`dirname "$PRG"`/.. # make it fully qualified M2_HOME=`cd "$M2_HOME" && pwd` cd "$saveddir" # echo Using m2 at $M2_HOME fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then javaExecutable="`which javac`" if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=`which readlink` if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then if $darwin ; then javaHome="`dirname \"$javaExecutable\"`" javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" else javaExecutable="`readlink -f \"$javaExecutable\"`" fi javaHome="`dirname \"$javaExecutable\"`" javaHome=`expr "$javaHome" : '\(.*\)/bin'` JAVA_HOME="$javaHome" export JAVA_HOME fi fi fi if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" return 1 fi basedir="$1" wdir="$1" while [ "$wdir" != '/' ] ; do if [ -d "$wdir"/.mvn ] ; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then wdir=`cd "$wdir/.."; pwd` fi # end of workaround done echo "${basedir}" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then echo "$(tr -s '\n' ' ' < "$1")" fi } BASE_DIR=`find_maven_basedir "$(pwd)"` if [ -z "$BASE_DIR" ]; then exit 1; fi ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found .mvn/wrapper/maven-wrapper.jar" fi else if [ "$MVNW_VERBOSE" = true ]; then echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" while IFS="=" read key value; do case "$key" in (wrapperUrl) jarUrl="$value"; break ;; esac done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" if [ "$MVNW_VERBOSE" = true ]; then echo "Downloading from: $jarUrl" fi wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" if command -v wget > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found wget ... using wget" fi wget "$jarUrl" -O "$wrapperJarPath" elif command -v curl > /dev/null; then if [ "$MVNW_VERBOSE" = true ]; then echo "Found curl ... using curl" fi curl -o "$wrapperJarPath" "$jarUrl" else if [ "$MVNW_VERBOSE" = true ]; then echo "Falling back to using Java to download" fi javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" if [ -e "$javaClass" ]; then if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo " - Compiling MavenWrapperDownloader.java ..." fi # Compiling the Java class ("$JAVA_HOME/bin/javac" "$javaClass") fi if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then # Running the downloader if [ "$MVNW_VERBOSE" = true ]; then echo " - Running MavenWrapperDownloader.java ..." fi ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") fi fi fi fi ########################################################################################## # End of extension ########################################################################################## export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} if [ "$MVNW_VERBOSE" = true ]; then echo $MAVEN_PROJECTBASEDIR fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` [ -n "$MAVEN_PROJECTBASEDIR" ] && MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" ================================================ FILE: common/mvnw.cmd ================================================ @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files @REM ---------------------------------------------------------------------------- @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off @REM set title of command window title %0 @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") @REM Execute a user defined script before this one if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre @REM check for pre script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" :skipRcPre @setlocal set ERROR_CODE=0 @REM To isolate internal variables from possible post scripts, we use another setlocal @setlocal @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init echo. echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error @REM ==== END VALIDATION ==== :init @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". @REM Fallback to current working directory if not found. set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir set EXEC_DIR=%CD% set WDIR=%EXEC_DIR% :findBaseDir IF EXIST "%WDIR%"\.mvn goto baseDirFound cd .. IF "%WDIR%"=="%CD%" goto baseDirNotFound set WDIR=%CD% goto findBaseDir :baseDirFound set MAVEN_PROJECTBASEDIR=%WDIR% cd "%EXEC_DIR%" goto endDetectBaseDir :baseDirNotFound set MAVEN_PROJECTBASEDIR=%EXEC_DIR% cd "%EXEC_DIR%" :endDetectBaseDir IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig @setlocal EnableExtensions EnableDelayedExpansion for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B ) @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central @REM This allows using the maven wrapper in projects that prohibit checking in binary data. if exist %WRAPPER_JAR% ( echo Found %WRAPPER_JAR% ) else ( echo Couldn't find %WRAPPER_JAR%, downloading it ... echo Downloading from: %DOWNLOAD_URL% powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" echo Finished downloading %WRAPPER_JAR% ) @REM End of extension %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end :error set ERROR_CODE=1 :end @endlocal & set ERROR_CODE=%ERROR_CODE% if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost @REM check for post script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" :skipRcPost @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% ================================================ FILE: common/pom.xml ================================================ 4.0.0 com.orange.verify common 1.0.0 UTF-8 UTF-8 1.8 cn.hutool hutool-all 4.2.1 org.projectlombok lombok 1.16.18 compile org.apache.commons commons-lang3 3.8.1 commons-codec commons-codec 1.11 compile com.sun.mail javax.mail 1.6.2 org.apache.tomcat.embed tomcat-embed-core 8.5.34 compile org.apache.maven.plugins maven-jar-plugin ================================================ FILE: common/src/main/java/com/orange/verify/common/email/MailUtil.java ================================================ package com.orange.verify.common.email; import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.security.GeneralSecurityException; import java.util.Properties; /** * 用于QQ邮件封装 * @author Orange * @date 2018/11/1 */ public class MailUtil { private String senderAccount; private String senderPassword; /** * @param senderAccount 发件人邮箱号 * @param senderPassword 发件人密码 */ public MailUtil(String senderAccount, String senderPassword) { this.senderAccount = senderAccount; this.senderPassword = senderPassword; } /** * @param senderObject 接收者 * @param title 发送标题 * @param content 发送内容 */ public void send(String senderObject,String title,String content) throws MessagingException, GeneralSecurityException { // 获取系统属性 Properties properties = System.getProperties(); // 设置邮件服务器 properties.setProperty("mail.smtp.host", "smtp.qq.com"); properties.put("mail.smtp.auth", "true"); MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.ssl.socketFactory", sf); // 获取默认session对象 Session session = Session.getDefaultInstance(properties,new Authenticator(){ @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(senderAccount, senderPassword); //发件人邮件用户名、密码 } }); // 创建默认的 MimeMessage 对象 MimeMessage message = new MimeMessage(session); // Set From: 头部头字段 message.setFrom(new InternetAddress(senderAccount)); // Set To: 头部头字段 message.addRecipient(Message.RecipientType.TO, new InternetAddress(senderObject)); // Set Subject: 头部头字段 message.setSubject(title); // 设置消息体 message.setText(content); // 发送消息 Transport.send(message); } } ================================================ FILE: common/src/main/java/com/orange/verify/common/ip/BaiduIp.java ================================================ package com.orange.verify.common.ip; import cn.hutool.core.text.UnicodeUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpStatus; import cn.hutool.json.JSONObject; import lombok.extern.java.Log; /** * @author Orange * @date 2018/12/4 */ @Log public class BaiduIp { public static final String API_REQUEST_ERROR = "API_REQUEST_ERROR"; public static final String API_BAIDU_ERROR = "API_BAIDU_ERROR"; private String ak = ""; public static BaiduIp start(String ak) { return new BaiduIp().init(ak); } private BaiduIp init(String ak) { this.ak = ak; return this; } /** * 根据 用户ip 获取 所在地 * @param ip 用户上网的IP地址 * @return * @throws Exception */ public String getAddressByIp(String ip) throws Exception { String url = "https://api.map.baidu.com/location/ip"; String data = "?ip=" + ip + "&ak=" + this.ak + "&coor=bd09ll"; HttpResponse execute = HttpRequest.get(url + data).execute(); if (execute.getStatus() == HttpStatus.HTTP_OK) { String body = UnicodeUtil.toString(execute.body()); JSONObject addressJson = new JSONObject(body); Integer status = (Integer) addressJson.get("status"); if (status == 0) { String content = addressJson.get("content").toString(); JSONObject contentJson = new JSONObject(content); String address = contentJson.get("address").toString(); log.info("IP " + ip + " >>> " + address); return address; } throw new Exception(API_BAIDU_ERROR); } throw new Exception(API_REQUEST_ERROR); } } ================================================ FILE: common/src/main/java/com/orange/verify/common/ip/IpUtil.java ================================================ package com.orange.verify.common.ip; import org.apache.commons.lang3.StringUtils; import javax.servlet.http.HttpServletRequest; public class IpUtil { /** *获取Ip *@paramrequest *@return */ public static String getIp(HttpServletRequest request){ String Xip = request.getHeader("X-Real-IP"); String XFor = request.getHeader("X-Forwarded-For"); if(StringUtils.isNotEmpty(XFor)&&!"unKnown".equalsIgnoreCase(XFor)){ int index=XFor.indexOf(","); if(index!=-1){ return XFor.substring(0,index); }else{ return XFor; } } XFor=Xip; if(StringUtils.isNotEmpty(XFor)&&!"unKnown".equalsIgnoreCase(XFor)){ return XFor; } if(StringUtils.isBlank(XFor)||"unknown".equalsIgnoreCase(XFor)){ XFor=request.getHeader("Proxy-Client-IP"); } if(StringUtils.isBlank(XFor)||"unknown".equalsIgnoreCase(XFor)){ XFor=request.getHeader("WL-Proxy-Client-IP"); } if(StringUtils.isBlank(XFor)||"unknown".equalsIgnoreCase(XFor)){ XFor=request.getHeader("HTTP_CLIENT_IP"); } if(StringUtils.isBlank(XFor)||"unknown".equalsIgnoreCase(XFor)){ XFor=request.getHeader("HTTP_X_FORWARDED_FOR"); } if(StringUtils.isBlank(XFor)||"unknown".equalsIgnoreCase(XFor)){ XFor=request.getRemoteAddr(); } return XFor; } } ================================================ FILE: common/src/main/java/com/orange/verify/common/rsa/RsaUtil.java ================================================ package com.orange.verify.common.rsa; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import javax.crypto.Cipher; import java.security.*; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.HashMap; import java.util.Map; /** * 非对称加密算法RSA算法组件 * 非对称算法一般是用来传送对称加密算法的密钥来使用的,相对于DH算法,RSA算法只需要一方构造密钥,不需要 * 大费周章的构造各自本地的密钥对了。DH算法只能算法非对称算法的底层实现。而RSA算法算法实现起来较为简单 * * @author kongqz */ public class RsaUtil { //非对称密钥算法 public static final String KEY_ALGORITHM = "RSA"; /** * 密钥长度,DH算法的默认密钥长度是1024 * 密钥长度必须是64的倍数,在512到65536位之间 */ private static final int KEY_SIZE = 1024; //公钥 private static final String PUBLIC_KEY = "RSAPublicKey"; //私钥 private static final String PRIVATE_KEY = "RSAPrivateKey"; /** * 初始化密钥对 * * @return Map 甲方密钥的Map */ public static Map initKey() throws Exception { //实例化密钥生成器 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KEY_ALGORITHM); //初始化密钥生成器 keyPairGenerator.initialize(KEY_SIZE); //生成密钥对 KeyPair keyPair = keyPairGenerator.generateKeyPair(); //甲方公钥 RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); //甲方私钥 RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); //将密钥存储在map中 Map keyMap = new HashMap(); keyMap.put(PUBLIC_KEY, publicKey); keyMap.put(PRIVATE_KEY, privateKey); return keyMap; } /** * 私钥加密 * * @param data 待加密数据 * @param key 密钥 * @return byte[] 加密数据 */ private static byte[] encryptByPrivateKey(byte[] data, byte[] key) throws Exception { //取得私钥 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); //生成私钥 PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec); //数据加密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, privateKey); return cipher.doFinal(data); } /** * 公钥加密 * * @param data 待加密数据 * @param key 密钥 * @return byte[] 加密数据 */ private static byte[] encryptByPublicKey(byte[] data, byte[] key) throws Exception { //实例化密钥工厂 KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); //初始化公钥 //密钥材料转换 X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(key); //产生公钥 PublicKey pubKey = keyFactory.generatePublic(x509KeySpec); //数据加密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, pubKey); return cipher.doFinal(data); } /** * 私钥解密 * * @param data 待解密数据 * @param key 密钥 * @return byte[] 解密数据 */ private static byte[] decryptByPrivateKey(byte[] data, byte[] key) throws Exception { //取得私钥 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); //生成私钥 PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec); //数据解密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(data); } /** * 公钥解密 * * @param data 待解密数据 * @param key 密钥 * @return byte[] 解密数据 */ private static byte[] decryptByPublicKey(byte[] data, byte[] key) throws Exception { //实例化密钥工厂 KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); //初始化公钥 //密钥材料转换 X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(key); //产生公钥 PublicKey pubKey = keyFactory.generatePublic(x509KeySpec); //数据解密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, pubKey); return cipher.doFinal(data); } /** * 取得私钥 * * @param keyMap 密钥map * @return byte[] 私钥 */ private static byte[] getPrivateKey(Map keyMap) { Key key = (Key) keyMap.get(PRIVATE_KEY); return key.getEncoded(); } /** * 取得公钥 * * @param keyMap 密钥map * @return byte[] 公钥 */ private static byte[] getPublicKey(Map keyMap) throws Exception { Key key = (Key) keyMap.get(PUBLIC_KEY); return key.getEncoded(); } /** * 生成公钥 base64加密返回 String */ public static String getPublicKeyToBase64(Map keyMap) throws Exception { byte[] publicKey = getPublicKey(keyMap); return Base64.encodeBase64String(publicKey); } /** * 生成私钥 base64加密返回 String */ public static String getPrivateKeyToBase64(Map keyMap) throws Exception { byte[] privateKey = getPrivateKey(keyMap); return Base64.encodeBase64String(privateKey); } /** * 私钥解密 base64首先解密To byte 再私钥解密 */ public static String decodeRsa(String rsa, String privateKey) throws Exception { BASE64Decoder decoder = new BASE64Decoder(); byte[] buf = decoder.decodeBuffer(rsa); byte[] bytes = decoder.decodeBuffer(privateKey); byte[] result = decryptByPrivateKey(buf, bytes); return new String(result); } } ================================================ FILE: pom.xml ================================================ 4.0.0 com.orange.verify verify-master 1.0-SNAPSHOT api admin admin-web builder common ================================================ FILE: sdk/易语言/encrypt.js ================================================ function encrypt(enValue,enPublicKey){var navigator=this;var window=this;(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(exports):typeof define==='function'&&define.amd?define(['exports'],factory):(factory((global.JSEncrypt={})));}(this,(function(exports){'use strict';var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz";function int2char(n){return BI_RM.charAt(n);}function op_and(x,y){return x&y;}function op_or(x,y){return x|y;}function op_xor(x,y){return x^y;}function op_andnot(x,y){return x&~y;}function lbit(x){if(x==0){return-1;}var r=0;if((x&0xffff)==0){x>>=16;r+=16;}if((x&0xff)==0){x>>=8;r+=8;}if((x&0xf)==0){x>>=4;r+=4;}if((x&3)==0){x>>=2;r+=2;}if((x&1)==0){++r;}return r;}function cbit(x){var r=0;while(x!=0){x&=x-1;++r;}return r;}var b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64pad="=";function hex2b64(h){var i;var c;var ret="";for(i=0;i+3<=h.length;i+=3){c=parseInt(h.substring(i,i+3),16);ret+=b64map.charAt(c>>6)+b64map.charAt(c&63);}if(i+1==h.length){c=parseInt(h.substring(i,i+1),16);ret+=b64map.charAt(c<<2);}else if(i+2==h.length){c=parseInt(h.substring(i,i+2),16);ret+=b64map.charAt(c>>2)+b64map.charAt((c&3)<<4);}while((ret.length&3)>0){ret+=b64pad;}return ret;}function b64tohex(s){var ret="";var i;var k=0;var slop=0;for(i=0;i>2);slop=v&3;k=1;}else if(k==1){ret+=int2char((slop<<2)|(v>>4));slop=v&0xf;k=2;}else if(k==2){ret+=int2char(slop);ret+=int2char(v>>2);slop=v&3;k=3;}else{ret+=int2char((slop<<2)|(v>>4));ret+=int2char(v&0xf);k=0;}}if(k==1){ret+=int2char(slop<<2);}return ret;}var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||({__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b;})||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];};return extendStatics(d,b);};function __extends(d,b){extendStatics(d,b);function __(){this.constructor=d;}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __());}var decoder;var Hex={decode:function(a){var i;if(decoder===undefined){var hex="0123456789ABCDEF";var ignore=" \f\n\r\t\u00A0\u2028\u2029";decoder={};for(i=0;i<16;++i){decoder[hex.charAt(i)]=i;}hex=hex.toLowerCase();for(i=10;i<16;++i){decoder[hex.charAt(i)]=i;}for(i=0;i=2){out[out.length]=bits;bits=0;char_count=0;}else{bits<<=4;}}if(char_count){throw new Error("Hex encoding incomplete: 4 bits missing");}return out;}};var decoder$1;var Base64={decode:function(a){var i;if(decoder$1===undefined){var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var ignore="= \f\n\r\t\u00A0\u2028\u2029";decoder$1=Object.create(null);for(i=0;i<64;++i){decoder$1[b64.charAt(i)]=i;}for(i=0;i=4){out[out.length]=(bits>>16);out[out.length]=(bits>>8)&0xFF;out[out.length]=bits&0xFF;bits=0;char_count=0;}else{bits<<=6;}}switch(char_count){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:out[out.length]=(bits>>10);break;case 3:out[out.length]=(bits>>16);out[out.length]=(bits>>8)&0xFF;break;}return out;},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(a){var m=Base64.re.exec(a);if(m){if(m[1]){a=m[1];}else if(m[2]){a=m[2];}else{throw new Error("RegExp out of sync");}}return Base64.decode(a);}};var max=10000000000000;var Int10=(function(){function Int10(value){this.buf=[+value||0];}Int10.prototype.mulAdd=function(m,c){var b=this.buf;var l=b.length;var i;var t;for(i=0;i0){b[i]=c;}};Int10.prototype.sub=function(c){var b=this.buf;var l=b.length;var i;var t;for(i=0;i=0;--i){s+=(max+b[i]).toString().substring(1);}return s;};Int10.prototype.valueOf=function(){var b=this.buf;var v=0;for(var i=b.length-1;i>=0;--i){v=v*max+b[i];}return v;};Int10.prototype.simplify=function(){var b=this.buf;return(b.length==1)?b[0]:this;};return Int10;}());var ellipsis="\u2026";var reTimeS=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;var reTimeL=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function stringCut(str,len){if(str.length>len){str=str.substring(0,len)+ellipsis;}return str;}var Stream=(function(){function Stream(enc,pos){this.hexDigits="0123456789ABCDEF";if(enc instanceof Stream){this.enc=enc.enc;this.pos=enc.pos;}else{this.enc=enc;this.pos=pos;}}Stream.prototype.get=function(pos){if(pos===undefined){pos=this.pos++;}if(pos>=this.enc.length){throw new Error("Requesting byte offset "+pos+" on a stream of length "+this.enc.length);}return("string"===typeof this.enc)?this.enc.charCodeAt(pos):this.enc[pos];};Stream.prototype.hexByte=function(b){return this.hexDigits.charAt((b>>4)&0xF)+this.hexDigits.charAt(b&0xF);};Stream.prototype.hexDump=function(start,end,raw){var s="";for(var i=start;i176){return false;}}return true;};Stream.prototype.parseStringISO=function(start,end){var s="";for(var i=start;i191)&&(c<224)){s+=String.fromCharCode(((c&0x1F)<<6)|(this.get(i++)&0x3F));}else{s+=String.fromCharCode(((c&0x0F)<<12)|((this.get(i++)&0x3F)<<6)|(this.get(i++)&0x3F));}}return s;};Stream.prototype.parseStringBMP=function(start,end){var str="";var hi;var lo;for(var i=start;i127);var pad=neg?255:0;var len;var s="";while(v==pad&&++start4){s=v;len<<=3;while(((+s^pad)&0x80)==0){s=+s<<1;--len;}s="("+len+" bit)\n";}if(neg){v=v-256;}var n=new Int10(v);for(var i=start+1;i=skip;--j){s+=(b>>j)&1?"1":"0";}if(s.length>maxLength){return intro+stringCut(s,maxLength);}}return intro+s;};Stream.prototype.parseOctetString=function(start,end,maxLength){if(this.isASCII(start,end)){return stringCut(this.parseStringISO(start,end),maxLength);}var len=end-start;var s="("+len+" byte)\n";maxLength/=2;if(len>maxLength){end=start+maxLength;}for(var i=start;imaxLength){s+=ellipsis;}return s;};Stream.prototype.parseOID=function(start,end,maxLength){var s="";var n=new Int10();var bits=0;for(var i=start;imaxLength){return stringCut(s,maxLength);}n=new Int10();bits=0;}}if(bits>0){s+=".incomplete";}return s;};return Stream;}());var ASN1=(function(){function ASN1(stream,header,length,tag,sub){if(!(tag instanceof ASN1Tag)){throw new Error("Invalid tag value.");}this.stream=stream;this.header=header;this.length=length;this.tag=tag;this.sub=sub;}ASN1.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0x00:return"EOC";case 0x01:return"BOOLEAN";case 0x02:return"INTEGER";case 0x03:return"BIT_STRING";case 0x04:return"OCTET_STRING";case 0x05:return"NULL";case 0x06:return"OBJECT_IDENTIFIER";case 0x07:return"ObjectDescriptor";case 0x08:return"EXTERNAL";case 0x09:return"REAL";case 0x0A:return"ENUMERATED";case 0x0B:return"EMBEDDED_PDV";case 0x0C:return"UTF8String";case 0x10:return"SEQUENCE";case 0x11:return"SET";case 0x12:return"NumericString";case 0x13:return"PrintableString";case 0x14:return"TeletexString";case 0x15:return"VideotexString";case 0x16:return"IA5String";case 0x17:return"UTCTime";case 0x18:return"GeneralizedTime";case 0x19:return"GraphicString";case 0x1A:return"VisibleString";case 0x1B:return"GeneralString";case 0x1C:return"UniversalString";case 0x1E:return"BMPString";}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString();}};ASN1.prototype.content=function(maxLength){if(this.tag===undefined){return null;}if(maxLength===undefined){maxLength=Infinity;}var content=this.posContent();var len=Math.abs(this.length);if(!this.tag.isUniversal()){if(this.sub!==null){return"("+this.sub.length+" elem)";}return this.stream.parseOctetString(content,content+len,maxLength);}switch(this.tag.tagNumber){case 0x01:return(this.stream.get(content)===0)?"false":"true";case 0x02:return this.stream.parseInteger(content,content+len);case 0x03:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(content,content+len,maxLength);case 0x04:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(content,content+len,maxLength);case 0x06:return this.stream.parseOID(content,content+len,maxLength);case 0x10:case 0x11:if(this.sub!==null){return"("+this.sub.length+" elem)";}else{return"(no elem)";}case 0x0C:return stringCut(this.stream.parseStringUTF(content,content+len),maxLength);case 0x12:case 0x13:case 0x14:case 0x15:case 0x16:case 0x1A:return stringCut(this.stream.parseStringISO(content,content+len),maxLength);case 0x1E:return stringCut(this.stream.parseStringBMP(content,content+len),maxLength);case 0x17:case 0x18:return this.stream.parseTime(content,content+len,(this.tag.tagNumber==0x17));}return null;};ASN1.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+((this.sub===null)?"null":this.sub.length)+"]";};ASN1.prototype.toPrettyString=function(indent){if(indent===undefined){indent="";}var s=indent+this.typeName()+" @"+this.stream.pos;if(this.length>=0){s+="+";}s+=this.length;if(this.tag.tagConstructed){s+=" (constructed)";}else if((this.tag.isUniversal()&&((this.tag.tagNumber==0x03)||(this.tag.tagNumber==0x04)))&&(this.sub!==null)){s+=" (encapsulates)";}s+="\n";if(this.sub!==null){indent+=" ";for(var i=0,max=this.sub.length;i6){throw new Error("Length over 48 bits not supported at position "+(stream.pos-1));}if(len===0){return null;}buf=0;for(var i=0;i>6;this.tagConstructed=((buf&0x20)!==0);this.tagNumber=buf&0x1F;if(this.tagNumber==0x1F){var n=new Int10();do{buf=stream.get();n.mulAdd(128,buf&0x7F);}while(buf&0x80);this.tagNumber=n.simplify();}}ASN1Tag.prototype.isUniversal=function(){return this.tagClass===0x00;};ASN1Tag.prototype.isEOC=function(){return this.tagClass===0x00&&this.tagNumber===0x00;};return ASN1Tag;}());var dbits;var canary=0xdeadbeefcafe;var j_lm=((canary&0xffffff)==0xefcafe);var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];var lplim=(1<<26)/lowprimes[lowprimes.length-1];var BigInteger=(function(){function BigInteger(a,b,c){if(a!=null){if("number"==typeof a){this.fromNumber(a,b,c);}else if(b==null&&"string"!=typeof a){this.fromString(a,256);}else{this.fromString(a,b);}}}BigInteger.prototype.toString=function(b){if(this.s<0){return"-"+this.negate().toString(b);}var k;if(b==16){k=4;}else if(b==8){k=3;}else if(b==2){k=1;}else if(b==32){k=5;}else if(b==4){k=2;}else{return this.toRadix(b);}var km=(1<0){if(p>p)>0){m=true;r=int2char(d);}while(i>=0){if(p>(p+=this.DB-k);}else{d=(this[i]>>(p-=k))&km;if(p<=0){p+=this.DB;--i;}}if(d>0){m=true;}if(m){r+=int2char(d);}}}return m?r:"0";};BigInteger.prototype.negate=function(){var r=nbi();BigInteger.ZERO.subTo(this,r);return r;};BigInteger.prototype.abs=function(){return(this.s<0)?this.negate():this;};BigInteger.prototype.compareTo=function(a){var r=this.s-a.s;if(r!=0){return r;}var i=this.t;r=i-a.t;if(r!=0){return(this.s<0)?-r:r;}while(--i>=0){if((r=this[i]-a[i])!=0){return r;}}return 0;};BigInteger.prototype.bitLength=function(){if(this.t<=0){return 0;}return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));};BigInteger.prototype.mod=function(a){var r=nbi();this.abs().divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0){a.subTo(r,r);}return r;};BigInteger.prototype.modPowInt=function(e,m){var z;if(e<256||m.isEven()){z=new Classic(m);}else{z=new Montgomery(m);}return this.exp(e,z);};BigInteger.prototype.clone=function(){var r=nbi();this.copyTo(r);return r;};BigInteger.prototype.intValue=function(){if(this.s<0){if(this.t==1){return this[0]-this.DV;}else if(this.t==0){return-1;}}else if(this.t==1){return this[0];}else if(this.t==0){return 0;}return((this[1]&((1<<(32-this.DB))-1))<>24;};BigInteger.prototype.shortValue=function(){return(this.t==0)?this.s:(this[0]<<16)>>16;};BigInteger.prototype.signum=function(){if(this.s<0){return-1;}else if(this.t<=0||(this.t==1&&this[0]<=0)){return 0;}else{return 1;}};BigInteger.prototype.toByteArray=function(){var i=this.t;var r=[];r[0]=this.s;var p=this.DB-(i*this.DB)%8;var d;var k=0;if(i-->0){if(p>p)!=(this.s&this.DM)>>p){r[k++]=d|(this.s<<(this.DB-p));}while(i>=0){if(p<8){d=(this[i]&((1<>(p+=this.DB-8);}else{d=(this[i]>>(p-=8))&0xff;if(p<=0){p+=this.DB;--i;}}if((d&0x80)!=0){d|=-256;}if(k==0&&(this.s&0x80)!=(d&0x80)){++k;}if(k>0||d!=this.s){r[k++]=d;}}}return r;};BigInteger.prototype.equals=function(a){return(this.compareTo(a)==0);};BigInteger.prototype.min=function(a){return(this.compareTo(a)<0)?this:a;};BigInteger.prototype.max=function(a){return(this.compareTo(a)>0)?this:a;};BigInteger.prototype.and=function(a){var r=nbi();this.bitwiseTo(a,op_and,r);return r;};BigInteger.prototype.or=function(a){var r=nbi();this.bitwiseTo(a,op_or,r);return r;};BigInteger.prototype.xor=function(a){var r=nbi();this.bitwiseTo(a,op_xor,r);return r;};BigInteger.prototype.andNot=function(a){var r=nbi();this.bitwiseTo(a,op_andnot,r);return r;};BigInteger.prototype.not=function(){var r=nbi();for(var i=0;i=this.t){return(this.s!=0);}return((this[j]&(1<<(n%this.DB)))!=0);};BigInteger.prototype.setBit=function(n){return this.changeBit(n,op_or);};BigInteger.prototype.clearBit=function(n){return this.changeBit(n,op_andnot);};BigInteger.prototype.flipBit=function(n){return this.changeBit(n,op_xor);};BigInteger.prototype.add=function(a){var r=nbi();this.addTo(a,r);return r;};BigInteger.prototype.subtract=function(a){var r=nbi();this.subTo(a,r);return r;};BigInteger.prototype.multiply=function(a){var r=nbi();this.multiplyTo(a,r);return r;};BigInteger.prototype.divide=function(a){var r=nbi();this.divRemTo(a,r,null);return r;};BigInteger.prototype.remainder=function(a){var r=nbi();this.divRemTo(a,null,r);return r;};BigInteger.prototype.divideAndRemainder=function(a){var q=nbi();var r=nbi();this.divRemTo(a,q,r);return[q,r];};BigInteger.prototype.modPow=function(e,m){var i=e.bitLength();var k;var r=nbv(1);var z;if(i<=0){return r;}else if(i<18){k=1;}else if(i<48){k=3;}else if(i<144){k=4;}else if(i<768){k=5;}else{k=6;}if(i<8){z=new Classic(m);}else if(m.isEven()){z=new Barrett(m);}else{z=new Montgomery(m);}var g=[];var n=3;var k1=k-1;var km=(1<1){var g2=nbi();z.sqrTo(g[1],g2);while(n<=km){g[n]=nbi();z.mulTo(g2,g[n-2],g[n]);n+=2;}}var j=e.t-1;var w;var is1=true;var r2=nbi();var t;i=nbits(e[j])-1;while(j>=0){if(i>=k1){w=(e[j]>>(i-k1))&km;}else{w=(e[j]&((1<<(i+1))-1))<<(k1-i);if(j>0){w|=e[j-1]>>(this.DB+i-k1);}}n=k;while((w&1)==0){w>>=1;--n;}if((i-=n)<0){i+=this.DB;--j;}if(is1){g[w].copyTo(r);is1=false;}else{while(n>1){z.sqrTo(r,r2);z.sqrTo(r2,r);n-=2;}if(n>0){z.sqrTo(r,r2);}else{t=r;r=r2;r2=t;}z.mulTo(r2,g[w],r);}while(j>=0&&(e[j]&(1<=0){u.subTo(v,u);if(ac){a.subTo(c,a);}b.subTo(d,b);}else{v.subTo(u,v);if(ac){c.subTo(a,c);}d.subTo(b,d);}}if(v.compareTo(BigInteger.ONE)!=0){return BigInteger.ZERO;}if(d.compareTo(m)>=0){return d.subtract(m);}if(d.signum()<0){d.addTo(m,d);}else{return d;}if(d.signum()<0){return d.add(m);}else{return d;}};BigInteger.prototype.pow=function(e){return this.exp(e,new NullExp());};BigInteger.prototype.gcd=function(a){var x=(this.s<0)?this.negate():this.clone();var y=(a.s<0)?a.negate():a.clone();if(x.compareTo(y)<0){var t=x;x=y;y=t;}var i=x.getLowestSetBit();var g=y.getLowestSetBit();if(g<0){return x;}if(i0){x.rShiftTo(g,x);y.rShiftTo(g,y);}while(x.signum()>0){if((i=x.getLowestSetBit())>0){x.rShiftTo(i,x);}if((i=y.getLowestSetBit())>0){y.rShiftTo(i,y);}if(x.compareTo(y)>=0){x.subTo(y,x);x.rShiftTo(1,x);}else{y.subTo(x,y);y.rShiftTo(1,y);}}if(g>0){y.lShiftTo(g,y);}return y;};BigInteger.prototype.isProbablePrime=function(t){var i;var x=this.abs();if(x.t==1&&x[0]<=lowprimes[lowprimes.length-1]){for(i=0;i=0;--i){r[i]=this[i];}r.t=this.t;r.s=this.s;};BigInteger.prototype.fromInt=function(x){this.t=1;this.s=(x<0)?-1:0;if(x>0){this[0]=x;}else if(x<-1){this[0]=x+this.DV;}else{this.t=0;}};BigInteger.prototype.fromString=function(s,b){var k;if(b==16){k=4;}else if(b==8){k=3;}else if(b==256){k=8;}else if(b==2){k=1;}else if(b==32){k=5;}else if(b==4){k=2;}else{this.fromRadix(s,b);return;}this.t=0;this.s=0;var i=s.length;var mi=false;var sh=0;while(--i>=0){var x=(k==8)?(+s[i])&0xff:intAt(s,i);if(x<0){if(s.charAt(i)=="-"){mi=true;}continue;}mi=false;if(sh==0){this[this.t++]=x;}else if(sh+k>this.DB){this[this.t-1]|=(x&((1<<(this.DB-sh))-1))<>(this.DB-sh));}else{this[this.t-1]|=x<=this.DB){sh-=this.DB;}}if(k==8&&((+s[0])&0x80)!=0){this.s=-1;if(sh>0){this[this.t-1]|=((1<<(this.DB-sh))-1)<0&&this[this.t-1]==c){--this.t;}};BigInteger.prototype.dlShiftTo=function(n,r){var i;for(i=this.t-1;i>=0;--i){r[i+n]=this[i];}for(i=n-1;i>=0;--i){r[i]=0;}r.t=this.t+n;r.s=this.s;};BigInteger.prototype.drShiftTo=function(n,r){for(var i=n;i=0;--i){r[i+ds+1]=(this[i]>>cbs)|c;c=(this[i]&bm)<=0;--i){r[i]=0;}r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r.clamp();};BigInteger.prototype.rShiftTo=function(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t){r.t=0;return;}var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<>bs;for(var i=ds+1;i>bs;}if(bs>0){r[this.t-ds-1]|=(this.s&bm)<>=this.DB;}if(a.t>=this.DB;}c+=this.s;}else{c+=this.s;while(i>=this.DB;}c-=a.s;}r.s=(c<0)?-1:0;if(c<-1){r[i++]=this.DV+c;}else if(c>0){r[i++]=c;}r.t=i;r.clamp();};BigInteger.prototype.multiplyTo=function(a,r){var x=this.abs();var y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0){r[i]=0;}for(i=0;i=0){r[i]=0;}for(i=0;i=x.DV){r[i+x.t]-=x.DV;r[i+x.t+1]=1;}}if(r.t>0){r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);}r.s=0;r.clamp();};BigInteger.prototype.divRemTo=function(m,q,r){var pm=m.abs();if(pm.t<=0){return;}var pt=this.abs();if(pt.t0){pm.lShiftTo(nsh,y);pt.lShiftTo(nsh,r);}else{pm.copyTo(y);pt.copyTo(r);}var ys=y.t;var y0=y[ys-1];if(y0==0){return;}var yt=y0*(1<1)?y[ys-2]>>this.F2:0);var d1=this.FV/yt;var d2=(1<=0){r[r.t++]=1;r.subTo(t,r);}BigInteger.ONE.dlShiftTo(ys,t);t.subTo(y,y);while(y.t=0){var qd=(r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))0){r.rShiftTo(nsh,r);}if(ts<0){BigInteger.ZERO.subTo(r,r);}};BigInteger.prototype.invDigit=function(){if(this.t<1){return 0;}var x=this[0];if((x&1)==0){return 0;}var y=x&3;y=(y*(2-(x&0xf)*y))&0xf;y=(y*(2-(x&0xff)*y))&0xff;y=(y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;y=(y*(2-x*y%this.DV))%this.DV;return(y>0)?this.DV-y:-y;};BigInteger.prototype.isEven=function(){return((this.t>0)?(this[0]&1):this.s)==0;};BigInteger.prototype.exp=function(e,z){if(e>0xffffffff||e<1){return BigInteger.ONE;}var r=nbi();var r2=nbi();var g=z.convert(this);var i=nbits(e)-1;g.copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&(1<0){z.mulTo(r2,g,r);}else{var t=r;r=r2;r2=t;}}return z.revert(r);};BigInteger.prototype.chunkSize=function(r){return Math.floor(Math.LN2*this.DB/Math.log(r));};BigInteger.prototype.toRadix=function(b){if(b==null){b=10;}if(this.signum()==0||b<2||b>36){return"0";}var cs=this.chunkSize(b);var a=Math.pow(b,cs);var d=nbv(a);var y=nbi();var z=nbi();var r="";this.divRemTo(d,y,z);while(y.signum()>0){r=(a+z.intValue()).toString(b).substr(1)+r;y.divRemTo(d,y,z);}return z.intValue().toString(b)+r;};BigInteger.prototype.fromRadix=function(s,b){this.fromInt(0);if(b==null){b=10;}var cs=this.chunkSize(b);var d=Math.pow(b,cs);var mi=false;var j=0;var w=0;for(var i=0;i=cs){this.dMultiply(d);this.dAddOffset(w,0);j=0;w=0;}}if(j>0){this.dMultiply(Math.pow(b,j));this.dAddOffset(w,0);}if(mi){BigInteger.ZERO.subTo(this,this);}};BigInteger.prototype.fromNumber=function(a,b,c){if("number"==typeof b){if(a<2){this.fromInt(1);}else{this.fromNumber(a,c);if(!this.testBit(a-1)){this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);}if(this.isEven()){this.dAddOffset(1,0);}while(!this.isProbablePrime(b)){this.dAddOffset(2,0);if(this.bitLength()>a){this.subTo(BigInteger.ONE.shiftLeft(a-1),this);}}}}else{var x=[];var t=a&7;x.length=(a>>3)+1;b.nextBytes(x);if(t>0){x[0]&=((1<>=this.DB;}if(a.t>=this.DB;}c+=this.s;}else{c+=this.s;while(i>=this.DB;}c+=a.s;}r.s=(c<0)?-1:0;if(c>0){r[i++]=c;}else if(c<-1){r[i++]=this.DV+c;}r.t=i;r.clamp();};BigInteger.prototype.dMultiply=function(n){this[this.t]=this.am(0,n-1,this,0,0,this.t);++this.t;this.clamp();};BigInteger.prototype.dAddOffset=function(n,w){if(n==0){return;}while(this.t<=w){this[this.t++]=0;}this[w]+=n;while(this[w]>=this.DV){this[w]-=this.DV;if(++w>=this.t){this[this.t++]=0;}++this[w];}};BigInteger.prototype.multiplyLowerTo=function(a,n,r){var i=Math.min(this.t+a.t,n);r.s=0;r.t=i;while(i>0){r[--i]=0;}for(var j=r.t-this.t;i=0){r[i]=0;}for(i=Math.max(n-this.t,0);i0){if(d==0){r=this[0]%n;}else{for(var i=this.t-1;i>=0;--i){r=(d*r+this[i])%n;}}}return r;};BigInteger.prototype.millerRabin=function(t){var n1=this.subtract(BigInteger.ONE);var k=n1.getLowestSetBit();if(k<=0){return false;}var r=n1.shiftRight(k);t=(t+1)>>1;if(t>lowprimes.length){t=lowprimes.length;}var a=nbi();for(var i=0;i0){x.rShiftTo(g,x);y.rShiftTo(g,y);}var gcda1=function(){if((i=x.getLowestSetBit())>0){x.rShiftTo(i,x);}if((i=y.getLowestSetBit())>0){y.rShiftTo(i,y);}if(x.compareTo(y)>=0){x.subTo(y,x);x.rShiftTo(1,x);}else{y.subTo(x,y);y.rShiftTo(1,y);}if(!(x.signum()>0)){if(g>0){y.lShiftTo(g,y);}setTimeout(function(){callback(y);},0);}else{setTimeout(gcda1,0);}};setTimeout(gcda1,10);};BigInteger.prototype.fromNumberAsync=function(a,b,c,callback){if("number"==typeof b){if(a<2){this.fromInt(1);}else{this.fromNumber(a,c);if(!this.testBit(a-1)){this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);}if(this.isEven()){this.dAddOffset(1,0);}var bnp_1=this;var bnpfn1_1=function(){bnp_1.dAddOffset(2,0);if(bnp_1.bitLength()>a){bnp_1.subTo(BigInteger.ONE.shiftLeft(a-1),bnp_1);}if(bnp_1.isProbablePrime(b)){setTimeout(function(){callback();},0);}else{setTimeout(bnpfn1_1,0);}};setTimeout(bnpfn1_1,0);}}else{var x=[];var t=a&7;x.length=(a>>3)+1;b.nextBytes(x);if(t>0){x[0]&=((1<=0){return x.mod(this.m);}else{return x;}};Classic.prototype.revert=function(x){return x;};Classic.prototype.reduce=function(x){x.divRemTo(this.m,null,x);};Classic.prototype.mulTo=function(x,y,r){x.multiplyTo(y,r);this.reduce(r);};Classic.prototype.sqrTo=function(x,r){x.squareTo(r);this.reduce(r);};return Classic;}());var Montgomery=(function(){function Montgomery(m){this.m=m;this.mp=m.invDigit();this.mpl=this.mp&0x7fff;this.mph=this.mp>>15;this.um=(1<<(m.DB-15))-1;this.mt2=2*m.t;}Montgomery.prototype.convert=function(x){var r=nbi();x.abs().dlShiftTo(this.m.t,r);r.divRemTo(this.m,null,r);if(x.s<0&&r.compareTo(BigInteger.ZERO)>0){this.m.subTo(r,r);}return r;};Montgomery.prototype.revert=function(x){var r=nbi();x.copyTo(r);this.reduce(r);return r;};Montgomery.prototype.reduce=function(x){while(x.t<=this.mt2){x[x.t++]=0;}for(var i=0;i>15)*this.mpl)&this.um)<<15))&x.DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x.DV){x[j]-=x.DV;x[++j]++;}}x.clamp();x.drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0){x.subTo(this.m,x);}};Montgomery.prototype.mulTo=function(x,y,r){x.multiplyTo(y,r);this.reduce(r);};Montgomery.prototype.sqrTo=function(x,r){x.squareTo(r);this.reduce(r);};return Montgomery;}());var Barrett=(function(){function Barrett(m){this.m=m;this.r2=nbi();this.q3=nbi();BigInteger.ONE.dlShiftTo(2*m.t,this.r2);this.mu=this.r2.divide(m);}Barrett.prototype.convert=function(x){if(x.s<0||x.t>2*this.m.t){return x.mod(this.m);}else if(x.compareTo(this.m)<0){return x;}else{var r=nbi();x.copyTo(r);this.reduce(r);return r;}};Barrett.prototype.revert=function(x){return x;};Barrett.prototype.reduce=function(x){x.drShiftTo(this.m.t-1,this.r2);if(x.t>this.m.t+1){x.t=this.m.t+1;x.clamp();}this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);while(x.compareTo(this.r2)<0){x.dAddOffset(1,this.m.t+1);}x.subTo(this.r2,x);while(x.compareTo(this.m)>=0){x.subTo(this.m,x);}};Barrett.prototype.mulTo=function(x,y,r){x.multiplyTo(y,r);this.reduce(r);};Barrett.prototype.sqrTo=function(x,r){x.squareTo(r);this.reduce(r);};return Barrett;}());function nbi(){return new BigInteger(null);}function parseBigInt(str,r){return new BigInteger(str,r);}function am1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/0x4000000);w[j++]=v&0x3ffffff;}return c;}function am2(i,x,w,j,c,n){var xl=x&0x7fff;var xh=x>>15;while(--n>=0){var l=this[i]&0x7fff;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&0x3fffffff;}return c;}function am3(i,x,w,j,c,n){var xl=x&0x3fff;var xh=x>>14;while(--n>=0){var l=this[i]&0x3fff;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&0x3fff)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&0xfffffff;}return c;}if(j_lm&&(navigator.appName=="Microsoft Internet Explorer")){BigInteger.prototype.am=am2;dbits=30;}else if(j_lm&&(navigator.appName!="Netscape")){BigInteger.prototype.am=am1;dbits=26;}else{BigInteger.prototype.am=am3;dbits=28;}BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=((1<>>16)!=0){x=t;r+=16;}if((t=x>>8)!=0){x=t;r+=8;}if((t=x>>4)!=0){x=t;r+=4;}if((t=x>>2)!=0){x=t;r+=2;}if((t=x>>1)!=0){x=t;r+=1;}return r;}BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);var Arcfour=(function(){function Arcfour(){this.i=0;this.j=0;this.S=[];}Arcfour.prototype.init=function(key){var i;var j;var t;for(i=0;i<256;++i){this.S[i]=i;}j=0;for(i=0;i<256;++i){j=(j+this.S[i]+key[i%key.length])&255;t=this.S[i];this.S[i]=this.S[j];this.S[j]=t;}this.i=0;this.j=0;};Arcfour.prototype.next=function(){var t;this.i=(this.i+1)&255;this.j=(this.j+this.S[this.i])&255;t=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=t;return this.S[(t+this.S[this.i])&255];};return Arcfour;}());function prng_newstate(){return new Arcfour();}var rng_psize=256;var rng_state;var rng_pool=null;var rng_pptr;if(rng_pool==null){rng_pool=[];rng_pptr=0;var t=void 0;if(window.crypto&&window.crypto.getRandomValues){var z=new Uint32Array(256);window.crypto.getRandomValues(z);for(t=0;t=256||rng_pptr>=rng_psize){if(window.removeEventListener){window.removeEventListener("mousemove",onMouseMoveListener_1,false);}else if(window.detachEvent){window.detachEvent("onmousemove",onMouseMoveListener_1);}return;}try{var mouseCoordinates=ev.x+ev.y;rng_pool[rng_pptr++]=mouseCoordinates&255;this.count+=1;}catch(e){}};if(window.addEventListener){window.addEventListener("mousemove",onMouseMoveListener_1,false);}else if(window.attachEvent){window.attachEvent("onmousemove",onMouseMoveListener_1);}}function rng_get_byte(){if(rng_state==null){rng_state=prng_newstate();while(rng_pptr=0&&n>0){var c=s.charCodeAt(i--);if(c<128){ba[--n]=c;}else if((c>127)&&(c<2048)){ba[--n]=(c&63)|128;ba[--n]=(c>>6)|192;}else{ba[--n]=(c&63)|128;ba[--n]=((c>>6)&63)|128;ba[--n]=(c>>12)|224;}}ba[--n]=0;var rng=new SecureRandom();var x=[];while(n>2){x[0]=0;while(x[0]==0){rng.nextBytes(x);}ba[--n]=x[0];}ba[--n]=2;ba[--n]=0;return new BigInteger(ba);}var RSAKey=(function(){function RSAKey(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null;}RSAKey.prototype.doPublic=function(x){return x.modPowInt(this.e,this.n);};RSAKey.prototype.doPrivate=function(x){if(this.p==null||this.q==null){return x.modPow(this.d,this.n);}var xp=x.mod(this.p).modPow(this.dmp1,this.p);var xq=x.mod(this.q).modPow(this.dmq1,this.q);while(xp.compareTo(xq)<0){xp=xp.add(this.p);}return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);};RSAKey.prototype.setPublic=function(N,E){if(N!=null&&E!=null&&N.length>0&&E.length>0){this.n=parseBigInt(N,16);this.e=parseInt(E,16);}else{console.error("Invalid RSA public key");}};RSAKey.prototype.encrypt=function(text){var m=pkcs1pad2(text,(this.n.bitLength()+7)>>3);if(m==null){return null;}var c=this.doPublic(m);if(c==null){return null;}var h=c.toString(16);if((h.length&1)==0){return h;}else{return"0"+h;}};RSAKey.prototype.setPrivate=function(N,E,D){if(N!=null&&E!=null&&N.length>0&&E.length>0){this.n=parseBigInt(N,16);this.e=parseInt(E,16);this.d=parseBigInt(D,16);}else{console.error("Invalid RSA private key");}};RSAKey.prototype.setPrivateEx=function(N,E,D,P,Q,DP,DQ,C){if(N!=null&&E!=null&&N.length>0&&E.length>0){this.n=parseBigInt(N,16);this.e=parseInt(E,16);this.d=parseBigInt(D,16);this.p=parseBigInt(P,16);this.q=parseBigInt(Q,16);this.dmp1=parseBigInt(DP,16);this.dmq1=parseBigInt(DQ,16);this.coeff=parseBigInt(C,16);}else{console.error("Invalid RSA private key");}};RSAKey.prototype.generate=function(B,E){var rng=new SecureRandom();var qs=B>>1;this.e=parseInt(E,16);var ee=new BigInteger(E,16);for(;;){for(;;){this.p=new BigInteger(B-qs,1,rng);if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE)==0&&this.p.isProbablePrime(10)){break;}}for(;;){this.q=new BigInteger(qs,1,rng);if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE)==0&&this.q.isProbablePrime(10)){break;}}if(this.p.compareTo(this.q)<=0){var t=this.p;this.p=this.q;this.q=t;}var p1=this.p.subtract(BigInteger.ONE);var q1=this.q.subtract(BigInteger.ONE);var phi=p1.multiply(q1);if(phi.gcd(ee).compareTo(BigInteger.ONE)==0){this.n=this.p.multiply(this.q);this.d=ee.modInverse(phi);this.dmp1=this.d.mod(p1);this.dmq1=this.d.mod(q1);this.coeff=this.q.modInverse(this.p);break;}}};RSAKey.prototype.decrypt=function(ctext){var c=parseBigInt(ctext,16);var m=this.doPrivate(c);if(m==null){return null;}return pkcs1unpad2(m,(this.n.bitLength()+7)>>3);};RSAKey.prototype.generateAsync=function(B,E,callback){var rng=new SecureRandom();var qs=B>>1;this.e=parseInt(E,16);var ee=new BigInteger(E,16);var rsa=this;var loop1=function(){var loop4=function(){if(rsa.p.compareTo(rsa.q)<=0){var t=rsa.p;rsa.p=rsa.q;rsa.q=t;}var p1=rsa.p.subtract(BigInteger.ONE);var q1=rsa.q.subtract(BigInteger.ONE);var phi=p1.multiply(q1);if(phi.gcd(ee).compareTo(BigInteger.ONE)==0){rsa.n=rsa.p.multiply(rsa.q);rsa.d=ee.modInverse(phi);rsa.dmp1=rsa.d.mod(p1);rsa.dmq1=rsa.d.mod(q1);rsa.coeff=rsa.q.modInverse(rsa.p);setTimeout(function(){callback();},0);}else{setTimeout(loop1,0);}};var loop3=function(){rsa.q=nbi();rsa.q.fromNumberAsync(qs,1,rng,function(){rsa.q.subtract(BigInteger.ONE).gcda(ee,function(r){if(r.compareTo(BigInteger.ONE)==0&&rsa.q.isProbablePrime(10)){setTimeout(loop4,0);}else{setTimeout(loop3,0);}});});};var loop2=function(){rsa.p=nbi();rsa.p.fromNumberAsync(B-qs,1,rng,function(){rsa.p.subtract(BigInteger.ONE).gcda(ee,function(r){if(r.compareTo(BigInteger.ONE)==0&&rsa.p.isProbablePrime(10)){setTimeout(loop3,0);}else{setTimeout(loop2,0);}});});};setTimeout(loop2,0);};setTimeout(loop1,0);};RSAKey.prototype.sign=function(text,digestMethod,digestName){var header=getDigestHeader(digestName);var digest=header+digestMethod(text).toString();var m=pkcs1pad1(digest,this.n.bitLength()/4);if(m==null){return null;}var c=this.doPrivate(m);if(c==null){return null;}var h=c.toString(16);if((h.length&1)==0){return h;}else{return"0"+h;}};RSAKey.prototype.verify=function(text,signature,digestMethod){var c=parseBigInt(signature,16);var m=this.doPublic(c);if(m==null){return null;}var unpadded=m.toString(16).replace(/^1f+00/,"");var digest=removeDigestHeader(unpadded);return digest==digestMethod(text).toString();};return RSAKey;}());function pkcs1unpad2(d,n){var b=d.toByteArray();var i=0;while(i=b.length){return null;}}var ret="";while(++i191)&&(c<224)){ret+=String.fromCharCode(((c&31)<<6)|(b[i+1]&63));++i;}else{ret+=String.fromCharCode(((c&15)<<12)|((b[i+1]&63)<<6)|(b[i+2]&63));i+=2;}}return ret;}function getDigestHeader(name){return DIGEST_HEADERS[name]||"";}function removeDigestHeader(str){for(var name_1 in DIGEST_HEADERS){if(DIGEST_HEADERS.hasOwnProperty(name_1)){var header=DIGEST_HEADERS[name_1];var len=header.length;if(str.substr(0,len)==header){return str.substr(len);}}}return str;}var YAHOO={};YAHOO.lang={extend:function(subc,superc,overrides){if(!superc||!subc){throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");}var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;}if(overrides){var i;for(i in overrides){subc.prototype[i]=overrides[i];}var _IEEnumFix=function(){},ADD=["toString","valueOf"];try{if(/MSIE/.test(navigator.userAgent)){_IEEnumFix=function(r,s){for(i=0;i15){throw"ASN.1 length too long to represent by 8x: n = "+n.toString(16);}var head=128+hNlen;return head.toString(16)+hN;}};this.getEncodedHex=function(){if(this.hTLV==null||this.isModified){this.hV=this.getFreshValueHex();this.hL=this.getLengthHexFromValue();this.hTLV=this.hT+this.hL+this.hV;this.isModified=false;}return this.hTLV;};this.getValueHex=function(){this.getEncodedHex();return this.hV;};this.getFreshValueHex=function(){return'';};};KJUR.asn1.DERAbstractString=function(params){KJUR.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s;};this.setString=function(newS){this.hTLV=null;this.isModified=true;this.s=newS;this.hV=stohex(this.s);};this.setStringHex=function(newHexString){this.hTLV=null;this.isModified=true;this.s=null;this.hV=newHexString;};this.getFreshValueHex=function(){return this.hV;};if(typeof params!="undefined"){if(typeof params=="string"){this.setString(params);}else if(typeof params['str']!="undefined"){this.setString(params['str']);}else if(typeof params['hex']!="undefined"){this.setStringHex(params['hex']);}}};YAHOO.lang.extend(KJUR.asn1.DERAbstractString,KJUR.asn1.ASN1Object);KJUR.asn1.DERAbstractTime=function(params){KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(d){utc=d.getTime()+(d.getTimezoneOffset()*60000);var utcDate=new Date(utc);return utcDate;};this.formatDate=function(dateObject,type,withMillis){var pad=this.zeroPadding;var d=this.localDateToUTC(dateObject);var year=String(d.getFullYear());if(type=='utc')year=year.substr(2,2);var month=pad(String(d.getMonth()+1),2);var day=pad(String(d.getDate()),2);var hour=pad(String(d.getHours()),2);var min=pad(String(d.getMinutes()),2);var sec=pad(String(d.getSeconds()),2);var s=year+month+day+hour+min+sec;if(withMillis===true){var millis=d.getMilliseconds();if(millis!=0){var sMillis=pad(String(millis),3);sMillis=sMillis.replace(/[0]+$/,"");s=s+"."+sMillis;}}return s+"Z";};this.zeroPadding=function(s,len){if(s.length>=len)return s;return new Array(len-s.length+1).join('0')+s;};this.getString=function(){return this.s;};this.setString=function(newS){this.hTLV=null;this.isModified=true;this.s=newS;this.hV=stohex(newS);};this.setByDateValue=function(year,month,day,hour,min,sec){var dateObject=new Date(Date.UTC(year,month-1,day,hour,min,sec,0));this.setByDate(dateObject);};this.getFreshValueHex=function(){return this.hV;};};YAHOO.lang.extend(KJUR.asn1.DERAbstractTime,KJUR.asn1.ASN1Object);KJUR.asn1.DERAbstractStructured=function(params){KJUR.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(asn1ObjectArray){this.hTLV=null;this.isModified=true;this.asn1Array=asn1ObjectArray;};this.appendASN1Object=function(asn1Object){this.hTLV=null;this.isModified=true;this.asn1Array.push(asn1Object);};this.asn1Array=new Array();if(typeof params!="undefined"){if(typeof params['array']!="undefined"){this.asn1Array=params['array'];}}};YAHOO.lang.extend(KJUR.asn1.DERAbstractStructured,KJUR.asn1.ASN1Object);KJUR.asn1.DERBoolean=function(){KJUR.asn1.DERBoolean.superclass.constructor.call(this);this.hT="01";this.hTLV="0101ff";};YAHOO.lang.extend(KJUR.asn1.DERBoolean,KJUR.asn1.ASN1Object);KJUR.asn1.DERInteger=function(params){KJUR.asn1.DERInteger.superclass.constructor.call(this);this.hT="02";this.setByBigInteger=function(bigIntegerValue){this.hTLV=null;this.isModified=true;this.hV=KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);};this.setByInteger=function(intValue){var bi=new BigInteger(String(intValue),10);this.setByBigInteger(bi);};this.setValueHex=function(newHexString){this.hV=newHexString;};this.getFreshValueHex=function(){return this.hV;};if(typeof params!="undefined"){if(typeof params['bigint']!="undefined"){this.setByBigInteger(params['bigint']);}else if(typeof params['int']!="undefined"){this.setByInteger(params['int']);}else if(typeof params=="number"){this.setByInteger(params);}else if(typeof params['hex']!="undefined"){this.setValueHex(params['hex']);}}};YAHOO.lang.extend(KJUR.asn1.DERInteger,KJUR.asn1.ASN1Object);KJUR.asn1.DERBitString=function(params){if(params!==undefined&&typeof params.obj!=="undefined"){var o=KJUR.asn1.ASN1Util.newObject(params.obj);params.hex="00"+o.getEncodedHex();}KJUR.asn1.DERBitString.superclass.constructor.call(this);this.hT="03";this.setHexValueIncludingUnusedBits=function(newHexStringIncludingUnusedBits){this.hTLV=null;this.isModified=true;this.hV=newHexStringIncludingUnusedBits;};this.setUnusedBitsAndHexValue=function(unusedBits,hValue){if(unusedBits<0||7 ================================================ FILE: sdk/易语言/ui/.idea/modules.xml ================================================ ================================================ FILE: sdk/易语言/ui/.idea/ui.iml ================================================ ================================================ FILE: sdk/易语言/ui/.idea/workspace.xml ================================================ testp true DEFINITION_ORDER ',"",'
','','',"","
"].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:fa()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['
t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/element.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
  • "+(i.title||"unnaming")+"
  • ";return s[0]?s.before(r):n.append(r),o.append('
    '+(i.content||"")+"
    "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/flow.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/form.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=t(r+'[lay-filter="'+e+'"]');a.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value===t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e)},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),x=i.find("dl"),g=x.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=x.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),g.removeClass(o),y=null,g.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),$()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||T(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},$=function(){var e=x.children("dd."+s);if(e[0]){var t=e.position().top,i=x.height(),a=e.height();t>i&&x.scrollTop(t+x.scrollTop()-i+a-5),t<0&&x.scrollTop(t+x.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),x.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=x.children("dd."+s);if(x.children("dd."+o)[0]&&"next"===t){var i=x.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n无匹配项

    '):x.find("."+r).remove()},"keyup"),""===t&&x.find("."+r).remove(),void $())};f&&k.on("keyup",j).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){T(k.val(),function(e){d||k.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['
    ','
    ','','
    ','
    ',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
    "+a.label+"
    "):t.push('
    '+a.innerHTML+"
    "):t.push('
    '+(a.innerHTML||i)+"
    ")}),0===t.length&&t.push('
    没有选项
    '),t.join("")}(r.find("*"))+"
    ","
    "].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['
    ",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?""+n.title+"":"",''].join(""),_switch:""+((n.checked?s[0]:s[1])||"")+""};return t[r]||t.checkbox}(),"
    "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["",""],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['
    ',''+i[l.checked?0:1]+"","
    "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
    ","
    "].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",c={},u=e.parents(r),d=u.find("*[lay-verify]"),v=e.parents("form")[0],h=u.find("input,select,textarea"),y=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),c=r.attr("lay-verify").split("|"),u=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(c,function(e,t){var c,f="",v="function"==typeof a[t];if(a[t]){var c=v?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],c)return"tips"===u?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(h,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(c[t.name]=t.value)}}),layui.event.call(this,l,"submit("+y+")",{elem:this,form:v,field:c})},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/jquery.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
    a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
    a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
    ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/laydate.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
    建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
    "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
    已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

    "+r.time[e]+"

      "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
    ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s','
    '+f+"
    ",'
    ','',"
    ","
    "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

    ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

    "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

    "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

      ','
    • ','','
      ','',"
      ","
    • ",'
    • ','','
      ','",'","
      ","
    • ",'
    • ','','',"
    • ","
    "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
  • '+e+'
  • ')}),'
      '+t.join("")+"
    "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
      ','
    • ','','
      ','","
      ","
    • ",'
    • ','','
      ','',"
      ","
    • ",'
    • ','','',"
    • ","
    "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/layer.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
    '+(f?r.title[0]:r.title)+"
    ":"";return r.zIndex=s,t([r.shade?'
    ':"",'
    '+(e&&2!=r.type?"":u)+'
    '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
    '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
    '+e+"
    "}():"")+(r.resize?'':"")+"
    "],u,i('
    ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
      '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
    • '+(t[0].content||"no content")+"
    • ";i'+(t[i].content||"no content")+"";return a}()+"
    ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
    '+(u.length>1?'':"")+'
    '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
    ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
    是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/laypage.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
    ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
    "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/laytpl.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/mobile.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define(function(i){i("layui.mobile",layui.v)});layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var t=(window,document),i="querySelectorAll",n="getElementsByClassName",a=function(e){return t[i](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var i in e)t[i]=e[i];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var o=0,r=["layui-m-layer"],d=function(e){var t=this;t.config=l.extend(e),t.view()};d.prototype.view=function(){var e=this,i=e.config,s=t.createElement("div");e.id=s.id=r[0]+o,s.setAttribute("class",r[0]+" "+r[0]+(i.type||0)),s.setAttribute("index",o);var l=function(){var e="object"==typeof i.title;return i.title?'

    '+(e?i.title[0]:i.title)+"

    ":""}(),d=function(){"string"==typeof i.btn&&(i.btn=[i.btn]);var e,t=(i.btn||[]).length;return 0!==t&&i.btn?(e=''+i.btn[0]+"",2===t&&(e=''+i.btn[1]+""+e),'
    '+e+"
    "):""}();if(i.fixed||(i.top=i.hasOwnProperty("top")?i.top:100,i.style=i.style||"",i.style+=" top:"+(t.body.scrollTop+i.top)+"px"),2===i.type&&(i.content='

    '+(i.content||"")+"

    "),i.skin&&(i.anim="up"),"msg"===i.skin&&(i.shade=!1),s.innerHTML=(i.shade?"
    ':"")+'
    "+l+'
    '+i.content+"
    "+d+"
    ",!i.type||2===i.type){var y=t[n](r[0]+i.type),u=y.length;u>=1&&c.close(y[0].getAttribute("index"))}document.body.appendChild(s);var m=e.elem=a("#"+e.id)[0];i.success&&i.success(m),e.index=o++,e.action(i,m)},d.prototype.action=function(e,t){var i=this;e.time&&(l.timer[i.index]=setTimeout(function(){c.close(i.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),c.close(i.index)):e.yes?e.yes(i.index):c.close(i.index)};if(e.btn)for(var s=t[n]("layui-m-layerbtn")[0].children,o=s.length,r=0;r0&&e-1 in t)}function s(t){return A.call(t,function(t){return null!=t})}function u(t){return t.length>0?T.fn.concat.apply([],t):t}function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function l(t){return t in F?F[t]:F[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||k[c(t)]?e:e+"px"}function h(t){var e,n;return $[t]||(e=L.createElement(t),L.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),$[t]=n),$[t]}function p(t){return"children"in t?D.call(t.children):T.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function d(t,e){var n,r=t?t.length:0;for(n=0;n]*>/,R=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Z=/^(?:body|html)$/i,q=/([A-Z])/g,H=["val","css","html","text","data","width","height","offset"],I=["after","prepend","before","append"],V=L.createElement("table"),_=L.createElement("tr"),B={tr:L.createElement("tbody"),tbody:V,thead:V,tfoot:V,td:_,th:_,"*":L.createElement("div")},U=/complete|loaded|interactive/,X=/^[\w-]*$/,J={},W=J.toString,Y={},G=L.createElement("div"),K={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return Y.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=G).appendChild(t),r=~Y.qsa(i,e).indexOf(t),o&&G.removeChild(t),r},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return A.call(t,function(e,n){return t.indexOf(e)==n})},Y.fragment=function(t,e,n){var r,i,a;return R.test(t)&&(r=T(L.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(z,"<$1>")),e===E&&(e=M.test(t)&&RegExp.$1),e in B||(e="*"),a=B[e],a.innerHTML=""+t,r=T.each(D.call(a.childNodes),function(){a.removeChild(this)})),o(n)&&(i=T(r),T.each(n,function(t,e){H.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},Y.Z=function(t,e){return new d(t,e)},Y.isZ=function(t){return t instanceof Y.Z},Y.init=function(t,n){var r;if(!t)return Y.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))r=Y.fragment(t,RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}else{if(e(t))return T(L).ready(t);if(Y.isZ(t))return t;if(Q(t))r=s(t);else if(i(t))r=[t],t=null;else if(M.test(t))r=Y.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}}return Y.Z(r,t)},T=function(t,e){return Y.init(t,e)},T.extend=function(t){var e,n=D.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){m(t,n,e)}),t},Y.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,a=X.test(o);return t.getElementById&&a&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:D.call(a&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},T.contains=L.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},T.type=t,T.isFunction=e,T.isWindow=n,T.isArray=Q,T.isPlainObject=o,T.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},T.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},T.inArray=function(t,e,n){return O.indexOf.call(e,t,n)},T.camelCase=C,T.trim=function(t){return null==t?"":String.prototype.trim.call(t)},T.uuid=0,T.support={},T.expr={},T.noop=function(){},T.map=function(t,e){var n,r,i,o=[];if(a(t))for(r=0;r=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return O.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):T(A.call(this,function(e){return Y.matches(e,t)}))},add:function(t,e){return T(N(this.concat(T(t,e))))},is:function(t){return this.length>0&&Y.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==E)this.each(function(e){t.call(this,e)||n.push(this)});else{var r="string"==typeof t?this.filter(t):a(t)&&e(t.item)?D.call(t):T(t);this.forEach(function(t){r.indexOf(t)<0&&n.push(t)})}return T(n)},has:function(t){return this.filter(function(){return i(t)?T.contains(this,t):T(this).find(t).size()})},eq:function(t){return t===-1?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!i(t)?t:T(t)},last:function(){var t=this[this.length-1];return t&&!i(t)?t:T(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?T(t).filter(function(){var t=this;return O.some.call(n,function(e){return T.contains(e,t)})}):1==this.length?T(Y.qsa(this[0],t)):this.map(function(){return Y.qsa(this,t)}):T()},closest:function(t,e){var n=[],i="object"==typeof t&&T(t);return this.each(function(o,a){for(;a&&!(i?i.indexOf(a)>=0:Y.matches(a,t));)a=a!==e&&!r(a)&&a.parentNode;a&&n.indexOf(a)<0&&n.push(a)}),T(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=T.map(n,function(t){if((t=t.parentNode)&&!r(t)&&e.indexOf(t)<0)return e.push(t),t});return v(e,t)},parent:function(t){return v(N(this.pluck("parentNode")),t)},children:function(t){return v(this.map(function(){return p(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||D.call(this.childNodes)})},siblings:function(t){return v(this.map(function(t,e){return A.call(p(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return T.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=h(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var r=T(t).get(0),i=r.parentNode||this.length>1;return this.each(function(e){T(this).wrapAll(n?t.call(this,e):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){T(this[0]).before(t=T(t));for(var e;(e=t.children()).length;)t=e.first();T(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var r=T(this),i=r.contents(),o=n?t.call(this,e):t;i.length?i.wrapAll(o):r.append(o)})},unwrap:function(){return this.parent().each(function(){T(this).replaceWith(T(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=T(this);(t===E?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return T(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return T(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;T(this).empty().append(g(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=g(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(i(t))for(j in t)y(this,j,t[j]);else y(this,t,g(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:E},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){y(this,t)},this)})},prop:function(t,e){return t=K[t]||t,1 in arguments?this.each(function(n){this[t]=g(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=K[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(q,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?b(r):E},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=g(this,t,e,this.value)})):this[0]&&(this[0].multiple?T(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=T(this),r=g(this,t,e,n.offset()),i=n.offsetParent().offset(),o={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)});if(!this.length)return null;if(L.documentElement!==this[0]&&!T.contains(L.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[C(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(Q(e)){if(!r)return;var i={},o=getComputedStyle(r,"");return T.each(e,function(t,e){i[e]=r.style[C(e)]||o.getPropertyValue(e)}),i}}var a="";if("string"==t(e))n||0===n?a=c(e)+":"+f(e,n):this.each(function(){this.style.removeProperty(c(e))});else for(j in e)e[j]||0===e[j]?a+=c(j)+":"+f(j,e[j])+";":this.each(function(){this.style.removeProperty(c(j))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(T(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&O.some.call(this,function(t){return this.test(x(t))},l(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){S=[];var n=x(this),r=g(this,t,e,n);r.split(/\s+/g).forEach(function(t){T(this).hasClass(t)||S.push(t)},this),S.length&&x(this,n+(n?" ":"")+S.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===E)return x(this,"");S=x(this),g(this,t,e,S).split(/\s+/g).forEach(function(t){S=S.replace(l(t)," ")}),x(this,S.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=T(this),i=g(this,t,n,x(this));i.split(/\s+/g).forEach(function(t){(e===E?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===E?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===E?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=Z.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(T(t).css("margin-top"))||0,n.left-=parseFloat(T(t).css("margin-left"))||0,r.top+=parseFloat(T(e[0]).css("border-top-width"))||0,r.left+=parseFloat(T(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||L.body;t&&!Z.test(t.nodeName)&&"static"==T(t).css("position");)t=t.offsetParent;return t})}},T.fn.detach=T.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});T.fn[t]=function(i){var o,a=this[0];return i===E?n(a)?a["inner"+e]:r(a)?a.documentElement["scroll"+e]:(o=this.offset())&&o[t]:this.each(function(e){a=T(this),a.css(t,g(this,i,e,a[t]()))})}}),I.forEach(function(e,n){var r=n%2;T.fn[e]=function(){var e,i,o=T.map(arguments,function(n){var r=[];return e=t(n),"array"==e?(n.forEach(function(t){return t.nodeType!==E?r.push(t):T.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(Y.fragment(t)))}),r):"object"==e||null==n?n:Y.fragment(n)}),a=this.length>1;return o.length<1?this:this.each(function(t,e){i=r?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=T.contains(L.documentElement,i);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!i)return T(t).remove();i.insertBefore(t,e),s&&w(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},T.fn[r?e+"To":"insert"+(n?"Before":"After")]=function(t){return T(t)[e](this),this}}),Y.Z.prototype=d.prototype=T.fn,Y.uniq=N,Y.deserializeValue=b,T.zepto=Y,T}();!function(t){function e(t){return t._zid||(t._zid=h++)}function n(t,n,o,a){if(n=r(n),n.ns)var s=i(n.ns);return(v[e(t)]||[]).filter(function(t){return t&&(!n.e||t.e==n.e)&&(!n.ns||s.test(t.ns))&&(!o||e(t.fn)===e(o))&&(!a||t.sel==a)})}function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(t,e){return t.del&&!y&&t.e in x||!!e}function a(t){return b[t]||y&&x[t]||t}function s(n,i,s,u,l,h,p){var d=e(n),m=v[d]||(v[d]=[]);i.split(/\s/).forEach(function(e){if("ready"==e)return t(document).ready(s);var i=r(e);i.fn=s,i.sel=l,i.e in b&&(s=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return i.fn.apply(this,arguments)}),i.del=h;var d=h||s;i.proxy=function(t){if(t=c(t),!t.isImmediatePropagationStopped()){t.data=u;var e=d.apply(n,t._args==f?[t]:[t].concat(t._args));return e===!1&&(t.preventDefault(),t.stopPropagation()),e}},i.i=m.length,m.push(i),"addEventListener"in n&&n.addEventListener(a(i.e),i.proxy,o(i,p))})}function u(t,r,i,s,u){var c=e(t);(r||"").split(/\s/).forEach(function(e){n(t,e,i,s).forEach(function(e){delete v[c][e.i],"removeEventListener"in t&&t.removeEventListener(a(e.e),e.proxy,o(e,u))})})}function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,function(t,r){var i=n[t];e[t]=function(){return this[r]=w,i&&i.apply(n,arguments)},e[r]=E}),e.timeStamp||(e.timeStamp=Date.now()),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=w)),e}function l(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===f||(n[e]=t[e]);return c(n,t)}var f,h=1,p=Array.prototype.slice,d=t.isFunction,m=function(t){return"string"==typeof t},v={},g={},y="onfocusin"in window,x={focus:"focusin",blur:"focusout"},b={mouseenter:"mouseover",mouseleave:"mouseout"};g.click=g.mousedown=g.mouseup=g.mousemove="MouseEvents",t.event={add:s,remove:u},t.proxy=function(n,r){var i=2 in arguments&&p.call(arguments,2);if(d(n)){var o=function(){return n.apply(r,i?i.concat(p.call(arguments)):arguments)};return o._zid=e(n),o}if(m(r))return i?(i.unshift(n[r],n),t.proxy.apply(null,i)):t.proxy(n[r],n);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var w=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,T={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,r,i,o){var a,c,h=this;return e&&!m(e)?(t.each(e,function(t,e){h.on(t,n,r,e,o)}),h):(m(n)||d(i)||i===!1||(i=r,r=n,n=f),i!==f&&r!==!1||(i=r,r=f),i===!1&&(i=E),h.each(function(f,h){o&&(a=function(t){return u(h,t.type,i),i.apply(this,arguments)}),n&&(c=function(e){var r,o=t(e.target).closest(n,h).get(0);if(o&&o!==h)return r=t.extend(l(e),{currentTarget:o,liveFired:h}),(a||i).apply(o,[r].concat(p.call(arguments,1)))}),s(h,e,i,r,n,c||a)}))},t.fn.off=function(e,n,r){var i=this;return e&&!m(e)?(t.each(e,function(t,e){i.off(t,n,e)}),i):(m(n)||d(r)||r===!1||(r=n,n=f),r===!1&&(r=E),i.each(function(){u(this,e,r,n)}))},t.fn.trigger=function(e,n){return e=m(e)||t.isPlainObject(e)?t.Event(e):c(e),e._args=n,this.each(function(){e.type in x&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,r){var i,o;return this.each(function(a,s){i=l(m(e)?t.Event(e):e),i._args=r,i.target=s,t.each(n(s,e.type||e),function(t,e){if(o=e.proxy(i),i.isImmediatePropagationStopped())return!1})}),o},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){m(t)||(e=t,t=e.type);var n=document.createEvent(g[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),c(n)}}(e),function(t){function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefaultPrevented()}function n(t,n,r,i){if(t.global)return e(n||x,r,i)}function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function o(t,e){var r=e.context;return e.beforeSend.call(r,t,e)!==!1&&n(e,r,"ajaxBeforeSend",[t,e])!==!1&&void n(e,r,"ajaxSend",[t,e])}function a(t,e,r,i){var o=r.context,a="success";r.success.call(o,t,a,e),i&&i.resolveWith(o,[t,a,e]),n(r,o,"ajaxSuccess",[e,r,t]),u(a,e,r)}function s(t,e,r,i,o){var a=i.context;i.error.call(a,r,e,t),o&&o.rejectWith(a,[r,e,t]),n(i,a,"ajaxError",[r,i,t||e]),u(e,r,i)}function u(t,e,r){var o=r.context;r.complete.call(o,e,t),n(r,o,"ajaxComplete",[e,r]),i(r)}function c(t,e,n){if(n.dataFilter==l)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function l(){}function f(t){return t&&(t=t.split(";",2)[0]),t&&(t==T?"html":t==j?"json":w.test(t)?"script":E.test(t)&&"xml")||"text"}function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=h(e.url,e.data),e.data=void 0)}function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0),{url:e,data:n,success:r,dataType:i}}function m(e,n,r,i){var o,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),i&&(n=r?i:i+"["+(s||"object"==o||"array"==o?n:"")+"]"),!i&&a?e.add(u.name,u.value):"array"==o||!r&&"object"==o?m(e,u,r,n):e.add(n,u)})}var v,g,y=+new Date,x=window.document,b=/)<[^<]*)*<\/script>/gi,w=/^(?:text|application)\/javascript/i,E=/^(?:text|application)\/xml/i,j="application/json",T="text/html",S=/^\s*$/,C=x.createElement("a");C.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var r,i,u=e.jsonpCallback,c=(t.isFunction(u)?u():u)||"Zepto"+y++,l=x.createElement("script"),f=window[c],h=function(e){t(l).triggerHandler("error",e||"abort")},p={abort:h};return n&&n.promise(p),t(l).on("load error",function(o,u){clearTimeout(i),t(l).off().remove(),"error"!=o.type&&r?a(r[0],p,e,n):s(null,u||"error",p,e,n),window[c]=f,r&&t.isFunction(f)&&f(r[0]),f=r=void 0}),o(p,e)===!1?(h("abort"),p):(window[c]=function(){r=arguments},l.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),x.head.appendChild(l),e.timeout>0&&(i=setTimeout(function(){h("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:l,success:l,error:l,complete:l,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:j,xml:"application/xml, text/xml",html:T,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:l},t.ajax=function(e){var n,i,u=t.extend({},e||{}),d=t.Deferred&&t.Deferred();for(v in t.ajaxSettings)void 0===u[v]&&(u[v]=t.ajaxSettings[v]);r(u),u.crossDomain||(n=x.createElement("a"),n.href=u.url,n.href=n.href,u.crossDomain=C.protocol+"//"+C.host!=n.protocol+"//"+n.host),u.url||(u.url=window.location.toString()),(i=u.url.indexOf("#"))>-1&&(u.url=u.url.slice(0,i)),p(u);var m=u.dataType,y=/\?.+=\?/.test(u.url);if(y&&(m="jsonp"),u.cache!==!1&&(e&&e.cache===!0||"script"!=m&&"jsonp"!=m)||(u.url=h(u.url,"_="+Date.now())),"jsonp"==m)return y||(u.url=h(u.url,u.jsonp?u.jsonp+"=?":u.jsonp===!1?"":"callback=?")),t.ajaxJSONP(u,d);var b,w=u.accepts[m],E={},j=function(t,e){E[t.toLowerCase()]=[t,e]},T=/^([\w-]+:)\/\//.test(u.url)?RegExp.$1:window.location.protocol,N=u.xhr(),O=N.setRequestHeader;if(d&&d.promise(N),u.crossDomain||j("X-Requested-With","XMLHttpRequest"),j("Accept",w||"*/*"),(w=u.mimeType||w)&&(w.indexOf(",")>-1&&(w=w.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(w)),(u.contentType||u.contentType!==!1&&u.data&&"GET"!=u.type.toUpperCase())&&j("Content-Type",u.contentType||"application/x-www-form-urlencoded"),u.headers)for(g in u.headers)j(g,u.headers[g]);if(N.setRequestHeader=j,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=l,clearTimeout(b);var e,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==T){if(m=m||f(u.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)e=N.response;else{e=N.responseText;try{e=c(e,m,u),"script"==m?(0,eval)(e):"xml"==m?e=N.responseXML:"json"==m&&(e=S.test(e)?null:t.parseJSON(e))}catch(r){n=r}if(n)return s(n,"parsererror",N,u,d)}a(e,N,u,d)}else s(N.statusText||null,N.status?"error":"abort",N,u,d)}},o(N,u)===!1)return N.abort(),s(null,"abort",N,u,d),N;var P=!("async"in u)||u.async;if(N.open(u.type,u.url,P,u.username,u.password),u.xhrFields)for(g in u.xhrFields)N[g]=u.xhrFields[g];for(g in E)O.apply(N,E[g]);return u.timeout>0&&(b=setTimeout(function(){N.onreadystatechange=l,N.abort(),s(null,"timeout",N,u,d)},u.timeout)),N.send(u.data?u.data:null),N},t.get=function(){return t.ajax(d.apply(null,arguments))},t.post=function(){var e=d.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=d.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var i,o=this,a=e.split(/\s/),s=d(e,n,r),u=s.success;return a.length>1&&(s.url=a[0],i=a[1]),s.success=function(e){o.html(i?t("
    ").html(e.replace(b,"")).find(i):e),u&&u.apply(o,arguments)},t.ajax(s),this};var N=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(e)+"="+N(n))},m(r,e,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(t){var e=getComputedStyle;window.getComputedStyle=function(t,n){try{return e(t,n)}catch(r){return null}}}}(),t("zepto",e)});layui.define(["layer-mobile","zepto"],function(e){"use strict";var t=layui.zepto,a=layui["layer-mobile"],i=(layui.device(),"layui-upload-enter"),n="layui-upload-iframe",r={icon:2,shift:6},o={file:"文件",video:"视频",audio:"音频"};a.msg=function(e){return a.open({content:e||"",skin:"msg",time:2})};var s=function(e){this.options=e};s.prototype.init=function(){var e=this,a=e.options,r=t("body"),s=t(a.elem||".layui-upload-file"),u=t('');return t("#"+n)[0]||r.append(u),s.each(function(r,s){s=t(s);var u='
    ',l=s.attr("lay-type")||a.type;a.unwrap||(u='
    '+u+''+(s.attr("lay-title")||a.title||"上传"+(o[l]||"图片"))+"
    "),u=t(u),a.unwrap||u.on("dragover",function(e){e.preventDefault(),t(this).addClass(i)}).on("dragleave",function(){t(this).removeClass(i)}).on("drop",function(){t(this).removeClass(i)}),s.parent("form").attr("target")===n&&(a.unwrap?s.unwrap():(s.parent().next().remove(),s.unwrap().unwrap())),s.wrap(u),s.off("change").on("change",function(){e.action(this,l)})})},s.prototype.action=function(e,i){var o=this,s=o.options,u=e.value,l=t(e),p=l.attr("lay-ext")||s.ext||"";if(u){switch(i){case"file":if(p&&!RegExp("\\w\\.("+p+")$","i").test(escape(u)))return a.msg("不支持该文件格式",r),e.value="";break;case"video":if(!RegExp("\\w\\.("+(p||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(u)))return a.msg("不支持该视频格式",r),e.value="";break;case"audio":if(!RegExp("\\w\\.("+(p||"mp3|wav|mid")+")$","i").test(escape(u)))return a.msg("不支持该音频格式",r),e.value="";break;default:if(!RegExp("\\w\\.("+(p||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(u)))return a.msg("不支持该图片格式",r),e.value=""}s.before&&s.before(e),l.parent().submit();var c=t("#"+n),f=setInterval(function(){var t;try{t=c.contents().find("body").text()}catch(i){a.msg("上传接口存在跨域",r),clearInterval(f)}if(t){clearInterval(f),c.contents().find("body").html("");try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回JSON字符",r)}"function"==typeof s.success&&s.success(t,e)}},30);e.value=""}},e("upload-mobile",function(e){var t=new s(e=e||{});t.init()})});layui.define(function(i){i("layim-mobile",layui.v)});layui["layui.mobile"]||layui.config({base:layui.cache.dir+"lay/modules/mobile/"}).extend({"layer-mobile":"layer-mobile",zepto:"zepto","upload-mobile":"upload-mobile","layim-mobile":"layim-mobile"}),layui.define(["layer-mobile","zepto","layim-mobile"],function(l){l("mobile",{layer:layui["layer-mobile"],layim:layui["layim-mobile"]})}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/rate.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='
      ",u=1;u<=i.length;u++){var r='
    • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
    • ":n+=r}n+="
    "+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/slider.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
    '+(t.tips?'
    ':"")+'
    '+(t.range?'
    ':"")+"
    ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x
    ')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
    ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
    f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/table.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,u,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)},config:t}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u="table",h=".layui-table",y="layui-hide",f="layui-none",p="layui-table-view",v=".layui-table-tool",m=".layui-table-box",g=".layui-table-init",b=".layui-table-header",x=".layui-table-body",k=".layui-table-main",C=".layui-table-fixed",w=".layui-table-fixed-l",T=".layui-table-fixed-r",A=".layui-table-total",L=".layui-table-page",S=".layui-table-sort",N="layui-table-edit",W="layui-table-hover",_=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
    ','
    ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
    ","
    "].join("")},E=['',"","
    "].join(""),z=['
    ',"{{# if(d.data.toolbar){ }}",'
    ','
    ','
    ',"
    ","{{# } }}",'
    ',"{{# if(d.data.loading){ }}",'
    ','',"
    ","{{# } }}","{{# var left, right; }}",'
    ',_(),"
    ",'
    ',E,"
    ","{{# if(left){ }}",'
    ','
    ',_({fixed:!0}),"
    ",'
    ',E,"
    ","
    ","{{# }; }}","{{# if(right){ }}",'
    ','
    ',_({fixed:"right"}),'
    ',"
    ",'
    ',E,"
    ","
    ","{{# }; }}","
    ","{{# if(d.data.totalRow){ }}",'
    ','','',"
    ","
    ","{{# } }}","{{# if(d.data.page){ }}",'
    ','
    ',"
    ","{{# } }}","","
    "].join(""),H=t(window),R=t(document),F=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};F.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},F.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=H.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+p),o=e.elem=t(i(z).render({VIEW_CLASS:p,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(v),e.layBox=o.find(m),e.layHeader=o.find(b),e.layMain=o.find(k),e.layBody=o.find(x),e.layFixed=o.find(C),e.layFixLeft=o.find(w),e.layFixRight=o.find(T),e.layTotal=o.find(A),e.layPage=o.find(L),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(b).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},F.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},F.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},F.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
    ','
    ','
    '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i=r[t];i&&d.push('
    ')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},F.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](y),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},F.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},F.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},F.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},F.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},F.prototype.page=1,F.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.layMain.html('
    '+(t[n.msgName]||"返回的数据不符合规范,正确的成功状态码 ("+n.statusName+") 应为:"+n.statusCode)+"
    ")):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.layMain.html('
    数据接口请求异常:'+t+"
    "),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,a.data.length),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},F.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},F.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],h=[],p=[],v=[],m=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(a,l){var o=[],u=[],f=[],m=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,p=l[c];if(void 0!==p&&null!==p||(p=""),!r.colGroup){var v=['','
    '+function(){var n=t.extend(!0,{LAY_INDEX:m},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return m}return r.toolbar?i(t(r.toolbar).html()||"").render(n):r.templet?function(){return"function"==typeof r.templet?r.templet(n):i(t(r.templet).html()||String(p)).render(n)}():p}(),"
    "].join("");o.push(v),r.fixed&&"right"!==r.fixed&&u.push(v),"right"===r.fixed&&f.push(v)}}),h.push(''+o.join("")+""),p.push(''+u.join("")+""),v.push(''+f.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(v.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0==o||0===u.length&&1==n?"addClass":"removeClass"](y),r?m():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('
    '+s.text.none+"
    ")):(m(),c.renderTotal(u),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.loading(),c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},F.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})});var l=[];t.eachCols(function(e,t){var n=t.field||e,o=['','
    '+function(){var e=t.totalRowText||"";return t.totalRow?parseFloat(a[n]).toFixed(2)||e:e}(),"
    "].join("");l.push(o)}),t.layTotal.find("tbody").html(""+l.join("")+"")}},F.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},F.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},F.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},F.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},h=c.config,y=h.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},h.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[h.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,u,"sort("+y+")",{field:n,type:i})},F.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(g).remove()):(i.layInit=t(['
    ','',"
    "].join("")),i.layBox.append(i.layInit)))},F.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},F.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},F.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},F.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=H.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e=e-(t.layPage.outerHeight()||41)-2),t.layMain.css("height",e))},F.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},F.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
    ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(x).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](y),e.layFixRight.css("right",a-1)},F.prototype.events=function(){var e,a=this,o=a.config,c=t("body"),s={},h=a.layHeader.find("th"),f=".layui-table-cell",p=o.elem.attr("lay-filter");a.layTool.on("click","*[lay-event]",function(e){var i=t(this),c=i.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
      ');n.html(l),o.height&&n.css("max-height",o.height-(a.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(n),a.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),R.trigger("table.tool.panel.remove"),l.close(a.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return a.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
    • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var i=t(e.elem),l=this.checked,n=i.data("key"),r=i.data("parentkey");layui.each(o.cols,function(e,t){layui.each(t,function(t,i){if(e+"-"+t===n){var d=i.hide;i.hide=!l,a.elem.find('*[data-key="'+o.index+"-"+n+'"]')[l?"removeClass":"addClass"](y),d!=i.hide&&a.setParentCol(!l,r),a.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
    • 导出到 Csv 文件
    • ','
    • 导出到 Excel 文件
    • '].join("")}(),done:function(e,i){i.on("click",function(){var e=t(this).data("type");d.exportFile(o.id,null,e)})}});break;case"LAYTABLE_PRINT":var h=window.open("打印窗口","_blank"),f=[""].join(""),v=t(a.layHeader.html());v.append(a.layMain.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),h.document.write(f+v.prop("outerHTML")),h.document.close(),h.print(),h.close()}layui.event.call(this,u,"toolbar("+p+")",t.extend({event:c,config:o},{}))}),h.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||s.resizeStart||(s.allowResize=i.width()-l<=10,c.css("cursor",s.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);s.resizeStart||c.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(s.allowResize){var l=i.data("key");e.preventDefault(),s.resizeStart=!0,s.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();s.rule=e,s.ruleWidth=parseFloat(t),s.minWidth=i.data("minwidth")||o.cellMinWidth})}}),R.on("mousemove",function(t){if(s.resizeStart){if(t.preventDefault(),s.rule){var i=s.ruleWidth+t.clientX-s.offset[0];i');return n[0].value=i.data("content")||l.text(),i.find("."+N)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(f);if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
      ')}};a.layBody.on("click","."+g,function(e){var i=t(this),n=i.parent(),d=n.children(f);a.tipsIndex=l.tips(['
      ',d.html(),"
      ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:a.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),i=e.parents("tr").eq(0).data("index");layui.event.call(this,u,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),a.setThisRowChecked(i)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layTotal.scrollLeft(i),a.layFixed.find(x).scrollTop(n),l.close(a.tipsIndex)}),R.on("click",function(){R.trigger("table.remove.tool.panel")}),R.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()}),H.on("resize",function(){a.resize()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var a=c.config[e]||{},l={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],n=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(n.href="data:"+l+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],a=[];return layui.each(t,function(t,l){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(l),function(e,t){n.push(t)})):d.eachCols(e,function(e,a){a.field&&"normal"==a.type&&!a.hide&&(0==t&&i.push(a.title||""),n.push(l[a.field]))}),a.push(n.join(","))}),i.join(",")+"\r\n"+a.join("\r\n")}()),n.download=(a.title||"table_"+(a.index||""))+"."+i,document.body.appendChild(n),n.click(),void document.body.removeChild(n))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,i){i=i||{};var a=s(e);if(a)return i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))},d.render=function(e){var t=new F(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(u,d)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/tree.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
        '),s=o(["
      • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
      • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
        '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/upload.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('
        '),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i(''),a=i(['
        ',"
        "].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(a),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){t="function"==typeof t?t():t,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){i="function"==typeof i?i():i,r.append(e,i)}),i.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files},resetFile:function(e,i,t){var n=new File([i],t);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==t&&!l.auto||(l.choose&&l.choose(g),"choose"!==t))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?t.toFixed(2)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after(''+o+"")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)}); ================================================ FILE: sdk/易语言/ui/layui/lay/modules/util.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,a,n="layui-fixbar",r="layui-fixbar-top",o=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
          ',t.bar1?'
        • '+c[0]+"
        • ":"",t.bar2?'
        • '+c[1]+"
        • ":"",'
        • '+c[2]+"
        • ","
        "].join("")),s=g.find("."+r),u=function(){var e=o.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+n)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),a=i.attr("lay-type");"top"===a&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,a)}),o.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var a=this,n="function"==typeof e,r=new Date(t).getTime(),o=new Date(!e||n?(new Date).getTime():e).getTime(),l=r-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];n&&(i=e);var g=setTimeout(function(){a.countdown(t,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,a=[[],[]],n=(new Date).getTime()-new Date(t).getTime();return n>6912e5?(n=new Date(t),a[0][0]=i.digit(n.getFullYear(),4),a[0][1]=i.digit(n.getMonth()+1),a[0][2]=i.digit(n.getDate()),e||(a[1][0]=i.digit(n.getHours()),a[1][1]=i.digit(n.getMinutes()),a[1][2]=i.digit(n.getSeconds())),a[0].join("-")+" "+a[1].join(":")):n>=864e5?(n/1e3/60/60/24|0)+"天前":n>=36e5?(n/1e3/60/60|0)+"小时前":n>=12e4?(n/1e3/60|0)+"分钟前":n<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var a=t.length;a/g,">").replace(/'/g,"'").replace(/"/g,""")}};!function(t,e,i){"$:nomunge";function a(){n=e[l](function(){r.each(function(){var e=t(this),i=e.width(),a=e.height(),n=t.data(this,g);(i!==n.w||a!==n.h)&&e.trigger(c,[n.w=i,n.h=a])}),a()},o[s])}var n,r=t([]),o=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";o[s]=250,o[u]=!0,t.event.special[c]={setup:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===r.length&&a()},teardown:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.not(e),e.removeData(g),r.length||clearTimeout(n)},add:function(e){function a(e,a,r){var o=t(this),l=t.data(this,g)||{};l.w=a!==i?a:o.width(),l.h=r!==i?r:o.height(),n.apply(this,arguments)}if(!o[u]&&this[l])return!1;var n;return t.isFunction(e)?(n=e,a):(n=e.handler,void(e.handler=a))}}}(e,window),t("util",i)}); ================================================ FILE: sdk/易语言/ui/layui/layui.all.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.4.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
        ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
        "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
        建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
        "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
        已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

        "+r.time[e]+"

          "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
        ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
        a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
        ","
        "],area:[1,"",""],param:[1,"",""],thead:[1,"","
        "],tr:[2,"","
        "],col:[2,"","
        "],td:[3,"","
        "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
        ","
        "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
        a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
        ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
        '+(f?r.title[0]:r.title)+"
        ":"";return r.zIndex=s,t([r.shade?'
        ':"",'
        '+(e&&2!=r.type?"":u)+'
        '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
        '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
        '+e+"
        "}():"")+(r.resize?'':"")+"
        "],u,i('
        ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
          '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
        • '+(t[0].content||"no content")+"
        • ";i'+(t[i].content||"no content")+"";return a}()+"
        ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
        '+(u.length>1?'':"")+'
        '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
        ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
        是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
      • "+(i.title||"unnaming")+"
      • ";return s[0]?s.before(r):n.append(r),o.append('
        '+(i.content||"")+"
        "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)});layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('
        '),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i(''),a=i(['
        ',"
        "].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(a),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){t="function"==typeof t?t():t,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){i="function"==typeof i?i():i,r.append(e,i)}),i.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files},resetFile:function(e,i,t){var n=new File([i],t);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==t&&!l.auto||(l.choose&&l.choose(g),"choose"!==t))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?t.toFixed(2)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after(''+o+"")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
        '+(t.tips?'
        ':"")+'
        '+(t.range?'
        ':"")+"
        ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x
        ')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
        ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
        f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,o={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var o=this;return o.config=i.extend({},o.config,e),o},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},r=function(){var e=this,i=e.config;return{config:i}},t="colorpicker",n="layui-show",l="layui-colorpicker",c=".layui-colorpicker-main",a="layui-icon-down",s="layui-icon-close",f="layui-colorpicker-trigger-span",d="layui-colorpicker-trigger-i",u="layui-colorpicker-side",p="layui-colorpicker-side-slider",g="layui-colorpicker-basis",v="layui-colorpicker-alpha-bgcolor",h="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",b="layui-colorpicker-main-input",k=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),t=r-o;return i.b=r,i.s=0!=r?255*t/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/t:e.g==r?i.h=2+(e.b-e.r)/t:i.h=4+(e.r-e.g)/t:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},y=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var o={r:e>>16,g:(65280&e)>>8,b:255&e};return k(o)},x=function(e){var i={},o=e.h,r=255*e.s/100,t=255*e.b/100;if(0==r)i.r=i.g=i.b=t;else{var n=t,l=(255-r)*t/255,c=(n-l)*(o%60)/60;360==o&&(o=0),o<60?(i.r=n,i.b=l,i.g=l+c):o<120?(i.g=n,i.b=l,i.r=n-c):o<180?(i.g=n,i.r=l,i.b=l+c):o<240?(i.b=n,i.r=l,i.g=n-c):o<300?(i.b=n,i.g=l,i.r=l+c):o<360?(i.r=n,i.g=l,i.b=n-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},C=function(e){var o=x(e),r=[o.r.toString(16),o.g.toString(16),o.b.toString(16)];return i.each(r,function(e,i){1==i.length&&(r[e]="0"+i)}),r.join("")},P=function(e){var i=/[0-9]{1,3}/g,o=e.match(i)||[];return{r:o[0],g:o[1],b:o[2]}},B=i(window),w=i(document),D=function(e){var r=this;r.index=++o.index,r.config=i.extend({},r.config,o.config,e),r.render()};D.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},D.prototype.render=function(){var e=this,o=e.config,r=i(['
        ',"",'3&&(o.alpha&&"rgb"==o.format||(e="#"+C(k(P(o.color))))),"background: "+e):e}()+'">','',"","","
        "].join("")),t=i(o.elem);o.size&&r.addClass("layui-colorpicker-"+o.size),t.addClass("layui-inline").html(e.elemColorBox=r),e.color=e.elemColorBox.find("."+f)[0].style.background,e.events()},D.prototype.renderPicker=function(){var e=this,o=e.config,r=e.elemColorBox[0],t=e.elemPicker=i(['
        ','
        ','
        ','
        ','
        ','
        ',"
        ",'
        ','
        ',"
        ","
        ",'
        ','
        ','
        ',"
        ","
        ",function(){if(o.predefine){var e=['
        '];return layui.each(o.colors,function(i,o){e.push(['
        ','
        ',"
        "].join(""))}),e.push("
        "),e.join("")}return""}(),'
        ','
        ','',"
        ",'
        ','','',"","
        "].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:fa()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['
        t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=t(r+'[lay-filter="'+e+'"]');a.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value===t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e)},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),x=i.find("dl"),g=x.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=x.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),g.removeClass(o),y=null,g.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),$()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||T(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},$=function(){var e=x.children("dd."+s);if(e[0]){var t=e.position().top,i=x.height(),a=e.height();t>i&&x.scrollTop(t+x.scrollTop()-i+a-5),t<0&&x.scrollTop(t+x.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),x.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=x.children("dd."+s);if(x.children("dd."+o)[0]&&"next"===t){var i=x.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n无匹配项

        '):x.find("."+r).remove()},"keyup"),""===t&&x.find("."+r).remove(),void $())};f&&k.on("keyup",j).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){T(k.val(),function(e){d||k.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['
        ','
        ','','
        ','
        ',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
        "+a.label+"
        "):t.push('
        '+a.innerHTML+"
        "):t.push('
        '+(a.innerHTML||i)+"
        ")}),0===t.length&&t.push('
        没有选项
        '),t.join("")}(r.find("*"))+"
        ","
        "].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['
        ",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?""+n.title+"":"",''].join(""),_switch:""+((n.checked?s[0]:s[1])||"")+""};return t[r]||t.checkbox}(),"
        "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["",""],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['
        ',''+i[l.checked?0:1]+"","
        "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
        ","
        "].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",c={},u=e.parents(r),d=u.find("*[lay-verify]"),v=e.parents("form")[0],h=u.find("input,select,textarea"),y=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),c=r.attr("lay-verify").split("|"),u=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(c,function(e,t){var c,f="",v="function"==typeof a[t];if(a[t]){var c=v?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],c)return"tips"===u?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(h,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(c[t.name]=t.value)}}),layui.event.call(this,l,"submit("+y+")",{elem:this,form:v,field:c})},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
          '),s=o(["
        • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
        • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
          '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,u,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)},config:t}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u="table",h=".layui-table",y="layui-hide",f="layui-none",p="layui-table-view",v=".layui-table-tool",m=".layui-table-box",g=".layui-table-init",b=".layui-table-header",x=".layui-table-body",k=".layui-table-main",C=".layui-table-fixed",w=".layui-table-fixed-l",T=".layui-table-fixed-r",A=".layui-table-total",L=".layui-table-page",S=".layui-table-sort",N="layui-table-edit",W="layui-table-hover",_=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
          ','
          ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
          ","
          "].join("")},E=['',"","
          "].join(""),z=['
          ',"{{# if(d.data.toolbar){ }}",'
          ','
          ','
          ',"
          ","{{# } }}",'
          ',"{{# if(d.data.loading){ }}",'
          ','',"
          ","{{# } }}","{{# var left, right; }}",'
          ',_(),"
          ",'
          ',E,"
          ","{{# if(left){ }}",'
          ','
          ',_({fixed:!0}),"
          ",'
          ',E,"
          ","
          ","{{# }; }}","{{# if(right){ }}",'
          ','
          ',_({fixed:"right"}),'
          ',"
          ",'
          ',E,"
          ","
          ","{{# }; }}","
          ","{{# if(d.data.totalRow){ }}",'
          ','','',"
          ","
          ","{{# } }}","{{# if(d.data.page){ }}",'
          ','
          ',"
          ","{{# } }}","","
          "].join(""),H=t(window),R=t(document),F=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};F.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},F.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=H.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+p),o=e.elem=t(i(z).render({VIEW_CLASS:p,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(v),e.layBox=o.find(m),e.layHeader=o.find(b),e.layMain=o.find(k),e.layBody=o.find(x),e.layFixed=o.find(C),e.layFixLeft=o.find(w),e.layFixRight=o.find(T),e.layTotal=o.find(A),e.layPage=o.find(L),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(b).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},F.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},F.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},F.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
          ','
          ','
          '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i=r[t];i&&d.push('
          ')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},F.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](y),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},F.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},F.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},F.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},F.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},F.prototype.page=1,F.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.layMain.html('
          '+(t[n.msgName]||"返回的数据不符合规范,正确的成功状态码 ("+n.statusName+") 应为:"+n.statusCode)+"
          ")):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.layMain.html('
          数据接口请求异常:'+t+"
          "),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,a.data.length),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},F.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},F.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],h=[],p=[],v=[],m=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(a,l){var o=[],u=[],f=[],m=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,p=l[c];if(void 0!==p&&null!==p||(p=""),!r.colGroup){var v=['','
          '+function(){var n=t.extend(!0,{LAY_INDEX:m},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return m}return r.toolbar?i(t(r.toolbar).html()||"").render(n):r.templet?function(){return"function"==typeof r.templet?r.templet(n):i(t(r.templet).html()||String(p)).render(n)}():p}(),"
          "].join("");o.push(v),r.fixed&&"right"!==r.fixed&&u.push(v),"right"===r.fixed&&f.push(v)}}),h.push(''+o.join("")+""),p.push(''+u.join("")+""),v.push(''+f.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(v.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0==o||0===u.length&&1==n?"addClass":"removeClass"](y),r?m():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('
          '+s.text.none+"
          ")):(m(),c.renderTotal(u),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.loading(),c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},F.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})});var l=[];t.eachCols(function(e,t){var n=t.field||e,o=['','
          '+function(){var e=t.totalRowText||"";return t.totalRow?parseFloat(a[n]).toFixed(2)||e:e}(),"
          "].join("");l.push(o)}),t.layTotal.find("tbody").html(""+l.join("")+"")}},F.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},F.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},F.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},F.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},h=c.config,y=h.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},h.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[h.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,u,"sort("+y+")",{field:n,type:i})},F.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(g).remove()):(i.layInit=t(['
          ','',"
          "].join("")),i.layBox.append(i.layInit)))},F.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},F.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},F.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},F.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=H.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e=e-(t.layPage.outerHeight()||41)-2),t.layMain.css("height",e))},F.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},F.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
          ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(x).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](y),e.layFixRight.css("right",a-1)},F.prototype.events=function(){var e,a=this,o=a.config,c=t("body"),s={},h=a.layHeader.find("th"),f=".layui-table-cell",p=o.elem.attr("lay-filter");a.layTool.on("click","*[lay-event]",function(e){var i=t(this),c=i.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
            ');n.html(l),o.height&&n.css("max-height",o.height-(a.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(n),a.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),R.trigger("table.tool.panel.remove"),l.close(a.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return a.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
          • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var i=t(e.elem),l=this.checked,n=i.data("key"),r=i.data("parentkey");layui.each(o.cols,function(e,t){layui.each(t,function(t,i){if(e+"-"+t===n){var d=i.hide;i.hide=!l,a.elem.find('*[data-key="'+o.index+"-"+n+'"]')[l?"removeClass":"addClass"](y),d!=i.hide&&a.setParentCol(!l,r),a.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
          • 导出到 Csv 文件
          • ','
          • 导出到 Excel 文件
          • '].join("")}(),done:function(e,i){i.on("click",function(){var e=t(this).data("type");d.exportFile(o.id,null,e)})}});break;case"LAYTABLE_PRINT":var h=window.open("打印窗口","_blank"),f=[""].join(""),v=t(a.layHeader.html());v.append(a.layMain.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),h.document.write(f+v.prop("outerHTML")),h.document.close(),h.print(),h.close()}layui.event.call(this,u,"toolbar("+p+")",t.extend({event:c,config:o},{}))}),h.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||s.resizeStart||(s.allowResize=i.width()-l<=10,c.css("cursor",s.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);s.resizeStart||c.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(s.allowResize){var l=i.data("key");e.preventDefault(),s.resizeStart=!0,s.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();s.rule=e,s.ruleWidth=parseFloat(t),s.minWidth=i.data("minwidth")||o.cellMinWidth})}}),R.on("mousemove",function(t){if(s.resizeStart){if(t.preventDefault(),s.rule){var i=s.ruleWidth+t.clientX-s.offset[0];i');return n[0].value=i.data("content")||l.text(),i.find("."+N)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(f);if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
            ')}};a.layBody.on("click","."+g,function(e){var i=t(this),n=i.parent(),d=n.children(f);a.tipsIndex=l.tips(['
            ',d.html(),"
            ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:a.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),i=e.parents("tr").eq(0).data("index");layui.event.call(this,u,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),a.setThisRowChecked(i)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layTotal.scrollLeft(i),a.layFixed.find(x).scrollTop(n),l.close(a.tipsIndex)}),R.on("click",function(){R.trigger("table.remove.tool.panel")}),R.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()}),H.on("resize",function(){a.resize()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var a=c.config[e]||{},l={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],n=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(n.href="data:"+l+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],a=[];return layui.each(t,function(t,l){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(l),function(e,t){n.push(t)})):d.eachCols(e,function(e,a){a.field&&"normal"==a.type&&!a.hide&&(0==t&&i.push(a.title||""),n.push(l[a.field]))}),a.push(n.join(","))}),i.join(",")+"\r\n"+a.join("\r\n")}()),n.download=(a.title||"table_"+(a.index||""))+"."+i,document.body.appendChild(n),n.click(),void document.body.removeChild(n))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,i){i=i||{};var a=s(e);if(a)return i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))},d.render=function(e){var t=new F(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(u,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
              ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
            "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a",u=1;u<=i.length;u++){var r='
          • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
          • ":n+=r}n+=""+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,a,n="layui-fixbar",r="layui-fixbar-top",o=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
              ',t.bar1?'
            • '+c[0]+"
            • ":"",t.bar2?'
            • '+c[1]+"
            • ":"",'
            • '+c[2]+"
            • ","
            "].join("")),s=g.find("."+r),u=function(){var e=o.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+n)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),a=i.attr("lay-type");"top"===a&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,a)}),o.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var a=this,n="function"==typeof e,r=new Date(t).getTime(),o=new Date(!e||n?(new Date).getTime():e).getTime(),l=r-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];n&&(i=e);var g=setTimeout(function(){a.countdown(t,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,a=[[],[]],n=(new Date).getTime()-new Date(t).getTime();return n>6912e5?(n=new Date(t),a[0][0]=i.digit(n.getFullYear(),4),a[0][1]=i.digit(n.getMonth()+1),a[0][2]=i.digit(n.getDate()),e||(a[1][0]=i.digit(n.getHours()),a[1][1]=i.digit(n.getMinutes()),a[1][2]=i.digit(n.getSeconds())),a[0].join("-")+" "+a[1].join(":")):n>=864e5?(n/1e3/60/60/24|0)+"天前":n>=36e5?(n/1e3/60/60|0)+"小时前":n>=12e4?(n/1e3/60|0)+"分钟前":n<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var a=t.length;a/g,">").replace(/'/g,"'").replace(/"/g,""")}};!function(t,e,i){"$:nomunge";function a(){n=e[l](function(){r.each(function(){var e=t(this),i=e.width(),a=e.height(),n=t.data(this,g);(i!==n.w||a!==n.h)&&e.trigger(c,[n.w=i,n.h=a])}),a()},o[s])}var n,r=t([]),o=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";o[s]=250,o[u]=!0,t.event.special[c]={setup:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===r.length&&a()},teardown:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.not(e),e.removeData(g),r.length||clearTimeout(n)},add:function(e){function a(e,a,r){var o=t(this),l=t.data(this,g)||{};l.w=a!==i?a:o.width(),l.h=r!==i?r:o.height(),n.apply(this,arguments)}if(!o[u]&&this[l])return!1;var n;return t.isFunction(e)?(n=e,a):(n=e.handler,void(e.handler=a))}}}(e,window),t("util",i)});layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
            ','
            '+f+"
            ",'
            ','',"
            ","
            "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

            ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

            "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

            "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

              ','
            • ','','
              ','',"
              ","
            • ",'
            • ','','
              ','",'","
              ","
            • ",'
            • ','','',"
            • ","
            "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
          • '+e+'
          • ')}),'
              '+t.join("")+"
            "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
              ','
            • ','','
              ','","
              ","
            • ",'
            • ','','
              ','',"
              ","
            • ",'
            • ','','',"
            • ","
            "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
            1. '+o.replace(/[\r\t\n]+/g,"
            2. ")+"
            "),c.find(">.layui-code-h3")[0]||c.prepend('

            '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

            ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); ================================================ FILE: sdk/易语言/ui/layui/layui.js ================================================ /** layui-v2.4.5 MIT License By https://www.layui.com */ ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.4.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r
            • 0
            • 1
            • r
            公告
            • 登陆
            • 注册
            • 改密


            ================================================ FILE: sdk/易语言/ui/update.html ================================================
            • 0
            • 1
            • r
            最新版本
            更新公告
            下载地址
            ================================================ FILE: verifymaster.iml ================================================