Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
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
youjj
cloud-platform
Commits
0d8d3ea7
Commit
0d8d3ea7
authored
Jul 18, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
后台*钱包
parent
a48502d5
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
250 additions
and
25 deletions
+250
-25
PersonalConsumptionDTO.java
...ub/wxiaoqi/security/admin/dto/PersonalConsumptionDTO.java
+17
-0
WalletCathFindDTO.java
.../github/wxiaoqi/security/admin/dto/WalletCathFindDTO.java
+1
-1
WalletDetailFindDTO.java
...ithub/wxiaoqi/security/admin/dto/WalletDetailFindDTO.java
+20
-0
WalletDetailListDTO.java
...ithub/wxiaoqi/security/admin/dto/WalletDetailListDTO.java
+13
-15
WalletDetailAdminVo.java
...github/wxiaoqi/security/admin/vo/WalletDetailAdminVo.java
+52
-0
WalletPageVo.java
...va/com/github/wxiaoqi/security/admin/vo/WalletPageVo.java
+4
-1
MyWalletBiz.java
...va/com/github/wxiaoqi/security/admin/biz/MyWalletBiz.java
+14
-3
MyWalletCathBiz.java
...om/github/wxiaoqi/security/admin/biz/MyWalletCathBiz.java
+2
-1
MyWalletDetailBiz.java
.../github/wxiaoqi/security/admin/biz/MyWalletDetailBiz.java
+41
-0
MyWalletCathMapper.java
...hub/wxiaoqi/security/admin/mapper/MyWalletCathMapper.java
+1
-0
MyWalletDetailMapper.java
...b/wxiaoqi/security/admin/mapper/MyWalletDetailMapper.java
+9
-1
WalletDetailAdminController.java
...ecurity/admin/rest/admin/WalletDetailAdminController.java
+31
-0
MyWalletCathMapper.xml
...ce-admin/src/main/resources/mapper/MyWalletCathMapper.xml
+3
-3
MyWalletDetailMapper.xml
...-admin/src/main/resources/mapper/MyWalletDetailMapper.xml
+42
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/PersonalConsumptionDTO.java
0 → 100644
View file @
0d8d3ea7
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
dto
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 15:59
*/
@Data
public
class
PersonalConsumptionDTO
{
private
Integer
userId
;
private
BigDecimal
totalConsumption
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/WalletCathFindDTO.java
View file @
0d8d3ea7
...
...
@@ -12,7 +12,7 @@ import lombok.Data;
@Data
public
class
WalletCathFindDTO
extends
PageParam
{
private
String
user
N
ame
;
private
String
user
n
ame
;
private
String
phone
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/WalletDetailFindDTO.java
0 → 100644
View file @
0d8d3ea7
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
lombok.Data
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 11:12
*/
@Data
public
class
WalletDetailFindDTO
extends
PageParam
{
private
String
username
;
private
String
phone
;
private
Integer
source
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/WalletDetailListDTO.java
View file @
0d8d3ea7
...
...
@@ -25,25 +25,28 @@ public class WalletDetailListDTO {
private
String
phone
;
@ApiModelProperty
(
value
=
"来源:0-活动,1-佣金,2-会员充值,10-提现,11-转账,12-购买"
)
private
Integer
source
Type
;
private
Integer
source
;
@ApiModelProperty
(
"
活动名称或
佣金商品名称"
)
private
String
sourc
e
;
@ApiModelProperty
(
"佣金商品名称"
)
private
String
titl
e
;
@ApiModelProperty
(
value
=
"收入/支出:0-收入,1-支出
"
)
private
Integer
ityp
e
;
@ApiModelProperty
(
"商品价格
"
)
private
BigDecimal
pric
e
;
@ApiModelProperty
(
value
=
"收入/支出的金额(分)
"
)
private
BigDecimal
amoun
t
;
@ApiModelProperty
(
"提成比例
"
)
private
Integer
extrac
t
;
@ApiModelProperty
(
"入帐状态"
)
private
Integer
waiting
;
@ApiModelProperty
(
value
=
"活动类型"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"收入/支出的金额(分)"
)
private
BigDecimal
amount
;
@ApiModelProperty
(
value
=
"活动id"
)
private
Integer
activityId
;
@ApiModelProperty
(
value
=
"0 收入 1 支出"
)
private
Integer
itype
;
@ApiModelProperty
(
"活动名称"
)
private
String
activityName
;
...
...
@@ -52,11 +55,6 @@ public class WalletDetailListDTO {
@ApiModelProperty
(
value
=
"单号"
)
private
Integer
cono
;
@ApiModelProperty
(
value
=
"加上当时的收入的余额"
)
private
BigDecimal
balance
;
@ApiModelProperty
(
value
=
"操作时间"
,
hidden
=
true
)
private
Long
crtTime
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/WalletDetailAdminVo.java
0 → 100644
View file @
0d8d3ea7
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 10:50
*/
@Data
public
class
WalletDetailAdminVo
{
private
Integer
id
;
private
String
username
;
private
String
phone
;
@ApiModelProperty
(
value
=
"来源:0-活动,1-佣金,2-会员充值,10-提现,11-转账,12-购买"
)
private
Integer
source
;
@ApiModelProperty
(
"佣金商品名称"
)
private
String
title
;
@ApiModelProperty
(
"商品价格"
)
private
BigDecimal
price
;
@ApiModelProperty
(
"提成比例"
)
private
Integer
extract
;
@ApiModelProperty
(
"入帐状态"
)
private
Integer
waiting
;
@ApiModelProperty
(
value
=
"收入/支出的金额(分)"
)
private
BigDecimal
amount
;
@ApiModelProperty
(
value
=
"0收入 1支出"
)
private
Integer
itype
;
@ApiModelProperty
(
"活动名称"
)
private
String
activityName
;
@ApiModelProperty
(
value
=
"单号"
)
private
Integer
cono
;
@ApiModelProperty
(
value
=
"操作时间"
,
hidden
=
true
)
private
Long
crtTime
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/WalletPageVo.java
View file @
0d8d3ea7
...
...
@@ -30,12 +30,15 @@ public class WalletPageVo {
@ApiModelProperty
(
value
=
"已提现金额"
)
private
BigDecimal
withdrawals
;
@ApiModelProperty
(
value
=
"总消费"
)
private
BigDecimal
totalConsumption
;
@ApiModelProperty
(
value
=
"进账总额(元)"
)
private
BigDecimal
totalAmount
;
@ApiModelProperty
(
value
=
"
进账
总额(元)"
)
@ApiModelProperty
(
value
=
"
日收益
总额(元)"
)
private
BigDecimal
todayAmount
;
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MyWalletBiz.java
View file @
0d8d3ea7
...
...
@@ -10,14 +10,15 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.StringUtils
;
import
tk.mybatis.mapper.entity.Example
;
import
java.
util.ArrayList
;
import
java.util.
Comparator
;
import
java.util.
List
;
import
java.
math.BigDecimal
;
import
java.util.
*
;
import
java.util.
stream.Collectors
;
/**
* @author libin
...
...
@@ -29,6 +30,8 @@ import java.util.List;
@Service
public
class
MyWalletBiz
extends
BaseBiz
<
MyWalletMapper
,
MyWallet
>
{
@Autowired
private
MyWalletDetailBiz
myWalletDetailBiz
;
public
AppletWalletVo
findMyWallet
(
Integer
userId
)
{
...
...
@@ -62,6 +65,14 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> {
walletpg
.
setPhone
(
wallet
.
getUsername
());
walletPageVos
.
add
(
walletpg
);
}
List
<
Integer
>
userIds
=
wallets
.
stream
().
map
(
WalletListDTO:
:
getUserId
).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
BigDecimal
>
userIdAndTotalConsumptionMap
=
myWalletDetailBiz
.
finduserIdAndPersonalTotalConsumptionMapByUserIds
(
userIds
);
Optional
.
ofNullable
(
userIdAndTotalConsumptionMap
).
ifPresent
(
x
->{
for
(
WalletPageVo
wtpg
:
walletPageVos
)
{
wtpg
.
setTotalConsumption
(
x
.
get
(
wtpg
.
getUserId
()));
}
});
walletPageVos
.
sort
(
Comparator
.
comparing
(
WalletPageVo:
:
getTotalAmount
).
reversed
());
walletPageVo
.
setPageNum
(
walletFindDTO
.
getPage
());
walletPageVo
.
setPageSize
(
walletFindDTO
.
getLimit
());
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MyWalletCathBiz.java
View file @
0d8d3ea7
...
...
@@ -87,7 +87,7 @@ public class MyWalletCathBiz extends BaseBiz<MyWalletCathMapper, MyWalletCath> {
// List<WalletCathListDTO> walletCathListDTOS = mapper.selectByUserNameOrPhoneOrWithDrawSate(walletCathFindDTO.getUserName(), walletCathFindDTO.getPhone(), walletCathFindDTO.getState());
PageDataVO
<
WalletCathListDTO
>
walletCathListDTOPage
=
PageDataVO
.
pageInfo
(
walletCathFindDTO
.
getPage
(),
walletCathFindDTO
.
getLimit
(),
()
->
mapper
.
selectByUserNameOrPhoneOrWithDrawSate
(
walletCathFindDTO
.
getUser
N
ame
(),
walletCathFindDTO
.
getPhone
(),
walletCathFindDTO
.
getState
()));
()
->
mapper
.
selectByUserNameOrPhoneOrWithDrawSate
(
walletCathFindDTO
.
getUser
n
ame
(),
walletCathFindDTO
.
getPhone
(),
walletCathFindDTO
.
getState
()));
List
<
WalletCathListDTO
>
walletCathListDTOList
=
walletCathListDTOPage
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
walletCathListDTOList
)){
...
...
@@ -111,4 +111,5 @@ public class MyWalletCathBiz extends BaseBiz<MyWalletCathMapper, MyWalletCath> {
return
walletCathAdminVoPage
;
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MyWalletDetailBiz.java
View file @
0d8d3ea7
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
com.github.wxiaoqi.security.admin.dto.PersonalConsumptionDTO
;
import
com.github.wxiaoqi.security.admin.dto.WalletDetailFindDTO
;
import
com.github.wxiaoqi.security.admin.dto.WalletDetailListDTO
;
import
com.github.wxiaoqi.security.admin.entity.MyWalletDetail
;
import
com.github.wxiaoqi.security.admin.mapper.MyWalletDetailMapper
;
import
com.github.wxiaoqi.security.admin.vo.WalletDetailAdminVo
;
import
com.github.wxiaoqi.security.admin.vo.WalletDetailPageVo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
lombok.Data
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -23,6 +31,7 @@ import java.util.List;
*/
@Transactional
@Service
@Data
public
class
MyWalletDetailBiz
extends
BaseBiz
<
MyWalletDetailMapper
,
MyWalletDetail
>
{
...
...
@@ -53,4 +62,36 @@ public class MyWalletDetailBiz extends BaseBiz<MyWalletDetailMapper, MyWalletDet
return
walletDetailPageVo
;
}
public
PageDataVO
<
WalletDetailAdminVo
>
findWalletDetailPage
(
WalletDetailFindDTO
walletDetailFindDTO
){
PageDataVO
<
WalletDetailAdminVo
>
pageDataVO
=
new
PageDataVO
<>();
PageDataVO
<
WalletDetailListDTO
>
walletDetailPage
=
PageDataVO
.
pageInfo
(
walletDetailFindDTO
.
getPage
(),
walletDetailFindDTO
.
getLimit
(),
()->
mapper
.
findWalletDetailsByUserNameOrPhoneOrsourceType
(
walletDetailFindDTO
.
getUsername
(),
walletDetailFindDTO
.
getPhone
(),
walletDetailFindDTO
.
getSource
()));
List
<
WalletDetailListDTO
>
detailListDTOS
=
walletDetailPage
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
detailListDTOS
)){
return
pageDataVO
;
}
List
<
WalletDetailAdminVo
>
walletDetailAdminVos
=
new
ArrayList
<>();
WalletDetailAdminVo
walletDetailAdminVo
;
for
(
WalletDetailListDTO
detailListDTO
:
detailListDTOS
)
{
walletDetailAdminVo
=
new
WalletDetailAdminVo
();
BeanUtils
.
copyProperties
(
detailListDTO
,
walletDetailAdminVo
);
walletDetailAdminVos
.
add
(
walletDetailAdminVo
);
}
pageDataVO
.
setPageNum
(
walletDetailFindDTO
.
getPage
());
pageDataVO
.
setPageSize
(
walletDetailFindDTO
.
getLimit
());
pageDataVO
.
setTotalCount
(
walletDetailPage
.
getTotalCount
());
pageDataVO
.
setTotalPage
(
walletDetailPage
.
getTotalPage
());
pageDataVO
.
setData
(
walletDetailAdminVos
);
return
pageDataVO
;
}
public
Map
<
Integer
,
BigDecimal
>
finduserIdAndPersonalTotalConsumptionMapByUserIds
(
List
<
Integer
>
userIds
)
{
List
<
PersonalConsumptionDTO
>
personalConsumptions
=
mapper
.
findpersonalConsumptionsByUserIds
(
userIds
);
Map
<
Integer
,
BigDecimal
>
userIdAndPersonalConsumptionMap
=
personalConsumptions
.
stream
().
collect
(
Collectors
.
toMap
(
PersonalConsumptionDTO:
:
getUserId
,
PersonalConsumptionDTO:
:
getTotalConsumption
));
return
userIdAndPersonalConsumptionMap
;
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MyWalletCathMapper.java
View file @
0d8d3ea7
...
...
@@ -19,4 +19,5 @@ public interface MyWalletCathMapper extends Mapper<MyWalletCath> {
List
<
WalletCathListDTO
>
selectByUserNameOrPhoneOrWithDrawSate
(
@Param
(
"userName"
)
String
userName
,
@Param
(
"phone"
)
String
phone
,
@Param
(
"state"
)
Integer
state
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MyWalletDetailMapper.java
View file @
0d8d3ea7
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
mapper
;
import
com.github.wxiaoqi.security.admin.dto.PersonalConsumptionDTO
;
import
com.github.wxiaoqi.security.admin.dto.WalletDetailListDTO
;
import
com.github.wxiaoqi.security.admin.entity.MyWalletDetail
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 收入/支持明细表,每笔的进账,出账的详细记录
*
...
...
@@ -11,5 +16,8 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-07-11 14:14:54
*/
public
interface
MyWalletDetailMapper
extends
Mapper
<
MyWalletDetail
>
{
List
<
WalletDetailListDTO
>
findWalletDetailsByUserNameOrPhoneOrsourceType
(
@Param
(
"userName"
)
String
userName
,
@Param
(
"phone"
)
String
phone
,
@Param
(
"sourceType"
)
Integer
sourceType
);
List
<
PersonalConsumptionDTO
>
findpersonalConsumptionsByUserIds
(
@Param
(
"userIds"
)
List
<
Integer
>
userIds
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/admin/WalletDetailAdminController.java
0 → 100644
View file @
0d8d3ea7
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
.
admin
;
import
com.github.wxiaoqi.security.admin.biz.MyWalletDetailBiz
;
import
com.github.wxiaoqi.security.admin.dto.WalletDetailFindDTO
;
import
com.github.wxiaoqi.security.admin.vo.WalletDetailAdminVo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 13:30
*/
@RestController
@RequestMapping
(
"/walletdetail/admin"
)
public
class
WalletDetailAdminController
{
@Autowired
private
MyWalletDetailBiz
myWalletDetailBiz
;
@GetMapping
(
"/page"
)
public
ObjectRestResponse
<
PageDataVO
<
WalletDetailAdminVo
>>
findWalletDetailPage
(
WalletDetailFindDTO
walletDetailFindDTO
){
PageDataVO
<
WalletDetailAdminVo
>
walletDetailPage
=
myWalletDetailBiz
.
findWalletDetailPage
(
walletDetailFindDTO
);
return
ObjectRestResponse
.
succ
(
walletDetailPage
);
}
}
ace-modules/ace-admin/src/main/resources/mapper/MyWalletCathMapper.xml
View file @
0d8d3ea7
...
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"com.github.wxiaoqi.security.admin.mapper.MyWalletCathMapper"
>
<select
id=
"selectByUserNameOrPhoneOrWithDrawSate"
resultType=
"com.github.wxiaoqi.security.admin.dto.WalletListDTO"
>
<select
id=
"selectByUserNameOrPhoneOrWithDrawSate"
resultType=
"com.github.wxiaoqi.security.admin.dto.Wallet
Cath
ListDTO"
>
SELECT
wc.id,
aud.nickname,
...
...
@@ -20,10 +20,10 @@
</if>
) AS `wc`
INNER JOIN ( SELECT `id`, `username` FROM `app_user_login`
<if
test=
"phone != null and phone != ''"
>
WHERE `username`=#{phone}
</if>
) AS `aul` ON aul.id = w.user_id
</if>
) AS `aul` ON aul.id = w
c
.user_id
INNER JOIN ( SELECT `userid`, `nickname`, `realname` FROM `app_user_detail`
<if
test=
"userName != null and userName != ''"
>
WHERE nickname =#{user
n
ame} OR realname =#{userName}
WHERE nickname =#{user
N
ame} OR realname =#{userName}
</if>
) AS `aud` ON aud.userid = aul.id
</select>
</mapper>
\ No newline at end of file
ace-modules/ace-admin/src/main/resources/mapper/MyWalletDetailMapper.xml
0 → 100644
View file @
0d8d3ea7
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.github.wxiaoqi.security.admin.mapper.MyWalletDetailMapper"
>
<select
id=
"findWalletDetailsByUserNameOrPhoneOrsourceType"
resultType=
"com.github.wxiaoqi.security.admin.dto.WalletDetailListDTO"
>
SELECT
wd.id,
wd.source,
wd.amount,
wd.cono,
wd.itype,
wd.activity_id AS `activityId`,
wd.activity_name AS `activityName`,
aul.username,
aud.nickname,
aud.realname,
ausw.price,
ausw.extract,
ausw.waiting,
ausw.title
FROM
(select id,user_id,source,amount,cono,itype,activity_id,activity_name FROM `my_wallet_detail`
<if
test=
"sourceType != null"
>
WHERE `source`=#{sourceType}
</if>
) AS `wd`
LEFT JOIN (SELECT id,username FROM `app_user_login`
<if
test=
"phone != null and phone != ''"
>
WHERE `username`=#{phone}
</if>
) AS `aul` ON aul.id = wd.user_id
LEFT JOIN (SELECT userid,nickname,realname FROM `app_user_detail`
<if
test=
"userName != null and userName != ''"
>
WHERE `nickname`=#{userName} OR `realname`=#{userName}
</if>
) AS `aud` ON aud.userid = aul.id
LEFT JOIN (SELECT DISTINCT order_id,id,price,extract,waiting,title FROM `app_user_selling_water`) AS `ausw` ON ausw.order_id = wd.cono
</select>
<select
id=
"findpersonalConsumptionsByUserIds"
resultType=
"com.github.wxiaoqi.security.admin.dto.PersonalConsumptionDTO"
>
select `user_id` AS `userId`,SUM(amount) AS `totalConsumption` FROM my_wallet_cath
<if
test=
"userIds != null and userIds.size() != 0"
>
WHERE `user_id` IN
<foreach
collection=
"userIds"
item=
"userId"
open=
"("
close=
")"
separator=
","
>
#{userId}
</foreach>
</if>
GROUP BY user_id;
</select>
</mapper>
\ No newline at end of file
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