diff --git a/cat-home/src/main/java/com/dianping/cat/system/page/config/ConfigModificationService.java b/cat-home/src/main/java/com/dianping/cat/system/page/config/ConfigModificationService.java new file mode 100644 index 0000000000000000000000000000000000000000..93f39177e5948415b8a327b3702000525ec5144b --- /dev/null +++ b/cat-home/src/main/java/com/dianping/cat/system/page/config/ConfigModificationService.java @@ -0,0 +1,32 @@ +package com.dianping.cat.system.page.config; + +import java.util.Date; + +import org.unidal.lookup.annotation.Inject; + +import com.dianping.cat.Cat; +import com.dianping.cat.home.dal.report.ConfigModification; +import com.dianping.cat.home.dal.report.ConfigModificationDao; +import com.dianping.cat.report.page.JsonBuilder; + +public class ConfigModificationService { + + @Inject + ConfigModificationDao m_configModificationDao; + + public void store(String userName, String accountName, Payload payload) { + ConfigModification modification = m_configModificationDao.createLocal(); + + modification.setUserName(userName); + modification.setAccountName(accountName); + modification.setActionName(payload.getAction().getName()); + modification.setDate(new Date()); + modification.setArgument(new JsonBuilder().toJson(payload)); + + try { + m_configModificationDao.insert(modification); + } catch (Exception ex) { + Cat.logError(ex); + } + } +} diff --git a/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java b/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java index 4f9d31558016341e53c4997e95edbf1359137bfe..d3ddd01e5430dc953354d2821f013507799a4a7f 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java @@ -1,6 +1,7 @@ package com.dianping.cat.system.page.config; import java.io.IOException; +import java.net.URLDecoder; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -13,6 +14,7 @@ import java.util.Map.Entry; import java.util.Set; import javax.servlet.ServletException; +import javax.servlet.http.Cookie; import org.codehaus.plexus.util.StringUtils; import org.hsqldb.lib.StringUtil; @@ -129,6 +131,9 @@ public class Handler implements PageHandler { @Inject private RouterConfigManager m_routerConfigManager; + @Inject + private ConfigModificationService m_modificationService; + private void deleteAggregationRule(Payload payload) { m_aggreationConfigManager.deleteAggregationRule(payload.getPattern()); } @@ -230,6 +235,8 @@ public class Handler implements PageHandler { Model model = new Model(ctx); Payload payload = ctx.getPayload(); + storeModifyInfo(ctx, payload); + model.setPage(SystemPage.CONFIG); Action action = payload.getAction(); @@ -630,6 +637,31 @@ public class Handler implements PageHandler { return project; } + private void storeModifyInfo(Context ctx, Payload payload) { + Cookie cookie = ctx.getCookie("ct"); + + if (cookie != null) { + String cookieValue = cookie.getValue(); + + try { + String[] values = cookieValue.split("\\|"); + String userName = values[0]; + String account = values[1]; + + if (userName.startsWith("\"")) { + userName = userName.substring(1, userName.length() - 1); + } + userName = URLDecoder.decode(userName, "UTF-8"); + + m_modificationService.store(userName, account, payload); + } catch (Exception ex) { + Cat.logError("store cookie fail:" + cookieValue, new RuntimeException()); + } + } else { + Cat.logError("cannot get cookie info", new RuntimeException()); + } + } + private void updateAggregationRule(Payload payload) { AggregationRule proto = payload.getRule(); m_aggreationConfigManager.insertAggregationRule(proto); diff --git a/cat-home/src/main/resources/META-INF/dal/jdbc/report-codegen.xml b/cat-home/src/main/resources/META-INF/dal/jdbc/report-codegen.xml index e4d182aceccdebb665dd8825aae2e37f8eb2cfe1..62012c85f1f960471f2ec107c44e55eac40f144c 100644 --- a/cat-home/src/main/resources/META-INF/dal/jdbc/report-codegen.xml +++ b/cat-home/src/main/resources/META-INF/dal/jdbc/report-codegen.xml @@ -166,6 +166,46 @@ + + + + + + + + + + + + + + + + + + + + + FROM + WHERE = ${key-id}]]> + + + () + VALUES()]]> + + + + + SET + WHERE = ${key-id}]]> + + + + + WHERE = ${key-id}]]> + + + diff --git a/cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml b/cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml index cfec4fa2e07e12603da4a90437bfb812b97079b2..a6f5c53f6da69ae3837940ea2ca75bf050f9b387 100644 --- a/cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml +++ b/cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml @@ -267,4 +267,7 @@ + + + \ No newline at end of file diff --git a/cat-home/src/main/resources/META-INF/plexus/components.xml b/cat-home/src/main/resources/META-INF/plexus/components.xml index 10acadf60656fee4790f645c453d3118bcc7a864..d84d0f63093cce233b3139b4b243b5a0b262d338 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -2016,6 +2016,16 @@ cat + + org.unidal.dal.jdbc.mapping.TableProvider + config-modification + org.unidal.dal.jdbc.mapping.SimpleTableProvider + + config-modification + config_modification + cat + + org.unidal.dal.jdbc.mapping.TableProvider daily-report-content @@ -2112,6 +2122,15 @@ + + com.dianping.cat.home.dal.report.ConfigModificationDao + com.dianping.cat.home.dal.report.ConfigModificationDao + + + org.unidal.dal.jdbc.QueryEngine + + + com.dianping.cat.home.dal.report.DailyReportContentDao com.dianping.cat.home.dal.report.DailyReportContentDao @@ -4668,6 +4687,9 @@ com.dianping.cat.system.config.RouterConfigManager + + com.dianping.cat.system.page.config.ConfigModificationService + @@ -4775,6 +4797,24 @@ + + com.dianping.cat.system.page.config.ConfigModificationService + com.dianping.cat.system.page.config.ConfigModificationService + + + com.dianping.cat.home.dal.report.ConfigModificationDao + + + + + com.dianping.cat.home.dal.report.ConfigModificationDao + com.dianping.cat.home.dal.report.ConfigModificationDao + + + org.unidal.dal.jdbc.QueryEngine + + + com.dianping.cat.system.page.plugin.Handler com.dianping.cat.system.page.plugin.Handler diff --git a/cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml b/cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml index b616172fa22fb09a646e1f7290d56f1d33a88a48..d77085a861623e398a3b1ca921309483469ef822 100644 --- a/cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml +++ b/cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml @@ -18,7 +18,8 @@
-
+
+
diff --git a/cat-home/src/main/webapp/WEB-INF/tags/body.tag b/cat-home/src/main/webapp/WEB-INF/tags/body.tag index f733b64a8c745436b589dca8209388b2069d583b..a012755b2097b23da8a2dc24c31c79e795f52af6 100755 --- a/cat-home/src/main/webapp/WEB-INF/tags/body.tag +++ b/cat-home/src/main/webapp/WEB-INF/tags/body.tag @@ -179,7 +179,7 @@ loginInfo.innerHTML =''+name +' 登出'; }else{ var loginInfo=document.getElementById('loginInfo'); - loginInfo.innerHTML ='登陆'; + loginInfo.innerHTML ='登录'; } }); diff --git a/script/Cat.sql b/script/Cat.sql index b0ffc955c61ac4b0059d30486723c2cb05dd0b45..febb8379af7548e0d22ca1e5865b8b4d06989fb3 100644 --- a/script/Cat.sql +++ b/script/Cat.sql @@ -385,3 +385,14 @@ CREATE TABLE `overload` ( PRIMARY KEY (`id`), UNIQUE KEY `reported` (`report_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1242 DEFAULT CHARSET=utf8 COMMENT='过大容量表'; + +CREATE TABLE `config_modification` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID', + `user_name` varchar(64) NOT NULL COMMENT '用户名', + `account_name` varchar(64) NOT NULL COMMENT '账户名', + `action_name` varchar(64) NOT NULL COMMENT 'action名', + `argument` longtext COMMENT '参数内容', + `date` datetime NOT NULL COMMENT '修改时间', + `creation_date` datetime NOT NULL COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1242 DEFAULT CHARSET=utf8 COMMENT='配置修改记录表';