Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-webapp-plug
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
base_platform_enterprise
gic-webapp-plug
Commits
afe6efda
Commit
afe6efda
authored
Feb 01, 2021
by
guojuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
门店选择器接口返回统一字段
parent
14bc5ff1
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
372 additions
and
17 deletions
+372
-17
StoreBrandController.java
...ava/com/gic/plug/web/controller/StoreBrandController.java
+14
-2
StoreController.java
...ain/java/com/gic/plug/web/controller/StoreController.java
+2
-3
StoreGroupController.java
...ava/com/gic/plug/web/controller/StoreGroupController.java
+56
-2
StoreTagController.java
.../java/com/gic/plug/web/controller/StoreTagController.java
+11
-1
StoreTypeController.java
...java/com/gic/plug/web/controller/StoreTypeController.java
+58
-0
StoreResourceVO.java
src/main/java/com/gic/plug/web/vo/StoreResourceVO.java
+121
-8
StoreWidgetVO.java
src/main/java/com/gic/plug/web/vo/StoreWidgetVO.java
+69
-1
StoreWidgetInterfaceVO.java
...va/com/gic/plug/web/vo/widget/StoreWidgetInterfaceVO.java
+41
-0
No files found.
src/main/java/com/gic/plug/web/controller/StoreBrandController.java
View file @
afe6efda
package
com
.
gic
.
plug
.
web
.
controller
;
package
com
.
gic
.
plug
.
web
.
controller
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
com.gic.plug.web.vo.widget.StoreWidgetInterfaceVO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -33,9 +37,17 @@ public class StoreBrandController {
...
@@ -33,9 +37,17 @@ public class StoreBrandController {
Integer
enterpriseId
=
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
();
Integer
enterpriseId
=
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
();
ServiceResponse
<
List
<
StoreBrandDTO
>>
serviceResponse
=
storeBrandApiService
.
listAllStoreBrand
(
enterpriseId
,
search
);
ServiceResponse
<
List
<
StoreBrandDTO
>>
serviceResponse
=
storeBrandApiService
.
listAllStoreBrand
(
enterpriseId
,
search
);
if
(
serviceResponse
.
isSuccess
())
{
if
(
serviceResponse
.
isSuccess
())
{
return
RestResponse
.
success
(
StoreResourceUtils
.
auth
(
List
<
StoreBrandDTO
>
list
=
StoreResourceUtils
.
auth
(
serviceResponse
.
getResult
(),
serviceResponse
.
getResult
(),
StoreESFieldsEnum
.
STOREBRANDIDLIST
.
getField
()));
StoreESFieldsEnum
.
STOREBRANDIDLIST
.
getField
());
List
<
StoreWidgetInterfaceVO
>
voList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
voList
=
list
.
stream
()
.
map
(
e
->
new
StoreWidgetInterfaceVO
().
setLabel
(
e
.
getStoreBrandName
()).
setValue
(
e
.
getStoreBrandId
().
toString
()))
.
collect
(
Collectors
.
toList
());
}
return
RestResponse
.
success
(
voList
);
}
else
{
}
else
{
return
RestResponse
.
failure
(
serviceResponse
.
getCode
(),
serviceResponse
.
getMessage
());
return
RestResponse
.
failure
(
serviceResponse
.
getCode
(),
serviceResponse
.
getMessage
());
}
}
...
...
src/main/java/com/gic/plug/web/controller/StoreController.java
View file @
afe6efda
...
@@ -238,9 +238,8 @@ public class StoreController {
...
@@ -238,9 +238,8 @@ public class StoreController {
if
(
storeWidget
.
isSuccess
()){
if
(
storeWidget
.
isSuccess
()){
StoreWidgetDTO
storeWidgetDTO
=
storeWidget
.
getResult
();
StoreWidgetDTO
storeWidgetDTO
=
storeWidget
.
getResult
();
StoreResourceVO
vo
=
new
StoreResourceVO
();
StoreResourceVO
vo
=
EntityUtil
.
changeEntityNew
(
StoreResourceVO
.
class
,
storeWidgetDTO
);
vo
.
setAuthMode
(
storeWidget
.
getResult
().
getAuthMode
());
vo
.
setSearchJson
(
storeWidgetDTO
.
getSearchParam
());
vo
.
setSearchJson
(
storeWidget
.
getResult
().
getSearchParam
());
vo
.
setSceenBack
(
getScreenBack
(
storeWidgetDTO
.
getSearchParam
()));
vo
.
setSceenBack
(
getScreenBack
(
storeWidgetDTO
.
getSearchParam
()));
return
vo
;
return
vo
;
}
}
...
...
src/main/java/com/gic/plug/web/controller/StoreGroupController.java
View file @
afe6efda
...
@@ -5,14 +5,16 @@ import com.gic.enterprise.utils.UserDetailUtils;
...
@@ -5,14 +5,16 @@ import com.gic.enterprise.utils.UserDetailUtils;
import
com.gic.store.constant.StoreGroupConstant
;
import
com.gic.store.constant.StoreGroupConstant
;
import
com.gic.store.dto.StoreGroupDTO
;
import
com.gic.store.dto.StoreGroupDTO
;
import
com.gic.store.service.StoreGroupApiService
;
import
com.gic.store.service.StoreGroupApiService
;
import
com.gic.store.utils.storegroup.ChangeListToTree
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author guojx
* @author guojx
...
@@ -31,6 +33,58 @@ public class StoreGroupController {
...
@@ -31,6 +33,58 @@ public class StoreGroupController {
StoreGroupDTO
dto
=
new
StoreGroupDTO
();
StoreGroupDTO
dto
=
new
StoreGroupDTO
();
dto
.
setEnterpriseId
(
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
());
dto
.
setEnterpriseId
(
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
());
List
<
StoreGroupDTO
>
list
=
storeGroupApiService
.
listStoreGroup
(
dto
).
getResult
();
List
<
StoreGroupDTO
>
list
=
storeGroupApiService
.
listStoreGroup
(
dto
).
getResult
();
return
RestResponse
.
success
(
ChangeListToTree
.
changeListToTreeNotIncludeAllStore
(
StoreGroupConstant
.
ALL_STORE_LEVEL
,
list
));
return
RestResponse
.
success
(
changeListToTreeNotIncludeAllStore
(
StoreGroupConstant
.
ALL_STORE_LEVEL
,
list
));
}
/**
* 把集合数据成树结构
* @Title: changeListToTree
* @Description:
* @author guojuxing
* @param storeGroupId
* @param list
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
*/
private
static
List
<
Map
<
String
,
Object
>>
changeListToTree
(
int
storeGroupId
,
List
<
StoreGroupDTO
>
list
)
{
List
<
Map
<
String
,
Object
>>
result
=
new
ArrayList
<>();
if
(
list
!=
null
)
{
for
(
StoreGroupDTO
t
:
list
)
{
if
(
storeGroupId
==
t
.
getParentStoreGroupId
())
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
16
);
data
.
put
(
"value"
,
t
.
getStoreGroupId
());
data
.
put
(
"label"
,
t
.
getStoreGroupName
());
List
<
Map
<
String
,
Object
>>
children
=
changeListToTree
(
t
.
getStoreGroupId
(),
list
);
if
(
children
==
null
||
children
.
size
()
<
1
)
{
data
.
put
(
"children"
,
null
);
}
else
{
data
.
put
(
"children"
,
children
);
}
result
.
add
(
data
);
}
}
}
return
result
;
}
/**
* 不包括全部门店的数据的树结构数据
* @Title: changeListToTreeNotIncludeAllStore
* @Description:
* @author guojuxing
* @param storeGroupId
* @param list
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
*/
private
static
List
<
Map
<
String
,
Object
>>
changeListToTreeNotIncludeAllStore
(
int
storeGroupId
,
List
<
StoreGroupDTO
>
list
)
{
List
<
Map
<
String
,
Object
>>
result
=
changeListToTree
(
storeGroupId
,
list
);
if
(
result
.
size
()
>
0
)
{
for
(
Map
<
String
,
Object
>
obj
:
result
)
{
if
((
int
)
obj
.
get
(
"groupLevel"
)
==
StoreGroupConstant
.
ALL_STORE_LEVEL
)
{
return
(
List
<
Map
<
String
,
Object
>>)
obj
.
get
(
"children"
);
}
}
}
return
result
;
}
}
}
}
src/main/java/com/gic/plug/web/controller/StoreTagController.java
View file @
afe6efda
package
com
.
gic
.
plug
.
web
.
controller
;
package
com
.
gic
.
plug
.
web
.
controller
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
com.gic.plug.web.vo.widget.StoreWidgetInterfaceVO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -36,7 +40,13 @@ public class StoreTagController {
...
@@ -36,7 +40,13 @@ public class StoreTagController {
List
<
StoreTagDTO
>
result
=
StoreResourceUtils
.
auth
(
List
<
StoreTagDTO
>
result
=
StoreResourceUtils
.
auth
(
response
.
getResult
(),
response
.
getResult
(),
StoreESFieldsEnum
.
STORETAG
.
getField
());
StoreESFieldsEnum
.
STORETAG
.
getField
());
return
RestResponse
.
success
(
EntityUtil
.
changeEntityListNew
(
StoreTagVO
.
class
,
result
));
List
<
StoreWidgetInterfaceVO
>
voList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
result
))
{
voList
=
result
.
stream
()
.
map
(
e
->
new
StoreWidgetInterfaceVO
().
setLabel
(
e
.
getStoreTagName
()).
setValue
(
e
.
getStoreTagId
().
toString
()))
.
collect
(
Collectors
.
toList
());
}
return
RestResponse
.
success
(
voList
);
}
}
return
RestResponse
.
failure
(
response
.
getCode
(),
response
.
getMessage
());
return
RestResponse
.
failure
(
response
.
getCode
(),
response
.
getMessage
());
}
}
...
...
src/main/java/com/gic/plug/web/controller/StoreTypeController.java
0 → 100644
View file @
afe6efda
package
com
.
gic
.
plug
.
web
.
controller
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.enterprise.utils.UserDetailUtils
;
import
com.gic.plug.web.vo.widget.StoreWidgetInterfaceVO
;
import
com.gic.store.dto.StoreDictDTO
;
import
com.gic.store.service.StoreDictApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@RestController
@RequestMapping
(
"/store-type"
)
public
class
StoreTypeController
{
@Autowired
private
StoreDictApiService
storeDictApiService
;
@RequestMapping
(
"list-storetype"
)
@ResponseBody
public
RestResponse
listStoreType
(){
Integer
enterpriseId
=
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
();
ServiceResponse
<
List
<
StoreDictDTO
>>
serviceResponse
=
this
.
storeDictApiService
.
listStoreType
(
enterpriseId
);
if
(
serviceResponse
.
isSuccess
())
{
return
RestResponse
.
success
(
transferToVo
(
serviceResponse
.
getResult
()));
}
else
{
return
RestResponse
.
failure
(
serviceResponse
.
getCode
(),
serviceResponse
.
getMessage
());
}
}
@RequestMapping
(
"list-storestatus"
)
@ResponseBody
public
RestResponse
listStoreStatus
(){
Integer
enterpriseId
=
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
();
ServiceResponse
<
List
<
StoreDictDTO
>>
serviceResponse
=
this
.
storeDictApiService
.
listStoreStatus
(
enterpriseId
);
if
(
serviceResponse
.
isSuccess
()){
return
RestResponse
.
success
(
transferToVo
(
serviceResponse
.
getResult
()));
}
else
{
return
RestResponse
.
failure
(
serviceResponse
.
getCode
(),
serviceResponse
.
getMessage
());
}
}
private
List
<
StoreWidgetInterfaceVO
>
transferToVo
(
List
<
StoreDictDTO
>
list
)
{
List
<
StoreWidgetInterfaceVO
>
voList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
voList
=
list
.
stream
()
.
map
(
e
->
new
StoreWidgetInterfaceVO
().
setLabel
(
e
.
getKey
()).
setValue
(
e
.
getValue
().
toString
()))
.
collect
(
Collectors
.
toList
());
}
return
voList
;
}
}
src/main/java/com/gic/plug/web/vo/StoreResourceVO.java
View file @
afe6efda
...
@@ -8,36 +8,149 @@ import java.util.List;
...
@@ -8,36 +8,149 @@ import java.util.List;
* @date 2020/9/14 10:44 AM
* @date 2020/9/14 10:44 AM
*/
*/
public
class
StoreResourceVO
{
public
class
StoreResourceVO
{
private
Integer
authMode
;
private
String
searchJson
;
private
String
searchJson
;
/**
* 后端需要的条件筛选数据
*/
private
String
searchParam
;
/**
* 现在弃用
*/
private
String
writeBackParam
;
/**
* 后端需要的权限筛选数据
*/
private
String
authSearchParam
;
private
Integer
authMode
;
/**
* 前端需要字段(条件筛选)
*/
private
String
screenDetailData
;
/**
* 前端需要字段(条件筛选)
*/
private
String
screenSimpleData
;
/**
* 前端需要字段(权限筛选)
*/
private
String
authScreenDetailData
;
/**
* 前端需要字段(权限筛选)
*/
private
String
authScreenSimpleData
;
private
List
<
ScreenBackVO
>
sceenBack
;
private
List
<
ScreenBackVO
>
sceenBack
;
public
String
getSearchJson
()
{
return
searchJson
;
}
public
StoreResourceVO
setSearchJson
(
String
searchJson
)
{
this
.
searchJson
=
searchJson
;
return
this
;
}
public
String
getSearchParam
()
{
return
searchParam
;
}
public
StoreResourceVO
setSearchParam
(
String
searchParam
)
{
this
.
searchParam
=
searchParam
;
return
this
;
}
public
String
getWriteBackParam
()
{
return
writeBackParam
;
}
public
StoreResourceVO
setWriteBackParam
(
String
writeBackParam
)
{
this
.
writeBackParam
=
writeBackParam
;
return
this
;
}
public
String
getAuthSearchParam
()
{
return
authSearchParam
;
}
public
StoreResourceVO
setAuthSearchParam
(
String
authSearchParam
)
{
this
.
authSearchParam
=
authSearchParam
;
return
this
;
}
public
Integer
getAuthMode
()
{
public
Integer
getAuthMode
()
{
return
authMode
;
return
authMode
;
}
}
public
void
setAuthMode
(
Integer
authMode
)
{
public
StoreResourceVO
setAuthMode
(
Integer
authMode
)
{
this
.
authMode
=
authMode
;
this
.
authMode
=
authMode
;
return
this
;
}
}
public
String
getS
earchJson
()
{
public
String
getS
creenDetailData
()
{
return
s
earchJson
;
return
s
creenDetailData
;
}
}
public
void
setSearchJson
(
String
searchJson
)
{
public
StoreResourceVO
setScreenDetailData
(
String
screenDetailData
)
{
this
.
searchJson
=
searchJson
;
this
.
screenDetailData
=
screenDetailData
;
return
this
;
}
public
String
getScreenSimpleData
()
{
return
screenSimpleData
;
}
public
StoreResourceVO
setScreenSimpleData
(
String
screenSimpleData
)
{
this
.
screenSimpleData
=
screenSimpleData
;
return
this
;
}
public
String
getAuthScreenDetailData
()
{
return
authScreenDetailData
;
}
public
StoreResourceVO
setAuthScreenDetailData
(
String
authScreenDetailData
)
{
this
.
authScreenDetailData
=
authScreenDetailData
;
return
this
;
}
public
String
getAuthScreenSimpleData
()
{
return
authScreenSimpleData
;
}
public
StoreResourceVO
setAuthScreenSimpleData
(
String
authScreenSimpleData
)
{
this
.
authScreenSimpleData
=
authScreenSimpleData
;
return
this
;
}
}
public
List
<
ScreenBackVO
>
getSceenBack
()
{
public
List
<
ScreenBackVO
>
getSceenBack
()
{
return
sceenBack
;
return
sceenBack
;
}
}
public
void
setSceenBack
(
List
<
ScreenBackVO
>
sceenBack
)
{
public
StoreResourceVO
setSceenBack
(
List
<
ScreenBackVO
>
sceenBack
)
{
this
.
sceenBack
=
sceenBack
;
this
.
sceenBack
=
sceenBack
;
return
this
;
}
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
super
.
toString
();
return
"StoreResourceVO{"
+
"searchJson='"
+
searchJson
+
'\''
+
", searchParam='"
+
searchParam
+
'\''
+
", writeBackParam='"
+
writeBackParam
+
'\''
+
", authSearchParam='"
+
authSearchParam
+
'\''
+
", authMode="
+
authMode
+
", screenDetailData='"
+
screenDetailData
+
'\''
+
", screenSimpleData='"
+
screenSimpleData
+
'\''
+
", authScreenDetailData='"
+
authScreenDetailData
+
'\''
+
", authScreenSimpleData='"
+
authScreenSimpleData
+
'\''
+
", sceenBack="
+
sceenBack
+
'}'
;
}
}
}
}
src/main/java/com/gic/plug/web/vo/StoreWidgetVO.java
View file @
afe6efda
...
@@ -27,6 +27,26 @@ public class StoreWidgetVO implements Serializable {
...
@@ -27,6 +27,26 @@ public class StoreWidgetVO implements Serializable {
private
String
authSearchParam
;
private
String
authSearchParam
;
/**
* 前端需要字段(条件筛选)
*/
private
String
screenDetailData
;
/**
* 前端需要字段(条件筛选)
*/
private
String
screenSimpleData
;
/**
* 前端需要字段(权限筛选)
*/
private
String
authScreenDetailData
;
/**
* 前端需要字段(权限筛选)
*/
private
String
authScreenSimpleData
;
private
Integer
authMode
=
1
;
private
Integer
authMode
=
1
;
private
List
<
ScreenBackVO
>
screenBack
;
private
List
<
ScreenBackVO
>
screenBack
;
...
@@ -78,8 +98,55 @@ public class StoreWidgetVO implements Serializable {
...
@@ -78,8 +98,55 @@ public class StoreWidgetVO implements Serializable {
this
.
screenBack
=
screenBack
;
this
.
screenBack
=
screenBack
;
}
}
public
String
getScreenDetailData
()
{
return
screenDetailData
;
}
public
StoreWidgetVO
setScreenDetailData
(
String
screenDetailData
)
{
this
.
screenDetailData
=
screenDetailData
;
return
this
;
}
public
String
getScreenSimpleData
()
{
return
screenSimpleData
;
}
public
StoreWidgetVO
setScreenSimpleData
(
String
screenSimpleData
)
{
this
.
screenSimpleData
=
screenSimpleData
;
return
this
;
}
public
String
getAuthScreenDetailData
()
{
return
authScreenDetailData
;
}
public
StoreWidgetVO
setAuthScreenDetailData
(
String
authScreenDetailData
)
{
this
.
authScreenDetailData
=
authScreenDetailData
;
return
this
;
}
public
String
getAuthScreenSimpleData
()
{
return
authScreenSimpleData
;
}
public
StoreWidgetVO
setAuthScreenSimpleData
(
String
authScreenSimpleData
)
{
this
.
authScreenSimpleData
=
authScreenSimpleData
;
return
this
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
super
.
toString
();
return
"StoreWidgetVO{"
+
"storeWidgetId="
+
storeWidgetId
+
", searchParam='"
+
searchParam
+
'\''
+
", writeBackParam='"
+
writeBackParam
+
'\''
+
", authSearchParam='"
+
authSearchParam
+
'\''
+
", screenDetailData='"
+
screenDetailData
+
'\''
+
", screenSimpleData='"
+
screenSimpleData
+
'\''
+
", authScreenDetailData='"
+
authScreenDetailData
+
'\''
+
", authScreenSimpleData='"
+
authScreenSimpleData
+
'\''
+
", authMode="
+
authMode
+
", screenBack="
+
screenBack
+
'}'
;
}
}
}
}
\ No newline at end of file
src/main/java/com/gic/plug/web/vo/widget/StoreWidgetInterfaceVO.java
0 → 100644
View file @
afe6efda
package
com
.
gic
.
plug
.
web
.
vo
.
widget
;
import
java.io.Serializable
;
/**
* 门店选择器的接口的返回字段统一
* @ClassName:
* @Description:
* @author guojuxing
* @date 2021/2/1 3:01 PM
*/
public
class
StoreWidgetInterfaceVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6577203951535930844L
;
/**
* 后端的值
*/
private
String
value
;
/**
* 展示字段
*/
private
String
label
;
public
String
getValue
()
{
return
value
;
}
public
StoreWidgetInterfaceVO
setValue
(
String
value
)
{
this
.
value
=
value
;
return
this
;
}
public
String
getLabel
()
{
return
label
;
}
public
StoreWidgetInterfaceVO
setLabel
(
String
label
)
{
this
.
label
=
label
;
return
this
;
}
}
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