Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
2e902875
Commit
2e902875
authored
May 16, 2023
by
徐高华
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feature/五月需求迭代' into feature/五月需求迭代
parents
77e24cc2
34e20e14
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
376 additions
and
6 deletions
+376
-6
WxEnterpriseRelatedDTO.java
...com/gic/haoban/manage/api/dto/WxEnterpriseRelatedDTO.java
+149
-0
StaffApiService.java
...va/com/gic/haoban/manage/api/service/StaffApiService.java
+7
-0
TabHaobanStaffClerkRelationMapper.java
...service/dao/mapper/TabHaobanStaffClerkRelationMapper.java
+9
-0
StaffClerkRelationService.java
...ban/manage/service/service/StaffClerkRelationService.java
+8
-0
StaffClerkRelationServiceImpl.java
...e/service/service/impl/StaffClerkRelationServiceImpl.java
+5
-0
StaffApiServiceImpl.java
.../manage/service/service/out/impl/StaffApiServiceImpl.java
+16
-2
TabHaobanStaffClerkRelationMapper.xml
...in/resources/mapper/TabHaobanStaffClerkRelationMapper.xml
+15
-0
StaffController.java
...com/gic/haoban/manage/web/controller/StaffController.java
+18
-4
WxEnterpriseRelatedVO.java
...a/com/gic/haoban/manage/web/vo/WxEnterpriseRelatedVO.java
+149
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/WxEnterpriseRelatedDTO.java
0 → 100644
View file @
2e902875
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
;
import
java.io.Serializable
;
import
java.util.Date
;
public
class
WxEnterpriseRelatedDTO
implements
Serializable
{
private
String
wxEnterpriseRelatedId
;
private
String
wxEnterpriseId
;
private
String
enterpriseId
;
private
String
enterpriseName
;
private
String
version
;
private
Integer
statusFlag
;
private
Date
createTime
;
private
Date
updateTime
;
private
String
staffId
;
private
String
staffName
;
private
Integer
wxEnterpriseType
;
private
Integer
memberOpenCardFlag
;
private
Integer
rangeType
;
private
Integer
clerkEditFlag
;
public
Integer
getClerkEditFlag
()
{
return
clerkEditFlag
;
}
public
void
setClerkEditFlag
(
Integer
clerkEditFlag
)
{
this
.
clerkEditFlag
=
clerkEditFlag
;
}
private
static
final
long
serialVersionUID
=
1L
;
public
Integer
getRangeType
()
{
return
rangeType
;
}
public
void
setRangeType
(
Integer
rangeType
)
{
this
.
rangeType
=
rangeType
;
}
public
Integer
getWxEnterpriseType
()
{
return
wxEnterpriseType
;
}
public
void
setWxEnterpriseType
(
Integer
wxEnterpriseType
)
{
this
.
wxEnterpriseType
=
wxEnterpriseType
;
}
public
Integer
getMemberOpenCardFlag
()
{
return
memberOpenCardFlag
;
}
public
void
setMemberOpenCardFlag
(
Integer
memberOpenCardFlag
)
{
this
.
memberOpenCardFlag
=
memberOpenCardFlag
;
}
public
String
getWxEnterpriseRelatedId
()
{
return
wxEnterpriseRelatedId
;
}
public
void
setWxEnterpriseRelatedId
(
String
wxEnterpriseRelatedId
)
{
this
.
wxEnterpriseRelatedId
=
wxEnterpriseRelatedId
==
null
?
null
:
wxEnterpriseRelatedId
.
trim
();
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
==
null
?
null
:
wxEnterpriseId
.
trim
();
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
==
null
?
null
:
enterpriseId
.
trim
();
}
public
String
getVersion
()
{
return
version
;
}
public
void
setVersion
(
String
version
)
{
this
.
version
=
version
==
null
?
null
:
version
.
trim
();
}
public
Integer
getStatusFlag
()
{
return
statusFlag
;
}
public
void
setStatusFlag
(
Integer
statusFlag
)
{
this
.
statusFlag
=
statusFlag
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
String
getStaffName
()
{
return
staffName
;
}
public
void
setStaffName
(
String
staffName
)
{
this
.
staffName
=
staffName
;
}
public
String
getEnterpriseName
()
{
return
enterpriseName
;
}
public
void
setEnterpriseName
(
String
enterpriseName
)
{
this
.
enterpriseName
=
enterpriseName
;
}
}
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/StaffApiService.java
View file @
2e902875
...
@@ -337,4 +337,11 @@ public interface StaffApiService {
...
@@ -337,4 +337,11 @@ public interface StaffApiService {
* @return
* @return
*/
*/
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
<
Boolean
>
autoActivateCallBack
(
String
params
)
;
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
<
Boolean
>
autoActivateCallBack
(
String
params
)
;
/**
* 查询企业微信对应的所有商户品牌信息
* @param wxEnterpriseId 企业微信id
* @return
*/
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
<
List
<
WxEnterpriseRelatedDTO
>>
getWxEnterpriseRelatedList
(
String
wxEnterpriseId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/TabHaobanStaffClerkRelationMapper.java
View file @
2e902875
...
@@ -121,4 +121,12 @@ public interface TabHaobanStaffClerkRelationMapper {
...
@@ -121,4 +121,12 @@ public interface TabHaobanStaffClerkRelationMapper {
List
<
StaffClerkRelationDTO
>
listByStoreIds
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"storeIds"
)
List
<
String
>
storeIds
);
List
<
StaffClerkRelationDTO
>
listByStoreIds
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"storeIds"
)
List
<
String
>
storeIds
);
List
<
String
>
listAllClerkIdsByEnterpriseId
(
@Param
(
"enterpriseId"
)
String
enterpriseId
);
List
<
String
>
listAllClerkIdsByEnterpriseId
(
@Param
(
"enterpriseId"
)
String
enterpriseId
);
/**
* 根据staffId查询gic品牌id
* @param wxEnterpriseId 企业微信id
* @param staffIdList 成员id数组
* @return
*/
List
<
StaffClerkRelationDTO
>
listByWxEnterpriseIdAndStaffId
(
@Param
(
"wxEnterpriseId"
)
String
wxEnterpriseId
,
@Param
(
"staffIdList"
)
Set
<
String
>
staffIdList
);
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/StaffClerkRelationService.java
View file @
2e902875
...
@@ -177,4 +177,12 @@ public interface StaffClerkRelationService {
...
@@ -177,4 +177,12 @@ public interface StaffClerkRelationService {
* @return
* @return
*/
*/
List
<
String
>
listAllClerkIdsByEnterpriseId
(
String
enterpriseId
);
List
<
String
>
listAllClerkIdsByEnterpriseId
(
String
enterpriseId
);
/**
* 根据staffId查询gic品牌id
* @param wxEnterpriseId 企业微信id
* @param staffIdList 成员id数组
* @return
*/
List
<
StaffClerkRelationDTO
>
listByWxEnterpriseIdAndStaffId
(
String
wxEnterpriseId
,
Set
<
String
>
staffIdList
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/StaffClerkRelationServiceImpl.java
View file @
2e902875
...
@@ -556,4 +556,9 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
...
@@ -556,4 +556,9 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
public
List
<
String
>
listAllClerkIdsByEnterpriseId
(
String
enterpriseId
)
{
public
List
<
String
>
listAllClerkIdsByEnterpriseId
(
String
enterpriseId
)
{
return
this
.
mapper
.
listAllClerkIdsByEnterpriseId
(
enterpriseId
);
return
this
.
mapper
.
listAllClerkIdsByEnterpriseId
(
enterpriseId
);
}
}
@Override
public
List
<
StaffClerkRelationDTO
>
listByWxEnterpriseIdAndStaffId
(
String
wxEnterpriseId
,
Set
<
String
>
staffIdList
)
{
return
this
.
mapper
.
listByWxEnterpriseIdAndStaffId
(
wxEnterpriseId
,
staffIdList
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/StaffApiServiceImpl.java
View file @
2e902875
...
@@ -158,11 +158,19 @@ public class StaffApiServiceImpl implements StaffApiService {
...
@@ -158,11 +158,19 @@ public class StaffApiServiceImpl implements StaffApiService {
List
<
String
>
relationIdList
=
this
.
staffClerkRelationService
.
listRelationsStaffId
(
staffIdList
);
List
<
String
>
relationIdList
=
this
.
staffClerkRelationService
.
listRelationsStaffId
(
staffIdList
);
//已关联的成员需要查询关联的品牌名称
//已关联的成员需要查询关联的品牌名称
List
<
TabHaobanWxEnterpriseRelated
>
list
=
wxEnterpriseRelatedService
.
getByWxEnterpriseId
(
wxEnterpriseId
);
List
<
TabHaobanWxEnterpriseRelated
>
list
=
wxEnterpriseRelatedService
.
getByWxEnterpriseId
(
wxEnterpriseId
);
List
<
String
>
enterpriseNameSet
=
list
.
stream
().
map
(
dto
->
dto
.
getEnterpriseName
()).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
map
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
TabHaobanWxEnterpriseRelated:
:
getEnterpriseId
,
TabHaobanWxEnterpriseRelated:
:
getEnterpriseName
));
List
<
StaffClerkRelationDTO
>
relationDTOList
=
staffClerkRelationService
.
listByWxEnterpriseIdAndStaffId
(
wxEnterpriseId
,
staffIdList
);
staffDTOList
.
forEach
(
one
->
{
staffDTOList
.
forEach
(
one
->
{
if
(
relationIdList
.
contains
(
one
.
getStaffId
())){
if
(
relationIdList
.
contains
(
one
.
getStaffId
())){
one
.
setRelationFlag
(
1
);
one
.
setRelationFlag
(
1
);
one
.
setEnterpriseNameList
(
enterpriseNameSet
);
//查询导购关联关系表,找到对应的
List
<
String
>
enterpriseNameList
=
new
ArrayList
<>(
8
);
relationDTOList
.
forEach
(
a
->{
if
(
a
.
getStaffId
().
equals
(
one
.
getStaffId
())){
enterpriseNameList
.
add
(
map
.
get
(
a
.
getEnterpriseId
()));
}
});
one
.
setEnterpriseNameList
(
enterpriseNameList
);
}
else
{
}
else
{
one
.
setRelationFlag
(
0
);
one
.
setRelationFlag
(
0
);
}
}
...
@@ -1118,4 +1126,10 @@ public class StaffApiServiceImpl implements StaffApiService {
...
@@ -1118,4 +1126,10 @@ public class StaffApiServiceImpl implements StaffApiService {
}
}
return
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
.
success
(
true
);
return
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
.
success
(
true
);
}
}
@Override
public
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
<
List
<
WxEnterpriseRelatedDTO
>>
getWxEnterpriseRelatedList
(
String
wxEnterpriseId
)
{
List
<
TabHaobanWxEnterpriseRelated
>
list
=
wxEnterpriseRelatedService
.
getByWxEnterpriseId
(
wxEnterpriseId
);
return
com
.
gic
.
api
.
base
.
commons
.
ServiceResponse
.
success
(
com
.
gic
.
haoban
.
common
.
utils
.
EntityUtil
.
changeEntityListByJSON
(
WxEnterpriseRelatedDTO
.
class
,
list
));
}
}
}
haoban-manage3-service/src/main/resources/mapper/TabHaobanStaffClerkRelationMapper.xml
View file @
2e902875
...
@@ -453,4 +453,18 @@
...
@@ -453,4 +453,18 @@
where a.enterprise_id = #{enterpriseId} and a.status_flag=1 and b.status_flag = 1
where a.enterprise_id = #{enterpriseId} and a.status_flag=1 and b.status_flag = 1
</select>
</select>
<select
id=
"listByWxEnterpriseIdAndStaffId"
resultType=
"com.gic.haoban.manage.api.dto.StaffClerkRelationDTO"
>
select
staff_id staffId,
enterprise_id enterpriseId
from tab_haoban_staff_clerk_relation
WHERE
wx_enterprise_id = #{wxEnterpriseId}
AND status_flag = 1
AND staff_id in
<foreach
collection=
"staffIdList"
item=
"item"
separator=
","
open=
"("
close=
")"
>
#{item}
</foreach>
</select>
</mapper>
</mapper>
\ No newline at end of file
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/StaffController.java
View file @
2e902875
...
@@ -12,7 +12,7 @@ import com.gic.haoban.manage.api.dto.qdto.TransferActiveCodeQDTO;
...
@@ -12,7 +12,7 @@ import com.gic.haoban.manage.api.dto.qdto.TransferActiveCodeQDTO;
import
com.gic.haoban.manage.api.service.*
;
import
com.gic.haoban.manage.api.service.*
;
import
com.gic.haoban.manage.web.log.LogRecordUserServiceImpl
;
import
com.gic.haoban.manage.web.log.LogRecordUserServiceImpl
;
import
com.gic.haoban.manage.web.qo.TransferActiveCodeQO
;
import
com.gic.haoban.manage.web.qo.TransferActiveCodeQO
;
import
com.gic.haoban.manage.web.vo.
StaffActiveDataVO
;
import
com.gic.haoban.manage.web.vo.
*
;
import
com.gic.log.record.anno.GicLogRecord
;
import
com.gic.log.record.anno.GicLogRecord
;
import
com.gic.log.record.util.GicLogRecordCategoryEnum
;
import
com.gic.log.record.util.GicLogRecordCategoryEnum
;
import
com.gic.log.record.util.GicLogRecordEvaluationContext
;
import
com.gic.log.record.util.GicLogRecordEvaluationContext
;
...
@@ -47,9 +47,6 @@ import com.gic.haoban.common.utils.PageUtil;
...
@@ -47,9 +47,6 @@ import com.gic.haoban.common.utils.PageUtil;
import
com.gic.haoban.manage.api.enums.ChannelCodeEnum
;
import
com.gic.haoban.manage.api.enums.ChannelCodeEnum
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.haoban.manage.web.qo.StaffEditJsonQO
;
import
com.gic.haoban.manage.web.qo.StaffEditJsonQO
;
import
com.gic.haoban.manage.web.vo.ClerkInfoVo
;
import
com.gic.haoban.manage.web.vo.StaffExportVO
;
import
com.gic.haoban.manage.web.vo.StaffVO
;
import
com.gic.wechat.api.service.qywx.QywxUserApiService
;
import
com.gic.wechat.api.service.qywx.QywxUserApiService
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
...
@@ -126,6 +123,8 @@ public class StaffController extends WebBaseController {
...
@@ -126,6 +123,8 @@ public class StaffController extends WebBaseController {
* @param relationFlag 关联状态
* @param relationFlag 关联状态
* @param permitState 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,可多传,按‘,’隔开
* @param permitState 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,可多传,按‘,’隔开
* @param occupy 其他占用许可页面标志,传1返回该页面数据
* @param occupy 其他占用许可页面标志,传1返回该页面数据
* @param sortField 排序字段 不传默认create_time
* @param sortType 排序类型 不传默认desc
* @param pageInfo 分页参数
* @param pageInfo 分页参数
* @return res
* @return res
*/
*/
...
@@ -136,6 +135,8 @@ public class StaffController extends WebBaseController {
...
@@ -136,6 +135,8 @@ public class StaffController extends WebBaseController {
String
keyWord
,
String
keyWord
,
String
permitState
,
String
permitState
,
Integer
occupy
,
Integer
occupy
,
@RequestParam
(
defaultValue
=
"create_time"
)
String
sortField
,
@RequestParam
(
defaultValue
=
"desc"
)
String
sortType
,
BasePageInfo
pageInfo
)
{
BasePageInfo
pageInfo
)
{
WebLoginDTO
login
=
AuthWebRequestUtil
.
getLoginUser
();
WebLoginDTO
login
=
AuthWebRequestUtil
.
getLoginUser
();
String
wxEnterpriseId
=
login
.
getWxEnterpriseId
();
String
wxEnterpriseId
=
login
.
getWxEnterpriseId
();
...
@@ -631,4 +632,17 @@ public class StaffController extends WebBaseController {
...
@@ -631,4 +632,17 @@ public class StaffController extends WebBaseController {
return
RestResponse
.
successResult
(
transferActiveCodeDTOServiceResponse
);
return
RestResponse
.
successResult
(
transferActiveCodeDTOServiceResponse
);
}
}
/**
* 查询企业微信对应的所有商户品牌信息
*
*/
@RequestMapping
(
"get-wxEnterprise-related-list"
)
public
RestResponse
<
List
<
WxEnterpriseRelatedVO
>>
getWxEnterpriseRelatedList
()
{
WebLoginDTO
login
=
AuthWebRequestUtil
.
getLoginUser
();
String
wxEnterpriseId
=
login
.
getWxEnterpriseId
();
ServiceResponse
<
List
<
WxEnterpriseRelatedDTO
>>
response
=
staffApiService
.
getWxEnterpriseRelatedList
(
wxEnterpriseId
);
List
<
WxEnterpriseRelatedVO
>
vo
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
response
.
getResult
()),
WxEnterpriseRelatedVO
.
class
);
return
RestResponse
.
successResult
(
vo
);
}
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/WxEnterpriseRelatedVO.java
0 → 100644
View file @
2e902875
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
;
import
java.io.Serializable
;
import
java.util.Date
;
public
class
WxEnterpriseRelatedVO
implements
Serializable
{
private
String
wxEnterpriseRelatedId
;
private
String
wxEnterpriseId
;
private
String
enterpriseId
;
private
String
enterpriseName
;
private
String
version
;
private
Integer
statusFlag
;
private
Date
createTime
;
private
Date
updateTime
;
private
String
staffId
;
private
String
staffName
;
private
Integer
wxEnterpriseType
;
private
Integer
memberOpenCardFlag
;
private
Integer
rangeType
;
private
Integer
clerkEditFlag
;
public
Integer
getClerkEditFlag
()
{
return
clerkEditFlag
;
}
public
void
setClerkEditFlag
(
Integer
clerkEditFlag
)
{
this
.
clerkEditFlag
=
clerkEditFlag
;
}
private
static
final
long
serialVersionUID
=
1L
;
public
Integer
getRangeType
()
{
return
rangeType
;
}
public
void
setRangeType
(
Integer
rangeType
)
{
this
.
rangeType
=
rangeType
;
}
public
Integer
getWxEnterpriseType
()
{
return
wxEnterpriseType
;
}
public
void
setWxEnterpriseType
(
Integer
wxEnterpriseType
)
{
this
.
wxEnterpriseType
=
wxEnterpriseType
;
}
public
Integer
getMemberOpenCardFlag
()
{
return
memberOpenCardFlag
;
}
public
void
setMemberOpenCardFlag
(
Integer
memberOpenCardFlag
)
{
this
.
memberOpenCardFlag
=
memberOpenCardFlag
;
}
public
String
getWxEnterpriseRelatedId
()
{
return
wxEnterpriseRelatedId
;
}
public
void
setWxEnterpriseRelatedId
(
String
wxEnterpriseRelatedId
)
{
this
.
wxEnterpriseRelatedId
=
wxEnterpriseRelatedId
==
null
?
null
:
wxEnterpriseRelatedId
.
trim
();
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
==
null
?
null
:
wxEnterpriseId
.
trim
();
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
==
null
?
null
:
enterpriseId
.
trim
();
}
public
String
getVersion
()
{
return
version
;
}
public
void
setVersion
(
String
version
)
{
this
.
version
=
version
==
null
?
null
:
version
.
trim
();
}
public
Integer
getStatusFlag
()
{
return
statusFlag
;
}
public
void
setStatusFlag
(
Integer
statusFlag
)
{
this
.
statusFlag
=
statusFlag
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
String
getStaffName
()
{
return
staffName
;
}
public
void
setStaffName
(
String
staffName
)
{
this
.
staffName
=
staffName
;
}
public
String
getEnterpriseName
()
{
return
enterpriseName
;
}
public
void
setEnterpriseName
(
String
enterpriseName
)
{
this
.
enterpriseName
=
enterpriseName
;
}
}
\ 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