Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gk
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
micro_app
gk
Commits
38b827a8
Commit
38b827a8
authored
Jul 29, 2022
by
chenlin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
榜单配置增加周榜、月榜、年榜控制。增加榜单显示条数配置
parent
58b980e0
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
178 additions
and
15 deletions
+178
-15
CmptScoreRule.java
...va/com/dlbridge/jadp/plugins/cmpt/bean/CmptScoreRule.java
+2
-0
CmptMapper.java
...com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.java
+1
-1
CmptMapper.xml
.../com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.xml
+18
-2
CmptScoreRuleMapper.java
...dge/jadp/plugins/cmpt/dao/mapper/CmptScoreRuleMapper.java
+2
-0
CmptScoreRuleMapper.xml
...idge/jadp/plugins/cmpt/dao/mapper/CmptScoreRuleMapper.xml
+7
-1
Cmpt.java
...n/java/com/dlbridge/jadp/plugins/cmpt/dao/model/Cmpt.java
+3
-0
CmptScoreRuleService.java
...ridge/jadp/plugins/cmpt/service/CmptScoreRuleService.java
+4
-0
CmptService.java
...a/com/dlbridge/jadp/plugins/cmpt/service/CmptService.java
+2
-2
CmptController.java
...va/com/dlbridge/jadp/plugins/cmpt/web/CmptController.java
+3
-2
RankSettingController.java
...dlbridge/jadp/plugins/cmpt/web/RankSettingController.java
+15
-0
application-dev.properties
src/main/resources/application-dev.properties
+9
-4
bootstrap.yml
src/main/resources/bootstrap.yml
+2
-2
rankSetting.jsp
src/main/webapp/WEB-INF/views/cmpt/rankSetting.jsp
+110
-1
No files found.
src/main/java/com/dlbridge/jadp/plugins/cmpt/bean/CmptScoreRule.java
View file @
38b827a8
...
@@ -30,4 +30,6 @@ public class CmptScoreRule {
...
@@ -30,4 +30,6 @@ public class CmptScoreRule {
private
Integer
orderRule
;
private
Integer
orderRule
;
private
Integer
displayCount
;
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.java
View file @
38b827a8
...
@@ -72,7 +72,7 @@ public interface CmptMapper {
...
@@ -72,7 +72,7 @@ public interface CmptMapper {
Partner
getParnterByParnterId
(
String
partnerId
);
Partner
getParnterByParnterId
(
String
partnerId
);
void
updateDayRank
(
@Param
(
"cmptId"
)
int
cmptId
,
@Param
(
"status"
)
int
status
);
void
updateDayRank
(
@Param
(
"cmptId"
)
int
cmptId
,
@Param
(
"status"
)
int
status
,
@Param
(
"rankName"
)
String
rankName
);
int
isUploadProfile
(
Integer
cmptId
);
int
isUploadProfile
(
Integer
cmptId
);
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.xml
View file @
38b827a8
...
@@ -26,7 +26,11 @@
...
@@ -26,7 +26,11 @@
date_format(start_time,'%Y-%m-%d %H:%s:%i') as startTime,
date_format(start_time,'%Y-%m-%d %H:%s:%i') as startTime,
logo,
logo,
bg_color as cmptbgColor,
bg_color as cmptbgColor,
del_flag AS "delFlag",is_day_rank isDayRank
del_flag AS "delFlag",
is_day_rank isDayRank,
is_week_rank isWeekRank,
is_month_rank isMonthRank,
is_year_rank isYearRank
FROM `gk_cmpt`
FROM `gk_cmpt`
WHERE cmpt_id = #{id} LIMIT 1
WHERE cmpt_id = #{id} LIMIT 1
</select>
</select>
...
@@ -267,7 +271,19 @@
...
@@ -267,7 +271,19 @@
</select>
</select>
<update
id=
"updateDayRank"
>
<update
id=
"updateDayRank"
>
update gk_cmpt set is_day_rank=#{status}
update gk_cmpt
<if
test=
"rankName == 'dayRank' "
>
set is_day_rank=#{status}
</if>
<if
test=
"rankName == 'weekRank' "
>
set is_week_rank=#{status}
</if>
<if
test=
"rankName == 'monthRank' "
>
set is_month_rank=#{status}
</if>
<if
test=
"rankName == 'yearRank' "
>
set is_year_rank=#{status}
</if>
where cmpt_id = #{cmptId}
where cmpt_id = #{cmptId}
</update>
</update>
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptScoreRuleMapper.java
View file @
38b827a8
...
@@ -64,4 +64,6 @@ public interface CmptScoreRuleMapper {
...
@@ -64,4 +64,6 @@ public interface CmptScoreRuleMapper {
int
deleteBatch
(
@Param
(
"cmptId"
)
int
cmptId
,
@Param
(
"start"
)
String
start
,
@Param
(
"end"
)
String
end
);
int
deleteBatch
(
@Param
(
"cmptId"
)
int
cmptId
,
@Param
(
"start"
)
String
start
,
@Param
(
"end"
)
String
end
);
void
updateOrderRule
(
@Param
(
"cmptId"
)
Integer
cmptId
,
@Param
(
"orderRule"
)
Integer
orderRule
);
void
updateOrderRule
(
@Param
(
"cmptId"
)
Integer
cmptId
,
@Param
(
"orderRule"
)
Integer
orderRule
);
void
updateDisplayCount
(
@Param
(
"cmptId"
)
Integer
cmptId
,
@Param
(
"displayCount"
)
Integer
displayCount
);
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptScoreRuleMapper.xml
View file @
38b827a8
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<select
id=
"getCmptScoreRuleByCmptId"
resultType=
"CmptScoreRule"
>
<select
id=
"getCmptScoreRuleByCmptId"
resultType=
"CmptScoreRule"
>
select id,`index`,cmpt_id as cmptId,start_time as startTime,end_time as endTime,order_rule orderRule
select id,`index`,cmpt_id as cmptId,start_time as startTime,end_time as endTime,order_rule orderRule
, display_count displayCount
from gk_cmpt_score_rule where cmpt_id=#{cmptId} order by `index`
from gk_cmpt_score_rule where cmpt_id=#{cmptId} order by `index`
</select>
</select>
...
@@ -153,4 +153,10 @@
...
@@ -153,4 +153,10 @@
set order_rule = #{orderRule}
set order_rule = #{orderRule}
where cmpt_id=#{cmptId}
where cmpt_id=#{cmptId}
</update>
</update>
<update
id=
"updateDisplayCount"
>
update gk_cmpt_score_rule
set display_count = #{displayCount}
where cmpt_id=#{cmptId}
</update>
</mapper>
</mapper>
\ No newline at end of file
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/model/Cmpt.java
View file @
38b827a8
...
@@ -35,6 +35,9 @@ public class Cmpt extends JaapRecord<Cmpt> {
...
@@ -35,6 +35,9 @@ public class Cmpt extends JaapRecord<Cmpt> {
private
String
endTime
;
private
String
endTime
;
private
boolean
isDayRank
;
private
boolean
isDayRank
;
private
boolean
isWeekRank
;
private
boolean
isMonthRank
;
private
boolean
isYearRank
;
private
int
cmptType
;
private
int
cmptType
;
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/CmptScoreRuleService.java
View file @
38b827a8
...
@@ -102,4 +102,8 @@ public class CmptScoreRuleService {
...
@@ -102,4 +102,8 @@ public class CmptScoreRuleService {
public
void
updateOrderRule
(
Integer
cmptId
,
Integer
orderRule
)
{
public
void
updateOrderRule
(
Integer
cmptId
,
Integer
orderRule
)
{
cmptScoreRuleMapper
.
updateOrderRule
(
cmptId
,
orderRule
);
cmptScoreRuleMapper
.
updateOrderRule
(
cmptId
,
orderRule
);
}
}
public
void
updateDisplayCount
(
Integer
cmptId
,
Integer
displayCount
)
{
cmptScoreRuleMapper
.
updateDisplayCount
(
cmptId
,
displayCount
);
}
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/CmptService.java
View file @
38b827a8
...
@@ -209,8 +209,8 @@ public class CmptService {
...
@@ -209,8 +209,8 @@ public class CmptService {
return
cmptMapper
.
getParnterByParnterId
(
parnter
);
return
cmptMapper
.
getParnterByParnterId
(
parnter
);
}
}
public
void
updateDayRank
(
int
cmptId
,
int
status
)
{
public
void
updateDayRank
(
int
cmptId
,
int
status
,
String
rankName
)
{
cmptMapper
.
updateDayRank
(
cmptId
,
status
);
cmptMapper
.
updateDayRank
(
cmptId
,
status
,
rankName
);
}
}
public
boolean
isUploadProfile
(
Integer
cmptId
)
{
public
boolean
isUploadProfile
(
Integer
cmptId
)
{
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/CmptController.java
View file @
38b827a8
...
@@ -257,8 +257,9 @@ public class CmptController {
...
@@ -257,8 +257,9 @@ public class CmptController {
@RequestMapping
(
"/updateDayRank"
)
@RequestMapping
(
"/updateDayRank"
)
@ResponseBody
@ResponseBody
public
com
.
neusoft
.
www
.
utils
.
web
.
Result
updateDayRank
(
@RequestParam
(
"cmptId"
)
int
cmptId
,
public
com
.
neusoft
.
www
.
utils
.
web
.
Result
updateDayRank
(
@RequestParam
(
"cmptId"
)
int
cmptId
,
@RequestParam
(
"status"
)
int
status
)
{
@RequestParam
(
"status"
)
int
status
,
cmptService
.
updateDayRank
(
cmptId
,
status
);
@RequestParam
(
"rankName"
)
String
rankName
)
{
cmptService
.
updateDayRank
(
cmptId
,
status
,
rankName
);
return
new
com
.
neusoft
.
www
.
utils
.
web
.
Result
().
success
().
setMsg
(
"设置成功!"
);
return
new
com
.
neusoft
.
www
.
utils
.
web
.
Result
().
success
().
setMsg
(
"设置成功!"
);
}
}
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/RankSettingController.java
View file @
38b827a8
...
@@ -39,6 +39,7 @@ public class RankSettingController {
...
@@ -39,6 +39,7 @@ public class RankSettingController {
mv
.
addObject
(
"cmpt"
,
cmpt
);
mv
.
addObject
(
"cmpt"
,
cmpt
);
if
(
cmptScoreRules
.
size
()
>
0
){
if
(
cmptScoreRules
.
size
()
>
0
){
mv
.
addObject
(
"currentRuleType"
,
cmptScoreRules
.
get
(
0
).
getOrderRule
());
mv
.
addObject
(
"currentRuleType"
,
cmptScoreRules
.
get
(
0
).
getOrderRule
());
mv
.
addObject
(
"displayCount"
,
cmptScoreRules
.
get
(
0
).
getDisplayCount
());
}
}
mv
.
setViewName
(
"cmpt/rankSetting"
);
mv
.
setViewName
(
"cmpt/rankSetting"
);
return
mv
;
return
mv
;
...
@@ -53,4 +54,18 @@ public class RankSettingController {
...
@@ -53,4 +54,18 @@ public class RankSettingController {
return
Result
.
success
().
setMsg
(
"操作成功"
);
return
Result
.
success
().
setMsg
(
"操作成功"
);
}
}
/**
* 更新榜单显示条数
* @param cmptId
* @param displayCount
* @return
*/
@RequestMapping
(
"updateDisplayCount/{cmptId}/{displayCount}"
)
@ResponseBody
public
Result
updateDisplayCount
(
@PathVariable
(
"cmptId"
)
Integer
cmptId
,
@PathVariable
(
"displayCount"
)
Integer
displayCount
)
{
cmptScoreRuleService
.
updateDisplayCount
(
cmptId
,
displayCount
);
return
Result
.
success
().
setMsg
(
"操作成功"
);
}
}
}
src/main/resources/application-dev.properties
View file @
38b827a8
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
spring.datasource.password
=
geexekNewPass4!
#spring.datasource.password=geexekNewPass4!
spring.datasource.username
=
geexek
#spring.datasource.username=geexek
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://47.111.166.211:3306/gksite?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
spring.datasource.password
=
mysql_master_geexek_408
spring.datasource.username
=
mysql_master
spring.datasource.driver-class-name
=
com.mysql.jdbc.Driver
spring.datasource.driver-class-name
=
com.mysql.jdbc.Driver
spring.datasource.url
=
jdbc:mysql://47.111.166.211:3306/gksite?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
spring.datasource.url
=
jdbc:mysql://rm-bp15ojs1ys1eur32zwo.mysql.rds.aliyuncs.com:3306/gksite?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
mybatis.typeAliasesPackage
=
com.dlbridge.jadp.plugins
mybatis.typeAliasesPackage
=
com.dlbridge.jadp.plugins
mybatis.mapperLocations
=
classpath:com/dlbridge/jadp/plugins/**/**.xml
mybatis.mapperLocations
=
classpath:com/dlbridge/jadp/plugins/**/**.xml
mybatis.configuration.map-underscore-to-camel-case
=
true
mybatis.configuration.map-underscore-to-camel-case
=
true
...
@@ -98,7 +103,7 @@ spring.cloud.sentinel.skip-keys=cmptId
...
@@ -98,7 +103,7 @@ spring.cloud.sentinel.skip-keys=cmptId
spring.cloud.sentinel.exclude-urls
=
/static/**,**.css,**.js
spring.cloud.sentinel.exclude-urls
=
/static/**,**.css,**.js
## nacos 地址
## nacos 地址
spring.cloud.sentinel.datasource.ds.nacos.server-addr
=
1
92.168.31.133
:8848
spring.cloud.sentinel.datasource.ds.nacos.server-addr
=
1
27.0.0.1
:8848
spring.cloud.sentinel.datasource.ds.nacos.dataId
=
micro-gksite-sentinel
spring.cloud.sentinel.datasource.ds.nacos.dataId
=
micro-gksite-sentinel
spring.cloud.sentinel.datasource.ds.nacos.data-type
=
json
spring.cloud.sentinel.datasource.ds.nacos.data-type
=
json
spring.cloud.sentinel.datasource.ds.nacos.groupId
=
dev
spring.cloud.sentinel.datasource.ds.nacos.groupId
=
dev
...
...
src/main/resources/bootstrap.yml
View file @
38b827a8
...
@@ -18,11 +18,11 @@ spring:
...
@@ -18,11 +18,11 @@ spring:
cloud
:
cloud
:
nacos
:
nacos
:
config
:
config
:
server-addr
:
http://1
92.168.31.133
:8848
server-addr
:
http://1
27.0.0.1
:8848
file-extension
:
properties
file-extension
:
properties
group
:
dev
group
:
dev
namespace
:
187c2f4d-80c2-4a67-b4e5-319d5c9151d1
namespace
:
187c2f4d-80c2-4a67-b4e5-319d5c9151d1
server-addr
:
http://1
92.168.31.133
:8848
server-addr
:
http://1
27.0.0.1
:8848
discovery
:
discovery
:
group
:
dev
group
:
dev
namespace
:
187c2f4d-80c2-4a67-b4e5-319d5c9151d1
namespace
:
187c2f4d-80c2-4a67-b4e5-319d5c9151d1
...
...
src/main/webapp/WEB-INF/views/cmpt/rankSetting.jsp
View file @
38b827a8
...
@@ -177,12 +177,40 @@
...
@@ -177,12 +177,40 @@
</div>
</div>
<div
id=
"disCount"
class=
"section"
style=
"display: flex;justify-content: space-between;align-items: center;"
>
<span
class=
"title-new"
>
榜单条数
</span>
<div
style=
"position: relative;"
>
<input
class=
"input"
type=
"text"
v-model=
"disCount.dispalyCount"
placeholder=
"请输入榜单显示条数"
>
</div>
<div
style=
"position: relative;"
>
<span
class=
"road-notice"
></span>
<span
class=
"road-notice-txt"
>
榜单展示前N条,-1表示全部展示
</span>
</div>
<div
class=
"saveDiv"
>
<span
v-on:click=
"saveDsiplayCount"
class=
"submit"
>
保存
</span>
</div>
</div>
<div
class=
"section"
style=
"display: flex;justify-content: space-between;align-items: center;"
>
<div
class=
"section"
style=
"display: flex;justify-content: space-between;align-items: center;"
>
<span
style=
"font-size:24px;color: #333"
>
榜单设置
</span>
<span
style=
"font-size:24px;color: #333"
>
榜单设置
</span>
<div>
<div>
<input
type=
"checkbox"
name=
"dayRank"
${
cmpt
.
dayRank
?
'
checked
'
:
''}
>
<input
type=
"checkbox"
name=
"dayRank"
${
cmpt
.
dayRank
?
'
checked
'
:
''}
>
<span
style=
"font-size:20px;color: #333"
>
启用日榜
</span>
<span
style=
"font-size:20px;color: #333"
>
启用日榜
</span>
</div>
</div>
<div>
<input
type=
"checkbox"
name=
"weekRank"
${
cmpt
.
weekRank
?
'
checked
'
:
''}
>
<span
style=
"font-size:20px;color: #333"
>
启用周榜
</span>
</div>
<div>
<input
type=
"checkbox"
name=
"monthRank"
${
cmpt
.
monthRank
?
'
checked
'
:
''}
>
<span
style=
"font-size:20px;color: #333"
>
启用月榜
</span>
</div>
<div>
<input
type=
"checkbox"
name=
"yearRank"
${
cmpt
.
yearRank
?
'
checked
'
:
''}
>
<span
style=
"font-size:20px;color: #333"
>
启用年榜
</span>
</div>
</div>
</div>
<div
class=
"section"
>
<div
class=
"section"
>
...
@@ -253,6 +281,33 @@
...
@@ -253,6 +281,33 @@
}
}
}
}
});
});
var
disCountV
=
new
Vue
({
el
:
'#disCount'
,
data
:
{
disCount
:
{
cmptId
:
getCId
(),
dispalyCount
:
$
{
displayCount
}},
},
methods
:{
saveDsiplayCount
:
function
()
{
if
(
disCountV
.
$data
.
disCount
.
dispalyCount
.
length
==
0
){
disCountV
.
$data
.
disCount
.
dispalyCount
=
-
1
;
}
$
.
ajax
({
url
:
'/gk/rankSetting/updateDisplayCount/'
+
getCId
()
+
"/"
+
disCountV
.
$data
.
disCount
.
dispalyCount
,
beforeSend
:
function
(){
var
index
=
layer
.
load
()
setTimeout
(
function
()
{
layer
.
close
(
index
);
},
1500
)
},
success
:
function
(
data
)
{
layer
.
msg
(
'保存成功!'
)
}
})
}
}
});
// 修改成绩规则
// 修改成绩规则
$
(
'input[type=radio]'
).
click
(
function
()
{
$
(
'input[type=radio]'
).
click
(
function
()
{
var
index
=
layer
.
load
();
var
index
=
layer
.
load
();
...
@@ -274,11 +329,12 @@
...
@@ -274,11 +329,12 @@
})
})
});
});
// 开启日榜
$
(
'input[name=dayRank]'
).
click
(
function
()
{
$
(
'input[name=dayRank]'
).
click
(
function
()
{
let
status
=
$
(
this
).
get
(
0
).
checked
?
1
:
0
;
let
status
=
$
(
this
).
get
(
0
).
checked
?
1
:
0
;
$
.
ajax
({
$
.
ajax
({
url
:
'/gk/cmpt/updateDayRank'
,
url
:
'/gk/cmpt/updateDayRank'
,
data
:{
cmptId
:
getCId
(),
"status"
:
status
},
data
:{
cmptId
:
getCId
(),
"status"
:
status
,
"rankName"
:
"dayRank"
},
success
:
function
(
data
)
{
success
:
function
(
data
)
{
if
(
data
.
code
==
200
){
if
(
data
.
code
==
200
){
layer
.
msg
(
"切换成功!"
,{
icon
:
1
,
duraion
:
1500
});
layer
.
msg
(
"切换成功!"
,{
icon
:
1
,
duraion
:
1500
});
...
@@ -291,6 +347,59 @@
...
@@ -291,6 +347,59 @@
});
});
});
});
// 开启周榜
$
(
'input[name=weekRank]'
).
click
(
function
()
{
let
status
=
$
(
this
).
get
(
0
).
checked
?
1
:
0
;
$
.
ajax
({
url
:
'/gk/cmpt/updateDayRank'
,
data
:{
cmptId
:
getCId
(),
"status"
:
status
,
"rankName"
:
"weekRank"
},
success
:
function
(
data
)
{
if
(
data
.
code
==
200
){
layer
.
msg
(
"切换成功!"
,{
icon
:
1
,
duraion
:
1500
});
}
else
{
layer
.
msg
(
"切换失败!"
,{
icon
:
5
,
duraion
:
1500
});
}
},
complete
:
function
()
{
}
});
});
// 开启月榜
$
(
'input[name=monthRank]'
).
click
(
function
()
{
let
status
=
$
(
this
).
get
(
0
).
checked
?
1
:
0
;
$
.
ajax
({
url
:
'/gk/cmpt/updateDayRank'
,
data
:{
cmptId
:
getCId
(),
"status"
:
status
,
"rankName"
:
"monthRank"
},
success
:
function
(
data
)
{
if
(
data
.
code
==
200
){
layer
.
msg
(
"切换成功!"
,{
icon
:
1
,
duraion
:
1500
});
}
else
{
layer
.
msg
(
"切换失败!"
,{
icon
:
5
,
duraion
:
1500
});
}
},
complete
:
function
()
{
}
});
});
// 开启年榜
$
(
'input[name=yearRank]'
).
click
(
function
()
{
let
status
=
$
(
this
).
get
(
0
).
checked
?
1
:
0
;
$
.
ajax
({
url
:
'/gk/cmpt/updateDayRank'
,
data
:{
cmptId
:
getCId
(),
"status"
:
status
,
"rankName"
:
"yearRank"
},
success
:
function
(
data
)
{
if
(
data
.
code
==
200
){
layer
.
msg
(
"切换成功!"
,{
icon
:
1
,
duraion
:
1500
});
}
else
{
layer
.
msg
(
"切换失败!"
,{
icon
:
5
,
duraion
:
1500
});
}
},
complete
:
function
()
{
}
});
});
function
getSureLetter
(){
function
getSureLetter
(){
$
.
ajax
({
$
.
ajax
({
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment