wuxw7
2017-07-24 00a9bbf99abf3ecc343e501730826f5209de47e2
加入redis 和 ehcache 缓存系统,规则引擎服务彻底完工
27个文件已修改
15个文件已添加
2010 ■■■■ 已修改文件
.idea/libraries/Maven__junit_junit_4_12.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__net_sf_ehcache_ehcache_2_10_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_apache_commons_commons_pool2_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_redis_1_4_0_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_12_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_1_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_7_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_springframework_spring_oxm_4_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__redis_clients_jedis_2_8_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/workspace.xml 1063 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BaseService/BaseService.iml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MerchantService/MerchantService.iml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MicroCommunity.iml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
OrderService/OrderService.iml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PayService/PayService.iml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RuleService/RuleService.iml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RuleService/src/main/java/com/java110/rule/common/RuleCommon.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserService/UserService.iml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wechat/Wechat.iml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bean/src/main/java/com/java110/entity/rule/Rule.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bean/src/main/java/com/java110/entity/rule/RuleEntrance.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/common.iml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/java110/common/constant/RuleDomain.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/java110/common/util/RuleUtil.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/java110/common/util/SerializeUtil.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/src/main/resources/cache/ehcache.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/src/main/resources/cache/redis.conf 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/core.iml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/pom.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/src/main/java/com/java110/core/cache/CacheConfiguration.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/src/main/java/com/java110/core/cache/RedisConfiguration.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/src/test/java/com/java110/core/cache/TestRedis.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
feign/feign.iml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/service.iml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__junit_junit_4_12.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: junit:junit:4.12">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__net_sf_ehcache_ehcache_2_10_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: net.sf.ehcache:ehcache:2.10.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/net/sf/ehcache/ehcache/2.10.2/ehcache-2.10.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/net/sf/ehcache/ehcache/2.10.2/ehcache-2.10.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/net/sf/ehcache/ehcache/2.10.2/ehcache-2.10.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_apache_commons_commons_pool2_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.commons:commons-pool2:2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.2/commons-pool2-2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.2/commons-pool2-2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.2/commons-pool2-2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_redis_1_4_0_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-redis/1.4.0.RELEASE/spring-boot-starter-redis-1.4.0.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-redis/1.4.0.RELEASE/spring-boot-starter-redis-1.4.0.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-redis/1.4.0.RELEASE/spring-boot-starter-redis-1.4.0.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_12_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/1.12.2.RELEASE/spring-data-commons-1.12.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/1.12.2.RELEASE/spring-data-commons-1.12.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/1.12.2.RELEASE/spring-data-commons-1.12.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_1_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-keyvalue/1.1.2.RELEASE/spring-data-keyvalue-1.1.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-keyvalue/1.1.2.RELEASE/spring-data-keyvalue-1.1.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-keyvalue/1.1.2.RELEASE/spring-data-keyvalue-1.1.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_7_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/1.7.2.RELEASE/spring-data-redis-1.7.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/1.7.2.RELEASE/spring-data-redis-1.7.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/1.7.2.RELEASE/spring-data-redis-1.7.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_spring_oxm_4_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-oxm/4.3.2.RELEASE/spring-oxm-4.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-oxm/4.3.2.RELEASE/spring-oxm-4.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-oxm/4.3.2.RELEASE/spring-oxm-4.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__redis_clients_jedis_2_8_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: redis.clients:jedis:2.8.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.2/jedis-2.8.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.2/jedis-2.8.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.2/jedis-2.8.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/workspace.xml
@@ -2,29 +2,48 @@
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="a191bf23-5de1-438a-810e-95cec23d6b25" name="Default" comment="change fastjson dependenciy">
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/rest/RuleServiceRest.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/service/RuleService.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/IRuleServiceSMO.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/thread/RuleCommonThread.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/ContractRootRule.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/TcpContRule.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/SpringBeanInvoker.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/StringJsonDeal.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__junit_junit_4_12.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__net_sf_ehcache_ehcache_2_10_2.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_2.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_redis_1_4_0_RELEASE.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_12_2_RELEASE.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_1_2_RELEASE.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_7_2_RELEASE.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_oxm_4_3_2_RELEASE.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__redis_clients_jedis_2_8_2.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/SerializeUtil.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/config/src/main/resources/cache/ehcache.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/config/src/main/resources/cache/redis.conf" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/core/src/main/java/com/java110/core/cache/CacheConfiguration.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/core/src/main/java/com/java110/core/cache/RedisConfiguration.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/core/src/test/java/com/java110/core/cache/TestRedis.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/BaseService/BaseService.iml" afterPath="$PROJECT_DIR$/BaseService/BaseService.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/MerchantService/MerchantService.iml" afterPath="$PROJECT_DIR$/MerchantService/MerchantService.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/MicroCommunity.iml" afterPath="$PROJECT_DIR$/MicroCommunity.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/OrderService/OrderService.iml" afterPath="$PROJECT_DIR$/OrderService/OrderService.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/PayService/PayService.iml" afterPath="$PROJECT_DIR$/PayService/PayService.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/RuleService/RuleService.iml" afterPath="$PROJECT_DIR$/RuleService/RuleService.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/RuleService/pom.xml" afterPath="$PROJECT_DIR$/RuleService/pom.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ConstantUtil.java" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ConstantUtil.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/db/rule.db" afterPath="$PROJECT_DIR$/config/db/rule.db" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java" afterPath="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/UserService/UserService.iml" afterPath="$PROJECT_DIR$/UserService/UserService.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Wechat/Wechat.iml" afterPath="$PROJECT_DIR$/Wechat/Wechat.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java" afterPath="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/common.iml" afterPath="$PROJECT_DIR$/common/common.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/pom.xml" afterPath="$PROJECT_DIR$/common/pom.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java" afterPath="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml" afterPath="$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/core.iml" afterPath="$PROJECT_DIR$/core/core.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/pom.xml" afterPath="$PROJECT_DIR$/core/pom.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java" afterPath="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/feign/feign.iml" afterPath="$PROJECT_DIR$/feign/feign.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pom.xml" afterPath="$PROJECT_DIR$/pom.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/service/service.iml" afterPath="$PROJECT_DIR$/service/service.iml" />
    </list>
    <ignored path="$PROJECT_DIR$/out/" />
    <ignored path="$PROJECT_DIR$/target/" />
@@ -57,49 +76,79 @@
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FileEditorManager">
    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
      <file leaf-file-name="RuleServiceRest.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/rest/RuleServiceRest.java">
      <file leaf-file-name="RuleUtil.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="221">
              <caret line="58" column="74" lean-forward="false" selection-start-line="58" selection-start-column="22" selection-end-line="58" selection-end-column="74" />
              <folding>
                <element signature="imports" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="IRuleServiceSMO.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/IRuleServiceSMO.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="238">
              <caret line="14" column="18" lean-forward="false" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="18" />
            <state relative-caret-position="323">
              <caret line="32" column="10" lean-forward="false" selection-start-line="32" selection-start-column="10" selection-end-line="32" selection-end-column="10" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="RuleServiceSMOImpl.java" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java">
      <file leaf-file-name="IRuleDao.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="-527">
              <caret line="38" column="0" lean-forward="true" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
            <state relative-caret-position="136">
              <caret line="14" column="3" lean-forward="false" selection-start-line="14" selection-start-column="3" selection-end-line="14" selection-end-column="3" />
              <folding>
                <element signature="imports" expanded="true" />
                <element signature="e#4630#4638#0" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="RuleUtil.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java">
      <file leaf-file-name="RuleServiceSMOImpl.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="193">
              <caret line="106" column="54" lean-forward="true" selection-start-line="106" selection-start-column="54" selection-end-line="106" selection-end-column="54" />
            <state relative-caret-position="368">
              <caret line="255" column="35" lean-forward="false" selection-start-line="255" selection-start-column="35" selection-end-line="255" selection-end-column="35" />
              <folding>
                <element signature="imports" expanded="true" />
                <element signature="e#10037#10038#0" expanded="true" />
                <element signature="e#10071#10072#0" expanded="true" />
                <element signature="e#10127#10128#0" expanded="true" />
                <element signature="e#10173#10174#0" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="RuleCommon.java" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="-663">
              <caret line="434" column="46" lean-forward="false" selection-start-line="434" selection-start-column="46" selection-end-line="434" selection-end-column="46" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="RuleDaoImpl.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="204">
              <caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="RuleDomain.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="470">
              <caret line="68" column="51" lean-forward="false" selection-start-line="68" selection-start-column="31" selection-end-line="68" selection-end-column="51" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="rule.db" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/config/db/rule.db">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="204">
              <caret line="12" column="3" lean-forward="true" selection-start-line="12" selection-start-column="3" selection-end-line="12" selection-end-column="11" />
              <folding />
            </state>
          </provider>
        </entry>
