提交 8b5c7190 编写于 作者: Y yong.you

refator aggregation rule

上级 a4cbf574
......@@ -177,7 +177,8 @@
<manifest>${basedir}/src/main/resources/META-INF/dal/model/threshold-template-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/topology-graph-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/topology-graph-config-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/company-manifest.xml,</manifest>
${basedir}/src/main/resources/META-INF/dal/model/company-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/aggreation-manifest.xml,</manifest>
</configuration>
</execution>
<execution>
......
......@@ -83,6 +83,7 @@ import com.dianping.cat.report.task.transaction.TransactionGraphCreator;
import com.dianping.cat.report.task.transaction.TransactionMerger;
import com.dianping.cat.report.task.transaction.TransactionReportBuilder;
import com.dianping.cat.report.view.DomainNavManager;
import com.dianping.cat.system.config.AggregationConfigManager;
import com.dianping.cat.system.config.ProductLineConfigManager;
public class ComponentsConfigurator extends AbstractResourceConfigurator {
......@@ -222,6 +223,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all.add(C(ProductLineConfigManager.class).req(ConfigDao.class));
all.add(C(AggregationConfigManager.class).req(ConfigDao.class));
all.add(C(TopologyGraphConfigManager.class).req(ConfigDao.class));
all.add(C(TopologyGraphItemBuilder.class).req(TopologyGraphConfigManager.class));
......
package com.dianping.cat.system.config;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.unidal.dal.jdbc.DalNotFoundException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.webres.helper.Files;
import com.dianping.cat.Cat;
import com.dianping.cat.consumer.core.config.Config;
import com.dianping.cat.consumer.core.config.ConfigDao;
import com.dianping.cat.consumer.core.config.ConfigEntity;
import com.dianping.cat.home.aggreation.entity.Aggregation;
import com.dianping.cat.home.aggreation.entity.AggregationRule;
import com.dianping.cat.home.aggreation.transform.DefaultSaxParser;
public class AggregationConfigManager implements Initializable {
@Inject
private ConfigDao m_configDao;
private int m_configId;
private static final String CONFIG_NAME = "aggreationConfig";
private Aggregation m_aggregation;
@Override
public void initialize() {
try {
Config config = m_configDao.findByName(CONFIG_NAME, ConfigEntity.READSET_FULL);
String content = config.getContent();
System.out.println(content);
m_aggregation = DefaultSaxParser.parse(content);
m_configId = config.getId();
} catch (DalNotFoundException e) {
try {
String content = Files.forIO().readFrom(
this.getClass().getResourceAsStream("/config/default-aggregation-config.xml"), "utf-8");
Config config = m_configDao.createLocal();
config.setName(CONFIG_NAME);
config.setContent(content);
m_configDao.insert(config);
m_aggregation = DefaultSaxParser.parse(content);
m_configId = config.getId();
} catch (Exception ex) {
Cat.logError(ex);
}
} catch (Exception e) {
Cat.logError(e);
}
if (m_aggregation == null) {
m_aggregation = new Aggregation();
}
}
private boolean storeConfig() {
try {
Config config = m_configDao.createLocal();
config.setId(m_configId);
config.setKeyId(m_configId);
config.setName(CONFIG_NAME);
config.setContent(m_aggregation.toString());
m_configDao.updateByPK(config, ConfigEntity.UPDATESET_FULL);
} catch (Exception e) {
Cat.logError(e);
return false;
}
return true;
}
public List<AggregationRule> queryAggrarationRules() {
return new ArrayList<AggregationRule>(m_aggregation.getAggregationRules().values());
}
private Aggregation queryAggreation() {
try {
Config config = m_configDao.findByName(CONFIG_NAME, ConfigEntity.READSET_FULL);
String content = config.getContent();
return DefaultSaxParser.parse(content);
} catch (Exception e) {
Cat.logError(e);
}
return new Aggregation();
}
public List<AggregationRule> queryAggrarationRulesFromDB() {
try {
m_aggregation = queryAggreation();
return new ArrayList<AggregationRule>(m_aggregation.getAggregationRules().values());
} catch (Exception e) {
Cat.logError(e);
}
return new ArrayList<AggregationRule>();
}
public AggregationRule queryAggration(String key) {
return m_aggregation.findAggregationRule(key);
}
public boolean insertAggregationRule(AggregationRule rule) {
m_aggregation.addAggregationRule(rule);
return storeConfig();
}
public boolean deleteAggregationRule(String rule) {
m_aggregation.removeAggregationRule(rule);
return storeConfig();
}
}
......@@ -139,6 +139,7 @@ public class ProductLineConfigManager implements Initializable, LogEnabled {
private boolean storeConfig() {
try {
Config config = m_configDao.createLocal();
config.setId(m_configId);
config.setKeyId(m_configId);
config.setName(CONFIG_NAME);
......
......@@ -22,15 +22,14 @@ import com.dianping.cat.consumer.core.dal.Project;
import com.dianping.cat.consumer.core.dal.ProjectDao;
import com.dianping.cat.consumer.core.dal.ProjectEntity;
import com.dianping.cat.helper.CatString;
import com.dianping.cat.home.aggreation.entity.AggregationRule;
import com.dianping.cat.home.company.entity.ProductLine;
import com.dianping.cat.home.dal.report.AggregationRule;
import com.dianping.cat.home.dal.report.AggregationRuleDao;
import com.dianping.cat.home.dal.report.AggregationRuleEntity;
import com.dianping.cat.home.dependency.config.entity.DomainConfig;
import com.dianping.cat.home.dependency.config.entity.EdgeConfig;
import com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager;
import com.dianping.cat.report.view.DomainNavManager;
import com.dianping.cat.system.SystemPage;
import com.dianping.cat.system.config.AggregationConfigManager;
import com.dianping.cat.system.config.ProductLineConfigManager;
public class Handler implements PageHandler<Context> {
......@@ -40,14 +39,14 @@ public class Handler implements PageHandler<Context> {
@Inject
private ProjectDao m_projectDao;
@Inject
private AggregationRuleDao m_aggregationRuleDao;
@Inject
private TopologyGraphConfigManager m_topologyConfigManager;
@Inject
private ProductLineConfigManager m_productLineConfigManger;
@Inject
private AggregationConfigManager m_aggreationConfigManager;
@Override
@PayloadMeta(Payload.class)
......@@ -79,18 +78,19 @@ public class Handler implements PageHandler<Context> {
break;
case AGGREGATION_ALL:
model.setAggregationRules(queryAllAggregationRules());
model.setAggregationRules(m_aggreationConfigManager.queryAggrarationRules());
break;
case AGGREGATION_UPDATE:
model.setAggregationRule(queryAggregationRuleById(payload.getId()));
model.setAggregationRule(
m_aggreationConfigManager.queryAggration(payload.getPattern()));
break;
case AGGREGATION_UPDATE_SUBMIT:
updateAggregationRule(payload);
model.setAggregationRules(queryAllAggregationRules());
model.setAggregationRules(m_aggreationConfigManager.queryAggrarationRules());
break;
case AGGREGATION_DELETE:
deleteAggregationRule(payload);
model.setAggregationRules(queryAllAggregationRules());
model.setAggregationRules(m_aggreationConfigManager.queryAggrarationRules());
break;
case TOPOLOGY_GRAPH_NODE_CONFIG_LIST:
......@@ -249,45 +249,11 @@ public class Handler implements PageHandler<Context> {
private void updateAggregationRule(Payload payload) {
AggregationRule proto = payload.getRule();
proto.setKeyId(payload.getId());
try {
if (proto.getKeyId() == 0) {
m_aggregationRuleDao.insert(proto);
} else {
m_aggregationRuleDao.updateByPK(proto, AggregationRuleEntity.UPDATESET_FULL);
}
} catch (DalException e) {
Cat.logError(e);
}
}
private List<AggregationRule> queryAllAggregationRules() {
List<AggregationRule> aggregationRules = new ArrayList<AggregationRule>();
try {
aggregationRules = m_aggregationRuleDao.findAll(AggregationRuleEntity.READSET_FULL);
} catch (Exception e) {
Cat.logError(e);
}
return aggregationRules;
}
private AggregationRule queryAggregationRuleById(int id) {
try {
return m_aggregationRuleDao.findByPK(id, AggregationRuleEntity.READSET_FULL);
} catch (DalException e) {
Cat.logError(e);
return null;
}
m_aggreationConfigManager.insertAggregationRule(proto);
}
private void deleteAggregationRule(Payload payload) {
AggregationRule proto = new AggregationRule();
proto.setKeyId(payload.getId());
try {
m_aggregationRuleDao.deleteByPK(proto);
} catch (DalException e) {
Cat.logError(e);
}
m_aggreationConfigManager.deleteAggregationRule(payload.getPattern());
}
class ProjectCompartor implements Comparator<Project> {
......
......@@ -10,8 +10,8 @@ import org.unidal.web.mvc.ViewModel;
import com.dianping.cat.consumer.core.dal.Project;
import com.dianping.cat.helper.CatString;
import com.dianping.cat.home.aggreation.entity.AggregationRule;
import com.dianping.cat.home.company.entity.ProductLine;
import com.dianping.cat.home.dal.report.AggregationRule;
import com.dianping.cat.home.dependency.config.entity.DomainConfig;
import com.dianping.cat.home.dependency.config.entity.EdgeConfig;
import com.dianping.cat.home.dependency.config.entity.NodeConfig;
......
......@@ -6,8 +6,8 @@ import org.unidal.web.mvc.payload.annotation.FieldMeta;
import org.unidal.web.mvc.payload.annotation.ObjectMeta;
import com.dianping.cat.consumer.core.dal.Project;
import com.dianping.cat.home.aggreation.entity.AggregationRule;
import com.dianping.cat.home.company.entity.ProductLine;
import com.dianping.cat.home.dal.report.AggregationRule;
import com.dianping.cat.home.dependency.config.entity.DomainConfig;
import com.dianping.cat.home.dependency.config.entity.EdgeConfig;
import com.dianping.cat.system.SystemPage;
......@@ -56,6 +56,9 @@ public class Payload implements ActionPayload<SystemPage, Action> {
@FieldMeta("to")
private String m_to;
@FieldMeta("pattern")
private String m_pattern;
@Override
public Action getAction() {
......@@ -65,14 +68,26 @@ public class Payload implements ActionPayload<SystemPage, Action> {
return m_action;
}
public String getDomain() {
return m_domain;
}
public DomainConfig getDomainConfig() {
return m_domainConfig;
}
public String[] getDomains() {
return m_domains;
}
public EdgeConfig getEdgeConfig() {
return m_edgeConfig;
}
public String getFrom() {
return m_from;
}
public int getId() {
return m_id;
}
......@@ -82,6 +97,18 @@ public class Payload implements ActionPayload<SystemPage, Action> {
return m_page;
}
public String getPattern() {
return m_pattern;
}
public ProductLine getProductLine() {
return m_productLine;
}
public String getProductLineName() {
return m_productLineName;
}
public Project getProject() {
return m_project;
}
......@@ -98,6 +125,10 @@ public class Payload implements ActionPayload<SystemPage, Action> {
return m_rule;
}
public String getTo() {
return m_to;
}
public String getType() {
return m_type;
}
......@@ -106,14 +137,26 @@ public class Payload implements ActionPayload<SystemPage, Action> {
m_action = Action.getByName(action, Action.PROJECT_ALL);
}
public void setDomain(String domain) {
m_domain = domain;
}
public void setDomainConfig(DomainConfig domainConfig) {
m_domainConfig = domainConfig;
}
public void setDomains(String[] domains) {
m_domains = domains;
}
public void setEdgeConfig(EdgeConfig edgeConfig) {
m_edgeConfig = edgeConfig;
}
public void setFrom(String from) {
m_from = from;
}
public void setId(int id) {
m_id = id;
}
......@@ -123,6 +166,18 @@ public class Payload implements ActionPayload<SystemPage, Action> {
m_page = SystemPage.getByName(page, SystemPage.CONFIG);
}
public void setPattern(String pattern) {
m_pattern = pattern;
}
public void setProductLine(ProductLine productLine) {
m_productLine = productLine;
}
public void setProductLineName(String productLineName) {
m_productLineName = productLineName;
}
public void setProject(Project project) {
m_project = project;
}
......@@ -135,6 +190,10 @@ public class Payload implements ActionPayload<SystemPage, Action> {
m_rule = rule;
}
public void setTo(String to) {
m_to = to;
}
public void setType(String type) {
if (type.startsWith("Cache.")) {
type = "Cache";
......@@ -148,56 +207,8 @@ public class Payload implements ActionPayload<SystemPage, Action> {
m_type = type;
}
public String getDomain() {
return m_domain;
}
public void setDomain(String domain) {
m_domain = domain;
}
@Override
public void validate(ActionContext<?> ctx) {
}
public String getTo() {
return m_to;
}
public void setTo(String to) {
m_to = to;
}
public String getFrom() {
return m_from;
}
public void setFrom(String from) {
m_from = from;
}
public ProductLine getProductLine() {
return m_productLine;
}
public void setProductLine(ProductLine productLine) {
m_productLine = productLine;
}
public String getProductLineName() {
return m_productLineName;
}
public void setProductLineName(String productLineName) {
m_productLineName = productLineName;
}
public String[] getDomains() {
return m_domains;
}
public void setDomains(String[] domains) {
m_domains = domains;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<entities>
<entity name="aggregation-rule" table="aggregationRule" alias="a">
<member name="id" field="id" value-type="int" length="10" nullable="false" key="true" auto-increment="true" />
<member name="type" field="type" value-type="int" length="10" nullable="false" />
<member name="domain" field="domain" value-type="String" length="50" nullable="false" />
<member name="pattern" field="pattern" value-type="String" length="200" nullable="false" />
<member name="display-name" field="display_name" value-type="String" length="200" />
<member name="sample" field="sample" value-type="String" length="200" />
<member name="create-date" field="create_date" value-type="Date" nullable="false" />
<member name="update-date" field="update_date" value-type="Date" nullable="false" />
<var name="key-id" value-type="int" key-member="id" />
<primary-key name="PRIMARY" members="id" />
<readsets>
<readset name="FULL" all="true" />
</readsets>
<updatesets>
<updateset name="FULL" all="true" />
</updatesets>
<query-defs>
<query name="find-by-PK" type="SELECT">
<param name="key-id" />
<statement><![CDATA[SELECT <FIELDS/>
FROM <TABLE/>
WHERE <FIELD name='id'/> = ${key-id}]]></statement>
</query>
<query name="insert" type="INSERT">
<statement><![CDATA[INSERT INTO <TABLE/>(<FIELDS/>)
VALUES(<VALUES/>)]]></statement>
</query>
<query name="update-by-PK" type="UPDATE">
<param name="key-id" />
<statement><![CDATA[UPDATE <TABLE/>
SET <FIELDS/>
WHERE <FIELD name='id'/> = ${key-id}]]></statement>
</query>
<query name="delete-by-PK" type="DELETE">
<param name="key-id" />
<statement><![CDATA[DELETE FROM <TABLE/>
WHERE <FIELD name='id'/> = ${key-id}]]></statement>
</query>
</query-defs>
</entity>
<entity name="dailygraph" table="dailygraph" alias="d">
<member name="id" field="id" value-type="int" length="10" nullable="false" key="true" auto-increment="true" />
<member name="name" field="name" value-type="String" length="20" nullable="false" />
......
......@@ -442,19 +442,6 @@
]]></statement>
</query>
</query-defs>
</entity>
<entity name="aggregation-rule" table="aggregationRule" alias="a">
<member name="create-date" insert-expr="NOW()" />
<member name="update-date" insert-expr="NOW()" update-expr="NOW()" />
<query-defs>
<query name="find-all" type="SELECT" multiple="true">
<statement><![CDATA[
SELECT <FIELDS/>
FROM <TABLE/>
]]>
</statement>
</query>
</query-defs>
</entity>
<entity name="event" table="event" alias="e">
<member name="creation-date" insert-expr="NOW()" />
......
<?xml version="1.0" encoding="UTF-8"?>
<model>
<entity name="aggregation" root="true">
<entity-ref name="aggregation-rule" type="list" names="aggregation-rules" />
</entity>
<entity name="aggregation-rule">
<attribute name="type" value-type="int" />
<attribute name="domain" value-type="String" />
<attribute name="pattern" value-type="String" />
<attribute name="sample" value-type="String" />
<attribute name="display-name" value-type="String" />
<attribute name="creation-date" value-type="Date" format="yyyy-MM-dd HH:mm:ss" />
</entity>
</model>
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<file path="aggreation-codegen.xml" />
<file path="aggreation-model.xml" />
</manifest>
<?xml version="1.0" encoding="UTF-8"?>
<model model-package="com.dianping.cat.home.aggreation" enable-merger="true" enable-sax-parser="true"
enable-base-visitor="true" >
<entity name="aggregation" root="true">
<entity-ref name="aggregation-rule" type="map" names="aggregation-rules" method-find-or-create="true"/>
</entity>
<entity name="aggregation-rule">
<attribute name="pattern" value-type="String" key="true"/>
<attribute name="type" value-type="int" />
<attribute name="domain" value-type="String" />
<attribute name="sample" value-type="String" />
<attribute name="display-name" value-type="String" />
<attribute name="creation-date" value-type="Date" format="yyyy-MM-dd HH:mm:ss" />
</entity>
</model>
......@@ -657,6 +657,15 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.AggregationConfigManager</role>
<implementation>com.dianping.cat.system.config.AggregationConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</implementation>
......@@ -1324,16 +1333,6 @@
</requirement>
</requirements>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>aggregation-rule</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>aggregation-rule</logical-table-name>
<physical-table-name>aggregationRule</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>dailygraph</role-hint>
......@@ -1414,15 +1413,6 @@
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>com.dianping.cat.home.dal.report.AggregationRuleDao</role>
<implementation>com.dianping.cat.home.dal.report.AggregationRuleDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.DailygraphDao</role>
<implementation>com.dianping.cat.home.dal.report.DailygraphDao</implementation>
......@@ -2993,15 +2983,15 @@
<requirement>
<role>com.dianping.cat.consumer.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.AggregationRuleDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.AggregationConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3023,17 +3013,17 @@
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.AggregationRuleDao</role>
<implementation>com.dianping.cat.home.dal.report.AggregationRuleDao</implementation>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
<role>com.dianping.cat.consumer.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</implementation>
<role>com.dianping.cat.system.config.AggregationConfigManager</role>
<implementation>com.dianping.cat.system.config.AggregationConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.core.config.ConfigDao</role>
......
......@@ -15,7 +15,6 @@
<table name="weeklyreport"/>
<table name="monthreport"/>
<table name="location"/>
<table name="aggregationRule"/>
<table name="event"/>
<table name="topologyGraph"/>
</group>
......@@ -28,7 +27,7 @@
<table name="scheduledReportSubscription"/>
</group>
</jdbc>
<jdbc package="com.dainping.cat.home.dal" name="user">
<jdbc package="com.dianping.cat.home.dal" name="user">
<datasource>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://192.168.8.44:3306/hawk</url>
......
......@@ -9,4 +9,7 @@
<model package="com.dianping.cat.home.company" name="company">
<sample-model>/Users/youyong/Documents/workspace/cat/cat-home/src/test/resources/com/dianping/cat/system/config/company.xml</sample-model>
</model>
<model package="com.dianping.cat.home.aggreation" name="aggreation">
<sample-model>/Users/youyong/Documents/workspace/cat/cat-home/src/test/resources/com/dianping/cat/system/config/aggreation.xml</sample-model>
</model>
</wizard>
<?xml version="1.0" encoding="utf-8"?>
<aggregation>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://w.51ping.com/shop/{shopId}" sample="http://w.51ping.com/shop/5722322" display-name="http://w.51ping.com/shop/{shopId}" creation-date="2013-06-05 15:42:03"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://i{x}.dpfile.com/{*}" sample="http://i1.dpfile.com/s/j" display-name="http://i{x}.dpfile.com/{*}" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/food " display-name="http://www.dianping.com/{City}/food " creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/wedding" display-name="http://www.dianping.com/{City}/wedding" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/beauty" display-name="http://www.dianping.com/{City}/beauty" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/shopping" display-name="http://www.dianping.com/{City}/shopping" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/GROUP" display-name="http://www.dianping.com/{City}/GROUP" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/car" display-name="http://www.dianping.com/{City}/car" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/hotel" display-name="http://www.dianping.com/{City}/hotel" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/sports" display-name="http://www.dianping.com/{City}/sports" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/{City}/other" display-name="http://www.dianping.com/{City}/other" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/review/{reviewid} " display-name="http://www.dianping.com/review/{reviewid} " creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/photos/{photoid}" display-name="http://www.dianping.com/photos/{photoid}" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/shop/{shopid}" display-name="http://www.dianping.com/shop/{shopid}" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/shoplist/{shopListType}" display-name="http://www.dianping.com/shoplist/{shopListType}" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://www.dianping.com/photoList/{photoListType}" display-name="http://www.dianping.com/photoList/{photoListType}" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://s.dianping.com/{city}/group" display-name="http://s.dianping.com/{city}/group" creation-date="2013-05-20 13:34:00"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://i{x}.static.dp/{*}" sample="http://i{x}.static.dp/s/j" display-name="http://i{x}.static.dp/{*}" creation-date="2013-06-05 15:08:23"/>
<aggregation-rule type="3" domain="FrontEnd" pattern="http://s.51ping.com/topic/{topicId}" sample="http://s.51ping.com/topic/645646" display-name="http://s.51ping.com/topic/{topicId}" creation-date="2013-06-05 15:39:42"/>
</aggregation>
\ No newline at end of file
......@@ -54,8 +54,8 @@
<td>${item.pattern}</td>
<td>${item.displayName}</td>
<td>${item.sample}</td>
<td><a class='btn btn-small btn-primary'href="?op=aggregationUpdate&id=${item.id}">编辑</a>
<a class='delete btn btn-small btn-danger' href="?op=aggregationDelete&id=${item.id}">删除</a></td>
<td><a class='btn btn-small btn-primary'href="?op=aggregationUpdate&pattern=${item.pattern}">编辑</a>
<a class='delete btn btn-small btn-danger' href="?op=aggregationDelete&pattern=${item.pattern}">删除</a></td>
</tr>
</c:forEach></tbody>
</tbody>
......
......@@ -18,7 +18,6 @@
</br>
<form name="aggregationUpdate" id="form" method="post" action="${model.pageUri}?op=aggregationUpdateSubmit">
<table style='width:60%' class='table table-striped table-bordered'>
<input type="hidden" name="id" value="${model.aggregationRule.id}" />
<tr>
<td>报表类型</td>
<td><select id="reportType" name = "aggregation.type">
......
<aggregation>
<aggregation-rule type='3' domain='doamin' pattern='pattern' sample="sample" display-name="name" creation-date="2013-05-20 13:34:00"></aggregation-rule>
<aggregation-rule type='3' domain='doamin' pattern='pattern' sample="sample" display-name="name" creation-date="2013-05-20 13:34:00"></aggregation-rule>
</aggregation>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册