Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
bda27eeb
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,发现更多精彩内容 >>
提交
bda27eeb
编写于
5月 06, 2013
作者:
D
damon.zhu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor AbtestStatus
上级
22ab0979
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
200 addition
and
165 deletion
+200
-165
cat-home/src/main/java/com/dianping/cat/system/page/abtest/ABTestEntityStatus.java
...m/dianping/cat/system/page/abtest/ABTestEntityStatus.java
+0
-32
cat-home/src/main/java/com/dianping/cat/system/page/abtest/ABTestReport.java
...ava/com/dianping/cat/system/page/abtest/ABTestReport.java
+10
-41
cat-home/src/main/java/com/dianping/cat/system/page/abtest/AbtestStatus.java
...ava/com/dianping/cat/system/page/abtest/AbtestStatus.java
+75
-0
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Handler.java
...ain/java/com/dianping/cat/system/page/abtest/Handler.java
+17
-13
cat-home/src/main/java/com/dianping/cat/system/page/abtest/JspFile.java
...ain/java/com/dianping/cat/system/page/abtest/JspFile.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/abtest/JspViewer.java
...n/java/com/dianping/cat/system/page/abtest/JspViewer.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Model.java
.../main/java/com/dianping/cat/system/page/abtest/Model.java
+55
-46
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Payload.java
...ain/java/com/dianping/cat/system/page/abtest/Payload.java
+7
-6
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-dal.xml
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-dal.xml
+1
-2
cat-home/src/main/webapp/img/CREATED_black_small.png
cat-home/src/main/webapp/img/CREATED_black_small.png
+0
-0
cat-home/src/main/webapp/img/CREATED_colored_big.png
cat-home/src/main/webapp/img/CREATED_colored_big.png
+0
-0
cat-home/src/main/webapp/jsp/system/abtestAllTest.jsp
cat-home/src/main/webapp/jsp/system/abtestAllTest.jsp
+33
-23
未找到文件。
cat-home/src/main/java/com/dianping/cat/system/page/abtest/ABTestEntityStatus.java
已删除
100644 → 0
浏览文件 @
22ab0979
package
com.dianping.cat.system.page.abtest
;
public
enum
ABTestEntityStatus
{
RUNNING
(
0
),
STOPPED
(
1
),
READY
(
2
),
DISABLED
(
3
),
DEFALUT
(
4
);
public
static
ABTestEntityStatus
getByName
(
String
name
,
ABTestEntityStatus
defaultStatus
)
{
for
(
ABTestEntityStatus
status
:
ABTestEntityStatus
.
values
())
{
if
(
status
.
getName
().
equalsIgnoreCase
(
name
))
{
return
status
;
}
}
return
defaultStatus
;
}
private
int
m_status
;
private
static
final
String
[]
s_status
=
{
"Running"
,
"Stopped"
,
"Ready"
,
"Disabled"
,
"Default"
};
private
ABTestEntityStatus
(
int
status
)
{
m_status
=
status
;
}
public
int
getStatus
()
{
return
m_status
;
}
private
String
getName
()
{
return
s_status
[
m_status
];
}
}
cat-home/src/main/java/com/dianping/cat/system/page/abtest/ABTestReport.java
浏览文件 @
bda27eeb
package
com.dianping.cat.system.page.abtest
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Map
;
...
...
@@ -8,65 +7,35 @@ import com.dianping.cat.home.dal.abtest.Abtest;
public
class
ABTestReport
{
private
static
Date
s_startTime
;
private
static
Date
s_endTime
;
static
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
2000
,
1
,
1
);
s_startTime
=
calendar
.
getTime
();
calendar
.
set
(
2100
,
1
,
1
);
s_endTime
=
calendar
.
getTime
();
}
private
Abtest
m_entity
;
private
A
BTestEntity
Status
m_status
;
private
A
btest
Status
m_status
;
private
Map
<
String
,
String
>
m_items
;
public
ABTestReport
(
Abtest
entity
){
public
ABTestReport
(
Abtest
entity
)
{
m_entity
=
entity
;
}
public
ABTestReport
(
Abtest
entity
,
Date
now
)
{
m_entity
=
entity
;
if
(
m_entity
.
getStartDate
()
==
null
)
{
m_entity
.
setStartDate
(
s_startTime
);
}
if
(
m_entity
.
getEndDate
()
==
null
)
{
m_entity
.
setEndDate
(
s_endTime
);
}
setStatus
(
now
);
// TODO m_items
// TODO m_items setting
}
private
void
setStatus
(
Date
now
)
{
if
(
now
.
before
(
m_entity
.
getStartDate
()))
{
m_status
=
ABTestEntityStatus
.
READY
;
}
else
if
(
now
.
before
(
m_entity
.
getEndDate
()))
{
if
(
m_entity
.
isDisabled
())
{
m_status
=
ABTestEntityStatus
.
STOPPED
;
}
else
{
m_status
=
ABTestEntityStatus
.
RUNNING
;
}
}
else
{
m_status
=
ABTestEntityStatus
.
DISABLED
;
}
m_status
=
AbtestStatus
.
calculateStatus
(
m_entity
,
now
);
}
public
Abtest
getEntity
()
{
return
m_entity
;
}
public
void
setStatus
(
ABTestEntityStatus
status
)
{
m_status
=
status
;
}
public
ABTestEntityStatus
getStatus
()
{
public
void
setStatus
(
AbtestStatus
status
)
{
m_status
=
status
;
}
public
AbtestStatus
getStatus
()
{
return
m_status
;
}
...
...
cat-home/src/main/java/com/dianping/cat/system/page/abtest/AbtestStatus.java
0 → 100644
浏览文件 @
bda27eeb
package
com.dianping.cat.system.page.abtest
;
import
java.util.Calendar
;
import
java.util.Date
;
import
com.dianping.cat.home.dal.abtest.Abtest
;
public
enum
AbtestStatus
{
CREATED
,
READY
,
RUNNING
,
TERMINATED
,
SUSPENDED
;
private
static
final
int
s_deltaTime
=
-
1
;
// -1 hour
private
static
final
Calendar
calendar
=
Calendar
.
getInstance
();
public
static
AbtestStatus
getByName
(
String
name
,
AbtestStatus
defaultStatus
)
{
for
(
AbtestStatus
status
:
AbtestStatus
.
values
())
{
if
(
status
.
name
().
equalsIgnoreCase
(
name
))
{
return
status
;
}
}
return
defaultStatus
;
}
public
static
AbtestStatus
calculateStatus
(
Abtest
abtest
,
Date
now
)
{
if
(
abtest
.
isDisabled
())
{
return
AbtestStatus
.
SUSPENDED
;
}
else
{
Date
startDate
=
abtest
.
getStartDate
();
Date
endDate
=
abtest
.
getEndDate
();
if
(
startDate
!=
null
)
{
calendar
.
setTime
(
startDate
);
calendar
.
add
(
Calendar
.
HOUR
,
s_deltaTime
);
Date
startDelta
=
calendar
.
getTime
();
if
(
now
.
before
(
startDelta
))
{
return
AbtestStatus
.
CREATED
;
}
else
{
if
(
now
.
before
(
startDate
))
{
return
AbtestStatus
.
READY
;
}
else
{
if
(
endDate
!=
null
)
{
if
(
now
.
before
(
endDate
))
{
return
AbtestStatus
.
RUNNING
;
}
else
{
return
AbtestStatus
.
TERMINATED
;
}
}
else
{
return
AbtestStatus
.
RUNNING
;
}
}
}
}
else
{
if
(
endDate
!=
null
)
{
if
(
now
.
before
(
endDate
))
{
return
AbtestStatus
.
RUNNING
;
}
else
{
return
AbtestStatus
.
TERMINATED
;
}
}
else
{
return
AbtestStatus
.
RUNNING
;
}
}
}
}
public
String
getStatus
()
{
return
name
().
toLowerCase
();
}
}
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Handler.java
浏览文件 @
bda27eeb
...
...
@@ -60,7 +60,7 @@ public class Handler implements PageHandler<Context> {
private
void
renderListView
(
Model
model
,
Payload
payload
)
{
List
<
ABTestReport
>
reports
=
new
ArrayList
<
ABTestReport
>();
List
<
Abtest
>
entities
=
new
ArrayList
<
Abtest
>();
A
BTestEntityStatus
status
=
ABTestEntityStatus
.
getByName
(
payload
.
getStatus
(),
ABTestEntityStatus
.
DEFALUT
);
A
btestStatus
status
=
AbtestStatus
.
getByName
(
payload
.
getStatus
(),
null
);
Date
now
=
new
Date
();
try
{
...
...
@@ -70,35 +70,39 @@ public class Handler implements PageHandler<Context> {
}
List
<
Abtest
>
filterTests
=
new
ArrayList
<
Abtest
>();
int
runningCount
=
0
,
stoppedCount
=
0
,
readyCount
=
0
,
disable
Count
=
0
;
int
createdCount
=
0
,
readyCount
=
0
,
runningCount
=
0
,
terminatedCount
=
0
,
suspended
Count
=
0
;
for
(
Abtest
abtest
:
entities
)
{
ABTestReport
report
=
new
ABTestReport
(
abtest
,
now
);
if
(
report
.
getStatus
()
==
status
)
{
if
(
status
!=
null
&&
report
.
getStatus
()
==
status
)
{
filterTests
.
add
(
abtest
);
}
switch
(
report
.
getStatus
())
{
case
RUNNING:
runningCount
++;
break
;
case
STOPPED:
stoppedCount
++;
case
CREATED:
createdCount
++;
break
;
case
READY:
readyCount
++;
break
;
case
DISABLED:
disableCount
++;
case
RUNNING:
runningCount
++;
break
;
case
TERMINATED:
terminatedCount
++;
break
;
case
SUSPENDED:
suspendedCount
++;
break
;
}
}
model
.
setCreatedCount
(
createdCount
);
model
.
setReadyCount
(
readyCount
);
model
.
setRunningCount
(
runningCount
);
model
.
set
StoppedCount
(
stopp
edCount
);
model
.
set
DisabledCount
(
disable
Count
);
if
(
status
!=
ABTestEntityStatus
.
DEFALUT
)
{
model
.
set
TerminatedCount
(
terminat
edCount
);
model
.
set
SuspendedCount
(
suspended
Count
);
if
(
status
!=
null
)
{
entities
=
filterTests
;
}
...
...
cat-home/src/main/java/com/dianping/cat/system/page/abtest/JspFile.java
浏览文件 @
bda27eeb
...
...
@@ -3,7 +3,7 @@ package com.dianping.cat.system.page.abtest;
public
enum
JspFile
{
VIEW
(
"/jsp/system/abtest.jsp"
),
ALLTESTVIEW
(
"/jsp/system/abtestAllTest.jsp"
),
LIST
(
"/jsp/system/abtestAllTest.jsp"
),
REPORT
(
"/jsp/system/abtestReport.jsp"
)
;
...
...
cat-home/src/main/java/com/dianping/cat/system/page/abtest/JspViewer.java
浏览文件 @
bda27eeb
...
...
@@ -12,7 +12,7 @@ public class JspViewer extends BaseJspViewer<SystemPage, Action, Context, Model>
case
VIEW:
return
JspFile
.
VIEW
.
getPath
();
case
LIST:
return
JspFile
.
ALLTESTVIEW
.
getPath
();
return
JspFile
.
LIST
.
getPath
();
case
REPORT:
return
JspFile
.
REPORT
.
getPath
();
}
...
...
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Model.java
浏览文件 @
bda27eeb
...
...
@@ -12,21 +12,23 @@ public class Model extends ViewModel<SystemPage, Action, Context> {
private
String
m_domain
;
private
Date
m_date
;
private
ABTestEntity
m_entity
;
private
List
<
ABTestReport
>
m_reports
;
private
int
m_totalPages
;
private
int
m_
running
Count
;
private
int
m_
created
Count
;
private
int
m_readyCount
;
private
int
m_stoppedCount
;
private
int
m_disabledCount
;
private
int
m_runningCount
;
private
int
m_terminatedCount
;
private
int
m_suspendedCount
;
public
Model
(
Context
ctx
)
{
super
(
ctx
);
}
...
...
@@ -53,59 +55,66 @@ public class Model extends ViewModel<SystemPage, Action, Context> {
}
public
ABTestEntity
getEntity
()
{
return
m_entity
;
}
return
m_entity
;
}
public
void
setEntity
(
ABTestEntity
entity
)
{
m_entity
=
entity
;
}
m_entity
=
entity
;
}
public
List
<
ABTestReport
>
getReports
()
{
return
m_reports
;
}
return
m_reports
;
}
public
void
setReports
(
List
<
ABTestReport
>
reports
)
{
m_reports
=
reports
;
}
m_reports
=
reports
;
}
public
int
getTotalPages
()
{
return
m_totalPages
;
}
return
m_totalPages
;
}
public
void
setTotalPages
(
int
totalPages
)
{
m_totalPages
=
totalPages
;
}
m_totalPages
=
totalPages
;
}
public
int
get
Running
Count
()
{
return
m_running
Count
;
}
public
int
get
Created
Count
()
{
return
m_created
Count
;
}
public
void
set
RunningCount
(
int
running
Count
)
{
m_runningCount
=
running
Count
;
}
public
void
set
CreatedCount
(
int
created
Count
)
{
m_createdCount
=
created
Count
;
}
public
int
getReadyCount
()
{
return
m_readyCount
;
}
return
m_readyCount
;
}
public
void
setReadyCount
(
int
readyCount
)
{
m_readyCount
=
readyCount
;
}
m_readyCount
=
readyCount
;
}
public
int
getRunningCount
()
{
return
m_runningCount
;
}
public
void
setRunningCount
(
int
runningCount
)
{
m_runningCount
=
runningCount
;
}
public
int
get
Stopp
edCount
()
{
return
m_stopp
edCount
;
}
public
int
get
Terminat
edCount
()
{
return
m_terminat
edCount
;
}
public
void
set
StoppedCount
(
int
stopp
edCount
)
{
m_stoppedCount
=
stopp
edCount
;
}
public
void
set
TerminatedCount
(
int
terminat
edCount
)
{
m_terminatedCount
=
terminat
edCount
;
}
public
int
get
Disabl
edCount
()
{
return
m_disabl
edCount
;
}
public
int
get
Suspend
edCount
()
{
return
m_suspend
edCount
;
}
public
void
setDisabledCount
(
int
disabledCount
)
{
m_disabledCount
=
disabledCount
;
}
public
void
setSuspendedCount
(
int
suspendedCount
)
{
m_suspendedCount
=
suspendedCount
;
}
}
cat-home/src/main/java/com/dianping/cat/system/page/abtest/Payload.java
浏览文件 @
bda27eeb
package
com.dianping.cat.system.page.abtest
;
import
com.dianping.cat.system.SystemPage
;
import
org.codehaus.plexus.util.StringUtils
;
import
org.unidal.web.mvc.ActionContext
;
import
org.unidal.web.mvc.ActionPayload
;
import
org.unidal.web.mvc.payload.annotation.FieldMeta
;
import
com.dianping.cat.system.SystemPage
;
public
class
Payload
implements
ActionPayload
<
SystemPage
,
Action
>
{
private
SystemPage
m_page
;
...
...
@@ -39,10 +38,12 @@ public class Payload implements ActionPayload<SystemPage, Action> {
}
public
void
setStatus
(
String
status
)
{
if
(
StringUtils
.
isBlank
(
status
)){
m_status
=
ABTestEntityStatus
.
DEFALUT
.
name
();
AbtestStatus
abstatus
=
AbtestStatus
.
getByName
(
status
,
null
);
if
(
abstatus
!=
null
){
m_status
=
abstatus
.
name
().
toLowerCase
();
}
else
{
m_status
=
status
;
m_status
=
"all"
;
}
}
...
...
cat-home/src/main/resources/META-INF/dal/jdbc/abtest-dal.xml
浏览文件 @
bda27eeb
<?xml version="1.0" encoding="UTF-8"?>
<entities
do-package=
"com.dianping.cat.home.dal.abtest"
gen=
"true"
alias=
"a"
>
<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()"
/>
...
...
cat-home/src/main/webapp/img/CREATED_black_small.png
0 → 100644
浏览文件 @
bda27eeb
399 字节
cat-home/src/main/webapp/img/CREATED_colored_big.png
0 → 100644
浏览文件 @
bda27eeb
13.2 KB
cat-home/src/main/webapp/jsp/system/abtestAllTest.jsp
浏览文件 @
bda27eeb
...
...
@@ -88,16 +88,10 @@
<ul
class=
"nav nav-list well liHover"
>
<li
class=
"nav-header"
>
ABTest Status
</li>
<li
class=
"divider"
/>
<li
${
payload.status
eq
'
running
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=running"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['RUNNING_black_small.png']}"
>
running
<span
class=
"badge statusSpan"
>
${model.runningCount}
</span>
</a>
</li>
<li
${
payload.status
eq
'
disabled
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=disabled"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['PAUSED_black_small.png']}"
>
disabled
<span
class=
"badge statusSpan"
>
${model.disabledCount}
</span>
<li
${
payload.status
eq
'
created
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=created"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['CREATED_black_small.png']}"
>
created
<span
class=
"badge statusSpan"
>
${model.createdCount}
</span>
</a>
</li>
<li
${
payload.status
eq
'
ready
'
?
'
class=
"selected"
'
:
''}
>
...
...
@@ -106,10 +100,22 @@
<span
class=
"badge statusSpan"
>
${model.readyCount}
</span>
</a>
</li>
<li
${
payload.status
eq
'
stopped
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=stopped"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['STOPPED_black_small.png']}"
>
stopped
<span
class=
"badge statusSpan"
>
${model.stoppedCount}
</span>
<li
${
payload.status
eq
'
running
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=running"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['RUNNING_black_small.png']}"
>
running
<span
class=
"badge statusSpan"
>
${model.runningCount}
</span>
</a>
</li>
<li
${
payload.status
eq
'
terminated
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=terminated"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['STOPPED_black_small.png']}"
>
terminated
<span
class=
"badge statusSpan"
>
${model.terminatedCount}
</span>
</a>
</li>
<li
${
payload.status
eq
'
suspended
'
?
'
class=
"selected"
'
:
''}
>
<a
href=
"?op=list&status=suspended"
>
<img
height=
"12"
width=
"12"
src=
"${res.img.local['PAUSED_black_small.png']}"
>
suspended
<span
class=
"badge statusSpan"
>
${model.suspendedCount}
</span>
</a>
</li>
</ul>
...
...
@@ -120,9 +126,8 @@
<button
class=
"btn"
type=
"button"
>
<label
class=
"checkbox"
>
<input
id=
"ckall"
type=
"checkbox"
></input></label>
</button>
<button
id=
"btnStart"
class=
"btn"
type=
"button"
>
Start
</button>
<button
id=
"btnDisable"
class=
"btn"
type=
"button"
>
Disable
</button>
<button
id=
"btnStop"
class=
"btn"
type=
"button"
>
Stop
</button>
<button
id=
"btnSuspend"
class=
"btn"
type=
"button"
>
Suspend
</button>
<button
id=
"btnResume"
class=
"btn"
type=
"button"
>
Resume
</button>
</div>
<table
class=
"table table-striped table-format table-hover"
data-provides=
"rowlink"
>
...
...
@@ -147,25 +152,30 @@
<td>
10%
</td>
<td>
<c:choose>
<c:when
test=
"
${
item
.
status
.
status
==
0
}
"
>
<c:when
test=
"
${
item
.
status
.
status
eq
'created'
}
"
>
<div>
<img
src=
"${res.img.local['CREATED_colored_big.png']}"
/>
</div>
<small>
Created
</small>
</c:when>
<c:when
test=
"
${
item
.
status
.
status
eq
'running'
}
"
>
<div>
<img
src=
"${res.img.local['RUNNING_colored_big.png']}"
/>
</div>
<small>
Running
</small>
</c:when>
<c:when
test=
"
${
item
.
status
.
status
==
1
}
"
>
<c:when
test=
"
${
item
.
status
.
status
eq
'terminated'
}
"
>
<div>
<img
src=
"${res.img.local['STOPPED_colored_big.png']}"
>
</div>
<small>
Stopp
ed
</small>
</div>
<small>
Terminat
ed
</small>
</c:when>
<c:when
test=
"
${
item
.
status
.
status
==
2
}
"
>
<c:when
test=
"
${
item
.
status
.
status
eq
'ready'
}
"
>
<div>
<img
src=
"${res.img.local['READY_colored_big.png']}"
>
</div>
<small>
Ready to start
</small>
</c:when>
<c:when
test=
"
${
item
.
status
.
status
==
3
}
"
>
<c:when
test=
"
${
item
.
status
.
status
eq
'suspended'
}
"
>
<div>
<img
src=
"${res.img.local['PAUSED_colored_big.png']}"
>
</div>
<small>
Disabl
ed
</small>
</div>
<small>
Suspend
ed
</small>
</c:when>
</c:choose>
</td>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录