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
db2bbc06
Commit
db2bbc06
authored
Oct 10, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改峰会
parent
eee2f719
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
73 additions
and
19 deletions
+73
-19
SystemConfig.java
...ub/wxiaoqi/security/common/util/process/SystemConfig.java
+3
-0
systemconfig.properties
...mon/src/main/resources/properties/systemconfig.properties
+16
-14
VideoConstant.java
...a/com/xxfc/platform/universal/constant/VideoConstant.java
+8
-0
pom.xml
xx-universal/xx-universal-server/pom.xml
+0
-4
UploadController.java
.../xxfc/platform/universal/controller/UploadController.java
+16
-0
UploadService.java
...va/com/xxfc/platform/universal/service/UploadService.java
+29
-0
UploadZipServiceImpl.java
...platform/universal/service/impl/UploadZipServiceImpl.java
+1
-1
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/process/SystemConfig.java
View file @
db2bbc06
...
@@ -7,6 +7,9 @@ public class SystemConfig {
...
@@ -7,6 +7,9 @@ public class SystemConfig {
// 项目url
// 项目url
public
static
final
String
XXMP_URL
=
SystemProperty
.
getConfig
(
"XXMP_URL"
);
public
static
final
String
XXMP_URL
=
SystemProperty
.
getConfig
(
"XXMP_URL"
);
// 视频url
public
static
final
String
VIDEO_URL
=
SystemProperty
.
getConfig
(
"VIDEO_URL"
);
// token到期时间
// token到期时间
// token到期时间
public
static
Integer
TOKENOVERTIME
=
Integer
.
valueOf
(
SystemProperty
.
getConfig
(
"TOKEN_OVER_TIME"
));
public
static
Integer
TOKENOVERTIME
=
Integer
.
valueOf
(
SystemProperty
.
getConfig
(
"TOKEN_OVER_TIME"
));
// redis缓存时间
// redis缓存时间
...
...
ace-common/src/main/resources/properties/systemconfig.properties
View file @
db2bbc06
#
项目
url
#
\u9879\u76EE
url
XXMP_URL
=
/image
XXMP_URL
=
/image
#token到期时间
#\u89C6\u9891\u4FDD\u5B58\u6587\u4EF6
VIDEO_URL
=
/video
#token\u5230\u671F\u65F6\u95F4
TOKEN_OVER_TIME
=
604800
TOKEN_OVER_TIME
=
604800
#itoken
到期时间(6天
)
#itoken
\u5230\u671F\u65F6\u95F4(6\u5929
)
REDIS_ITOKEN_TIME
=
51840
REDIS_ITOKEN_TIME
=
51840
#redis
有效期
#redis
\u6709\u6548\u671F
REDIS_TOKEN_TIME
=
604800
REDIS_TOKEN_TIME
=
604800
#session
有效期
#session
\u6709\u6548\u671F
SESSION_TIME
=
3600
SESSION_TIME
=
3600
#
默认头像
#
\u9ED8\u8BA4\u5934\u50CF
USER_HEADER_URL_DEFAULT
=
https://xxtest.upyuns.com/image/app/default_%20avatar.png
USER_HEADER_URL_DEFAULT
=
https://xxtest.upyuns.com/image/app/default_%20avatar.png
#
默认昵称
#
\u9ED8\u8BA4\u6635\u79F0
USER_NIKENAME_DEFAULT
=
XX_
USER_NIKENAME_DEFAULT
=
XX_
#
短信机
#
\u77ED\u4FE1\u673A
ACCESSKEYID
=
LTAInxMDwHQL8yg9
ACCESSKEYID
=
LTAInxMDwHQL8yg9
ACCESSKEYSECRET
=
OCKDEiwKGjePCZgPeWMEUFGwGbKYLA
ACCESSKEYSECRET
=
OCKDEiwKGjePCZgPeWMEUFGwGbKYLA
TEMPLATECODE
=
SMS_170070101
TEMPLATECODE
=
SMS_170070101
SIGNNAME
=
滴房车
SIGNNAME
=
\u
6EF4
\u
623F
\u
8F66
#
微信支付配置
#
\u5FAE\u4FE1\u652F\u4ED8\u914D\u7F6E
WINXIN_AppID
=
wx425608b69a34736f
WINXIN_AppID
=
wx425608b69a34736f
WINXIN_PARTNER_KEY
=
xxfcXXDfangche74upyuns3AD4334533
WINXIN_PARTNER_KEY
=
xxfcXXDfangche74upyuns3AD4334533
WINXIN_PARTNER
=
1539689201
WINXIN_PARTNER
=
1539689201
...
@@ -31,15 +33,15 @@ APP_ID=wx9ed5e51251cf7c61
...
@@ -31,15 +33,15 @@ APP_ID=wx9ed5e51251cf7c61
APP_PARTNER
=
1539689201
APP_PARTNER
=
1539689201
APP_PARTNER_KEY
=
xxfcXXDfangche74upyuns3AD4334533
APP_PARTNER_KEY
=
xxfcXXDfangche74upyuns3AD4334533
APP_TRADE_TYPE
=
APP
APP_TRADE_TYPE
=
APP
#
支付回调
#
\u652F\u4ED8\u56DE\u8C03
weixinHost
=
xxtest.upyuns.com
weixinHost
=
xxtest.upyuns.com
#
证书存放目录
#
\u8BC1\u4E66\u5B58\u653E\u76EE\u5F55
APICLIENT_CERT
=
D:
\\
cert
\\
1514583081_20181017_cert.p12
APICLIENT_CERT
=
D:
\\
cert
\\
1514583081_20181017_cert.p12
#
支付宝配置
#
\u652F\u4ED8\u5B9D\u914D\u7F6E
ALIPAY_APPID
=
2019070965781964
ALIPAY_APPID
=
2019070965781964
ALIPAY_PID
=
2088531634846583
ALIPAY_PID
=
2088531634846583
#
支付宝公钥
#
\u652F\u4ED8\u5B9D\u516C\u94A5
ALIPAY_PUBLIC_KEY
=
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj/EMaAD2iJP3I5M0g6pssDDe3RxF5I3ECM/Kz/btM0RiW2g5oRrHSjtGuos9l1QhQAY0SrVqa2eZdPKUB3ZqJdimQiXr3dbiMvG9UCs8vVUcrtCHCBjDllKQLiYzboxE6JLXyfII5tIXbFKiGyiEyXQnffUhQ9uGyT2EGWGecz6PLIjDdbwpxuzF2gIUzV3bPxb+0axejBxJ/3zKnWrsbyq2nvs8XrzrR2CEggNqgqsKzaacCL1yZjXzQRseSnCMtgSxR5W5afbdY0zqbUlLHUrUZ8ycCRC0ECuI9HyTbuqtdWHEZH7vIH44wEQWZPDRhMfMZvzmPUgpTWZLv5BtaQIDAQAB
ALIPAY_PUBLIC_KEY
=
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj/EMaAD2iJP3I5M0g6pssDDe3RxF5I3ECM/Kz/btM0RiW2g5oRrHSjtGuos9l1QhQAY0SrVqa2eZdPKUB3ZqJdimQiXr3dbiMvG9UCs8vVUcrtCHCBjDllKQLiYzboxE6JLXyfII5tIXbFKiGyiEyXQnffUhQ9uGyT2EGWGecz6PLIjDdbwpxuzF2gIUzV3bPxb+0axejBxJ/3zKnWrsbyq2nvs8XrzrR2CEggNqgqsKzaacCL1yZjXzQRseSnCMtgSxR5W5afbdY0zqbUlLHUrUZ8ycCRC0ECuI9HyTbuqtdWHEZH7vIH44wEQWZPDRhMfMZvzmPUgpTWZLv5BtaQIDAQAB
ALIPAY_ACOUNT
=
xxfc810@163.com
ALIPAY_ACOUNT
=
xxfc810@163.com
ALIPAY_PRIVATE_KEY
=
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0wXVGAameVSLlLrq7edrMuoabN16/bYJNosLmPlHltEhehKO1ak/oIFvlKGyKwsW+xXd8t27p5hpsHqzNisU/jLbwEi6t0U/RBMbx3ult9zNhsZqSdJxe4QINChudVM6FdE8ssaq19ABwiLisMxxck0IiXDmesGI6vUSNzLEvKyYWTUsVsW1HgYXVjXmi8mOiwuFsJtdALS/psWci3UlX80rYG9KGqSBWT0B0Nr8UcM1L7UEkOHUEf1uq4Ipl5rTzgqoRQN5uHbBu50b7welAL2MFA9D/Ecv+FOfMIiLBtm1/6zNtjo/mvwORtS64mJXCaAbY1Pxa1bqs274fAwWtAgMBAAECggEAOObZ2zL0yZI1jP477H68wUxKyZwRqKN5rKT7Q+4EbBJn4dFRk++mvgVJyIcEPF56T8bsCYfZU6qLUNQLRB1WYN4UTNj8dt14ie0+D7BDvclfFHcLmOU6wKeGtMIk1U94QAzQS9qWSfdJGCQCNrtUR1RYMmbkAK+4DJO+fAEfGiCr1oMQpsz0h6Jhwp/DDBXZEjPdrECOjx2w5ZVULyPxFui2NQ8IS3rTT5SQvOBAgn9dbgZ/FVVbs2x6SpnWyOCUREK0uaLXJgf0JoX1WW4bswZlYmd7qURPscwFVKdYRautimcmO0FOUue62aPSYfvJwx8tTZanQbbwfrr0XrisBQKBgQDyKPYDYZzgGL/G5H8CQZajKnqg7a5AAZXJQLKkF7kiEgOlB3b6OqK6CeKVGawfuNIshECmmKcZmqrsPV42xrZl458kiDyqJNHq2lgFs9kj9BFUDi11EZfDGah4piJo5tgc09Hj6eAmeKdmG7aTS0/954xOK7eBFdG1T6R1Rd9Y4wKBgQC/Fhd5Nw6XYAg4qBmzOnvc9YwEL+wdy0aontFAFzaQlgkYm+efhYyjMcjyj4aloJZzpTd6eKbZI57IzihJI+F8+b1qToQDu8A2BTPkiOyXRcNY3y0LTNx7/gae6a9oGFc+8ILGa41va7WKjuPd08aXpSSBI34u10wWRMP+70m8LwKBgQCLerRYtjyZhyfO84WEUyrkyG7hioU3MLKJvM4oXdGwohefUnFhJ6za4x6zKppNmzLTmUlzq7FzufaBI8fEXShp/3WGoUHv7k1KrIDOqAyF/OqOM6xTJdL3+StkcqyXJ3+K+yaF1AvbnNsuoP/ETzi/0kKqM9v6agrkF/9t3NUMaQKBgCpafS1y1Jscv/W+3KNrLRUWn8g1zwHzkl/Bg+POwVtexflcZQRol3l8iWuqAFApve84CYntwB2U1ZbwiuFbQJlwyVkMuhoRvVK76HqZFseYwOmr3dIJYT1iWplSdnx+GKhsqq/MGvc9SmnBriP20qe+BM9SzJ8ZPVYaO87/vrolAoGARD8/IeEzMCPfYr9zBkE5rBtiT7t6nZXmMc6GH2Vao9meDofN8vj/XEfTGovusUYTWyA2Enac0YKdK6f6f+NYBqGYqn5Ludgxeotzo9UoXd3Hnv1gMCRs4ehloVODkHj2qhkvqL2iuZLsNp/wMq/ZHpRUzT4bO5H2FQhH4SUElKI=
ALIPAY_PRIVATE_KEY
=
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0wXVGAameVSLlLrq7edrMuoabN16/bYJNosLmPlHltEhehKO1ak/oIFvlKGyKwsW+xXd8t27p5hpsHqzNisU/jLbwEi6t0U/RBMbx3ult9zNhsZqSdJxe4QINChudVM6FdE8ssaq19ABwiLisMxxck0IiXDmesGI6vUSNzLEvKyYWTUsVsW1HgYXVjXmi8mOiwuFsJtdALS/psWci3UlX80rYG9KGqSBWT0B0Nr8UcM1L7UEkOHUEf1uq4Ipl5rTzgqoRQN5uHbBu50b7welAL2MFA9D/Ecv+FOfMIiLBtm1/6zNtjo/mvwORtS64mJXCaAbY1Pxa1bqs274fAwWtAgMBAAECggEAOObZ2zL0yZI1jP477H68wUxKyZwRqKN5rKT7Q+4EbBJn4dFRk++mvgVJyIcEPF56T8bsCYfZU6qLUNQLRB1WYN4UTNj8dt14ie0+D7BDvclfFHcLmOU6wKeGtMIk1U94QAzQS9qWSfdJGCQCNrtUR1RYMmbkAK+4DJO+fAEfGiCr1oMQpsz0h6Jhwp/DDBXZEjPdrECOjx2w5ZVULyPxFui2NQ8IS3rTT5SQvOBAgn9dbgZ/FVVbs2x6SpnWyOCUREK0uaLXJgf0JoX1WW4bswZlYmd7qURPscwFVKdYRautimcmO0FOUue62aPSYfvJwx8tTZanQbbwfrr0XrisBQKBgQDyKPYDYZzgGL/G5H8CQZajKnqg7a5AAZXJQLKkF7kiEgOlB3b6OqK6CeKVGawfuNIshECmmKcZmqrsPV42xrZl458kiDyqJNHq2lgFs9kj9BFUDi11EZfDGah4piJo5tgc09Hj6eAmeKdmG7aTS0/954xOK7eBFdG1T6R1Rd9Y4wKBgQC/Fhd5Nw6XYAg4qBmzOnvc9YwEL+wdy0aontFAFzaQlgkYm+efhYyjMcjyj4aloJZzpTd6eKbZI57IzihJI+F8+b1qToQDu8A2BTPkiOyXRcNY3y0LTNx7/gae6a9oGFc+8ILGa41va7WKjuPd08aXpSSBI34u10wWRMP+70m8LwKBgQCLerRYtjyZhyfO84WEUyrkyG7hioU3MLKJvM4oXdGwohefUnFhJ6za4x6zKppNmzLTmUlzq7FzufaBI8fEXShp/3WGoUHv7k1KrIDOqAyF/OqOM6xTJdL3+StkcqyXJ3+K+yaF1AvbnNsuoP/ETzi/0kKqM9v6agrkF/9t3NUMaQKBgCpafS1y1Jscv/W+3KNrLRUWn8g1zwHzkl/Bg+POwVtexflcZQRol3l8iWuqAFApve84CYntwB2U1ZbwiuFbQJlwyVkMuhoRvVK76HqZFseYwOmr3dIJYT1iWplSdnx+GKhsqq/MGvc9SmnBriP20qe+BM9SzJ8ZPVYaO87/vrolAoGARD8/IeEzMCPfYr9zBkE5rBtiT7t6nZXmMc6GH2Vao9meDofN8vj/XEfTGovusUYTWyA2Enac0YKdK6f6f+NYBqGYqn5Ludgxeotzo9UoXd3Hnv1gMCRs4ehloVODkHj2qhkvqL2iuZLsNp/wMq/ZHpRUzT4bO5H2FQhH4SUElKI=
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/VideoConstant.java
0 → 100644
View file @
db2bbc06
package
com
.
xxfc
.
platform
.
universal
.
constant
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
VideoConstant
{
public
static
final
List
<
String
>
forms
=
Arrays
.
asList
(
".mp4"
);
}
xx-universal/xx-universal-server/pom.xml
View file @
db2bbc06
...
@@ -85,10 +85,6 @@
...
@@ -85,10 +85,6 @@
<artifactId>
alipay-sdk-java
</artifactId>
<artifactId>
alipay-sdk-java
</artifactId>
<version>
3.7.26.ALL
</version>
<version>
3.7.26.ALL
</version>
</dependency>
</dependency>
<dependency>
<groupId>
antlr
</groupId>
<artifactId>
antlr
</artifactId>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/UploadController.java
View file @
db2bbc06
...
@@ -2,8 +2,11 @@ package com.xxfc.platform.universal.controller;
...
@@ -2,8 +2,11 @@ package com.xxfc.platform.universal.controller;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.constant.RestCode
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.xxfc.platform.universal.constant.VideoConstant
;
import
com.xxfc.platform.universal.dto.ImgDTO
;
import
com.xxfc.platform.universal.dto.ImgDTO
;
import
com.xxfc.platform.universal.dto.UploadImgDTO
;
import
com.xxfc.platform.universal.dto.UploadImgDTO
;
import
com.xxfc.platform.universal.service.FileUploadService
;
import
com.xxfc.platform.universal.service.FileUploadService
;
...
@@ -187,5 +190,18 @@ public class UploadController{
...
@@ -187,5 +190,18 @@ public class UploadController{
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"summit"
)
String
prefix
)
throws
Exception
{
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"summit"
)
String
prefix
)
throws
Exception
{
return
uploadZipService
.
uploadPictureZip
(
file
,
prefix
);
return
uploadZipService
.
uploadPictureZip
(
file
,
prefix
);
}
}
@PostMapping
(
value
=
"/app/unauth/uploadVideo"
)
public
ObjectRestResponse
video
(
@RequestParam
(
"file"
)
MultipartFile
file
,
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"summit"
)
String
prefix
)
throws
Exception
{
String
filename
=
file
.
getOriginalFilename
();
String
suffixName
=
filename
.
substring
(
filename
.
lastIndexOf
(
"."
));
if
(!
VideoConstant
.
forms
.
contains
(
suffixName
))
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"只能上传MP4格式"
);
}
return
ObjectRestResponse
.
succ
(
uploadService
.
uploadVideo
(
file
,
prefix
));
}
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/UploadService.java
View file @
db2bbc06
package
com
.
xxfc
.
platform
.
universal
.
service
;
package
com
.
xxfc
.
platform
.
universal
.
service
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.xxfc.platform.universal.constant.RedisKey
;
import
com.xxfc.platform.universal.constant.RedisKey
;
import
com.xxfc.platform.universal.utils.ImgBase64Util
;
import
com.xxfc.platform.universal.utils.ImgBase64Util
;
...
@@ -28,6 +29,9 @@ public class UploadService {
...
@@ -28,6 +29,9 @@ public class UploadService {
public
static
final
DateTimeFormatter
DEFAULT_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd"
);
public
static
final
DateTimeFormatter
DEFAULT_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd"
);
@Value
(
"${universal.baseUploadPath}"
)
@Value
(
"${universal.baseUploadPath}"
)
private
String
baseUploadPath
;
private
String
baseUploadPath
;
@Value
(
"${universal.videoUploadPath}"
)
private
String
videoUploadPath
;
@Value
(
"${universal.url}"
)
@Value
(
"${universal.url}"
)
private
String
xx_url
;
private
String
xx_url
;
@Autowired
@Autowired
...
@@ -143,4 +147,29 @@ public class UploadService {
...
@@ -143,4 +147,29 @@ public class UploadService {
return
new
ResponseEntity
<
byte
[]>(
FileUtils
.
readFileToByteArray
(
file
),
headers
,
HttpStatus
.
CREATED
);
return
new
ResponseEntity
<
byte
[]>(
FileUtils
.
readFileToByteArray
(
file
),
headers
,
HttpStatus
.
CREATED
);
}
}
/**
* 写入上传文件,返回相对路径
* @param file
* @return
*/
public
String
uploadVideo
(
MultipartFile
file
,
String
prefix
)
throws
Exception
{
//创建本日存放目录
DateTime
now
=
DateTime
.
now
();
String
dirPathToday
=
"/"
+
prefix
+
"/"
+
now
.
toString
(
DEFAULT_DATE_TIME_FORMATTER
);
String
redisNoKey
=
RedisKey
.
UPLOAD_FILE_NO_PREFIX
+
now
.
toString
(
DEFAULT_DATE_TIME_FORMATTER
);
Long
no
=
redisTemplate
.
opsForValue
().
increment
(
redisNoKey
);
if
(
no
.
equals
(
1
l
)){
redisTemplate
.
expire
(
redisNoKey
,
1
,
TimeUnit
.
DAYS
);
}
String
fileName
=
file
.
getOriginalFilename
();
String
realFileRelPath
=
dirPathToday
+
"/"
+
no
+
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
//文件存放路径
String
filePath
=
videoUploadPath
+
realFileRelPath
;
//将文件写入指定位置
FileUtils
.
copyInputStreamToFile
(
file
.
getInputStream
(),
new
File
(
filePath
));
realFileRelPath
=
xx_url
+
SystemConfig
.
VIDEO_URL
+
realFileRelPath
;
return
realFileRelPath
;
}
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/impl/UploadZipServiceImpl.java
View file @
db2bbc06
...
@@ -33,7 +33,7 @@ public class UploadZipServiceImpl implements UploadZipService {
...
@@ -33,7 +33,7 @@ public class UploadZipServiceImpl implements UploadZipService {
@Value
(
"${universal.url}"
)
@Value
(
"${universal.url}"
)
private
String
xx_url
;
private
String
xx_url
;
@Value
(
"${photo.format}"
)
@Value
(
"${photo.format}"
)
private
String
PHOTO_FORMAT
=
".png/.jpg/.git/.bmp"
;
private
String
PHOTO_FORMAT
;
@Autowired
@Autowired
RedisTemplate
redisTemplate
;
RedisTemplate
redisTemplate
;
...
...
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