@@ -177,17 +226,6 @@
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/MerchantService/pom.xml" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/App.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/AppSpringBootApplication.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/dao/IUserServiceDao.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/dao/IMerchantServiceDao.java" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/merchant/Merchant.java" />
        <option value="$PROJECT_DIR$/config/src/main/resources/mapper/merchant/MerchantServiceDaoImplMapper.xml" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/dao/IProductServiceDao.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/dao/impl/ProductServiceDaoImpl.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/dao/impl/MerchantServiceDaoImpl.java" />
        <option value="$PROJECT_DIR$/config/src/main/resources/mapper/product/ProductServiceDaoImplMapper.xml" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/smo/impl/UserServiceSMOImpl.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/smo/IMerchantServiceSMO.java" />
        <option value="$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/smo/impl/MerchantServiceSMOImpl.java" />
@@ -213,21 +251,32 @@
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/TcpContRule.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/ConstantUtil.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/StringJsonDeal.java" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java" />
        <option value="$PROJECT_DIR$/config/db/rule.db" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java" />
        <option value="$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/SpringBeanInvoker.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/service/RuleService.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/thread/RuleCommonThread.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/rest/RuleServiceRest.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/cache/ehcache/EhcacheDemo.java" />
        <option value="$PROJECT_DIR$/config/src/main/resources/common/ehcache.xml" />
        <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/cache/CacheConfiguration.java" />
        <option value="$PROJECT_DIR$/config/src/main/resources/cache/redis.conf" />
        <option value="$PROJECT_DIR$/core/src/test/java/com/java110/core/cache/TestRedis.java" />
        <option value="$PROJECT_DIR$/pom.xml" />
        <option value="$PROJECT_DIR$/core/pom.xml" />
        <option value="$PROJECT_DIR$/common/pom.xml" />
        <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/cache/RedisConfiguration.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java" />
        <option value="$PROJECT_DIR$/core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/SerializeUtil.java" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java" />
        <option value="$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java" />
        <option value="$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java" />
        <option value="$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java" />
        <option value="$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java" />
      </list>
    </option>
  </component>
@@ -309,6 +358,9 @@
      <foldersAlwaysOnTop value="true" />
    </navigator>
    <panes>
      <pane id="Scope" />
      <pane id="Scratches" />
      <pane id="PackagesPane" />
      <pane id="ProjectPane">
        <subPane>
          <PATH>
@@ -413,15 +465,156 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="rest" />
              <option name="myItemId" value="thread" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="RuleService" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="rule" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="smo" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="RuleService" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="rule" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="smo" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="impl" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="RuleService" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="rule" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="dao" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MicroCommunity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="RuleService" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="rule" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="dao" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="impl" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
      <pane id="Scratches" />
      <pane id="PackagesPane" />
      <pane id="Scope" />
    </panes>
  </component>
  <component name="PropertiesComponent">
@@ -440,6 +633,9 @@
    <property name="jdk.selected.JAVA_MODULE" value="1.8" />
  </component>
  <component name="RecentsManager">
    <key name="MoveFile.RECENT_KEYS">
      <recent name="E:\project\MicroCommunity\config\src\main\resources\cache" />
    </key>
    <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
      <recent name="com.java110.merchant" />
    </key>
@@ -936,12 +1132,12 @@
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5030349" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37709925" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37670198" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.83114755" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3885246" sideWeight="0.4969651" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25416037" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25340393" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962178" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
@@ -971,7 +1167,7 @@
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5030349" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37709925" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37670198" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
@@ -991,7 +1187,7 @@
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.83114755" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295082" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3885246" sideWeight="0.4969651" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25416037" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25340393" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32817337" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
@@ -1044,179 +1240,10 @@
    <option name="FILTER_TARGETS" value="false" />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/product/BoProductAttr.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="187">
          <caret line="11" column="39" lean-forward="true" selection-start-line="11" selection-start-column="39" selection-end-line="11" selection-end-column="39" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/product/ProductAttr.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="221">
          <caret line="14" column="0" lean-forward="true" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/smo/impl/ProductServiceSMOImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="238">
          <caret line="14" column="41" lean-forward="true" selection-start-line="14" selection-start-column="41" selection-end-line="14" selection-end-column="42" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/MerchantService/src/main/java/com/java110/merchant/rest/ProductServiceRest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="204">
          <caret line="12" column="36" lean-forward="false" selection-start-line="12" selection-start-column="36" selection-end-line="12" selection-end-column="36" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/db/orders.db">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="408">
          <caret line="69" column="46" lean-forward="false" selection-start-line="69" selection-start-column="46" selection-end-line="69" selection-end-column="47" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/UserService/README.md">
      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
        <state split_layout="SPLIT">
          <first_editor relative-caret-position="0">
            <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          </first_editor>
          <second_editor />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/README.md">
      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
        <state split_layout="SPLIT">
          <first_editor relative-caret-position="204">
            <caret line="12" column="16" lean-forward="false" selection-start-line="12" selection-start-column="3" selection-end-line="12" selection-end-column="16" />
          </first_editor>
          <second_editor />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/UserService/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-187">
          <caret line="19" column="18" lean-forward="false" selection-start-line="19" selection-start-column="18" selection-end-line="19" selection-end-column="18" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/db/cust.db">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-609">
          <caret line="30" column="73" lean-forward="false" selection-start-line="30" selection-start-column="4" selection-end-line="30" selection-end-column="73" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/src/main/resources/db/db.properties">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/service/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/smo/impl/OrderServiceSMOImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="170">
          <caret line="36" column="33" lean-forward="false" selection-start-line="36" selection-start-column="33" selection-end-line="36" selection-end-column="55" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="391">
          <caret line="23" column="27" lean-forward="false" selection-start-line="23" selection-start-column="27" selection-end-line="23" selection-end-column="27" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/CodeMapUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="204">
          <caret line="23" column="13" lean-forward="false" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" />
          <folding>
            <element signature="n#!!doc" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/OrderService/src/main/java/com/java110/order/rest/OrderServiceRest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="17">
          <caret line="90" column="60" lean-forward="false" selection-start-line="90" selection-start-column="8" selection-end-line="90" selection-end-column="60" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/CacheUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="1853">
          <caret line="122" column="24" lean-forward="false" selection-start-line="122" selection-start-column="24" selection-end-line="122" selection-end-column="24" />
          <folding>
            <element signature="imports" expanded="false" />
            <element signature="e#1242#1243#0" expanded="false" />
            <element signature="e#1306#1307#0" expanded="false" />
            <element signature="e#2851#2852#0" expanded="false" />
            <element signature="e#2897#2898#0" expanded="false" />
            <element signature="e#3260#3261#0" expanded="false" />
            <element signature="e#3330#3331#0" expanded="false" />
            <element signature="e#4162#4163#0" expanded="false" />
            <element signature="e#4235#4236#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/ContractRootRule.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="187">
          <caret line="11" column="18" lean-forward="false" selection-start-line="11" selection-start-column="18" selection-end-line="11" selection-end-column="18" />
          <folding>
            <element signature="e#265#266#0" expanded="true" />
            <element signature="e#295#296#0" expanded="true" />
            <element signature="e#346#347#0" expanded="true" />
            <element signature="e#384#385#0" expanded="true" />
            <element signature="e#422#423#0" expanded="true" />
            <element signature="e#452#453#0" expanded="true" />
            <element signature="e#502#503#0" expanded="true" />
            <element signature="e#540#541#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/TcpContRule.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="51">
          <caret line="3" column="9" lean-forward="false" selection-start-line="3" selection-start-column="9" selection-end-line="3" selection-end-column="9" />
          <folding>
            <element signature="e#449#450#0" expanded="true" />
            <element signature="e#480#481#0" expanded="true" />
            <element signature="e#528#529#0" expanded="true" />
            <element signature="e#568#569#0" expanded="true" />
            <element signature="e#606#607#0" expanded="true" />
            <element signature="e#640#641#0" expanded="true" />
            <element signature="e#694#695#0" expanded="true" />
            <element signature="e#740#741#0" expanded="true" />
            <element signature="e#780#781#0" expanded="true" />
            <element signature="e#816#817#0" expanded="true" />
            <element signature="e#874#875#0" expanded="true" />
            <element signature="e#924#925#0" expanded="true" />
            <element signature="e#958#959#0" expanded="true" />
            <element signature="e#988#989#0" expanded="true" />
            <element signature="e#1034#1035#0" expanded="true" />
            <element signature="e#1072#1073#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
