Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
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
常超
map-parent
Commits
5aa3071c
Commit
5aa3071c
authored
Nov 03, 2022
by
宋珺琪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
时空桌面(西藏)
parent
c76f18ea
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
504 additions
and
0 deletions
+504
-0
common/common_utils/src/main/java/com/founder/commonutils/model/newPublicEntity/SkypDesktopEntity/SkMenu.java
+72
-0
common/common_utils/src/main/java/com/founder/commonutils/model/newPublicEntity/SkypDesktopEntity/SkSchedule.java
+60
-0
service/publicapi/src/main/java/com/founder/publicapi/controller/SkypDesktop/SkypDesktopController.java
+305
-0
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/SkMenuMapper.java
+10
-0
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/SkScheduleMapper.java
+10
-0
service/publicapi/src/main/java/com/founder/publicapi/service/SkMenuService.java
+10
-0
service/publicapi/src/main/java/com/founder/publicapi/service/SkScheduleService.java
+10
-0
service/publicapi/src/main/java/com/founder/publicapi/service/serviceimpl/SkMenuServiceImpl.java
+14
-0
service/publicapi/src/main/java/com/founder/publicapi/service/serviceimpl/SkScheduleServiceImpl.java
+13
-0
No files found.
common/common_utils/src/main/java/com/founder/commonutils/model/newPublicEntity/SkypDesktopEntity/SkMenu.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
commonutils
.
model
.
newPublicEntity
.
SkypDesktopEntity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"sk_menu"
)
@ApiModel
(
value
=
"时空桌面菜单表"
,
description
=
""
)
public
class
SkMenu
{
@TableId
(
type
=
IdType
.
INPUT
)
@ApiModelProperty
(
value
=
"信息主键编号"
)
@TableField
(
"xxzjbh"
)
private
String
xxzjbh
;
@ApiModelProperty
(
value
=
"图标"
)
@TableField
(
"photo"
)
private
String
photo
;
@ApiModelProperty
(
value
=
"菜单名称"
)
@TableField
(
"menu"
)
private
String
menu
;
@ApiModelProperty
(
value
=
"备注"
)
@TableField
(
"bz"
)
private
String
bz
;
@ApiModelProperty
(
value
=
"跳转链接"
)
@TableField
(
"url"
)
private
String
url
;
@ApiModelProperty
(
value
=
"登记时间"
)
@TableField
(
"djsj"
)
private
String
djsj
;
@ApiModelProperty
(
value
=
"更新时间"
)
@TableField
(
"gxsj"
)
private
String
gxsj
;
@ApiModelProperty
(
value
=
"是否删除"
)
@TableField
(
"isDeleted"
)
private
String
isDeleted
;
@ApiModelProperty
(
value
=
"登记人证件号码"
)
@TableField
(
"zjhm"
)
private
String
zjhm
;
@ApiModelProperty
(
value
=
"登记人姓名"
)
@TableField
(
"xm"
)
private
String
xm
;
@ApiModelProperty
(
value
=
"状态 1 桌面 2 移入"
)
@TableField
(
"state"
)
private
String
state
;
@ApiModelProperty
(
value
=
"是否是固定菜单 0 否 1 是"
)
@TableField
(
"isFixedMenu"
)
private
String
isFixedMenu
;
}
common/common_utils/src/main/java/com/founder/commonutils/model/newPublicEntity/SkypDesktopEntity/SkSchedule.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
commonutils
.
model
.
newPublicEntity
.
SkypDesktopEntity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"sk_schedule"
)
@ApiModel
(
value
=
"时空桌面日程表"
,
description
=
""
)
public
class
SkSchedule
{
@TableId
(
type
=
IdType
.
INPUT
)
@ApiModelProperty
(
value
=
"信息主键编号"
)
@TableField
(
"xxzjbh"
)
private
String
xxzjbh
;
@ApiModelProperty
(
value
=
"日程时间"
)
@TableField
(
"time"
)
private
String
time
;
@ApiModelProperty
(
value
=
"备注"
)
@TableField
(
"bz"
)
private
String
bz
;
@ApiModelProperty
(
value
=
"日程内容"
)
@TableField
(
"url"
)
private
String
url
;
@ApiModelProperty
(
value
=
"登记时间"
)
@TableField
(
"djsj"
)
private
String
djsj
;
@ApiModelProperty
(
value
=
"更新时间"
)
@TableField
(
"gxsj"
)
private
String
gxsj
;
@ApiModelProperty
(
value
=
"是否删除"
)
@TableField
(
"isDeleted"
)
private
String
isDeleted
;
@ApiModelProperty
(
value
=
"登记人证件号码"
)
@TableField
(
"zjhm"
)
private
String
zjhm
;
@ApiModelProperty
(
value
=
"登记人姓名"
)
@TableField
(
"xm"
)
private
String
xm
;
@ApiModelProperty
(
value
=
"状态 1 已完成 2 未完成"
)
@TableField
(
"state"
)
private
String
state
;
}
service/publicapi/src/main/java/com/founder/publicapi/controller/SkypDesktop/SkypDesktopController.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
controller
.
SkypDesktop
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.founder.commonutils.model.newPublicEntity.MapRestResult
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkMenu
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkSchedule
;
import
com.founder.commonutils.util.Base64Util
;
import
com.founder.commonutils.util.KeyUtilNaotu
;
import
com.founder.commonutils.util.StringUtil
;
import
com.founder.publicapi.mapper.mysqlMapper.SkMenuMapper
;
import
com.founder.publicapi.mapper.mysqlMapper.SkScheduleMapper
;
import
com.founder.servicebase.logs.OperLog
;
import
com.founder.servicebase.logs.OperationType
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
@RestController
@RequestMapping
(
"/desktop"
)
@Api
(
tags
=
"时空桌面"
)
public
class
SkypDesktopController
{
@Autowired
SkMenuMapper
skMenuMapper
;
@Autowired
SkScheduleMapper
skScheduleMapper
;
/**
* 时空桌面菜单新增
* @return
*/
@PostMapping
(
"menuAdd"
)
@ApiOperation
(
value
=
"时空桌面菜单新增"
)
@OperLog
(
message
=
"时空桌面菜单新增"
,
operation
=
OperationType
.
ADD
)
public
MapRestResult
menuAdd
(
SkMenu
skMenu
,
MultipartFile
photoFile
)
throws
IOException
{
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
eq
(!
StringUtil
.
isEmpty
(
skMenu
.
getMenu
()),
"menu"
,
skMenu
.
getMenu
());
Integer
count
=
skMenuMapper
.
selectCount
(
wrapper
);
if
(
count
!=
0
){
return
new
MapRestResult
(
200
,
"已经存在该菜单名称"
,
null
);
}
else
{
skMenu
.
setState
(
"1"
);
// 桌面
skMenu
.
setPhoto
(
"data:image/jpg;base64,"
+
Base64Util
.
getBase64
(
photoFile
));
skMenu
.
setDjsj
(
nowTime
());
skMenu
.
setGxsj
(
nowTime
());
String
xxzjbh
=
KeyUtilNaotu
.
getJzKey
(
"me"
);
skMenu
.
setXxzjbh
(
xxzjbh
);
skMenu
.
setIsDeleted
(
"0"
);
int
insert
=
skMenuMapper
.
insert
(
skMenu
);
if
(
insert
>
0
){
return
new
MapRestResult
(
200
,
"新增成功"
,
xxzjbh
);
}
else
{
return
new
MapRestResult
().
error
(
"保存失败"
);
}
}
}
/**
* 时空桌面菜单删除
* @return
*/
@PostMapping
(
"menuDelete"
)
@ApiOperation
(
value
=
"时空桌面菜单删除"
)
@OperLog
(
message
=
"时空桌面菜单删除"
,
operation
=
OperationType
.
DELETE
)
public
MapRestResult
menuDelete
(
@RequestBody
SkMenu
skMenu
){
SkMenu
byId
=
skMenuMapper
.
selectById
(
skMenu
.
getXxzjbh
());
byId
.
setIsDeleted
(
"1"
);
int
i
=
skMenuMapper
.
updateById
(
byId
);
if
(
i
>
0
){
return
new
MapRestResult
();
}
else
{
return
new
MapRestResult
().
error
();
}
}
/**
* 时空桌面菜单修改
* @return
*/
@PostMapping
(
"menuUpdate"
)
@ApiOperation
(
value
=
"时空桌面菜单修改"
)
@OperLog
(
message
=
"时空桌面菜单修改"
,
operation
=
OperationType
.
UPDATE
)
public
MapRestResult
menuUpdate
(
SkMenu
skMenu
,
@RequestParam
(
required
=
false
)
MultipartFile
photoFile
)
throws
IOException
{
if
(
photoFile
!=
null
){
skMenu
.
setPhoto
(
"data:image/jpg;base64,"
+
Base64Util
.
getBase64
(
photoFile
));
}
skMenu
.
setGxsj
(
nowTime
());
int
i
=
skMenuMapper
.
updateById
(
skMenu
);
if
(
i
>
0
){
return
new
MapRestResult
();
}
else
{
return
new
MapRestResult
().
error
();
}
}
/**
* 时空桌面菜单查询
* 根据当前登录者的zjhm
* @return
*/
@PostMapping
(
"menuQuery"
)
@ApiOperation
(
value
=
"时空桌面菜单查询"
)
@OperLog
(
message
=
"时空桌面菜单查询"
,
operation
=
OperationType
.
QUERY
)
public
MapRestResult
menuQuery
(
@RequestBody
SkMenu
skMenu
){
String
zjhm
=
skMenu
.
getZjhm
();
if
(
StringUtil
.
isEmpty
(
zjhm
)){
return
new
MapRestResult
(
200
,
"zjhm为空"
,
null
);
}
Map
<
Object
,
Object
>
map
=
new
HashMap
<>();
// 十个固定的
QueryWrapper
wrapper2
=
new
QueryWrapper
<>();
wrapper2
.
eq
(!
StringUtil
.
isEmpty
(
zjhm
),
"zjhm"
,
zjhm
);
wrapper2
.
eq
(
"isDeleted"
,
"0"
);
wrapper2
.
eq
(
"isFixedMenu"
,
"1"
);
List
list2
=
skMenuMapper
.
selectList
(
wrapper2
);
// 新增的
QueryWrapper
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(!
StringUtil
.
isEmpty
(
zjhm
),
"zjhm"
,
zjhm
);
wrapper
.
eq
(
"isDeleted"
,
"0"
);
// wrapper.eq("state","1");
List
list
=
skMenuMapper
.
selectList
(
wrapper
);
/*
// 移入的
QueryWrapper wrapper3 = new QueryWrapper<>();
wrapper3.eq(!StringUtil.isEmpty(zjhm),"zjhm", zjhm);
wrapper3.eq("isDeleted","0");
wrapper3.eq("state","2");
List list3 = skMenuMapper.selectList(wrapper3);*/
List
<
Object
>
collect
=
Stream
.
of
(
list2
,
list
)
.
flatMap
(
Collection:
:
stream
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
map
.
put
(
"桌面"
,
collect
);
//查询移入的
QueryWrapper
wrapper1
=
new
QueryWrapper
<>();
wrapper1
.
eq
(!
StringUtil
.
isEmpty
(
zjhm
),
"zjhm"
,
zjhm
);
wrapper1
.
eq
(
"isDeleted"
,
"0"
);
wrapper1
.
eq
(
"state"
,
"2"
);
List
list1
=
skMenuMapper
.
selectList
(
wrapper1
);
map
.
put
(
"移入"
,
list1
);
return
new
MapRestResult
(
200
,
"ok"
,
map
.
size
(),
map
);
}
/**
* 时空桌面菜单移入
* 状态 1 桌面 2 移入
* @return
*/
@PostMapping
(
"menuMove"
)
@ApiOperation
(
value
=
"时空桌面菜单移入"
)
@OperLog
(
message
=
"时空桌面菜单移入"
,
operation
=
OperationType
.
QUERY
)
public
MapRestResult
menuMove
(
@RequestBody
SkMenu
skMenu
){
skMenu
.
setState
(
"2"
);
int
i
=
skMenuMapper
.
updateById
(
skMenu
);
return
new
MapRestResult
(
200
,
"ok"
,
null
);
}
/**
* 时空桌面菜单移出
* 状态 1 桌面 2 移入
* @return
*/
@PostMapping
(
"menuRemove"
)
@ApiOperation
(
value
=
"时空桌面菜单移出"
)
@OperLog
(
message
=
"时空桌面菜单移出"
,
operation
=
OperationType
.
QUERY
)
public
MapRestResult
menuRemove
(
@RequestBody
SkMenu
skMenu
){
skMenu
.
setState
(
"1"
);
int
i
=
skMenuMapper
.
updateById
(
skMenu
);
return
new
MapRestResult
(
200
,
"ok"
,
null
);
}
/**
* 时空桌面菜单详情
* @return
*/
@PostMapping
(
"menuDetails"
)
@ApiOperation
(
value
=
"时空桌面菜单详情"
)
@OperLog
(
message
=
"时空桌面菜单详情"
,
operation
=
OperationType
.
QUERY
)
public
MapRestResult
menuDetails
(
@RequestBody
SkMenu
skMenu
){
SkMenu
skMenu1
=
skMenuMapper
.
selectById
(
skMenu
.
getXxzjbh
());
return
new
MapRestResult
(
200
,
"ok"
,
skMenu1
);
}
/**
* 时空桌面日程新增
* @return
*/
@PostMapping
(
"scheduleAdd"
)
@ApiOperation
(
value
=
"时空桌面日程新增"
)
@OperLog
(
message
=
"时空桌面日程新增"
,
operation
=
OperationType
.
ADD
)
public
MapRestResult
scheduleAdd
(
@RequestBody
SkSchedule
skSchedule
){
skSchedule
.
setXxzjbh
(
KeyUtilNaotu
.
getJzKey
(
"sc"
));
skSchedule
.
setDjsj
(
nowTime
());
skSchedule
.
setIsDeleted
(
"0"
);
int
insert
=
skScheduleMapper
.
insert
(
skSchedule
);
if
(
insert
>
0
){
return
new
MapRestResult
(
200
,
"新增成功"
,
null
);
}
else
{
return
new
MapRestResult
().
error
(
"保存失败"
);
}
}
/**
* 时空桌面日程删除
* @return
*/
@PostMapping
(
"scheduleDelete"
)
@ApiOperation
(
value
=
"时空桌面日程删除"
)
@OperLog
(
message
=
"时空桌面日程删除"
,
operation
=
OperationType
.
DELETE
)
public
MapRestResult
scheduleDelete
(
@RequestBody
SkSchedule
skSchedule
){
SkSchedule
byId
=
skScheduleMapper
.
selectById
(
skSchedule
.
getXxzjbh
());
byId
.
setIsDeleted
(
"1"
);
int
i
=
skScheduleMapper
.
updateById
(
byId
);
if
(
i
>
0
){
return
new
MapRestResult
(
200
,
"删除成功"
,
null
);
}
else
{
return
new
MapRestResult
().
error
();
}
}
/**
* 时空桌面日程修改
* @return
*/
@PostMapping
(
"scheduleUpdate"
)
@ApiOperation
(
value
=
"时空桌面日程修改"
)
@OperLog
(
message
=
"时空桌面日程修改"
,
operation
=
OperationType
.
UPDATE
)
public
MapRestResult
scheduleUpdate
(
@RequestBody
SkSchedule
skSchedule
){
skSchedule
.
setGxsj
(
nowTime
());
int
i
=
skScheduleMapper
.
updateById
(
skSchedule
);
if
(
i
>
0
){
return
new
MapRestResult
(
200
,
"修改成功"
,
null
);
}
else
{
return
new
MapRestResult
().
error
();
}
}
/**
* 时空桌面日程查询
* 根据当前登录者的zjhm
* @return
*/
@PostMapping
(
"scheduleQuery"
)
@ApiOperation
(
value
=
"时空桌面日程查询"
)
@OperLog
(
message
=
"时空桌面日程查询"
,
operation
=
OperationType
.
QUERY
)
public
MapRestResult
scheduleQuery
(
@RequestBody
SkSchedule
skSchedule
){
String
zjhm
=
skSchedule
.
getZjhm
();
String
state
=
skSchedule
.
getState
();
if
(
StringUtil
.
isEmpty
(
zjhm
)){
return
new
MapRestResult
(
200
,
"zjhm为空"
,
null
);
}
QueryWrapper
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"state"
,
state
);
wrapper
.
eq
(
"zjhm"
,
zjhm
);
wrapper
.
eq
(
"isDeleted"
,
"0"
);
List
list
=
skScheduleMapper
.
selectList
(
wrapper
);
return
new
MapRestResult
(
200
,
"ok"
,
list
.
size
(),
list
);
}
/**
* 时空桌面日程详情
* @return
*/
@PostMapping
(
"scheduleDetails"
)
@ApiOperation
(
value
=
"时空桌面日程详情"
)
@OperLog
(
message
=
"时空桌面日程详情"
,
operation
=
OperationType
.
QUERY
)
public
MapRestResult
scheduleDetails
(
@RequestBody
SkSchedule
skSchedule
){
SkSchedule
skSchedule1
=
skScheduleMapper
.
selectById
(
skSchedule
.
getXxzjbh
());
return
new
MapRestResult
(
200
,
"ok"
,
skSchedule1
);
}
/**
* 当前时间
* @return
*/
public
String
nowTime
(){
Date
date
=
new
Date
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
return
formatter
.
format
(
date
);
}
}
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/SkMenuMapper.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
mapper
.
mysqlMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkMenu
;
/**
* 时空桌面菜单(SkMenu)表数据库访问层
*/
public
interface
SkMenuMapper
extends
BaseMapper
<
SkMenu
>
{
}
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/SkScheduleMapper.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
mapper
.
mysqlMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkSchedule
;
/**
* 时空桌面日程表(sk_schedule)表数据库访问层
*/
public
interface
SkScheduleMapper
extends
BaseMapper
<
SkSchedule
>
{
}
service/publicapi/src/main/java/com/founder/publicapi/service/SkMenuService.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkMenu
;
/**
* 时空桌面菜单(SkMenu)表服务接口
*/
public
interface
SkMenuService
extends
IService
<
SkMenu
>
{
}
service/publicapi/src/main/java/com/founder/publicapi/service/SkScheduleService.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkSchedule
;
/**
* 时空桌面日程表(sk_schedule)表服务接口
*/
public
interface
SkScheduleService
extends
IService
<
SkSchedule
>
{
}
service/publicapi/src/main/java/com/founder/publicapi/service/serviceimpl/SkMenuServiceImpl.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
service
.
serviceimpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkMenu
;
import
com.founder.publicapi.mapper.mysqlMapper.SkMenuMapper
;
import
com.founder.publicapi.service.SkMenuService
;
import
org.springframework.stereotype.Service
;
/**
* 时空桌面菜单(SkMenu)表服务实现类
*/
@Service
(
"SkMenuService"
)
public
class
SkMenuServiceImpl
extends
ServiceImpl
<
SkMenuMapper
,
SkMenu
>
implements
SkMenuService
{
}
service/publicapi/src/main/java/com/founder/publicapi/service/serviceimpl/SkScheduleServiceImpl.java
0 → 100644
View file @
5aa3071c
package
com
.
founder
.
publicapi
.
service
.
serviceimpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkSchedule
;
import
com.founder.publicapi.mapper.mysqlMapper.SkScheduleMapper
;
import
com.founder.publicapi.service.SkScheduleService
;
import
org.springframework.stereotype.Service
;
/**
* 时空桌面日程表(sk_schedule)表服务实现类
*/
@Service
(
"SkScheduleService"
)
public
class
SkScheduleServiceImpl
extends
ServiceImpl
<
SkScheduleMapper
,
SkSchedule
>
implements
SkScheduleService
{
}
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