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
95c922df
Commit
95c922df
authored
Sep 10, 2020
by
桂前礼
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: [1003566] 书刊详情页面底部企业微信客服及配置
parent
5977c3c6
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
115 additions
and
27 deletions
+115
-27
WeworkTeacherBizImpl.java
.../com/pcloud/book/group/biz/impl/WeworkTeacherBizImpl.java
+26
-18
WeworkTeacher.java
...main/java/com/pcloud/book/group/entity/WeworkTeacher.java
+18
-0
WeworkTeacherVO.java
...c/main/java/com/pcloud/book/group/vo/WeworkTeacherVO.java
+24
-4
WeworkTeacherMapper.xml
...k/src/main/resources/mapper/group/WeworkTeacherMapper.xml
+47
-5
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/WeworkTeacherBizImpl.java
View file @
95c922df
...
...
@@ -21,6 +21,7 @@ import com.pcloud.common.page.PageBeanNew;
import
com.pcloud.common.utils.ParamChecker
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.facade.wechat.material.dto.GroupNewsMaterialAddDTO
;
import
com.pcloud.facade.wechat.material.dto.NewsMaterialTemplateDto
;
import
com.pcloud.facade.wechat.material.service.MaterialService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -29,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
...
...
@@ -48,7 +50,7 @@ public class WeworkTeacherBizImpl implements WeworkTeacherBiz {
/**
* 客服老师素材代码模板
*/
public
static
final
String
WEWORK_TEACHER_MATERIAL_HTML
=
"<div style='margin:10px 0;box-sizing: border-box;'><
div style='margin:55px auto 32px;width: 275px;height: 255px;'><div style='width: 275px;height: 255px;background-color: #ffffff;border-radius: 6px;border: solid 1px #66c84f'><div style='margin-top:-16px;margin-left:53px;width: 168px;height: 32px;line-height: 32px;text-align: center; font-size: 14px;color: #ffffff; background-color: #66c84f;border-radius: 6px;'>长按识别下面二维码</div><div style='height: 23px;display: block;text-align: center;margin: 10px auto;letter-spacing: 6px;'>\uD83D\uDC47\uD83D\uDC47\uD83D\uDC47</div><div style='width: 172px;height:172px;display: block;margin: 0 auto;'><img class='qrcode'src='${qrcodeUrl}'
alt=''></div></div></div></div>"
;
public
static
final
String
WEWORK_TEACHER_MATERIAL_HTML
=
"<div style='margin:10px 0;box-sizing: border-box;'><
header style='display: flex;padding:0 20px;'><img style='width: 60px;height: 60px;' src='${avatar}' alt=''><div style='margin-left:10px;flex: 1;height: 60px;display:flex;flex-direction: column;justify-content: space-around;align-items: flex-start;'><div style='color:#000;font-size: 16px;font-weight: bold;'> ${title}</div><div style='color: #666666;font-size: 14px;font-weight: normal;'>${desc}</div></div></header><div style='margin:55px auto 32px;width: 275px;height: 255px;'><div style='width: 275px;height: 255px;background-color: #ffffff;border-radius: 6px;border: solid 1px #66c84f'><div style='margin-top:-16px;margin-left:53px;width: 168px;height: 32px;line-height: 32px;text-align: center; font-size: 14px;color: #ffffff; background-color: #66c84f;border-radius: 6px;'>长按识别下面二维码</div><div style='height: 23px;display: block;text-align: center;margin: 10px auto;letter-spacing: 6px;'> \uD83D\uDC47\uD83D\uDC47\uD83D\uDC47</div><div style='width: 172px;height:172px;display: block;margin: 0 auto;'><img class='qrcode' src='${qrcodeUrl}'
alt=''></div></div></div></div>"
;
@Autowired
...
...
@@ -75,14 +77,17 @@ public class WeworkTeacherBizImpl implements WeworkTeacherBiz {
String
materialUrl
;
try
{
account
=
groupMaterialAccountBiz
.
getActiveAccount
(
UseTypeEnum
.
THIRD_GROUP
.
value
);
GroupNewsMaterialAddDTO
materialAddDTO
=
new
GroupNewsMaterialAddDTO
();
materialAddDTO
.
setAccountId
(
account
.
getAccountId
());
materialAddDTO
.
setGroupName
(
weworkTeacher
.
getTitle
());
materialAddDTO
.
setQrcodeUrl
(
weworkTeacher
.
getQrcode
());
materialAddDTO
.
setGroupHeadImg
(
account
.
getHeadMediaId
());
materialAddDTO
.
setCoverMediaId
(
account
.
getCoverMediaId
());
materialAddDTO
.
setHtml
(
WEWORK_TEACHER_MATERIAL_HTML
);
mediaId
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterial
(
materialAddDTO
),
String
.
class
);
NewsMaterialTemplateDto
dto
=
new
NewsMaterialTemplateDto
();
Map
<
String
,
String
>
placeholderMap
=
new
HashMap
<>();
placeholderMap
.
put
(
"${avatar}"
,
weworkTeacherVO
.
getAvatar
());
placeholderMap
.
put
(
"${qrcodeUrl}"
,
weworkTeacherVO
.
getQrcode
());
dto
.
setHtmlTemplate
(
WEWORK_TEACHER_MATERIAL_HTML
.
replace
(
"${title}"
,
weworkTeacherVO
.
getNickname
()).
replace
(
"${desc}"
,
weworkTeacherVO
.
getDesc
()));
dto
.
setAccountId
(
account
.
getAccountId
());
dto
.
setTitle
(
weworkTeacherVO
.
getTitle
());
dto
.
setCoverMediaId
(
account
.
getCoverMediaId
());
dto
.
setPlaceholders
(
placeholderMap
);
dto
.
setDigest
(
weworkTeacherVO
.
getTitle
());
mediaId
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
createNewsMaterial4Template
(
dto
),
String
.
class
);
materialUrl
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterialByMediaId
(
mediaId
),
String
.
class
);
}
catch
(
Exception
e
)
{
log
.
info
(
"[WeworkTeacherBizImpl.addWxworkTeacher] 新增客服老师,创建素材失败!"
,
e
);
...
...
@@ -119,15 +124,18 @@ public class WeworkTeacherBizImpl implements WeworkTeacherBiz {
GroupMaterialAccount
account
=
null
;
try
{
account
=
groupMaterialAccountBiz
.
getByAccountId
(
weworkTeacher
.
getAccountId
());
GroupNewsMaterialAddDTO
materialAddDTO
=
new
GroupNewsMaterialAddDTO
();
materialAddDTO
.
setMediaId
(
weworkTeacher
.
getMediaId
());
materialAddDTO
.
setAccountId
(
account
.
getAccountId
());
materialAddDTO
.
setGroupName
(
weworkTeacher
.
getTitle
());
materialAddDTO
.
setQrcodeUrl
(
weworkTeacher
.
getQrcode
());
materialAddDTO
.
setGroupHeadImg
(
account
.
getHeadMediaId
());
materialAddDTO
.
setCoverMediaId
(
account
.
getCoverMediaId
());
materialAddDTO
.
setHtml
(
WEWORK_TEACHER_MATERIAL_HTML
);
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterial
(
materialAddDTO
),
String
.
class
);
NewsMaterialTemplateDto
dto
=
new
NewsMaterialTemplateDto
();
Map
<
String
,
String
>
placeholderMap
=
new
HashMap
<>();
placeholderMap
.
put
(
"${avatar}"
,
weworkTeacherVO
.
getAvatar
());
placeholderMap
.
put
(
"${qrcodeUrl}"
,
weworkTeacherVO
.
getQrcode
());
dto
.
setHtmlTemplate
(
WEWORK_TEACHER_MATERIAL_HTML
.
replace
(
"${title}"
,
weworkTeacherVO
.
getNickname
()).
replace
(
"${desc}"
,
weworkTeacherVO
.
getDesc
()));
dto
.
setAccountId
(
account
.
getAccountId
());
dto
.
setTitle
(
weworkTeacherVO
.
getTitle
());
dto
.
setCoverMediaId
(
account
.
getCoverMediaId
());
dto
.
setPlaceholders
(
placeholderMap
);
dto
.
setDigest
(
weworkTeacherVO
.
getTitle
());
dto
.
setMediaId
(
weworkTeacher
.
getMediaId
());
materialService
.
createNewsMaterial4Template
(
dto
);
}
catch
(
Exception
e
)
{
log
.
info
(
"[WeworkTeacherBizImpl.updateWxworkTeacher] 更新客服老师,更新素材失败! weworkTeacherVO:{} account:{}"
,
weworkTeacherVO
,
account
);
throw
new
BookBizException
(
BookBizException
.
ID_NOT_EXIST
,
"更新客服老师,更新素材失败!"
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/entity/WeworkTeacher.java
View file @
95c922df
...
...
@@ -33,6 +33,24 @@ public class WeworkTeacher implements Serializable {
private
String
realName
;
/**
* 昵称
*/
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
/**
* 头像地址
*/
@ApiModelProperty
(
"头像地址"
)
private
String
avatar
;
/**
* 描述
*/
@ApiModelProperty
(
"描述"
)
private
String
desc
;
/**
* 图文素材标题名称
*/
@ApiModelProperty
(
"图文素材标题名称"
)
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/WeworkTeacherVO.java
View file @
95c922df
...
...
@@ -48,10 +48,22 @@ public class WeworkTeacherVO implements Serializable {
private
String
title
;
/**
*
客服类型:1:苏老师 2:张哥哥
*
昵称
*/
@ApiModelProperty
(
"客服类型:1:苏老师 2:张哥哥"
)
private
Integer
teacherType
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
/**
* 头像地址
*/
@ApiModelProperty
(
"头像地址"
)
private
String
avatar
;
/**
* 描述
*/
@ApiModelProperty
(
"描述"
)
private
String
desc
;
/**
* 开关状态
...
...
@@ -86,7 +98,6 @@ public class WeworkTeacherVO implements Serializable {
ParamChecker
.
checkStringIsEmpty
(
this
.
qrcode
,
"企业微信二维码不能为空!"
);
ParamChecker
.
checkStringIsEmpty
(
this
.
realName
,
"真实姓名不能为空!"
);
ParamChecker
.
checkStringIsEmpty
(
this
.
title
,
"Title 不能为空!"
);
ParamChecker
.
checkNumberIsNull
(
this
.
teacherType
,
"客服老师类型不能为空!"
);
}
public
void
checkParam4Update
()
{
...
...
@@ -111,6 +122,15 @@ public class WeworkTeacherVO implements Serializable {
if
(
this
.
title
!=
null
&&
!
StrUtil
.
equals
(
this
.
title
,
weworkTeacher
.
getTitle
()))
{
return
true
;
}
if
(
this
.
avatar
!=
null
&&
!
StrUtil
.
equals
(
this
.
avatar
,
weworkTeacher
.
getAvatar
()))
{
return
true
;
}
if
(
this
.
desc
!=
null
&&
!
StrUtil
.
equals
(
this
.
desc
,
weworkTeacher
.
getDesc
()))
{
return
true
;
}
return
false
;
}
}
pcloud-service-book/src/main/resources/mapper/group/WeworkTeacherMapper.xml
View file @
95c922df
...
...
@@ -5,6 +5,9 @@
<id
column=
"id"
jdbcType=
"BIGINT"
property=
"id"
/>
<result
column=
"qrcode"
jdbcType=
"VARCHAR"
property=
"qrcode"
/>
<result
column=
"real_name"
jdbcType=
"VARCHAR"
property=
"realName"
/>
<result
column=
"nickname"
jdbcType=
"VARCHAR"
property=
"nickname"
/>
<result
column=
"avatar"
jdbcType=
"VARCHAR"
property=
"avatar"
/>
<result
column=
"desc"
jdbcType=
"VARCHAR"
property=
"desc"
/>
<result
column=
"title"
jdbcType=
"VARCHAR"
property=
"title"
/>
<result
column=
"teacher_type"
jdbcType=
"INTEGER"
property=
"teacherType"
/>
<result
column=
"is_open"
jdbcType=
"INTEGER"
property=
"isOpen"
/>
...
...
@@ -15,7 +18,7 @@
<result
column=
"update_time"
jdbcType=
"TIMESTAMP"
property=
"updateTime"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, qrcode, real_name, title, teacher_type, is_open, material_url, media_id, account_id, create_time,
id, qrcode, real_name,
nickname, avatar, `desc`,
title, teacher_type, is_open, material_url, media_id, account_id, create_time,
update_time
</sql>
<select
id=
"selectByPrimaryKey"
parameterType=
"java.lang.Long"
resultMap=
"BaseResultMap"
>
...
...
@@ -29,11 +32,11 @@
where id = #{id,jdbcType=BIGINT}
</delete>
<insert
id=
"insert"
keyColumn=
"id"
keyProperty=
"id"
parameterType=
"com.pcloud.book.group.entity.WeworkTeacher"
useGeneratedKeys=
"true"
>
insert into wework_teacher (qrcode, real_name,
title,
insert into wework_teacher (qrcode, real_name,
nickname, avatar, `desc`, title,
teacher_type, is_open, material_url, media_id,
account_id, create_time, update_time
)
values (#{qrcode,jdbcType=VARCHAR}, #{realName,jdbcType=VARCHAR}, #{
title,jdbcType=VARCHAR},
values (#{qrcode,jdbcType=VARCHAR}, #{realName,jdbcType=VARCHAR}, #{
nickname,jdbcType=VARCHAR}, #{avatar,jdbcType=VARCHAR}, #{desc,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR},
#{teacherType,jdbcType=INTEGER}, #{isOpen,jdbcType=INTEGER}, #{materialUrl,jdbcType=VARCHAR}, #{mediaId,jdbcType=VARCHAR},
#{accountId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
...
...
@@ -47,6 +50,15 @@
<if
test=
"realName != null"
>
real_name,
</if>
<if
test=
"nickname != null"
>
nickname,
</if>
<if
test=
"avatar != null"
>
avatar,
</if>
<if
test=
"desc != null"
>
`desc`,
</if>
<if
test=
"title != null"
>
title,
</if>
...
...
@@ -79,6 +91,15 @@
<if
test=
"realName != null"
>
#{realName,jdbcType=VARCHAR},
</if>
<if
test=
"nickname != null"
>
#{nickname,jdbcType=VARCHAR},
</if>
<if
test=
"avatar != null"
>
#{avatar,jdbcType=VARCHAR},
</if>
<if
test=
"desc != null"
>
#{desc,jdbcType=VARCHAR},
</if>
<if
test=
"title != null"
>
#{title,jdbcType=VARCHAR},
</if>
...
...
@@ -114,6 +135,15 @@
<if
test=
"realName != null"
>
real_name = #{realName,jdbcType=VARCHAR},
</if>
<if
test=
"nickname != null"
>
nickname = #{nickname,jdbcType=VARCHAR},
</if>
<if
test=
"avatar != null"
>
avatar = #{avatar,jdbcType=VARCHAR},
</if>
<if
test=
"desc != null"
>
`desc` = #{desc,jdbcType=VARCHAR},
</if>
<if
test=
"title != null"
>
title = #{title,jdbcType=VARCHAR},
</if>
...
...
@@ -145,6 +175,9 @@
update wework_teacher
set qrcode = #{qrcode,jdbcType=VARCHAR},
real_name = #{realName,jdbcType=VARCHAR},
nickname = #{nickname,jdbcType=VARCHAR},
avatar = #{avatar,jdbcType=VARCHAR},
`desc` = #{desc,jdbcType=VARCHAR},
title = #{title,jdbcType=VARCHAR},
teacher_type = #{teacherType,jdbcType=INTEGER},
is_open = #{isOpen,jdbcType=INTEGER},
...
...
@@ -161,7 +194,7 @@
from wework_teacher
<where>
<if
test=
"name != null"
>
real_name like concat('%', #{name}, '%'
)
( real_name like concat('%', #{name}, '%') OR nickname like concat('%', #{name}, '%') OR `desc` like concat('%', #{name}, '%')
)
</if>
<if
test=
"isOpen != null"
>
and is_open = #{isOpen}
...
...
@@ -177,6 +210,9 @@
id AS id,
qrcode AS qrcode,
real_name AS realName,
nickname,
avatar,
`desc`,
title AS title,
teacher_type AS teacherType,
is_open AS isOpen,
...
...
@@ -186,7 +222,7 @@
from wework_teacher
<where>
<if
test=
"name != null"
>
real_name like concat('%', #{name}, '%'
)
( real_name like concat('%', #{name}, '%') OR nickname like concat('%', #{name}, '%') OR `desc` like concat('%', #{name}, '%')
)
</if>
<if
test=
"isOpen != null"
>
and is_open = #{isOpen}
...
...
@@ -201,6 +237,9 @@
select
id AS id,
teacher_type AS teacherType,
nickname,
avatar,
`desc`,
material_url AS materialUrl
from wework_teacher
where is_open = 1
...
...
@@ -219,6 +258,9 @@
select
id AS id,
teacher_type AS teacherType,
nickname,
avatar,
`desc`,
material_url AS materialUrl
from wework_teacher
where is_open = 1 and id in
...
...
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