@@ -1224,7 +1251,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="102">
          <caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
@@ -1232,7 +1258,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-567">
          <caret line="12" column="13" lean-forward="false" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
@@ -1240,22 +1265,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="323">
          <caret line="22" column="42" lean-forward="true" selection-start-line="22" selection-start-column="42" selection-end-line="22" selection-end-column="42" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/core/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="272">
          <caret line="22" column="27" lean-forward="true" selection-start-line="22" selection-start-column="27" selection-end-line="22" selection-end-column="27" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="697">
          <caret line="50" column="0" lean-forward="true" selection-start-line="50" selection-start-column="0" selection-end-line="73" selection-end-column="21" />
          <folding />
        </state>
      </provider>
@@ -1281,9 +1290,9 @@
        <state relative-caret-position="2210">
          <caret line="130" column="66" lean-forward="false" selection-start-line="130" selection-start-column="66" selection-end-line="130" selection-end-column="66" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="e#696#697#0" expanded="true" />
            <element signature="e#740#741#0" expanded="true" />
            <element signature="imports" expanded="false" />
            <element signature="e#696#697#0" expanded="false" />
            <element signature="e#740#741#0" expanded="false" />
          </folding>
        </state>
      </provider>
@@ -1300,7 +1309,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-272">
          <caret line="12" column="13" lean-forward="false" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
@@ -1316,63 +1324,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="3202">
          <caret line="325" column="26" lean-forward="false" selection-start-line="325" selection-start-column="26" selection-end-line="325" selection-end-column="26" />
          <folding>
            <element signature="e#11844#11845#0" expanded="false" />
            <element signature="e#11879#11880#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="300">
          <caret line="32" column="0" lean-forward="false" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="453">
          <caret line="93" column="48" lean-forward="false" selection-start-line="93" selection-start-column="48" selection-end-line="93" selection-end-column="48" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="e#473#474#0" expanded="true" />
            <element signature="e#503#504#0" expanded="true" />
            <element signature="e#549#550#0" expanded="true" />
            <element signature="e#587#588#0" expanded="true" />
            <element signature="e#623#624#0" expanded="true" />
            <element signature="e#655#656#0" expanded="true" />
            <element signature="e#705#706#0" expanded="true" />
            <element signature="e#747#748#0" expanded="true" />
            <element signature="e#784#785#0" expanded="true" />
            <element signature="e#817#818#0" expanded="true" />
            <element signature="e#869#870#0" expanded="true" />
            <element signature="e#913#914#0" expanded="true" />
            <element signature="e#949#950#0" expanded="true" />
            <element signature="e#981#982#0" expanded="true" />
            <element signature="e#1031#1032#0" expanded="true" />
            <element signature="e#1073#1074#0" expanded="true" />
            <element signature="e#1109#1110#0" expanded="true" />
            <element signature="e#1141#1142#0" expanded="true" />
            <element signature="e#1191#1192#0" expanded="true" />
            <element signature="e#1233#1234#0" expanded="true" />
            <element signature="e#1269#1270#0" expanded="true" />
            <element signature="e#1301#1302#0" expanded="true" />
            <element signature="e#1351#1352#0" expanded="true" />
            <element signature="e#1393#1394#0" expanded="true" />
            <element signature="e#1428#1429#0" expanded="true" />
            <element signature="e#1459#1460#0" expanded="true" />
            <element signature="e#1507#1508#0" expanded="true" />
            <element signature="e#1547#1548#0" expanded="true" />
            <element signature="e#1581#1582#0" expanded="true" />
            <element signature="e#1613#1614#0" expanded="true" />
            <element signature="e#1661#1662#0" expanded="true" />
            <element signature="e#1703#1704#0" expanded="true" />
            <element signature="e#1788#1789#0" expanded="true" />
            <element signature="e#1855#1856#0" expanded="true" />
            <element signature="e#1903#1904#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
@@ -1380,7 +1331,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="170">
          <caret line="10" column="31" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="109" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
@@ -1388,17 +1338,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="402">
          <caret line="102" column="65" lean-forward="false" selection-start-line="102" selection-start-column="46" selection-end-line="102" selection-end-column="65" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="340">
          <caret line="20" column="17" lean-forward="false" selection-start-line="20" selection-start-column="17" selection-end-line="20" selection-end-column="17" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
@@ -1414,119 +1353,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="221">
          <caret line="23" column="11" lean-forward="false" selection-start-line="23" selection-start-column="4" selection-end-line="23" selection-end-column="11" />
          <folding>
            <element signature="e#0#1430#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="419">
          <caret line="44" column="43" lean-forward="false" selection-start-line="44" selection-start-column="35" selection-end-line="44" selection-end-column="43" />
          <folding>
            <element signature="imports" expanded="false" />
            <element signature="e#941#956#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="306">
          <caret line="18" column="56" lean-forward="false" selection-start-line="18" selection-start-column="56" selection-end-line="18" selection-end-column="56" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="193">
          <caret line="33" column="31" lean-forward="false" selection-start-line="33" selection-start-column="31" selection-end-line="33" selection-end-column="31" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/db/rule.db">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="323">
          <caret line="31" column="62" lean-forward="false" selection-start-line="31" selection-start-column="62" selection-end-line="31" selection-end-column="71" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="1088">
          <caret line="64" column="0" lean-forward="true" selection-start-line="64" selection-start-column="0" selection-end-line="64" selection-end-column="0" />
          <folding>
            <element signature="e#683#684#0" expanded="true" />
            <element signature="e#713#714#0" expanded="true" />
            <element signature="e#759#760#0" expanded="true" />
            <element signature="e#797#798#0" expanded="true" />
            <element signature="e#833#834#0" expanded="true" />
            <element signature="e#865#866#0" expanded="true" />
            <element signature="e#915#916#0" expanded="true" />
            <element signature="e#957#958#0" expanded="true" />
            <element signature="e#998#999#0" expanded="true" />
            <element signature="e#1035#1036#0" expanded="true" />
            <element signature="e#1095#1096#0" expanded="true" />
            <element signature="e#1147#1148#0" expanded="true" />
            <element signature="e#1180#1181#0" expanded="true" />
            <element signature="e#1209#1210#0" expanded="true" />
            <element signature="e#1253#1254#0" expanded="true" />
            <element signature="e#1289#1290#0" expanded="true" />
            <element signature="e#1329#1330#0" expanded="true" />
            <element signature="e#1365#1366#0" expanded="true" />
            <element signature="e#1423#1424#0" expanded="true" />
            <element signature="e#1473#1474#0" expanded="true" />
            <element signature="e#1512#1513#0" expanded="true" />
            <element signature="e#1547#1548#0" expanded="true" />
            <element signature="e#1603#1604#0" expanded="true" />
            <element signature="e#1651#1652#0" expanded="true" />
            <element signature="e#1693#1694#0" expanded="true" />
            <element signature="e#1731#1732#0" expanded="true" />
            <element signature="e#1793#1794#0" expanded="true" />
            <element signature="e#1847#1848#0" expanded="true" />
            <element signature="e#1884#1885#0" expanded="true" />
            <element signature="e#1917#1918#0" expanded="true" />
            <element signature="e#1969#1970#0" expanded="true" />
            <element signature="e#2013#2014#0" expanded="true" />
            <element signature="e#2046#2047#0" expanded="true" />
            <element signature="e#2075#2076#0" expanded="true" />
            <element signature="e#2119#2120#0" expanded="true" />
            <element signature="e#2155#2156#0" expanded="true" />
            <element signature="e#2192#2193#0" expanded="true" />
            <element signature="e#2225#2226#0" expanded="true" />
            <element signature="e#2277#2278#0" expanded="true" />
            <element signature="e#2321#2322#0" expanded="true" />
            <element signature="e#2357#2358#0" expanded="true" />
            <element signature="e#2389#2390#0" expanded="true" />
            <element signature="e#2439#2440#0" expanded="true" />
            <element signature="e#2481#2482#0" expanded="true" />
            <element signature="e#2514#2515#0" expanded="true" />
            <element signature="e#2543#2544#0" expanded="true" />
            <element signature="e#2587#2588#0" expanded="true" />
            <element signature="e#2623#2624#0" expanded="true" />
            <element signature="e#2653#2654#0" expanded="true" />
            <element signature="e#2679#2680#0" expanded="true" />
            <element signature="e#2717#2718#0" expanded="true" />
            <element signature="e#2747#2748#0" expanded="true" />
            <element signature="e#2796#2797#0" expanded="true" />
            <element signature="e#2841#2842#0" expanded="true" />
            <element signature="e#3017#3018#0" expanded="true" />
            <element signature="e#3045#3046#0" expanded="true" />
            <element signature="e#3087#3088#0" expanded="true" />
            <element signature="e#3121#3122#0" expanded="true" />
            <element signature="e#3157#3158#0" expanded="true" />
            <element signature="e#3189#3190#0" expanded="true" />
            <element signature="e#3239#3240#0" expanded="true" />
            <element signature="e#3281#3282#0" expanded="true" />
            <element signature="e#3315#3316#0" expanded="true" />
            <element signature="e#3347#3348#0" expanded="true" />
            <element signature="e#3395#3396#0" expanded="true" />
            <element signature="e#3437#3438#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
@@ -1534,7 +1360,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
@@ -1543,15 +1368,15 @@
        <state relative-caret-position="306">
          <caret line="18" column="5" lean-forward="true" selection-start-line="18" selection-start-column="5" selection-end-line="18" selection-end-column="5" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="e#738#739#0" expanded="true" />
            <element signature="e#779#780#0" expanded="true" />
            <element signature="e#848#849#0" expanded="true" />
            <element signature="e#908#909#0" expanded="true" />
            <element signature="e#979#980#0" expanded="true" />
            <element signature="e#1040#1041#0" expanded="true" />
            <element signature="e#1132#1133#0" expanded="true" />
            <element signature="e#1199#1200#0" expanded="true" />
            <element signature="imports" expanded="false" />
            <element signature="e#738#739#0" expanded="false" />
            <element signature="e#779#780#0" expanded="false" />
            <element signature="e#848#849#0" expanded="false" />
            <element signature="e#908#909#0" expanded="false" />
            <element signature="e#979#980#0" expanded="false" />
            <element signature="e#1040#1041#0" expanded="false" />
            <element signature="e#1132#1133#0" expanded="false" />
            <element signature="e#1199#1200#0" expanded="false" />
          </folding>
        </state>
      </provider>
@@ -1560,41 +1385,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="136">
          <caret line="8" column="23" lean-forward="false" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="23" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-295">
          <caret line="425" column="30" lean-forward="true" selection-start-line="425" selection-start-column="30" selection-end-line="425" selection-end-column="30" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="e#1129#1130#0" expanded="true" />
            <element signature="e#1177#1178#0" expanded="true" />
            <element signature="e#1649#1664#0" expanded="true" />
            <element signature="e#1731#1755#0" expanded="true" />
            <element signature="e#3395#3410#0" expanded="true" />
            <element signature="e#3814#3829#0" expanded="true" />
            <element signature="e#18187#18211#0" expanded="true" />
            <element signature="e#21865#21895#0" expanded="true" />
            <element signature="e#23045#23046#0" expanded="true" />
            <element signature="e#23076#23077#0" expanded="true" />
            <element signature="e#23124#23125#0" expanded="true" />
            <element signature="e#23164#23165#0" expanded="true" />
            <element signature="e#23198#23199#0" expanded="true" />
            <element signature="e#23228#23229#0" expanded="true" />
            <element signature="e#23274#23275#0" expanded="true" />
            <element signature="e#23312#23313#0" expanded="true" />
            <element signature="e#23350#23351#0" expanded="true" />
            <element signature="e#23384#23385#0" expanded="true" />
            <element signature="e#23438#23439#0" expanded="true" />
            <element signature="e#23484#23485#0" expanded="true" />
            <element signature="e#23524#23525#0" expanded="true" />
            <element signature="e#23558#23559#0" expanded="true" />
            <element signature="e#23614#23615#0" expanded="true" />
            <element signature="e#23660#23661#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
@@ -1603,21 +1393,11 @@
        <state relative-caret-position="185">
          <caret line="32" column="26" lean-forward="true" selection-start-line="32" selection-start-column="26" selection-end-line="32" selection-end-column="26" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="e#1652#3388#0" expanded="true" />
            <element signature="e#3387#3388#0" expanded="true" />
            <element signature="e#4644#4645#0" expanded="true" />
            <element signature="e#4685#4686#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="193">
          <caret line="106" column="54" lean-forward="true" selection-start-line="106" selection-start-column="54" selection-end-line="106" selection-end-column="54" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="imports" expanded="false" />
            <element signature="e#1652#3388#0" expanded="false" />
            <element signature="e#3387#3388#0" expanded="false" />
            <element signature="e#4644#4645#0" expanded="false" />
            <element signature="e#4685#4686#0" expanded="false" />
          </folding>
        </state>
      </provider>
