Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
d1c24b27
C
cat
项目概览
梦中观雨
/
cat
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d1c24b27
编写于
5月 15, 2013
作者:
A
ainilife
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refator abtest in cat-home module due to the change of abtest model
上级
60f337ef
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
216 addition
and
120 deletion
+216
-120
cat-core/src/test/resources/com/dianping/cat/abtest/spi/internal/abtest.xml
...resources/com/dianping/cat/abtest/spi/internal/abtest.xml
+1
-1
cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java
.../java/com/dianping/cat/build/CatDatabaseConfigurator.java
+0
-3
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+0
-2
cat-home/src/main/java/com/dianping/cat/system/page/abtest/ABTestReport.java
...ava/com/dianping/cat/system/page/abtest/ABTestReport.java
+13
-4
cat-home/src/main/java/com/dianping/cat/system/page/abtest/AbtestStatus.java
...ava/com/dianping/cat/system/page/abtest/AbtestStatus.java
+5
-5
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Handler.java
...ain/java/com/dianping/cat/system/page/abtest/Handler.java
+72
-42
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-codegen.xml
...e/src/main/resources/META-INF/dal/jdbc/abtest-codegen.xml
+48
-7
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-dal.xml
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-dal.xml
+34
-16
cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml
cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml
+2
-1
cat-home/src/main/webapp/js/abtestAllTest.js
cat-home/src/main/webapp/js/abtestAllTest.js
+3
-15
cat-home/src/main/webapp/jsp/system/abtestAllTest.jsp
cat-home/src/main/webapp/jsp/system/abtestAllTest.jsp
+1
-1
script/Cat.sql
script/Cat.sql
+37
-23
未找到文件。
cat-core/src/test/resources/com/dianping/cat/abtest/spi/internal/abtest.xml
浏览文件 @
d1c24b27
...
...
@@ -16,5 +16,5 @@
<run
/>
</runs>
</case>
<case
/>
<case/>
</abtest-model>
\ No newline at end of file
cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java
浏览文件 @
d1c24b27
...
...
@@ -22,9 +22,6 @@ final class CatDatabaseConfigurator extends AbstractJdbcResourceConfigurator {
defineSimpleTableProviderComponents
(
all
,
"cat"
,
com
.
dianping
.
cat
.
home
.
dal
.
abtest
.
_INDEX
.
getEntityClasses
());
defineDaoComponents
(
all
,
com
.
dianping
.
cat
.
home
.
dal
.
abtest
.
_INDEX
.
getDaoClasses
());
defineSimpleTableProviderComponents
(
all
,
"cat"
,
com
.
dainping
.
cat
.
consumer
.
dal
.
report
.
_INDEX
.
getEntityClasses
());
defineDaoComponents
(
all
,
com
.
dainping
.
cat
.
consumer
.
dal
.
report
.
_INDEX
.
getDaoClasses
());
return
all
;
}
}
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
d1c24b27
...
...
@@ -16,7 +16,6 @@ import com.dainping.cat.consumer.dal.report.ReportDao;
import
com.dainping.cat.consumer.dal.report.TaskDao
;
import
com.dianping.cat.CatHomeModule
;
import
com.dianping.cat.configuration.ServerConfigManager
;
import
com.dianping.cat.home.dal.abtest.AbtestDao
;
import
com.dianping.cat.home.dal.report.DailygraphDao
;
import
com.dianping.cat.home.dal.report.DailyreportDao
;
import
com.dianping.cat.home.dal.report.GraphDao
;
...
...
@@ -208,7 +207,6 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
// for alarm module
all
.
addAll
(
new
AlarmComponentConfigurator
().
defineComponents
());
// for abtest module
return
all
;
}
}
cat-home/src/main/java/com/dianping/cat/system/page/abtest/ABTestReport.java
浏览文件 @
d1c24b27
...
...
@@ -4,39 +4,48 @@ import java.util.Date;
import
java.util.Map
;
import
com.dianping.cat.home.dal.abtest.Abtest
;
import
com.dianping.cat.home.dal.abtest.AbtestRun
;
public
class
ABTestReport
{
private
Abtest
m_entity
;
private
AbtestRun
m_run
;
private
AbtestStatus
m_status
;
private
Map
<
String
,
String
>
m_items
;
public
ABTestReport
(
Abtest
entity
)
{
public
ABTestReport
(
Abtest
entity
,
AbtestRun
run
)
{
m_entity
=
entity
;
m_run
=
run
;
}
public
ABTestReport
(
Abtest
entity
,
Date
now
)
{
public
ABTestReport
(
Abtest
entity
,
AbtestRun
run
,
Date
now
)
{
m_entity
=
entity
;
m_run
=
run
;
setStatus
(
now
);
// TODO m_items setting
}
private
void
setStatus
(
Date
now
)
{
m_status
=
AbtestStatus
.
calculateStatus
(
m_
entity
,
now
);
m_status
=
AbtestStatus
.
calculateStatus
(
m_
run
,
now
);
}
public
Abtest
getEntity
()
{
return
m_entity
;
}
public
AbtestRun
getRun
()
{
return
m_run
;
}
public
void
setStatus
(
AbtestStatus
status
)
{
m_status
=
status
;
}
public
AbtestStatus
getStatus
()
{
return
m_status
;
return
m_status
;
}
public
Map
<
String
,
String
>
getItems
()
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/abtest/AbtestStatus.java
浏览文件 @
d1c24b27
...
...
@@ -3,7 +3,7 @@ package com.dianping.cat.system.page.abtest;
import
java.util.Calendar
;
import
java.util.Date
;
import
com.dianping.cat.home.dal.abtest.Abtest
;
import
com.dianping.cat.home.dal.abtest.Abtest
Run
;
public
enum
AbtestStatus
{
...
...
@@ -23,12 +23,12 @@ public enum AbtestStatus {
return
defaultStatus
;
}
public
static
AbtestStatus
calculateStatus
(
Abtest
abtest
,
Date
now
)
{
if
(
abtest
.
isDisabled
())
{
public
static
AbtestStatus
calculateStatus
(
Abtest
Run
run
,
Date
now
)
{
if
(
run
.
isDisabled
())
{
return
AbtestStatus
.
SUSPENDED
;
}
else
{
Date
startDate
=
abtest
.
getStartDate
();
Date
endDate
=
abtest
.
getEndDate
();
Date
startDate
=
run
.
getStartDate
();
Date
endDate
=
run
.
getEndDate
();
if
(
startDate
!=
null
)
{
calendar
.
setTime
(
startDate
);
...
...
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Handler.java
浏览文件 @
d1c24b27
...
...
@@ -27,6 +27,9 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.home.dal.abtest.Abtest
;
import
com.dianping.cat.home.dal.abtest.AbtestDao
;
import
com.dianping.cat.home.dal.abtest.AbtestEntity
;
import
com.dianping.cat.home.dal.abtest.AbtestRun
;
import
com.dianping.cat.home.dal.abtest.AbtestRunDao
;
import
com.dianping.cat.home.dal.abtest.AbtestRunEntity
;
import
com.dianping.cat.home.dal.abtest.GroupStrategy
;
import
com.dianping.cat.home.dal.abtest.GroupStrategyDao
;
import
com.dianping.cat.home.dal.abtest.GroupStrategyEntity
;
...
...
@@ -46,6 +49,9 @@ public class Handler implements PageHandler<Context>, LogEnabled {
@Inject
private
AbtestDao
m_abtestDao
;
@Inject
private
AbtestRunDao
m_abtestRunDao
;
@Inject
private
ProjectDao
m_projectDao
;
...
...
@@ -66,13 +72,19 @@ public class Handler implements PageHandler<Context>, LogEnabled {
if
(
ctx
.
getHttpServletRequest
().
getMethod
().
equalsIgnoreCase
(
"post"
))
{
if
(
action
==
Action
.
CREATE
)
{
Abtest
abtest
=
new
Abtest
();
// TODO need more parameters for abtest
abtest
.
setName
(
payload
.
getName
());
abtest
.
setDescription
(
payload
.
getDescription
());
abtest
.
setStartDate
(
payload
.
getStartDate
());
abtest
.
setEndDate
(
payload
.
getEndDate
());
abtest
.
setGroupStrategy
(
payload
.
getStrategyId
());
abtest
.
setDomains
(
StringUtils
.
join
(
payload
.
getDomains
(),
','
));
abtest
.
setStrategyId
(
payload
.
getStrategyId
());
abtest
.
setStrategyConfig
(
payload
.
getStrategyConfig
().
getBytes
(
CHARSET
));
AbtestRun
run
=
new
AbtestRun
();
run
.
setStartDate
(
payload
.
getStartDate
());
run
.
setEndDate
(
payload
.
getEndDate
());
run
.
setDomains
(
StringUtils
.
join
(
payload
.
getDomains
(),
','
));
run
.
setStrategyConfiguration
(
payload
.
getStrategyConfig
());
try
{
m_abtestDao
.
insert
(
abtest
);
}
catch
(
DalException
e
)
{
...
...
@@ -81,14 +93,19 @@ public class Handler implements PageHandler<Context>, LogEnabled {
}
}
else
if
(
action
==
Action
.
DETAIL
)
{
Abtest
abtest
=
new
Abtest
();
abtest
.
setKeyId
(
payload
.
getId
());
abtest
.
setName
(
payload
.
getName
());
abtest
.
setDescription
(
payload
.
getDescription
());
abtest
.
setStartDate
(
payload
.
getStartDate
());
abtest
.
setEndDate
(
payload
.
getEndDate
());
abtest
.
setDomains
(
StringUtils
.
join
(
payload
.
getDomains
(),
','
));
abtest
.
setStrategyId
(
payload
.
getStrategyId
());
abtest
.
setStrategyConfig
(
payload
.
getStrategyConfig
().
getBytes
(
CHARSET
));
AbtestRun
run
=
new
AbtestRun
();
run
.
setStartDate
(
payload
.
getStartDate
());
run
.
setEndDate
(
payload
.
getEndDate
());
run
.
setDomains
(
StringUtils
.
join
(
payload
.
getDomains
(),
','
));
run
.
setStrategyConfiguration
(
payload
.
getStrategyConfig
());
try
{
m_abtestDao
.
updateByPK
(
abtest
,
AbtestEntity
.
UPDATESET_FULL
);
}
catch
(
DalException
e
)
{
...
...
@@ -112,20 +129,20 @@ public class Handler implements PageHandler<Context>, LogEnabled {
for
(
String
id
:
ids
)
{
System
.
out
.
println
(
"change status for "
+
id
);
try
{
int
int
ID
=
Integer
.
parseInt
(
id
);
Abtest
abtest
=
m_abtestDao
.
findByPK
(
intID
,
Abtest
Entity
.
READSET_FULL
);
int
run
ID
=
Integer
.
parseInt
(
id
);
Abtest
Run
run
=
m_abtestRunDao
.
findByPK
(
runID
,
AbtestRun
Entity
.
READSET_FULL
);
if
(
payload
.
getDisableAbtest
()
==
-
1
)
{
// suspend
if
(!
abtest
.
isDisabled
())
{
abtest
.
setDisabled
(
true
);
m_abtest
Dao
.
updateByPK
(
abtest
,
AbtestEntity
.
UPDATESET_DISABLE
);
if
(!
run
.
isDisabled
())
{
run
.
setDisabled
(
true
);
m_abtest
RunDao
.
updateByPK
(
run
,
AbtestRunEntity
.
UPDATESET_STATUS
);
}
else
{
error
.
addArgument
(
id
,
"Abtest "
+
id
+
" has been already suspended!"
);
}
}
else
if
(
payload
.
getDisableAbtest
()
==
1
)
{
// resume
if
(
abtest
.
isDisabled
())
{
abtest
.
setDisabled
(
false
);
m_abtest
Dao
.
updateByPK
(
abtest
,
AbtestEntity
.
UPDATESET_DISABLE
);
if
(
run
.
isDisabled
())
{
run
.
setDisabled
(
false
);
m_abtest
RunDao
.
updateByPK
(
run
,
AbtestRunEntity
.
UPDATESET_STATUS
);
}
else
{
error
.
addArgument
(
id
,
"Abtest "
+
id
+
" has been already active!"
);
}
...
...
@@ -189,36 +206,48 @@ public class Handler implements PageHandler<Context>, LogEnabled {
Date
now
=
new
Date
();
try
{
entities
=
m_abtestDao
.
findAll
Abtest
(
AbtestEntity
.
READSET_FULL
);
entities
=
m_abtestDao
.
findAll
(
AbtestEntity
.
READSET_FULL
);
}
catch
(
DalException
e
)
{
Cat
.
logError
(
e
);
}
List
<
Abtest
>
filterTests
=
new
ArrayList
<
Abtest
>();
List
<
ABTestReport
>
filterReports
=
new
ArrayList
<
ABTestReport
>();
List
<
ABTestReport
>
totalReports
=
new
ArrayList
<
ABTestReport
>();
int
createdCount
=
0
,
readyCount
=
0
,
runningCount
=
0
,
terminatedCount
=
0
,
suspendedCount
=
0
;
for
(
Abtest
abtest
:
entities
)
{
ABTestReport
report
=
new
ABTestReport
(
abtest
,
now
);
if
(
status
!=
null
&&
report
.
getStatus
()
==
status
)
{
filterTests
.
add
(
abtest
);
List
<
AbtestRun
>
runs
=
new
ArrayList
<
AbtestRun
>();
try
{
runs
=
m_abtestRunDao
.
findByCaseId
(
abtest
.
getId
(),
AbtestRunEntity
.
READSET_FULL
);
}
catch
(
DalException
e
)
{
Cat
.
logError
(
e
);
}
switch
(
report
.
getStatus
())
{
case
CREATED:
createdCount
++;
break
;
case
READY:
readyCount
++;
break
;
case
RUNNING:
runningCount
++;
break
;
case
TERMINATED:
terminatedCount
++;
break
;
case
SUSPENDED:
suspendedCount
++;
break
;
for
(
AbtestRun
run
:
runs
){
ABTestReport
report
=
new
ABTestReport
(
abtest
,
run
,
now
);
totalReports
.
add
(
report
);
if
(
status
!=
null
&&
report
.
getStatus
()
==
status
)
{
filterReports
.
add
(
report
);
}
switch
(
report
.
getStatus
())
{
case
CREATED:
createdCount
++;
break
;
case
READY:
readyCount
++;
break
;
case
RUNNING:
runningCount
++;
break
;
case
TERMINATED:
terminatedCount
++;
break
;
case
SUSPENDED:
suspendedCount
++;
break
;
}
}
}
...
...
@@ -227,11 +256,12 @@ public class Handler implements PageHandler<Context>, LogEnabled {
model
.
setRunningCount
(
runningCount
);
model
.
setTerminatedCount
(
terminatedCount
);
model
.
setSuspendedCount
(
suspendedCount
);
if
(
status
!=
null
)
{
entities
=
filterTes
ts
;
totalReports
=
filterRepor
ts
;
}
int
totalSize
=
entitie
s
.
size
();
int
totalSize
=
totalReport
s
.
size
();
int
totalPages
=
totalSize
%
m_pageSize
==
0
?
(
totalSize
/
m_pageSize
)
:
(
totalSize
/
m_pageSize
+
1
);
// safe guarder for pageNum
...
...
@@ -248,7 +278,7 @@ public class Handler implements PageHandler<Context>, LogEnabled {
int
fromIndex
=
(
payload
.
getPageNum
()
-
1
)
*
m_pageSize
;
int
toIndex
=
(
fromIndex
+
m_pageSize
)
<=
totalSize
?
(
fromIndex
+
m_pageSize
)
:
totalSize
;
for
(
int
i
=
fromIndex
;
i
<
toIndex
;
i
++)
{
reports
.
add
(
new
ABTestReport
(
entities
.
get
(
i
),
now
));
reports
.
add
(
totalReports
.
get
(
i
));
}
model
.
setTotalPages
(
totalPages
);
...
...
@@ -258,7 +288,7 @@ public class Handler implements PageHandler<Context>, LogEnabled {
private
List
<
GroupStrategy
>
getAllGroupStrategys
()
{
try
{
return
m_groupStrategyDao
.
findAll
GroupStrategy
(
GroupStrategyEntity
.
READSET_FULL
);
return
m_groupStrategyDao
.
findAll
ByStatus
(
1
,
GroupStrategyEntity
.
READSET_FULL
);
}
catch
(
DalException
e
)
{
m_logger
.
error
(
e
.
getMessage
(),
e
);
Cat
.
logError
(
e
);
...
...
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-codegen.xml
浏览文件 @
d1c24b27
<?xml version="1.0" encoding="UTF-8"?>
<entities>
<entity
name=
"abtest"
table=
"abtest"
alias=
"a"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"45"
nullable=
"false"
/>
<member
name=
"owner"
field=
"owner"
value-type=
"String"
length=
"45"
nullable=
"false"
/>
<member
name=
"group-strategy"
field=
"group_strategy"
value-type=
"int"
length=
"10"
/>
<member
name=
"domains"
field=
"domains"
value-type=
"String"
length=
"200"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
/>
<member
name=
"modified-date"
field=
"modified_date"
value-type=
"Date"
/>
<member
name=
"description"
field=
"description"
value-type=
"String"
length=
"512"
/>
<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=
"abtest-run"
table=
"abtest_run"
alias=
"ar"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"case-id"
field=
"case_id"
value-type=
"int"
length=
"10"
nullable=
"false"
/>
<member
name=
"start-date"
field=
"start_date"
value-type=
"Date"
/>
<member
name=
"end-date"
field=
"end_date"
value-type=
"Date"
/>
<member
name=
"disabled"
field=
"disabled"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"domains"
field=
"domains"
value-type=
"String"
length=
"100"
nullable=
"false"
/>
<member
name=
"strategy-id"
field=
"strategy_id"
value-type=
"int"
length=
"10"
nullable=
"false"
/>
<member
name=
"strategy-config"
field=
"strategy_config"
value-type=
"byte[]"
length=
"65535"
/>
<member
name=
"description"
field=
"description"
value-type=
"String"
length=
"100"
/>
<member
name=
"strategy-configuration"
field=
"strategy_configuration"
value-type=
"String"
length=
"1024"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"modif
y-date"
field=
"modify_date"
value-type=
"Dat
e"
/>
<member
name=
"modif
ied-date"
field=
"modified_date"
value-type=
"Date"
nullable=
"fals
e"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<readsets>
...
...
@@ -44,11 +83,13 @@
</query>
</query-defs>
</entity>
<entity
name=
"group-strategy"
table=
"group
Strategy"
alias=
"g
"
>
<entity
name=
"group-strategy"
table=
"group
_strategy"
alias=
"gs
"
>
<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=
"45"
nullable=
"false"
/>
<member
name=
"alias"
field=
"alias"
value-type=
"String"
length=
"45"
nullable=
"false"
/>
<member
name=
"class-name"
field=
"className"
value-type=
"String"
length=
"45"
nullable=
"false"
/>
<member
name=
"classname"
field=
"classname"
value-type=
"String"
length=
"45"
nullable=
"false"
/>
<member
name=
"configuration"
field=
"configuration"
value-type=
"String"
length=
"512"
/>
<member
name=
"status"
field=
"status"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"description"
field=
"description"
value-type=
"String"
length=
"45"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
...
...
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-dal.xml
浏览文件 @
d1c24b27
...
...
@@ -2,32 +2,50 @@
<entities
do-package=
"com.dianping.cat.home.dal.abtest"
gen=
"true"
>
<entity
name=
"abtest"
table=
"abtest"
alias=
"a"
>
<member
name=
"creation-date"
insert-expr=
"NOW()"
/>
<member
name=
"modify-date"
insert-expr=
"NOW()"
update-expr=
"NOW()"
/>
<member
name=
"modified-date"
insert-expr=
"NOW()"
update-expr=
"NOW()"
/>
<query-defs>
<query
name=
"find-all"
type=
"SELECT"
multiple=
"true"
>
<statement>
<![CDATA[
SELECT <FIELDS/>
FROM
<TABLE/>
ORDER BY
<FIELD
name=
'creation-date'
/>
DESC
]]>
</statement>
</query>
</query-defs>
</entity>
<entity
name=
"abtest-run"
table=
"abtest_run"
alias=
"ar"
>
<member
name=
"disabled"
field=
"disabled"
value-type=
"boolean"
length=
"3"
nullable=
"false"
/>
<member
name=
"creation-date"
insert-expr=
"NOW()"
/>
<member
name=
"modified-date"
insert-expr=
"NOW()"
update-expr=
"NOW()"
/>
<updatesets>
<updateset
name=
"DISABLE
"
>
<member
name=
"disabled
"
/>
<member
name=
"modify-date
"
/>
</updateset>
</updatesets>
<updateset
name=
"STATUS
"
>
<member
name=
"disabled"
field=
"disabled"
value-type=
"boolean"
length=
"3"
nullable=
"false
"
/>
<member
name=
"modified-date"
insert-expr=
"NOW()"
update-expr=
"NOW()
"
/>
</updateset>
</updatesets>
<query-defs>
<query
name=
"find-all-abtest"
type=
"SELECT"
multiple=
"true"
>
<query
name=
"find-by-case-id"
type=
"SELECT"
multiple=
"true"
>
<param
name=
"case-id"
/>
<statement>
<![CDATA[
SELECT <FIELDS/>
FROM
<TABLE/>
ORDER BY
<FIELD
name=
'creation-date'
/>
DESC
FROM
<TABLE/>
WHERE
<FIELD
name=
'case-id'
/>
= ${case-id}
]]>
</statement>
</query>
</query-defs>
</entity>
<entity
name=
"group-strategy"
table=
"groupStrategy"
alias=
"g"
>
<query-defs>
<query
name=
"find-all-groupStrategy"
type=
"SELECT"
multiple=
"true"
>
<statement>
<![CDATA[
<entity
name=
"group-strategy"
table=
"group_strategy"
alias=
"gs"
>
<query-defs>
<query
name=
"find-all-by-status"
type=
"SELECT"
multiple=
"true"
>
<param
name=
"status"
/>
<statement>
<![CDATA[
SELECT <FIELDS/>
FROM
<TABLE/>
ORDER BY
<FIELD
name=
'id'
/>
FROM
<TABLE/>
WHERE
<FIELD
name=
'status'
/>
= ${status}
]]>
</statement>
</query>
</query-defs>
</entity>
</query>
</query-defs>
</entity>
</entities>
cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml
浏览文件 @
d1c24b27
...
...
@@ -26,7 +26,8 @@
</group>
<group
name=
"abtest"
package=
"com.dianping.cat.home.dal.abtest"
>
<table
name=
"abtest"
/>
<table
name=
"groupStrategy"
/>
<table
name=
"abtest_run"
/>
<table
name=
"group_strategy"
/>
</group>
</jdbc>
<jdbc
package=
"com.dainping.cat.home.dal"
name=
"user"
>
...
...
cat-home/src/main/webapp/js/abtestAllTest.js
浏览文件 @
d1c24b27
...
...
@@ -18,13 +18,7 @@ $(document)
var
checkbox
=
$
(
"
.table input[type='checkbox']:checked
"
);
var
id
=
""
;
for
(
var
i
=
0
;
i
<
checkbox
.
length
;
i
++
)
{
id
=
id
+
$
(
"
:nth-child(2)
"
,
$
(
checkbox
[
i
])
.
closest
(
'
tr
'
))
.
html
()
+
"
-
"
;
id
=
id
+
$
(
"
:nth-child(2)
"
,
$
(
checkbox
[
i
]).
closest
(
'
tr
'
)).
html
()
+
"
-
"
;
}
url
=
window
.
location
.
href
;
index
=
url
.
indexOf
(
"
&suspend
"
);
...
...
@@ -33,7 +27,7 @@ $(document)
.
substring
(
0
,
index
)
+
"
&suspend=-1&ids=
"
+
id
;
}
else
{
if
(
url
.
indexOf
(
"
?
"
)
==
-
1
)
{
if
(
url
.
indexOf
(
"
?
"
)
==
-
1
)
{
url
=
url
+
'
?
'
;
}
window
.
location
.
href
=
url
...
...
@@ -48,13 +42,7 @@ $(document)
var
checkbox
=
$
(
"
.table input[type='checkbox']:checked
"
);
var
id
=
""
;
for
(
var
i
=
0
;
i
<
checkbox
.
length
;
i
++
)
{
id
=
id
+
$
(
"
:nth-child(2)
"
,
$
(
checkbox
[
i
])
.
closest
(
'
tr
'
))
.
html
()
+
"
-
"
;
id
=
id
+
$
(
"
:nth-child(2)
"
,
$
(
checkbox
[
i
]).
closest
(
'
tr
'
)).
html
()
+
"
-
"
;
}
url
=
window
.
location
.
href
;
index
=
url
.
indexOf
(
"
&suspend
"
);
...
...
cat-home/src/main/webapp/jsp/system/abtestAllTest.jsp
浏览文件 @
d1c24b27
...
...
@@ -170,7 +170,7 @@
<c:forEach
var=
"item"
items=
"
${
model
.
reports
}
"
>
<tr
class=
"middle center rowlink"
>
<td
class=
"nolink"
style=
"padding-bottom: 8px"
><input
type=
"checkbox"
/></td>
<td><a
href=
"abtest?op=report&id=${item.
entity.id}"
>
${item.entity
.id}
</a></td>
<td><a
href=
"abtest?op=report&id=${item.
run.id}"
>
${item.run
.id}
</a></td>
<td>
${item.entity.name}
</td>
<td>
1000
</td>
<td>
10%
</td>
...
...
script/Cat.sql
浏览文件 @
d1c24b27
...
...
@@ -245,29 +245,43 @@ CREATE TABLE `project` (
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
COMMENT
=
'项目基本信息'
;
CREATE
TABLE
`groupStrategy`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`name`
varchar
(
45
)
NOT
NULL
COMMENT
'GroupStrategy的名字'
,
`alias`
varchar
(
45
)
NOT
NULL
COMMENT
'GroupStrategy的英文名'
,
`className`
varchar
(
45
)
NOT
NULL
COMMENT
'GroupStrategy的class名字'
,
`description`
varchar
(
45
)
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
$$
CREATE
TABLE
`abtest`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
COMMENT
'ID'
,
`name`
varchar
(
45
)
NOT
NULL
COMMENT
'abtest的名字'
,
`start_date`
datetime
DEFAULT
NULL
COMMENT
'开始时间'
,
`end_date`
datetime
DEFAULT
NULL
COMMENT
'结束时间'
,
`disabled`
tinyint
(
4
)
NOT
NULL
COMMENT
'是否有效'
,
`domains`
varchar
(
100
)
NOT
NULL
COMMENT
'属于的domain,用分号分割'
,
`strategy_id`
int
(
11
)
NOT
NULL
COMMENT
'分组策略ID'
,
`strategy_config`
blob
COMMENT
'策略配置'
,
`description`
varchar
(
100
)
DEFAULT
NULL
COMMENT
'实验描述'
,
`creation_date`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`modify_date`
datetime
DEFAULT
NULL
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
24
DEFAULT
CHARSET
=
utf8
$$
CREATE
TABLE
`abtest`
(
`id`
int
(
11
)
NOT
NULL
COMMENT
'ID'
,
`name`
varchar
(
45
)
NOT
NULL
COMMENT
'名字'
,
`owner`
varchar
(
45
)
NOT
NULL
COMMENT
'case的Owner'
,
`group_strategy`
int
(
11
)
DEFAULT
NULL
COMMENT
'分组策略ID'
,
`domains`
varchar
(
200
)
DEFAULT
NULL
COMMENT
'Domains,分号分割'
,
`creation_date`
datetime
DEFAULT
NULL
COMMENT
'创建时间'
,
`modified_date`
datetime
DEFAULT
NULL
COMMENT
'上次修改时间'
,
`description`
varchar
(
512
)
DEFAULT
NULL
COMMENT
'描述'
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
CREATE
TABLE
`abtest_run`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
COMMENT
'ID'
,
`case_id`
int
(
11
)
NOT
NULL
,
`start_date`
datetime
DEFAULT
NULL
COMMENT
'开始时间'
,
`end_date`
datetime
DEFAULT
NULL
COMMENT
'结束时间'
,
`disabled`
tinyint
(
4
)
NOT
NULL
COMMENT
'是否有效'
,
`domains`
varchar
(
100
)
NOT
NULL
COMMENT
'属于的domain,用分号分割'
,
`strategy_configuration`
varchar
(
1024
)
DEFAULT
NULL
COMMENT
'策略配置'
,
`creation_date`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`modified_date`
datetime
NOT
NULL
COMMENT
'上次修改时间'
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
24
DEFAULT
CHARSET
=
utf8
CREATE
TABLE
`group_strategy`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`name`
varchar
(
45
)
NOT
NULL
COMMENT
'GroupStrategy的名字'
,
`alias`
varchar
(
45
)
NOT
NULL
COMMENT
'GroupStrategy的英文名'
,
`classname`
varchar
(
45
)
NOT
NULL
COMMENT
'GroupStrategy的class名字'
,
`configuration`
varchar
(
512
)
DEFAULT
NULL
COMMENT
'配置的schema'
,
`status`
tinyint
(
4
)
NOT
NULL
COMMENT
'是否开/关'
,
`description`
varchar
(
45
)
DEFAULT
NULL
COMMENT
'描述'
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录