Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
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
徐少华
midjourney-proxy
Commits
e30ee959
Commit
e30ee959
authored
Dec 04, 2020
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:[1003936]自建码灵活配置方案
parent
27b75ceb
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
302 additions
and
67 deletions
+302
-67
BookDto.java
...-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
+29
-0
BookGroupDTO.java
...src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
+16
-0
QrcodeJumpType.java
...main/java/com/pcloud/book/group/enums/QrcodeJumpType.java
+56
-0
BookGroupService.java
.../java/com/pcloud/book/group/service/BookGroupService.java
+4
-0
BookAppealBizImpl.java
...va/com/pcloud/book/appeal/biz/impl/BookAppealBizImpl.java
+1
-1
BookBizImpl.java
.../main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
+6
-5
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+4
-2
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+90
-52
BookGroupDTO.java
...src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
+39
-0
BookGroup.java
...src/main/java/com/pcloud/book/group/entity/BookGroup.java
+27
-0
BookGroupFacade.java
...in/java/com/pcloud/book/group/facade/BookGroupFacade.java
+9
-3
BookGroupFacadeImpl.java
...om/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
+4
-2
BookGroupServiceImpl.java
.../pcloud/book/group/service/impl/BookGroupServiceImpl.java
+6
-0
Book.Mapper.xml
...rvice-book/src/main/resources/mapper/book/Book.Mapper.xml
+2
-1
BookGroupMapper.xml
...-book/src/main/resources/mapper/group/BookGroupMapper.xml
+9
-1
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
View file @
e30ee959
...
...
@@ -749,6 +749,31 @@ public class BookDto extends BaseDto {
@ApiModelProperty
(
"版次"
)
private
String
edition
;
/**
* 小睿码跳转类型(默认进小睿小程序)
*/
private
Integer
jumpType
;
/**
* 小睿码自定义跳转链接
*/
private
String
jumpUrl
;
public
Integer
getJumpType
()
{
return
jumpType
;
}
public
void
setJumpType
(
Integer
jumpType
)
{
this
.
jumpType
=
jumpType
;
}
public
String
getJumpUrl
()
{
return
jumpUrl
;
}
public
void
setJumpUrl
(
String
jumpUrl
)
{
this
.
jumpUrl
=
jumpUrl
;
}
public
String
getEdition
()
{
return
edition
;
}
...
...
@@ -2254,6 +2279,10 @@ public class BookDto extends BaseDto {
", desc='"
+
desc
+
'\''
+
", hasAnswer="
+
hasAnswer
+
", subscribeState="
+
subscribeState
+
", edition='"
+
edition
+
'\''
+
", jumpType="
+
jumpType
+
", jumpUrl='"
+
jumpUrl
+
'\''
+
", bookAdviserDto="
+
bookAdviserDto
+
'}'
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
View file @
e30ee959
...
...
@@ -139,6 +139,18 @@ public class BookGroupDTO implements Serializable {
private
String
appletUrl
;
private
String
appletId
;
/**
* 小睿码跳转类型(默认进小睿小程序)
*/
private
Integer
jumpType
;
public
Integer
getJumpType
()
{
return
jumpType
;
}
public
void
setJumpType
(
Integer
jumpType
)
{
this
.
jumpType
=
jumpType
;
}
public
String
getAppletId
()
{
return
appletId
;
...
...
@@ -385,6 +397,9 @@ public class BookGroupDTO implements Serializable {
", joinGroupType="
+
joinGroupType
+
", sceneId="
+
sceneId
+
", bookName='"
+
bookName
+
'\''
+
", appletUrl='"
+
appletUrl
+
'\''
+
", appletId='"
+
appletId
+
'\''
+
", jumpType="
+
jumpType
+
'}'
;
}
}
\ No newline at end of file
pcloud-facade-book/src/main/java/com/pcloud/book/group/enums/QrcodeJumpType.java
0 → 100644
View file @
e30ee959
package
com
.
pcloud
.
book
.
group
.
enums
;
/**
* 自建码跳转类型
* @author:zhuyajie
* @date:2020/12/1 15:29
* * @param null
*/
public
enum
QrcodeJumpType
{
/**
* 进小程序-书僮小睿
*/
APPLET_XIAORUI
(
1
,
"书僮小睿"
),
/**
* 进小程序-书晓
*/
APPLET_SHUXIAO
(
2
,
"书晓"
),
/**
* 进h5-书僮小睿小程序码/跳转按钮
*/
H5_XIAORUI
(
3
,
"书僮小睿小程序码/跳转按钮"
),
/**
* 进h5-企业微信活码
*/
H5_ENTERPRISE_WECHAT
(
4
,
"企业微信活码"
),
/**
* 进h5-出版社公众号二维码
*/
H5_OFFICIAL_ACCOUNTS
(
5
,
"出版社公众号二维码"
),
/**
* 进h5-自定义链接
*/
H5_SELF_URL
(
6
,
"自定义链接"
);
private
final
Integer
code
;
private
final
String
name
;
public
Integer
getCode
()
{
return
code
;
}
public
String
getName
()
{
return
name
;
}
private
QrcodeJumpType
(
Integer
code
,
String
name
)
{
this
.
code
=
code
;
this
.
name
=
name
;
}
public
static
final
Integer
[]
XIAORUI_JUMP_TYPES
=
{
APPLET_XIAORUI
.
code
,
H5_XIAORUI
.
code
};
}
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/BookGroupService.java
View file @
e30ee959
...
...
@@ -242,4 +242,8 @@ public interface BookGroupService {
@ApiOperation
(
"体验网站获取出版社下小睿社群码"
)
@GetMapping
(
"getRayGroupQrcode4Website"
)
ResponseEntity
<
ResponseDto
<
String
>>
getRayGroupQrcode4Website
(
@RequestParam
(
value
=
"agentId"
,
required
=
false
)
Long
agentId
);
@ApiOperation
(
"获取社群书信息-渠道用"
)
@GetMapping
(
"getBookNameByBookGroupId4Channel"
)
ResponseEntity
<
ResponseDto
<
Map
<
String
,
Object
>>>
getBookNameByBookGroupId4Channel
(
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/appeal/biz/impl/BookAppealBizImpl.java
View file @
e30ee959
...
...
@@ -327,7 +327,7 @@ public class BookAppealBizImpl implements BookAppealBiz {
// 社群书申诉创建社群码
if
(
null
!=
bookAppealDto
&&
bookAppealDto
.
getIsBookGroup
())
{
bookGroupBiz
.
recoverByBookId
(
bookId
,
channelId
,
appealAdviserId
);
bookGroupBiz
.
getBookGroupInfoByBookId
(
bookId
,
channelId
,
appealAdviserId
,
bookAppealDto
.
getAddType
(),
null
,
null
);
bookGroupBiz
.
getBookGroupInfoByBookId
(
bookId
,
channelId
,
appealAdviserId
,
bookAppealDto
.
getAddType
(),
null
,
null
,
null
,
null
);
}
// 修改申诉状态
this
.
updateAppealState
(
auditUser
,
bookMainAdviserDto
.
getAppealState
(),
bookMainAdviserDto
.
getVersion
(),
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
View file @
e30ee959
...
...
@@ -2530,11 +2530,12 @@ public class BookBizImpl implements BookBiz {
appletId
=
createOneAppletId
();
applet
=
bookAppletSceneDao
.
getByAppletId
(
appletId
);
}
String
url
=
wechatConsr
.
create4MiniApp
(
accoutnSettingId
,
appletId
,
null
,
page
);
//直接跳小程序,不创建小程序码
// String url = wechatConsr.create4MiniApp(accoutnSettingId, appletId, null, page);
BookAppletScene
bookAppletScene
=
new
BookAppletScene
();
bookAppletScene
.
setRaysClassifyId
(
raysClassifyId
);
bookAppletScene
.
setAppletId
(
appletId
);
bookAppletScene
.
setAppletUrl
(
ur
l
);
bookAppletScene
.
setAppletUrl
(
nul
l
);
bookAppletScene
.
setSceneId
(
sceneId
);
bookAppletScene
.
setAccountSettingId
(
accoutnSettingId
);
list
.
add
(
bookAppletScene
);
...
...
@@ -2715,7 +2716,7 @@ public class BookBizImpl implements BookBiz {
if
(
null
!=
bookAdviserErp
.
getIsOpenRobotProcess
()
&&
bookAdviserErp
.
getIsOpenRobotProcess
()
==
1
){
// 小睿书
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getBookGroupInfoByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
(),
null
,
null
,
4
);
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getBookGroupInfoByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
(),
null
,
null
,
4
,
null
,
null
);
BookGroup
bookGroup
=
new
BookGroup
();
bookGroup
.
setId
(
bookGroupDTO
.
getId
());
bookGroup
.
setAddFriendGuide
(
"嗨,你好!我是您的专属学习助手。我会根据您的需求量身定制学习计划与学习内容,提高您的学习效率,提升您的语文学习能力"
);
...
...
@@ -2805,7 +2806,7 @@ public class BookBizImpl implements BookBiz {
// 正常创建二维码
if
(
book
.
getIsBookGroup
()){
// 小睿二维码
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getBookGroupInfoByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
(),
null
,
null
,
4
);
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getBookGroupInfoByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
(),
null
,
null
,
4
,
null
,
null
);
BookGroup
bookGroup
=
new
BookGroup
();
bookGroup
.
setId
(
bookGroupDTO
.
getId
());
...
...
@@ -3659,7 +3660,7 @@ public class BookBizImpl implements BookBiz {
if
(
book
.
getIsBookGroup
()
!=
null
&&
book
.
getIsBookGroup
())
{
// 自动创建二维码
// 小睿二维码
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getBookGroupInfoByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
(),
null
,
null
,
4
);
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getBookGroupInfoByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
(),
null
,
null
,
4
,
null
,
null
);
BookGroup
bookGroup
=
new
BookGroup
();
bookGroup
.
setId
(
bookGroupDTO
.
getId
());
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
View file @
e30ee959
...
...
@@ -91,7 +91,8 @@ public interface BookGroupBiz {
* @param adviserId 编辑ID
* @throws BizException
*/
BookGroup
createBookGroupAfterCreateBook
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
)
throws
BizException
;
BookGroup
createBookGroupAfterCreateBook
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
,
Integer
jumpType
,
String
jumpUrl
)
throws
BizException
;
/**
* 获取社群书群二维码信息
...
...
@@ -138,7 +139,8 @@ public interface BookGroupBiz {
* @return
* @throws BizException
*/
BookGroupDTO
getBookGroupInfoByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
)
throws
BizException
;
BookGroupDTO
getBookGroupInfoByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
,
Integer
jumpType
,
String
jumpUrl
)
throws
BizException
;
/**
* 更新群二维码信息
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
e30ee959
...
...
@@ -141,6 +141,7 @@ import com.pcloud.book.group.enums.ChangeOriginTypeEnum;
import
com.pcloud.book.group.enums.CipherTypeEnum
;
import
com.pcloud.book.group.enums.JoinGroupTypeEnum
;
import
com.pcloud.book.group.enums.LargeTempletEnum
;
import
com.pcloud.book.group.enums.QrcodeJumpType
;
import
com.pcloud.book.group.enums.UseTypeEnum
;
import
com.pcloud.book.group.mapper.BizMaterialMapper
;
import
com.pcloud.book.group.set.GroupSet
;
...
...
@@ -539,7 +540,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
@Override
@ParamLog
(
"创建社群书时生成群二维码"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
BookGroup
createBookGroupAfterCreateBook
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
)
throws
BizException
{
public
BookGroup
createBookGroupAfterCreateBook
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
,
Integer
jumpType
,
String
jumpUrl
)
throws
BizException
{
if
(
QrcodeJumpType
.
H5_SELF_URL
.
getCode
().
equals
(
jumpType
)
&&
StringUtil
.
isEmpty
(
jumpUrl
)){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请配置自定义链接"
);
}
BookGroup
bookGroup
=
new
BookGroup
();
bookGroup
.
setBookId
(
bookId
);
bookGroup
.
setChannelId
(
channelId
);
...
...
@@ -554,7 +559,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
if
(
JoinGroupTypeEnum
.
ROBOT
.
getCode
().
equals
(
joinGroupType
))
{
bookGroup
.
setBookGroupCipher
(
getBookGroupCipher
());
}
if
(
addType
!=
null
&&
addType
==
1
)
{
if
(
JoinGroupTypeEnum
.
XIAORUI
.
getCode
().
equals
(
joinGroupType
)){
jumpType
=
null
==
jumpType
?
QrcodeJumpType
.
APPLET_XIAORUI
.
getCode
():
jumpType
;
bookGroup
.
setJumpType
(
jumpType
);
bookGroup
.
setJumpUrl
(
jumpUrl
);
}
//小睿码创建公众号二维码
Boolean
bookGroupAccountsQrcode
=
JoinGroupTypeEnum
.
XIAORUI
.
getCode
().
equals
(
joinGroupType
)
&&
QrcodeJumpType
.
H5_OFFICIAL_ACCOUNTS
.
getCode
().
equals
(
jumpType
);
if
((
addType
!=
null
&&
addType
==
1
)
||
bookGroupAccountsQrcode
)
{
GroupQrcodeVO
groupQrcodeVO
;
if
(
sceneId
!=
null
)
{
//将图书下某个二维码替换成社群码
...
...
@@ -571,14 +583,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookGroupDao
.
insert
(
bookGroup
);
BookGroup
group
=
new
BookGroup
();
group
.
setId
(
bookGroup
.
getId
());
group
.
setGroupQrcodeLink
(
this
.
getGroupQrcodeLink
(
bookGroup
.
getId
(),
adviserId
,
joinGroupType
));
group
.
setGroupQrcodeLink
(
this
.
getGroupQrcodeLink
(
bookGroup
.
getId
(),
adviserId
,
joinGroupType
,
jumpType
,
jumpUrl
));
if
(
joinGroupType
!=
null
)
{
group
.
setJoinGroupType
(
joinGroupType
);
}
bookGroupDao
.
update
(
group
);
}
else
{
bookGroupDao
.
insert
(
bookGroup
);
String
groupQrcodeLink
=
this
.
getGroupQrcodeLink
(
bookGroup
.
getId
(),
adviserId
,
joinGroupType
);
String
groupQrcodeLink
=
this
.
getGroupQrcodeLink
(
bookGroup
.
getId
(),
adviserId
,
joinGroupType
,
jumpType
,
jumpUrl
);
String
groupQrcodeUrl
=
QrcodeUtils
.
createWithMargin
(
groupQrcodeLink
,
1
);
BookGroup
group
=
new
BookGroup
();
group
.
setId
(
bookGroup
.
getId
());
...
...
@@ -741,13 +753,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
* 获取社群书群二维码信息
*/
@Override
public
BookGroupDTO
getBookGroupInfoByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
)
throws
BizException
{
public
BookGroupDTO
getBookGroupInfoByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
addType
,
Long
sceneId
,
Integer
joinGroupType
,
Integer
jumpType
,
String
jumpUrl
)
throws
BizException
{
BookGroupDTO
bookGroupDTO
=
null
;
if
(!
bookId
.
equals
(
0L
))
{
bookGroupDTO
=
bookGroupDao
.
getDTOByBookId
(
bookId
,
channelId
,
adviserId
);
}
if
(
null
==
bookGroupDTO
)
{
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
bookId
,
channelId
,
adviserId
,
addType
,
sceneId
,
joinGroupType
);
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
bookId
,
channelId
,
adviserId
,
addType
,
sceneId
,
joinGroupType
,
jumpType
,
jumpUrl
);
bookGroupDTO
=
new
BookGroupDTO
();
bookGroupDTO
.
setId
(
bookGroup
.
getId
());
bookGroupDTO
.
setBookId
(
bookId
);
...
...
@@ -767,7 +780,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
group
.
setSceneId
(
groupQrcodeVO
.
getSceneId
());
group
.
setGroupQrcodeUrl
(
groupQrcodeVO
.
getQrcodeUrl
());
group
.
setGroupQrcodeLink
(
this
.
getGroupQrcodeLink
(
bookGroupDTO
.
getId
(),
adviserId
,
joinGroupType
));
group
.
setGroupQrcodeLink
(
this
.
getGroupQrcodeLink
(
bookGroupDTO
.
getId
(),
adviserId
,
joinGroupType
,
jumpType
,
jumpUrl
));
bookGroupDao
.
update
(
group
);
// 展示返回最新生成的
bookGroupDTO
.
setGroupQrcodeUrl
(
groupQrcodeVO
.
getQrcodeUrl
());
...
...
@@ -780,7 +793,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
final
Boolean
haveQrcode
=
this
.
isHaveQrcode
(
bookId
,
channelId
,
adviserId
);
// 如果之前是公众号二维码则要重新生成自有码
if
(!
haveQrcode
)
{
String
groupQrcodeLink
=
this
.
getGroupQrcodeLink
(
bookGroupDTO
.
getId
(),
adviserId
,
joinGroupType
);
String
groupQrcodeLink
=
this
.
getGroupQrcodeLink
(
bookGroupDTO
.
getId
(),
adviserId
,
joinGroupType
,
jumpType
,
jumpUrl
);
String
groupQrcodeUrl
=
QrcodeUtils
.
createWithMargin
(
groupQrcodeLink
,
1
);
group
.
setGroupQrcodeUrl
(
groupQrcodeUrl
);
group
.
setGroupQrcodeLink
(
groupQrcodeLink
);
...
...
@@ -840,12 +853,23 @@ public class BookGroupBizImpl implements BookGroupBiz {
t-1,自建码,sceneId
t-2,社群码,bookGroupId
*/
private
String
getGroupQrcodeLink
(
Long
bookGroupId
,
Long
adviserId
,
Integer
joinGroupType
)
{
private
String
getGroupQrcodeLink
(
Long
bookGroupId
,
Long
adviserId
,
Integer
joinGroupType
,
Integer
jumpType
,
String
jumpUrl
)
{
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
url
;
if
(
JoinGroupTypeEnum
.
XIAORUI
.
getCode
().
equals
(
joinGroupType
)){
//小睿码t-3
url
=
bookGroupQrcodeDomain
+
"/t-3/"
+
agentId
+
"/"
+
bookGroupId
;
if
(
QrcodeJumpType
.
APPLET_SHUXIAO
.
getCode
().
equals
(
jumpType
))
{
//书晓t-4
url
=
bookGroupQrcodeDomain
+
"/t-4/"
+
agentId
+
"/"
+
bookGroupId
;
}
else
if
(
QrcodeJumpType
.
H5_SELF_URL
.
getCode
().
equals
(
jumpType
))
{
//自定义链接
url
=
UrlUtils
.
getShortUrl4Own
(
jumpUrl
);
}
else
if
(
QrcodeJumpType
.
H5_XIAORUI
.
getCode
().
equals
(
jumpType
))
{
//书僮小睿小程序码/跳转按钮
url
=
bookGroupQrcodeDomain
+
"/t-5/"
+
agentId
+
"/"
+
bookGroupId
;
}
else
{
//小睿码t-3
url
=
bookGroupQrcodeDomain
+
"/t-3/"
+
agentId
+
"/"
+
bookGroupId
;
}
}
else
{
url
=
bookGroupQrcodeDomain
+
"/t-2/"
+
agentId
+
"/"
+
bookGroupId
;
}
...
...
@@ -926,40 +950,62 @@ public class BookGroupBizImpl implements BookGroupBiz {
if
(!
bookGroup
.
getJoinGroupType
().
equals
(
group
.
getJoinGroupType
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"社群码前后类型不一致!!"
);
}
checkShortBookName
(
bookGroup
);
Long
productId
=
group
.
getProductId
();
if
(
null
==
group
.
getProductId
())
{
AddAppProductParamDTO
addAppProductParamDTO
=
new
AddAppProductParamDTO
();
addAppProductParamDTO
.
setAppProCode
(
ProductTypeConstant
.
BOOK_GROUP
);
addAppProductParamDTO
.
setAppProName
(
bookGroup
.
getGroupQrcodeName
());
addAppProductParamDTO
.
setCoverImg
(
DEFAULT_PRODUCT_COVER_IMG
);
addAppProductParamDTO
.
setPartyId
(
group
.
getCreateUser
());
addAppProductParamDTO
.
setChannelId
(
group
.
getChannelId
());
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
group
.
getCreateUser
());
addAppProductParamDTO
.
setAgentId
(
agentId
);
Product
product
=
ResponseHandleUtil
.
parseResponse
(
productService
.
postAddBookGroupProduct
(
addAppProductParamDTO
),
Product
.
class
);
if
(
null
==
product
)
{
throw
new
BookBizException
(
BookBizException
.
DB_DML_FAIL
,
"操作失败!"
);
}
bookGroup
.
setProductId
(
product
.
getProductId
());
productId
=
product
.
getProductId
();
}
else
{
UpdateAppProductParamDTO
updateAppProductParamDTO
=
new
UpdateAppProductParamDTO
();
updateAppProductParamDTO
.
setProductId
(
group
.
getProductId
());
updateAppProductParamDTO
.
setChannelId
(
group
.
getChannelId
());
updateAppProductParamDTO
.
setAppProName
(
bookGroup
.
getGroupQrcodeName
());
ResponseHandleUtil
.
parseResponse
(
productService
.
postUpdateBookGroupProduct
(
updateAppProductParamDTO
),
Product
.
class
);
if
(
JoinGroupTypeEnum
.
ROBOT
.
getCode
().
equals
(
bookGroup
.
getJoinGroupType
())
||
JoinGroupTypeEnum
.
AI_ROBOT
.
getCode
().
equals
(
bookGroup
.
getJoinGroupType
()))
{
checkShortBookName
(
bookGroup
);
}
if
(
JoinGroupTypeEnum
.
AI_ROBOT
.
getCode
().
equals
(
bookGroup
.
getJoinGroupType
()))
{
this
.
updateFriendGuide
(
bookGroup
.
getId
(),
bookGroup
.
getFriendGuideList
(),
group
.
getCreateUser
());
}
if
(
JoinGroupTypeEnum
.
GROUP_QRCODE
.
getCode
().
equals
(
bookGroup
.
getJoinGroupType
()))
{
Long
productId
=
group
.
getProductId
();
if
(
null
==
group
.
getProductId
())
{
AddAppProductParamDTO
addAppProductParamDTO
=
new
AddAppProductParamDTO
();
addAppProductParamDTO
.
setAppProCode
(
ProductTypeConstant
.
BOOK_GROUP
);
addAppProductParamDTO
.
setAppProName
(
bookGroup
.
getGroupQrcodeName
());
addAppProductParamDTO
.
setCoverImg
(
DEFAULT_PRODUCT_COVER_IMG
);
addAppProductParamDTO
.
setPartyId
(
group
.
getCreateUser
());
addAppProductParamDTO
.
setChannelId
(
group
.
getChannelId
());
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
group
.
getCreateUser
());
addAppProductParamDTO
.
setAgentId
(
agentId
);
Product
product
=
ResponseHandleUtil
.
parseResponse
(
productService
.
postAddBookGroupProduct
(
addAppProductParamDTO
),
Product
.
class
);
if
(
null
==
product
)
{
throw
new
BookBizException
(
BookBizException
.
DB_DML_FAIL
,
"操作失败!"
);
}
bookGroup
.
setProductId
(
product
.
getProductId
());
productId
=
product
.
getProductId
();
}
else
{
UpdateAppProductParamDTO
updateAppProductParamDTO
=
new
UpdateAppProductParamDTO
();
updateAppProductParamDTO
.
setProductId
(
group
.
getProductId
());
updateAppProductParamDTO
.
setChannelId
(
group
.
getChannelId
());
updateAppProductParamDTO
.
setAppProName
(
bookGroup
.
getGroupQrcodeName
());
ResponseHandleUtil
.
parseResponse
(
productService
.
postUpdateBookGroupProduct
(
updateAppProductParamDTO
),
Product
.
class
);
}
//上架
if
(
null
!=
productId
)
{
Long
channelId
=
bookGroup
.
getChannelId
()
==
null
?
group
.
getChannelId
()
:
bookGroup
.
getChannelId
();
productConsr
.
productAutoOnShelves
(
channelId
,
Arrays
.
asList
(
productId
));
}
}
//二维码跳转链接
String
groupQrcodeLink
=
group
.
getGroupQrcodeLink
();
//链接是公众号,从渠道中心取原始跳转链接
if
(
null
!=
group
.
getSceneId
()){
QrcodeSceneDto
qrcodeSceneDto
=
qrcodeSceneConsr
.
getById
(
group
.
getSceneId
());
if
(
null
!=
qrcodeSceneDto
&&
!
StringUtil
.
isEmpty
(
qrcodeSceneDto
.
getUrl
()))
{
groupQrcodeLink
=
qrcodeSceneDto
.
getUrl
();
}
}
//设置社群码样式
//每次更新之前都重新生成
String
qrcode
=
QrcodeUtils
.
createWithMargin
(
group
.
getGroupQrcodeLink
()
,
1
);
String
qrcode
=
QrcodeUtils
.
createWithMargin
(
groupQrcodeLink
,
1
);
groupQrcodeStyleDao
.
delQrcodeStyle
(
bookGroup
.
getId
());
if
(
null
!=
bookGroup
.
getGroupQrcodeStyle
()){
GroupQrcodeStyle
groupQrcodeStyle
=
bookGroup
.
getGroupQrcodeStyle
();
groupQrcodeStyle
.
setBookGroupId
(
bookGroup
.
getId
());
groupQrcodeStyleDao
.
insert
(
groupQrcodeStyle
);
//如果有颜色样式
qrcode
=
createQrcode
(
groupQrcodeStyle
,
group
.
getGroupQrcodeLink
()
);
qrcode
=
createQrcode
(
groupQrcodeStyle
,
group
QrcodeLink
);
}
//如果有图片样式
if
(
null
!=
bookGroup
.
getBackgroundType
()
&&
bookGroup
.
getBackgroundType
()>
0
){
...
...
@@ -968,14 +1014,6 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookGroup
.
setGroupQrcodeUrl
(
qrcode
);
bookGroup
.
setBackgroundType
(
bookGroup
.
getBackgroundType
());
bookGroupDao
.
update
(
bookGroup
);
//上架
if
(
null
!=
productId
)
{
Long
channelId
=
bookGroup
.
getChannelId
()
==
null
?
group
.
getChannelId
()
:
bookGroup
.
getChannelId
();
productConsr
.
productAutoOnShelves
(
channelId
,
Arrays
.
asList
(
productId
));
}
if
(
JoinGroupTypeEnum
.
AI_ROBOT
.
getCode
().
equals
(
bookGroup
.
getJoinGroupType
()))
{
this
.
updateFriendGuide
(
bookGroup
.
getId
(),
bookGroup
.
getFriendGuideList
(),
group
.
getCreateUser
());
}
}
/**
...
...
@@ -4466,8 +4504,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
String
qrCodeUrl
=
qrcodeSceneDto
.
getQrcodeUrl
();
String
qrcodeType
=
qrcodeSceneDto
.
getQrcodeType
();
//先创建
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
qrcodeSceneDto
.
getAdviserBookId
(),
qrcodeSceneDto
.
getChannelPartyId
(),
qrcodeSceneDto
.
getCreatedByUserLogin
(),
2
,
sceneId
,
JoinGroupTypeEnum
.
ROBOT
.
getCode
());
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
qrcodeSceneDto
.
getAdviserBookId
(),
qrcodeSceneDto
.
getChannelPartyId
(),
qrcodeSceneDto
.
getCreatedByUserLogin
(),
2
,
sceneId
,
JoinGroupTypeEnum
.
ROBOT
.
getCode
(),
null
,
null
);
//公众号码才需要覆盖sceneId
bookGroup
.
setGroupQrcodeUrl
(
qrCodeUrl
);
if
(
ChannelConstants
.
QrCodeType
.
WECHAT
.
getName
().
equals
(
qrcodeType
))
{
...
...
@@ -4513,7 +4550,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
null
;
}
//创建新的社群码
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
bookInfo
.
getBookId
(),
bookInfo
.
getChannelId
(),
bookInfo
.
getCreateUser
(),
2
,
sceneId
,
JoinGroupTypeEnum
.
ROBOT
.
getCode
());
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
bookInfo
.
getBookId
(),
bookInfo
.
getChannelId
(),
bookInfo
.
getCreateUser
(),
2
,
sceneId
,
JoinGroupTypeEnum
.
ROBOT
.
getCode
()
,
null
,
null
);
//替换qrCodeUrl
bookGroup
.
setGroupQrcodeUrl
(
bookInfo
.
getGroupQrcodeUrl
());
bookGroup
.
setSceneId
(
sceneId
);
...
...
@@ -4637,7 +4674,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
bookGroupDTO
;
}
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
bookId
,
channelId
,
adviserId
,
addType
,
null
,
joinGroupType
);
BookGroup
bookGroup
=
this
.
createBookGroupAfterCreateBook
(
bookId
,
channelId
,
adviserId
,
addType
,
null
,
joinGroupType
,
null
,
null
);
bookGroup
.
setGroupQrcodeName
(
erpGroupQrcodeDTO
.
getGroupQrcodeName
());
bookGroup
.
setIsInviteGroup
(
true
);
if
(
JoinGroupTypeEnum
.
ROBOT
.
getCode
().
equals
(
joinGroupType
))
{
...
...
@@ -4908,7 +4945,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
@ParamLog
(
"生成小程序码"
)
@Override
public
void
createBookGroupAppletUrl
(
Long
bookGroupId
,
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
public
void
createBookGroupAppletUrl
(
Long
bookGroupId
,
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
BookAppletScene
appletScene
=
bookAppletSceneDao
.
getByBookGroupId
(
bookGroupId
);
if
(
null
!=
appletScene
)
{
LOGGER
.
info
(
"小程序码已存在, bookGroupId"
+
bookGroupId
);
...
...
@@ -4930,12 +4967,13 @@ public class BookGroupBizImpl implements BookGroupBiz {
applet
=
bookAppletSceneDao
.
getByAppletId
(
appletId
);
}
Long
accoutnSettingId
=
getAccountSettingByAdviser
(
adviserId
);
String
url
=
wechatConsr
.
create4MiniApp
(
accoutnSettingId
,
appletId
,
null
,
page
);
//直接跳小程序,不创建小程序码
// String url = wechatConsr.create4MiniApp(accoutnSettingId, appletId, null, page);
BookAppletScene
bookAppletScene
=
new
BookAppletScene
();
bookAppletScene
.
setBookGroupId
(
bookGroupId
);
bookAppletScene
.
setRaysClassifyId
(
raysClassifyId
);
bookAppletScene
.
setAppletId
(
appletId
);
bookAppletScene
.
setAppletUrl
(
ur
l
);
bookAppletScene
.
setAppletUrl
(
nul
l
);
bookAppletScene
.
setAccountSettingId
(
accoutnSettingId
);
bookAppletSceneDao
.
insert
(
bookAppletScene
);
}
...
...
@@ -5386,7 +5424,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
@Override
public
Long
createSingleBookGroup
(
BookGroup
bookGroup
,
Long
adviserId
)
{
BookGroup
bookGroupNew
=
this
.
createBookGroupAfterCreateBook
(
0L
,
0L
,
adviserId
,
2
,
null
,
JoinGroupTypeEnum
.
GROUP_QRCODE
.
getCode
());
JoinGroupTypeEnum
.
GROUP_QRCODE
.
getCode
()
,
null
,
null
);
bookGroup
.
setId
(
bookGroupNew
.
getId
());
bookGroup
.
setSingleGroup
(
true
);
this
.
updateBookGroup
(
bookGroup
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
View file @
e30ee959
...
...
@@ -301,6 +301,30 @@ public class BookGroupDTO extends BaseDto {
// 读者量、扫码人数
private
Integer
userCount
;
/**
* 小睿码跳转类型(默认进小睿小程序)
*/
private
Integer
jumpType
;
/**
* 小睿码自定义跳转链接
*/
private
String
jumpUrl
;
public
Integer
getJumpType
()
{
return
jumpType
;
}
public
void
setJumpType
(
Integer
jumpType
)
{
this
.
jumpType
=
jumpType
;
}
public
String
getJumpUrl
()
{
return
jumpUrl
;
}
public
void
setJumpUrl
(
String
jumpUrl
)
{
this
.
jumpUrl
=
jumpUrl
;
}
/**
* 社群码样式
...
...
@@ -934,8 +958,23 @@ public class BookGroupDTO extends BaseDto {
", areaLabelName='"
+
areaLabelName
+
'\''
+
", friendGuideList="
+
friendGuideList
+
", appletUrl='"
+
appletUrl
+
'\''
+
", singleGroup="
+
singleGroup
+
", relatedBookGroupId="
+
relatedBookGroupId
+
", groupQrcodeLink='"
+
groupQrcodeLink
+
'\''
+
", groupQrcodePageNum="
+
groupQrcodePageNum
+
", groupQrcodeLocationId="
+
groupQrcodeLocationId
+
", groupQrcodeRemark='"
+
groupQrcodeRemark
+
'\''
+
", locationName='"
+
locationName
+
'\''
+
", qrcodeType='"
+
qrcodeType
+
'\''
+
", scanCount="
+
scanCount
+
", userCount="
+
userCount
+
", jumpType="
+
jumpType
+
", jumpUrl='"
+
jumpUrl
+
'\''
+
", openWeapp="
+
openWeapp
+
", adviserId="
+
adviserId
+
", adviserPhone='"
+
adviserPhone
+
'\''
+
", bookAdviserId="
+
bookAdviserId
+
", appletId='"
+
appletId
+
'\''
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/entity/BookGroup.java
View file @
e30ee959
...
...
@@ -184,6 +184,30 @@ public class BookGroup extends BaseEntity {
* 社群码链接
*/
private
String
groupQrcodeLink
;
/**
* 小睿码跳转类型(默认进小睿小程序)
*/
private
Integer
jumpType
;
/**
* 小睿码自定义跳转链接
*/
private
String
jumpUrl
;
public
Integer
getJumpType
()
{
return
jumpType
;
}
public
void
setJumpType
(
Integer
jumpType
)
{
this
.
jumpType
=
jumpType
;
}
public
String
getJumpUrl
()
{
return
jumpUrl
;
}
public
void
setJumpUrl
(
String
jumpUrl
)
{
this
.
jumpUrl
=
jumpUrl
;
}
/**
* 社群码样式
...
...
@@ -530,6 +554,8 @@ public class BookGroup extends BaseEntity {
", groupQrcodeLocationId="
+
groupQrcodeLocationId
+
", groupQrcodeRemark='"
+
groupQrcodeRemark
+
'\''
+
", groupQrcodeLink='"
+
groupQrcodeLink
+
'\''
+
", jumpType="
+
jumpType
+
", jumpUrl='"
+
jumpUrl
+
'\''
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/BookGroupFacade.java
View file @
e30ee959
...
...
@@ -88,10 +88,16 @@ public interface BookGroupFacade {
@ApiImplicitParam
(
name
=
"channelId"
,
value
=
"运营ID"
,
dataType
=
"long"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getBookGroupInfoByBookId"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
getBookGroupInfoByBookId
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookId"
,
required
=
false
)
Long
bookId
,
ResponseDto
<?>
getBookGroupInfoByBookId
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookId"
,
required
=
false
)
Long
bookId
,
@RequestParam
(
value
=
"channelId"
,
required
=
false
)
Long
channelId
,
@RequestParam
(
value
=
"addType"
,
required
=
false
)
Integer
addType
,
@RequestParam
(
value
=
"sceneId"
,
required
=
false
)
Long
sceneId
,
@RequestParam
(
value
=
"joinGroupType"
,
required
=
false
)
Integer
joinGroupType
)
throws
BizException
,
PermissionException
,
JsonParseException
;
@RequestParam
(
value
=
"addType"
,
required
=
false
)
Integer
addType
,
@RequestParam
(
value
=
"sceneId"
,
required
=
false
)
Long
sceneId
,
@RequestParam
(
value
=
"joinGroupType"
,
required
=
false
)
Integer
joinGroupType
,
@RequestParam
(
value
=
"jumpType"
,
required
=
false
)
Integer
jumpType
,
@RequestParam
(
value
=
"jumpUrl"
,
required
=
false
)
String
jumpUrl
)
throws
BizException
,
PermissionException
,
JsonParseException
;
@ApiOperation
(
value
=
"是否有社群码"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
View file @
e30ee959
...
...
@@ -152,7 +152,9 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
@RequestParam
(
value
=
"channelId"
,
required
=
false
)
Long
channelId
,
@RequestParam
(
value
=
"addType"
,
required
=
false
)
Integer
addType
,
@RequestParam
(
value
=
"sceneId"
,
required
=
false
)
Long
sceneId
,
@RequestParam
(
value
=
"joinGroupType"
,
required
=
false
)
Integer
joinGroupType
@RequestParam
(
value
=
"joinGroupType"
,
required
=
false
)
Integer
joinGroupType
,
@RequestParam
(
value
=
"jumpType"
,
required
=
false
)
Integer
jumpType
,
@RequestParam
(
value
=
"jumpUrl"
,
required
=
false
)
String
jumpUrl
)
throws
BizException
,
PermissionException
,
JsonParseException
{
if
(
null
==
bookId
||
null
==
channelId
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数有误!"
);
...
...
@@ -161,7 +163,7 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
return
new
ResponseDto
<>();
}
Long
adviserId
=
(
Long
)
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
return
new
ResponseDto
<>(
bookGroupBiz
.
getBookGroupInfoByBookId
(
bookId
,
channelId
,
adviserId
,
addType
,
sceneId
,
joinGroupType
));
return
new
ResponseDto
<>(
bookGroupBiz
.
getBookGroupInfoByBookId
(
bookId
,
channelId
,
adviserId
,
addType
,
sceneId
,
joinGroupType
,
jumpType
,
jumpUrl
));
}
/**
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/BookGroupServiceImpl.java
View file @
e30ee959
...
...
@@ -423,4 +423,10 @@ public class BookGroupServiceImpl implements BookGroupService {
BookGroupDTO
bookGroupDTO
=
bookGroupBiz
.
getMaxScanCountBookGroup
(
agentId
,
JoinGroupTypeEnum
.
XIAORUI
.
getCode
());
return
ResponseHandleUtil
.
toResponse
(
bookGroupDTO
==
null
?
""
:
bookGroupDTO
.
getGroupQrcodeUrl
());
}
@Override
@GetMapping
(
"getBookNameByBookGroupId4Channel"
)
public
ResponseEntity
<
ResponseDto
<
Map
<
String
,
Object
>>>
getBookNameByBookGroupId4Channel
(
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
){
return
ResponseHandleUtil
.
toResponse
(
bookGroupBiz
.
getBookNameByBookGroupId
(
bookGroupId
));
}
}
pcloud-service-book/src/main/resources/mapper/book/Book.Mapper.xml
View file @
e30ee959
...
...
@@ -638,7 +638,8 @@
WHEN 3 THEN srk.id
WHEN 4 THEN bgs.id
else null END,0)=0,0,1)as has_serve, A.IS_PRINT isPrint, G.open_weapp openWeapp,
G.single_group singleGroup, G.related_book_group_id relatedBookGroupId, G.group_qrcode_link groupQrcodeLink
G.single_group singleGroup, G.related_book_group_id relatedBookGroupId, G.group_qrcode_link groupQrcodeLink,
G.jump_type jumpType, G.jump_url jumpUrl
FROM
book_group G
LEFT JOIN BOOK_ADVISER A ON G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
...
...
pcloud-service-book/src/main/resources/mapper/group/BookGroupMapper.xml
View file @
e30ee959
...
...
@@ -37,6 +37,8 @@
<result
column=
"group_qrcode_remark"
property=
"groupQrcodeRemark"
jdbcType=
"VARCHAR"
/>
<result
column=
"group_qrcode_link"
property=
"groupQrcodeLink"
jdbcType=
"VARCHAR"
/>
<result
column=
"back_ground_type"
property=
"backgroundType"
jdbcType=
"INTEGER"
/>
<result
column=
"jump_type"
property=
"jumpType"
jdbcType=
"INTEGER"
/>
<result
column=
"jump_url"
property=
"jumpUrl"
jdbcType=
"VARCHAR"
/>
</resultMap>
<resultMap
id=
"BookGroupDTO"
type=
"com.pcloud.book.group.dto.BookGroupDTO"
>
...
...
@@ -80,6 +82,8 @@
<result
column=
"group_qrcode_remark"
property=
"groupQrcodeRemark"
jdbcType=
"VARCHAR"
/>
<result
column=
"group_qrcode_link"
property=
"groupQrcodeLink"
jdbcType=
"VARCHAR"
/>
<result
column=
"back_ground_type"
property=
"backgroundType"
jdbcType=
"INTEGER"
/>
<result
column=
"jump_type"
property=
"jumpType"
jdbcType=
"INTEGER"
/>
<result
column=
"jump_url"
property=
"jumpUrl"
jdbcType=
"VARCHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
...
...
@@ -89,7 +93,7 @@
update_time, is_delete, is_show_book_name,join_group_type,add_friend_guide,customer_service_name,
is_invite_group,book_group_cipher, last_push_update_time, is_some_update, agent_id, belong_special_agent,
short_book_name, open_weapp, single_group, related_book_group_id,group_qrcode_page_num,group_qrcode_location_id,group_qrcode_remark,
group_qrcode_link,back_ground_type
group_qrcode_link,back_ground_type
, jump_type, jump_url
</sql>
<select
id=
"getById"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Long"
>
...
...
@@ -269,6 +273,8 @@
is_some_update,
agent_id,
group_qrcode_link,
jump_type,
jump_url,
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
#{bookId,jdbcType=BIGINT},
...
...
@@ -295,6 +301,8 @@
#{isSomeUpdate,jdbcType=BOOLEAN},
#{agentId,jdbcType=BIGINT},
#{groupQrcodeLink},
#{jumpType},
#{jumpUrl},
</trim>
</insert>
...
...
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