@@ -1632,25 +1412,282 @@
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/rest/RuleServiceRest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="221">
        <state relative-caret-position="714">
          <caret line="58" column="74" lean-forward="false" selection-start-line="58" selection-start-column="22" selection-end-line="58" selection-end-column="74" />
          <folding>
            <element signature="e#3629#3630#0" expanded="false" />
            <element signature="e#3670#3671#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/cache/ehcache/EhcacheDemo.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="255">
          <caret line="15" column="42" lean-forward="false" selection-start-line="15" selection-start-column="42" selection-end-line="15" selection-end-column="42" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/core/src/main/java/com/java110/core/cache/CacheConfiguration.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="425">
          <caret line="32" column="26" lean-forward="true" selection-start-line="32" selection-start-column="26" selection-end-line="32" selection-end-column="26" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/src/main/resources/cache/ehcache.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="561">
          <caret line="33" column="54" lean-forward="false" selection-start-line="33" selection-start-column="52" selection-end-line="33" selection-end-column="54" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/src/main/resources/cache/redis.conf">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="306">
          <caret line="18" column="22" lean-forward="false" selection-start-line="18" selection-start-column="22" selection-end-line="18" selection-end-column="22" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/CodeMapUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="1989">
          <caret line="140" column="25" lean-forward="false" selection-start-line="140" selection-start-column="25" selection-end-line="140" selection-end-column="25" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/1.7.2.RELEASE/spring-data-redis-1.7.2.RELEASE.jar!/org/springframework/data/redis/core/StringRedisTemplate.class">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="102">
          <caret line="13" column="49" lean-forward="true" selection-start-line="13" selection-start-column="49" selection-end-line="13" selection-end-column="49" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/1.7.2.RELEASE/spring-data-redis-1.7.2.RELEASE.jar!/org/springframework/data/redis/core/RedisTemplate.class">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="102">
          <caret line="42" column="26" lean-forward="false" selection-start-line="42" selection-start-column="13" selection-end-line="42" selection-end-column="26" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="340">
          <caret line="279" column="25" lean-forward="true" selection-start-line="275" selection-start-column="11" selection-end-line="279" selection-end-column="25" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/core/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="334">
          <caret line="46" column="21" lean-forward="false" selection-start-line="46" selection-start-column="21" selection-end-line="46" selection-end-column="21" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="436">
          <caret line="95" column="27" lean-forward="false" selection-start-line="95" selection-start-column="27" selection-end-line="95" selection-end-column="27" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/core/src/test/java/com/java110/core/cache/TestRedis.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="221">
          <caret line="13" column="32" lean-forward="true" selection-start-line="13" selection-start-column="32" selection-end-line="13" selection-end-column="32" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/core/src/main/java/com/java110/core/cache/RedisConfiguration.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="130">
          <caret line="32" column="30" lean-forward="false" selection-start-line="32" selection-start-column="21" selection-end-line="32" selection-end-column="30" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="136">
          <caret line="14" column="3" lean-forward="false" selection-start-line="14" selection-start-column="3" selection-end-line="14" selection-end-column="3" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java">
    <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/io/Serializable.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-527">
          <caret line="38" column="0" lean-forward="true" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
        <state relative-caret-position="929">
          <caret line="168" column="17" lean-forward="false" selection-start-line="168" selection-start-column="17" selection-end-line="168" selection-end-column="17" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.2/jedis-2.8.2.jar!/redis/clients/jedis/BinaryJedis.class">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="193">
          <caret line="118" column="18" lean-forward="false" selection-start-line="118" selection-start-column="18" selection-end-line="118" selection-end-column="18" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/SerializeUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="83">
          <caret line="78" column="50" lean-forward="false" selection-start-line="78" selection-start-column="50" selection-end-line="78" selection-end-column="50" />
          <folding>
            <element signature="imports" expanded="true" />
            <element signature="e#4630#4638#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="354">
          <caret line="37" column="37" lean-forward="false" selection-start-line="37" selection-start-column="37" selection-end-line="37" selection-end-column="37" />
          <folding>
            <element signature="e#961#962#0" expanded="true" />
            <element signature="e#1014#1015#0" expanded="true" />
            <element signature="e#1056#1057#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.3.2.RELEASE/spring-context-4.3.2.RELEASE-sources.jar!/org/springframework/cache/annotation/Cacheable.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="397">
          <caret line="56" column="18" lean-forward="false" selection-start-line="56" selection-start-column="18" selection-end-line="56" selection-end-column="18" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleEntrance.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="204">
          <caret line="18" column="26" lean-forward="false" selection-start-line="18" selection-start-column="17" selection-end-line="18" selection-end-column="26" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/Rule.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="153">
          <caret line="10" column="41" lean-forward="false" selection-start-line="10" selection-start-column="41" selection-end-line="10" selection-end-column="41" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="136">
          <caret line="9" column="48" lean-forward="false" selection-start-line="9" selection-start-column="48" selection-end-line="9" selection-end-column="48" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/db/rule.db">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="204">
          <caret line="12" column="3" lean-forward="true" selection-start-line="12" selection-start-column="3" selection-end-line="12" selection-end-column="11" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="198">
          <caret line="64" column="11" lean-forward="false" selection-start-line="64" selection-start-column="11" selection-end-line="64" selection-end-column="11" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/constant/RuleDomain.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="470">
          <caret line="68" column="51" lean-forward="false" selection-start-line="68" selection-start-column="31" selection-end-line="68" selection-end-column="51" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/util/Map.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="193">
          <caret line="128" column="17" lean-forward="false" selection-start-line="128" selection-start-column="17" selection-end-line="128" selection-end-column="17" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://F:/software/Java/jdk1.8.0_121/src.zip!/java/util/HashMap.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="255">
          <caret line="137" column="48" lean-forward="false" selection-start-line="137" selection-start-column="36" selection-end-line="137" selection-end-column="48" />
          <folding>
            <element signature="e#0#91089#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="204">
          <caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common/src/main/java/com/java110/common/util/RuleUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="323">
          <caret line="32" column="10" lean-forward="false" selection-start-line="32" selection-start-column="10" selection-end-line="32" selection-end-column="10" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="368">
          <caret line="255" column="35" lean-forward="false" selection-start-line="255" selection-start-column="35" selection-end-line="255" selection-end-column="35" />
          <folding>
            <element signature="e#10037#10038#0" expanded="true" />
            <element signature="e#10071#10072#0" expanded="true" />
            <element signature="e#10127#10128#0" expanded="true" />
            <element signature="e#10173#10174#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/RuleService/src/main/java/com/java110/rule/common/RuleCommon.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-663">
          <caret line="434" column="46" lean-forward="false" selection-start-line="434" selection-start-column="46" selection-end-line="434" selection-end-column="46" />
          <folding />
        </state>
      </provider>
    </entry>
  </component>
  <component name="masterDetails">
    <states>
BaseService/BaseService.iml
@@ -25,10 +25,19 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="module" module-name="core" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
MerchantService/MerchantService.iml
@@ -24,10 +24,19 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="module" module-name="core" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
MicroCommunity.iml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
OrderService/OrderService.iml
@@ -25,10 +25,19 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="module" module-name="core" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
PayService/PayService.iml
@@ -24,6 +24,7 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
RuleService/RuleService.iml
@@ -24,10 +24,19 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="module" module-name="core" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
RuleService/src/main/java/com/java110/rule/common/RuleCommon.java
@@ -49,7 +49,7 @@
        java.sql.Timestamp startTime = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime());
        String condReturnXml = "";
        Map<String,Rule> ruleMap = RuleUtil.getRuleMap();
        Map<String,Rule> ruleMap = ruleDaoImpl.getRuleMap();
        Rule rule = ruleMap.get(ruleId);
        Map<String,String> map = new HashMap<String,String>();
@@ -96,7 +96,7 @@
        Map<String,String> returnMap = new HashMap<String,String>();
        dataStackMap = new HashMap<String,String>();
        Map<String,Rule> ruleMap = RuleUtil.getRuleMap();
        Map<String,Rule> ruleMap = ruleDaoImpl.getRuleMap();
        List<RuleCondCfg> ruleCondCfgList = ruleMap.get(ruleId).getRuleCondCfgs();
        ruleNodeMap = new HashMap<String,String>();
        ruleDbMap = new HashMap<String, List<Map<String,String>>>();
@@ -432,7 +432,7 @@
        java.sql.Timestamp startTime = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime());
        String condReturnXml = "";
        Map<String,Rule> ruleMap = RuleUtil.getRuleMap();
        Map<String,Rule> ruleMap = ruleDaoImpl.getRuleMap();
        Rule rule = ruleMap.get(ruleId);
        if(!StringUtils.isEmpty(rule.getRule_url())){
RuleService/src/main/java/com/java110/rule/dao/IRuleDao.java
@@ -1,5 +1,8 @@
package com.java110.rule.dao;
import com.java110.entity.rule.Rule;
import com.java110.entity.rule.RuleEntrance;
import java.util.List;
import java.util.Map;
@@ -19,4 +22,28 @@
    public String executeProc(String transactionId,String paramIn,String procName) throws Exception;
    /**
     *  查询Rule_Entrance
     * @return
     * @throws Exception
     */
    public Map<String,RuleEntrance> getRuleEntranceMap() throws Exception;
    /**
     * 查询规则组关系信息
     * @return
     * @throws Exception
     */
    public  List getRuleGroupRelaList() throws Exception;
    /**
     * 查询规则信息
     * @return
     * @throws Exception
     */
    public Map<String, Rule> getRuleMap() throws Exception;
}
RuleService/src/main/java/com/java110/rule/dao/impl/RuleDaoImpl.java
@@ -1,13 +1,19 @@
package com.java110.rule.dao.impl;
import com.java110.common.constant.RuleDomain;
import com.java110.common.util.SerializeUtil;
import com.java110.core.base.dao.BaseServiceDao;
import com.java110.entity.rule.Rule;
import com.java110.entity.rule.RuleCondCfg;
import com.java110.entity.rule.RuleEntrance;
import com.java110.rule.dao.IRuleDao;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * Created by wuxw on 2017/7/23.
@@ -16,6 +22,8 @@
@Service("ruleDaoImpl")
@Transactional
public class RuleDaoImpl extends BaseServiceDao implements IRuleDao {
    @Override
    public List<Map<String, String>> executeSql(String sql) throws Exception {
        return sqlSessionTemplate.selectList("ruleDaoImpl.executeSql",sql);
@@ -46,4 +54,148 @@
        }
        return null;
    }
    /**
     * 查询 rule_entrance表信息
     *
     * 这里逻辑,首先从ehCache 中获取数据,如果没有缓存,则校验redis中是否存在,如果不存在从数据库中查询,然后保存至redis中,
     * 自动缓存到ehcache 中(默认是10分钟)
     * @return
     * @throws Exception
     */
    @Override
    @Cacheable(key=RuleDomain.REDIS_KEY_RULE_ENTRANCE)
    public Map<String, RuleEntrance> getRuleEntranceMap() throws Exception {
        Jedis jedis = jedisPool.getResource();
        Map map = new HashMap();
        List<RuleEntrance> list = null;
        if(jedis.exists(RuleDomain.REDIS_KEY_RULE_ENTRANCE.getBytes())){
            list =  SerializeUtil.unserializeList(jedis.get(RuleDomain.REDIS_KEY_RULE_ENTRANCE.getBytes()),RuleEntrance.class);
        }else{
            list = sqlSessionTemplate.selectList("ruleDaoImpl.getRuleEntranceMap");
            //将 数据缓存至redis中
            jedis.set(RuleDomain.REDIS_KEY_RULE_ENTRANCE.getBytes(),SerializeUtil.serializeList(list));
        }
        if (null != list && !list.isEmpty()) {
            RuleEntrance ruleEntrance = null;
            for (int ruleEntranceIndex = 0;ruleEntranceIndex< list.size();ruleEntranceIndex++) {
                ruleEntrance =  list.get(ruleEntranceIndex);
                map.put(String.valueOf(ruleEntranceIndex), ruleEntrance);
            }
        }
        return map;
    }
    /**
     * 初始化业务规则分组和编码映射关联关系信息
     * @return
     * @throws Exception
     */
    @Override
    @Cacheable(key=RuleDomain.REDIS_KEY_RULE_GROUP)
    public List getRuleGroupRelaList() throws Exception {
        List saopRuleGroupRelaList = new ArrayList();
        Jedis jedis = jedisPool.getResource();
        if(jedis.exists(RuleDomain.REDIS_KEY_RULE_ENTRANCE.getBytes())){
            saopRuleGroupRelaList =  SerializeUtil.unserializeList(jedis.get(RuleDomain.REDIS_KEY_RULE_GROUP.getBytes()),Map.class);
        }else {
            //查询全部业务规则分组信息
            List allSaopRuleGroupInfoList = sqlSessionTemplate.selectList("ruleDaoImpl.querySaopRuleGroupMap");
            //业务分组和编码映射关系集合
            List allsaopRuleGroupRelaInfoList = sqlSessionTemplate.selectList("ruleDaoImpl.querySaopRuleGroupRelaMap");
            int allSaopRuleGroupInfoListSize = allSaopRuleGroupInfoList.size();
            int allsaopRuleGroupRelaInfoListSize = allsaopRuleGroupRelaInfoList.size();
            if (allSaopRuleGroupInfoListSize > 0 && allsaopRuleGroupRelaInfoListSize > 0) {
                for (int i = 0; i < allSaopRuleGroupInfoListSize; i++) {
                    //每个业务规则分组项
                    Map saopRuleGroupMap = (Map) allSaopRuleGroupInfoList.get(i);
                    if (null == saopRuleGroupMap || null == saopRuleGroupMap.get("groupId")) {
                        continue;
                    }
                    //当前规则分组编码
                    String curRuleGroupId = String.valueOf(saopRuleGroupMap.get("groupId"));
                    //当前业务规则分组下的规则编码集合
                    List ruleIdList = new ArrayList();
                    saopRuleGroupMap.put("ruleIdList", ruleIdList);
                    for (int j = 0; j < allsaopRuleGroupRelaInfoListSize; j++) {
                        Map saopRuleGroupRelaMap = (Map) allsaopRuleGroupRelaInfoList.get(j);
                        if (null == saopRuleGroupRelaMap || null == saopRuleGroupRelaMap.get("groupId")) {
                            continue;
                        }
                        //当前规则分组编码
                        String ruleRelaGroupId = String.valueOf(saopRuleGroupRelaMap.get("groupId"));
                        if (curRuleGroupId.equals(ruleRelaGroupId)) {
                            //获取规则编码
                            String ruleId = "";
                            if (null != saopRuleGroupRelaMap.get("rule_id")) {
                                ruleId = String.valueOf(saopRuleGroupRelaMap.get("rule_id"));
                            }
                            if (!StringUtils.isEmpty(ruleId)) {
                                ruleIdList.add(ruleId);
                            }
                        }
                    }
                }
                saopRuleGroupRelaList = allSaopRuleGroupInfoList;
                jedis.set(RuleDomain.REDIS_KEY_RULE_ENTRANCE.getBytes(),SerializeUtil.serializeList(saopRuleGroupRelaList));
            }
        }
        return saopRuleGroupRelaList;
    }
    @Override
    @Cacheable(key=RuleDomain.REDIS_KEY_RULE)
    public Map<String, Rule> getRuleMap() throws Exception {
        Jedis jedis = jedisPool.getResource();
        List<Rule> ruleList = null;
        Map map = new HashMap();
        if(jedis.exists(RuleDomain.REDIS_KEY_RULE.getBytes())){
            ruleList =  SerializeUtil.unserializeList(jedis.get(RuleDomain.REDIS_KEY_RULE.getBytes()),Rule.class);
        }else{
            ruleList = sqlSessionTemplate.selectList("ruleDaoImpl.queryRule");
            for (Rule rule : ruleList) {
                String ruleId = rule.getRule_id();
                List<RuleCondCfg> ruleCondCfgList = sqlSessionTemplate.selectList("ruleDaoImpl.queryRuleCondCfg", ruleId);
                rule.setRuleCondCfgs(ruleCondCfgList);
            }
            //将 数据缓存至redis中
            jedis.set(RuleDomain.REDIS_KEY_RULE.getBytes(),SerializeUtil.serializeList(ruleList));
        }
        if (null != ruleList && !ruleList.isEmpty()) {
            Rule rule = null;
            for (Iterator i = ruleList.iterator(); i.hasNext();) {
                rule = (Rule) i.next();
                map.put(rule.getRule_id(), rule);
            }
        }
        return map;
    }
}
RuleService/src/main/java/com/java110/rule/smo/impl/RuleServiceSMOImpl.java
@@ -11,6 +11,7 @@
import com.java110.entity.rule.RuleEntrance;
import com.java110.entity.rule.TcpContRule;
import com.java110.rule.common.RuleCommon;
import com.java110.rule.dao.IRuleDao;
import com.java110.rule.smo.IRuleServiceSMO;
import com.java110.rule.thread.RuleCommonThread;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +36,9 @@
    @Autowired
    RuleCommon ruleCommon;
    @Autowired
    IRuleDao ruleDaoImpl;
@@ -127,12 +131,12 @@
        String roamFlag = RuleDomain.RULE_COND_RETURN_0000;
            String depPrvncSaopRuleType = CodeMapUtil.getDynamicConstantValue("DEP_PRVNC_RULE_TYPE");
            //获取表 Rule_Entrance 数据
            Map<String,RuleEntrance> ruleEntranceMap = RuleUtil.getRuleEntranceMap();
            Map<String,RuleEntrance> ruleEntranceMap = ruleDaoImpl.getRuleEntranceMap();
            int ruleCount = 0;
            this.ruleCommon.init();
            //当前分组下的规则编码集合
            List ruleIdsInCurGroupList = RuleUtil.getRuleIdsInGroupByJson(reqJson.toJSONString());
            List ruleIdsInCurGroupList = RuleUtil.getRuleIdsInGroupByJson(reqJson.toJSONString(),ruleDaoImpl.getRuleGroupRelaList());
            //耗时明细信息集合
            List costTimeMapList = new ArrayList();
@@ -182,7 +186,7 @@
                    ruleCount ++;
                    ruleList.add(ruleEntrance.getRule_id());
                }else{//配置1为单线程串行调用模式
                    Rule rule = RuleUtil.getRuleMap().get(ruleEntrance.getRule_id());
                    Rule rule = ruleDaoImpl.getRuleMap().get(ruleEntrance.getRule_id());
                    String url = rule.getRule_url();
                    String entranceRetrunXml = "";
                    if(!StringUtils.isEmpty(url)){
@@ -252,4 +256,12 @@
    public void setRuleCommon(RuleCommon ruleCommon) {
        this.ruleCommon = ruleCommon;
    }
    public IRuleDao getRuleDaoImpl() {
        return ruleDaoImpl;
    }
    public void setRuleDaoImpl(IRuleDao ruleDaoImpl) {
        this.ruleDaoImpl = ruleDaoImpl;
    }
}
UserService/UserService.iml
@@ -25,10 +25,19 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="module" module-name="core" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
Wechat/Wechat.iml
@@ -25,6 +25,7 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
bean/src/main/java/com/java110/entity/rule/Rule.java
@@ -1,5 +1,6 @@
package com.java110.entity.rule;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@@ -7,7 +8,7 @@
 * 业务规则主体
 * Created by wuxw on 2017/7/23.
 */
public class Rule {
public class Rule implements Serializable{
    private String rule_id;
bean/src/main/java/com/java110/entity/rule/RuleCondCfg.java
@@ -1,12 +1,13 @@
package com.java110.entity.rule;
import java.io.Serializable;
import java.util.Date;
/**
 *
 * Created by wuxw on 2017/7/23.
 */
public class RuleCondCfg {
public class RuleCondCfg implements Serializable{
    private String rule_id;
    private String rule_node;
bean/src/main/java/com/java110/entity/rule/RuleEntrance.java
@@ -1,12 +1,15 @@
package com.java110.entity.rule;
import java.io.Serializable;
import java.util.Date;
/**
 * 对应表rule_entrance
 * Created by wuxw on 2017/7/23.
 */
public class RuleEntrance {
public class RuleEntrance implements Serializable {
    private String rule_id;
common/common.iml
@@ -24,11 +24,11 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.0.RELEASE" level="project" />
@@ -36,6 +36,17 @@
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
@@ -48,7 +59,6 @@
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
common/pom.xml
@@ -73,6 +73,11 @@
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>
        <dependency>
@@ -84,5 +89,11 @@
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>
common/src/main/java/com/java110/common/constant/RuleDomain.java
@@ -57,4 +57,14 @@
    public static final String PART_STRING_ORIGINAL_VALUE = "ORIGINAL_VALUE"; //表示字符串:ORIGINAL_VALUE,含义是在处理字符串时表示没有被任何改变的“原始值”标识
    /**
     * redis key 开始设置
     */
    public final static String REDIS_KEY_RULE_ENTRANCE ="RuleEntrance"; // redis key RuleEntrance
    public final static String REDIS_KEY_RULE ="Rule"; // redis key Rule
    public final static String REDIS_KEY_RULE_GROUP ="Rule_Group"; // redis key Rule
}
common/src/main/java/com/java110/common/util/RuleUtil.java
@@ -3,6 +3,11 @@
import com.java110.common.log.LoggerEngine;
import com.java110.entity.rule.Rule;
import com.java110.entity.rule.RuleEntrance;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -15,23 +20,6 @@
 */
public class RuleUtil extends LoggerEngine{
   public static Map<String,RuleEntrance> getRuleEntranceMap(){
       return null;
   }
    /**
     * 获取规则组
     * @return
     */
    public static List getRuleGroupRelaList() {
        return null;
    }
    public static Map<String, Rule> getRuleMap() {
        return null;
    }
    /**
@@ -39,10 +27,10 @@
     * @param reqJson
     * @return   如果获取不到则会返回new ArrayList(),不会为null
     */
    public static List getRuleIdsInGroupByJson(String reqJson)
    public static List getRuleIdsInGroupByJson(String reqJson,List saopRuleGroupInfoList)
    {
        //获取缓存中规则分组集合
        List saopRuleGroupInfoList = RuleUtil.getRuleGroupRelaList();
        //List saopRuleGroupInfoList = RuleUtil.getRuleGroupRelaList();
        //当前分组下的规则编码集合
        List ruleIdsInCurGroupList = new ArrayList();
common/src/main/java/com/java110/common/util/SerializeUtil.java
New file
@@ -0,0 +1,152 @@
package com.java110.common.util;
/**
 * Created by wuxw on 2017/7/23.
 */
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
/**
 * 序列化工具类
 * @author caspar
 *
 */
public class SerializeUtil {
    /**
     * 序列化
     * @param object
     * @return
     */
    public static byte[] serialize(Object object) {
        if (object == null) {
            return null;
        }
        ObjectOutputStream oos = null;
        ByteArrayOutputStream baos = null;
        byte[] bytes = null;
        try {
            // 序列化
            baos = new ByteArrayOutputStream();
            oos = new ObjectOutputStream(baos);
            oos.writeObject(object);
            bytes = baos.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(oos);
            close(baos);
        }
        return bytes;
    }
    /**
     * 反序列化
     *
     * @param bytes
     * @return
     */
    public static Object unserialize(byte[] bytes) {
        if (bytes == null) {
            return null;
        }
        ByteArrayInputStream bais = null;
        ObjectInputStream ois = null;
        try {
            // 反序列化
            bais = new ByteArrayInputStream(bytes);
            ois = new ObjectInputStream(bais);
            return ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(bais);
            close(ois);
        }
        return null;
    }
    /**
     * 序列化 list 集合
     *
     * @param list
     * @return
     */
    public static byte[] serializeList(List<?> list) {
        if (list == null || list.size() == 0) {
            return null;
        }
        ObjectOutputStream oos = null;
        ByteArrayOutputStream baos = null;
        byte[] bytes = null;
        try {
            baos = new ByteArrayOutputStream();
            oos = new ObjectOutputStream(baos);
            for (Object obj : list) {
                oos.writeObject(obj);
            }
            bytes = baos.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(oos);
            close(baos);
        }
        return bytes;
    }
    /**
     * 反序列化 list 集合
     *
     * @param
     * @return
     */
    public static <T> List<T>  unserializeList(byte[] bytes,Class<T> t) {
        if (bytes == null) {
            return null;
        }
        List<T> list = new ArrayList<T>();
        ByteArrayInputStream bais = null;
        ObjectInputStream ois = null;
        try {
            // 反序列化
            bais = new ByteArrayInputStream(bytes);
            ois = new ObjectInputStream(bais);
            while (bais.available() > 0) {
                T obj = (T) ois.readObject();
                if (obj == null) {
                    break;
                }
                list.add(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(bais);
            close(ois);
        }
        return list;
    }
    /**
     * 关闭io流对象
     *
     * @param closeable
     */
    public static void close(Closeable closeable) {
        if (closeable != null) {
            try {
                closeable.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
config/src/main/resources/cache/ehcache.xml
New file
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
    <!-- 磁盘缓存位置 -->
    <diskStore path="java.io.tmpdir/ehcache"/>
    <!-- 默认缓存 -->
    <defaultCache
            maxEntriesLocalHeap="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            maxEntriesLocalDisk="10000000"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"/>
    <!-- helloworld缓存 -->
    <cache name="helloworld"
           maxElementsInMemory="1000"
           eternal="false"
           timeToIdleSeconds="5"
           timeToLiveSeconds="5"
           overflowToDisk="false"
           memoryStoreEvictionPolicy="LRU"/>
    <!--
    ehcache.xml配置参数说明:
name:缓存名称。
maxElementsInMemory:缓存最大个数。
eternal:缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期。
timeToIdleSeconds:置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
timeToLiveSeconds:缓存数据的生存时间(TTL),也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。
maxEntriesLocalDisk:当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。
overflowToDisk:内存不足时,是否启用磁盘缓存。
diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
maxElementsOnDisk:硬盘最大缓存个数。
diskPersistent:是否在VM重启时存储硬盘的缓存数据。默认值是false。
diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。
clearOnFlush:内存数量最大时是否清除。
    -->
</ehcache>
config/src/main/resources/cache/redis.conf
New file
@@ -0,0 +1,19 @@
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.0.58
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
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.timeout=0
config/src/main/resources/mapper/rule/RuleDaoImplMapper.xml
@@ -19,4 +19,61 @@
    <update id="executeProc" parameterMap="executeProMap" statementType="CALLABLE">
        {call $procName$(?, ?, ?)}
    </update>
    <!-- 查询表 rule_entrance 中数据 -->
    <select id="getRuleEntranceMap" resultType="com.java110.entity.rule.RuleEntrance">
        SELECT T.rule_id,
        T.rule_condition,
        T.status_cd,
        T.create_dt
        FROM rule_entrance T
        WHERE T.STATUS_CD = '0' ORDER BY T.rule_id
    </select>
    <!-- 查询表 rule -->
    <select id="queryRule" resultType="com.java110.entity.rule.Rule">
        SELECT T.rule_id, T.rule_code, T.rule_name, T.rule_desc,T.rule_level,T.rule_type,T.rule_url,T.status_cd,T.create_dt
        FROM rule T
        WHERE T.status_cd = '0'
    </select>
    <!--查询表 rule_cond_cfg-->
    <select id="queryRuleCondCfg" resultType="com.java110.entity.rule.RuleCondCfg">
        SELECT
        T.rule_id,
        T.rule_node,
        T.data_from_flag,
        T.db_sql,
        T.default_value,
        T.node_existed,
        T.proc_param_flag,
        T.is_reverse,
        T.is_log,
        T.error_code,
        T.error_msg,
        T.remark,
        T.seq,
        T.data_stack_flag_prefix,
        T.jpath,
        T.status_cd,
        T.create_dt
        FROM rule_cond_cfg T
        WHERE T.rule_id = #{ruleId}
        AND status_cd = '0'
        ORDER BY seq
    </select>
    <!--规则组-->
    <select id="querySaopRuleGroupMap" resultType="java.util.HashMap">
        SELECT T.groupId, T.groupName, T.order_seq, T.key_identify_logic_str
        FROM rule_group T
        WHERE T.status_cd = '0'
        ORDER BY T.order_seq
    </select>
    <!--规则组与规则关系-->
    <select id="querySaopRuleGroupRelaMap"  resultType="java.util.HashMap">
        SELECT T.groupId, T.rule_id
        FROM group_rule_relation T
        WHERE T.status_cd = '0'
    </select>
 </mapper>
core/core.iml
@@ -24,6 +24,7 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
@@ -38,15 +39,29 @@
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
@@ -59,11 +74,7 @@
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
@@ -74,10 +85,8 @@
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:1.4.0.RELEASE" level="project" />
core/pom.xml
@@ -28,9 +28,27 @@
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
core/src/main/java/com/java110/core/base/dao/BaseServiceDao.java
@@ -6,6 +6,7 @@
import com.java110.core.base.AppBase;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisPool;
import java.util.List;
import java.util.Map;
@@ -20,6 +21,9 @@
public class BaseServiceDao extends AppBase {
    @Autowired
   protected JedisPool jedisPool;
    @Autowired
   protected SqlSessionTemplate sqlSessionTemplate;
@@ -31,6 +35,13 @@
        this.sqlSessionTemplate = sqlSessionTemplate;
    }
    public JedisPool getJedisPool() {
        return jedisPool;
    }
    public void setJedisPool(JedisPool jedisPool) {
        this.jedisPool = jedisPool;
    }
    private final static String SERVICE_CASE_JSON_EXCEPTION = "101";//转json异常
core/src/main/java/com/java110/core/cache/CacheConfiguration.java
New file
@@ -0,0 +1,35 @@
package com.java110.core.cache;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
/**
 * Created by wuxw on 2017/7/23.
 */
@Configurable
@EnableCaching
public class CacheConfiguration {
    /*
    * ehcache 主要的管理器
    */
    @Bean(name = "appEhCacheCacheManager")
    public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean bean){
        return new EhCacheCacheManager (bean.getObject ());
    }
    /*
     * 据shared与否的设置,Spring分别通过CacheManager.create()或new CacheManager()方式来创建一个ehcache基地.
     */
    @Bean
    public EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){
        EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean ();
        cacheManagerFactoryBean.setConfigLocation (new ClassPathResource("cache/ehcache-app.xml"));
        cacheManagerFactoryBean.setShared (true);
        return cacheManagerFactoryBean;
    }
}
core/src/main/java/com/java110/core/cache/RedisConfiguration.java
New file
@@ -0,0 +1,51 @@
package com.java110.core.cache;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.lang.reflect.Method;
/**
 * Created by wuxw on 2017/7/23.
 */
@Configuration
public class RedisConfiguration extends CachingConfigurerSupport {
    @Bean(name= "jedis.pool")
    @Autowired
    public JedisPool jedisPool(@Qualifier("jedis.pool.config") JedisPoolConfig config,
                               @Value("${jedis.pool.host}")String host,
                               @Value("${jedis.pool.port}")int port) {
        return new JedisPool(config, host, port);
    }
    @Bean(name= "jedis.pool.config")
    public JedisPoolConfig jedisPoolConfig (@Value("${jedis.pool.config.maxTotal}")int maxTotal,
                                            @Value("${jedis.pool.config.maxIdle}")int maxIdle,
                                            @Value("${jedis.pool.config.maxWaitMillis}")int maxWaitMillis) {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(maxTotal);
        config.setMaxIdle(maxIdle);
        config.setMaxWaitMillis(maxWaitMillis);
        return config;
    }
}
core/src/test/java/com/java110/core/cache/TestRedis.java
New file
@@ -0,0 +1,48 @@
package com.java110.core.cache;
import javafx.application.Application;
import junit.framework.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
 * Created by wuxw on 2017/7/23.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class TestRedis {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Autowired
    private RedisTemplate redisTemplate;
    @Test
    public void test() throws Exception {
        stringRedisTemplate.opsForValue().set("aaa", "111");
        Assert.assertEquals("111", stringRedisTemplate.opsForValue().get("aaa"));
    }
    @Test
    public void testObj() throws Exception {
        /*User user=new User("aa@126.com", "aa", "aa123456", "aa","123");
        ValueOperations<String, User> operations=redisTemplate.opsForValue();
        operations.set("com.neox", user);
        operations.set("com.neo.f", user,1,TimeUnit.SECONDS);
        Thread.sleep(1000);
        //redisTemplate.delete("com.neo.f");
        boolean exists=redisTemplate.hasKey("com.neo.f");
        if(exists){
            System.out.println("exists is true");
        }else{
            System.out.println("exists is false");
        }*/
        // Assert.assertEquals("aa", operations.get("com.neo.f").getUserName());
    }
}
feign/feign.iml
@@ -24,6 +24,7 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.7" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
pom.xml
@@ -175,11 +175,11 @@
                <version>${activemq.version}</version>
            </dependency>
                        <dependency>
                            <groupId>org.springframework</groupId>
                            <artifactId>spring-jms</artifactId>
                            <version>${spring.version}</version>
                        </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jms</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.xbean</groupId>
                <artifactId>xbean-spring</artifactId>
@@ -267,6 +267,17 @@
                <version>${axis.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache</artifactId>
                <version>2.10.2</version>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.8.2</version>
            </dependency>
        </dependencies>
service/service.iml
@@ -23,10 +23,20 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.2" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
    <orderEntry type="module" module-name="core" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-redis:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
@@ -59,7 +69,6 @@
    <orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.7" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />