Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
仟微科技
Link Wechat
提交
ee422d06
Link Wechat
项目概览
仟微科技
/
Link Wechat
通知
48
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Link Wechat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ee422d06
编写于
4月 26, 2021
作者:
Y
YaoYuHang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
社群运营 - 代码优化、新客获取详情问题解决
上级
844e64a4
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
213 addition
and
130 deletion
+213
-130
linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java
...b/controller/wecom/WeCommunityPresTagGroupController.java
+1
-1
linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java
...in/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java
+2
-0
linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java
...ctory/impl/customer/WeCallBackAddExternalContactImpl.java
+44
-24
linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java
...n/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java
+7
-0
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java
...ava/com/linkwechat/wecom/service/IWeGroupCodeService.java
+7
-0
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java
.../linkwechat/wecom/service/IWePresTagGroupTaskService.java
+2
-3
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java
...om/service/impl/WeCommunityKeywordToGroupServiceImpl.java
+30
-26
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java
...at/wecom/service/impl/WeCommunityNewGroupServiceImpl.java
+34
-20
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java
...linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java
+11
-2
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java
.../linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java
+30
-24
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java
...hat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java
+31
-29
linkwe-wecom/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml
...com/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml
+14
-1
未找到文件。
linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java
浏览文件 @
ee422d06
...
...
@@ -84,7 +84,7 @@ public class WeCommunityPresTagGroupController extends BaseController {
if
(
StringUtils
.
isNull
(
taskVo
))
{
return
AjaxResult
.
error
(
HttpStatus
.
NOT_FOUND
,
"群活码不存在"
);
}
return
AjaxResult
.
success
();
return
AjaxResult
.
success
(
taskVo
);
}
/**
...
...
linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java
浏览文件 @
ee422d06
...
...
@@ -2,6 +2,7 @@ package com.linkwechat.wecom.domain.vo;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -11,6 +12,7 @@ import lombok.NoArgsConstructor;
* @Date 2021/3/26 14:21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
WeGroupCodeVo
{
...
...
linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java
浏览文件 @
ee422d06
...
...
@@ -2,6 +2,7 @@ package com.linkwechat.wecom.factory.impl.customer;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.linkwechat.common.config.CosConfig
;
import
com.linkwechat.common.constant.WeConstans
;
import
com.linkwechat.common.enums.MediaType
;
import
com.linkwechat.common.utils.StringUtils
;
...
...
@@ -49,6 +50,12 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
private
IWeTaskFissionService
weTaskFissionService
;
private
ThreadLocal
<
WeFlowerCustomerRel
>
weFlowerCustomerRelThreadLocal
=
new
ThreadLocal
<>();
@Autowired
private
IWeGroupCodeService
weGroupCodeService
;
@Autowired
private
CosConfig
cosConfig
;
@Override
public
void
eventHandle
(
WxCpXmlMessageVO
message
)
{
if
(
message
.
getExternalUserId
()
!=
null
)
{
...
...
@@ -61,7 +68,7 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
if
(
message
.
getState
()
!=
null
&&
message
.
getWelcomeCode
()
!=
null
)
{
if
(
isFission
(
message
.
getState
()))
{
taskFissionRecordHandle
(
message
.
getState
(),
message
.
getWelcomeCode
(),
message
.
getUserId
(),
message
.
getExternalUserId
());
}
else
{
}
else
{
empleCodeHandle
(
message
.
getState
(),
message
.
getWelcomeCode
(),
message
.
getUserId
(),
message
.
getExternalUserId
());
}
}
...
...
@@ -123,15 +130,17 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
log
.
info
(
"执行发送欢迎语>>>>>>>>>>>>>>>"
);
WeWelcomeMsg
.
WeWelcomeMsgBuilder
weWelcomeMsgBuilder
=
WeWelcomeMsg
.
builder
().
welcome_code
(
wecomCode
);
WeEmpleCodeDto
messageMap
=
weEmpleCodeService
.
selectWelcomeMsgByState
(
state
);
if
(
messageMap
!=
null
)
{
if
(
StringUtils
.
isNotNull
(
messageMap
))
{
String
empleCodeId
=
messageMap
.
getEmpleCodeId
();
//查询活码对应标签
List
<
WeEmpleCodeTag
>
tagList
=
weEmpleCodeTagService
.
list
(
new
LambdaQueryWrapper
<
WeEmpleCodeTag
>()
.
eq
(
WeEmpleCodeTag:
:
getEmpleCodeId
,
empleCodeId
));
//查询外部联系人与通讯录关系数据
WeFlowerCustomerRel
weFlowerCustomerRel
=
weFlowerCustomerRelService
.
getOne
(
new
LambdaQueryWrapper
<
WeFlowerCustomerRel
>()
.
eq
(
WeFlowerCustomerRel:
:
getUserId
,
userId
)
.
eq
(
WeFlowerCustomerRel:
:
getExternalUserid
,
externalUserId
));
WeFlowerCustomerRel
weFlowerCustomerRel
=
weFlowerCustomerRelService
.
getOne
(
new
LambdaQueryWrapper
<
WeFlowerCustomerRel
>()
.
eq
(
WeFlowerCustomerRel:
:
getUserId
,
userId
)
.
eq
(
WeFlowerCustomerRel:
:
getExternalUserid
,
externalUserId
));
//为外部联系人添加员工活码标签
List
<
WeFlowerCustomerTagRel
>
weFlowerCustomerTagRels
=
new
ArrayList
<>();
Optional
.
ofNullable
(
weFlowerCustomerRel
).
ifPresent
(
weFlowerCustomerRel1
->
{
...
...
@@ -146,22 +155,24 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
});
weFlowerCustomerTagRelService
.
saveOrUpdateBatch
(
weFlowerCustomerTagRels
);
});
// 发送欢迎语
log
.
debug
(
">>>>>>>>>欢迎语查询结果:{}"
,
JSONObject
.
toJSONString
(
messageMap
));
if
(
messageMap
!=
null
)
{
if
(
StringUtils
.
isNotEmpty
(
messageMap
.
getWelcomeMsg
()))
{
weWelcomeMsgBuilder
.
text
(
WeWelcomeMsg
.
Text
.
builder
()
.
content
(
messageMap
.
getWelcomeMsg
()).
build
());
}
if
(
StringUtils
.
isNotEmpty
(
messageMap
.
getCategoryId
()))
{
WeMediaDto
weMediaDto
=
weMaterialService
.
uploadTemporaryMaterial
(
messageMap
.
getMaterialUrl
(),
MediaType
.
IMAGE
.
getMediaType
(),
messageMap
.
getMaterialName
());
Optional
.
ofNullable
(
weMediaDto
).
ifPresent
(
media
->
{
weWelcomeMsgBuilder
.
image
(
WeWelcomeMsg
.
Image
.
builder
().
media_id
(
media
.
getMedia_id
())
.
pic_url
(
media
.
getUrl
()).
build
());
});
}
weCustomerService
.
sendWelcomeMsg
(
weWelcomeMsgBuilder
.
build
());
// 设定欢迎语文字
if
(
StringUtils
.
isNotEmpty
(
messageMap
.
getWelcomeMsg
()))
{
weWelcomeMsgBuilder
.
text
(
WeWelcomeMsg
.
Text
.
builder
().
content
(
messageMap
.
getWelcomeMsg
()).
build
());
}
// 设置欢迎语图片
// 新客拉群创建的员工活码欢迎语图片(群活码图片)
String
codeUrl
=
weGroupCodeService
.
selectGroupCodeUrlByEmplCodeState
(
state
);
if
(
StringUtils
.
isNotNull
(
codeUrl
))
{
buildWelcomeMsgImg
(
weWelcomeMsgBuilder
,
codeUrl
,
codeUrl
.
replaceAll
(
cosConfig
.
getImgUrlPrefix
(),
""
));
}
// 普通员工活码欢迎语图片
else
if
(
StringUtils
.
isNotEmpty
(
messageMap
.
getCategoryId
()))
{
buildWelcomeMsgImg
(
weWelcomeMsgBuilder
,
messageMap
.
getMaterialUrl
(),
messageMap
.
getMaterialName
());
}
weCustomerService
.
sendWelcomeMsg
(
weWelcomeMsgBuilder
.
build
());
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -170,11 +181,20 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
}
private
boolean
isFission
(
String
str
)
{
if
(
str
.
indexOf
(
WeConstans
.
FISSION_PREFIX
)
!=
-
1
){
return
true
;
}
return
false
;
return
str
.
contains
(
WeConstans
.
FISSION_PREFIX
);
}
/**
* 构建欢迎语的图片部分
*
* @param builder 欢迎语builder
* @param picUrl 图片链接
* @param fileName 图片名称
*/
private
void
buildWelcomeMsgImg
(
WeWelcomeMsg
.
WeWelcomeMsgBuilder
builder
,
String
picUrl
,
String
fileName
)
{
WeMediaDto
weMediaDto
=
weMaterialService
.
uploadTemporaryMaterial
(
picUrl
,
MediaType
.
IMAGE
.
getMediaType
(),
fileName
);
Optional
.
ofNullable
(
weMediaDto
).
ifPresent
(
media
->
{
builder
.
image
(
WeWelcomeMsg
.
Image
.
builder
().
media_id
(
media
.
getMedia_id
()).
pic_url
(
media
.
getUrl
()).
build
());
});
}
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java
浏览文件 @
ee422d06
...
...
@@ -101,4 +101,11 @@ public interface WeGroupCodeMapper extends BaseMapper<WeGroupCode>
* @return 总扫码次数
*/
int
selectScanTimesByGroupCodeId
(
Long
groupCodeId
);
/**
* 通过员工活码获取群活码,用于新客自动拉群。
* @param state 员工活码state
* @return 群活码URL
*/
String
selectGroupCodeUrlByEmplCodeState
(
String
state
);
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java
浏览文件 @
ee422d06
...
...
@@ -94,4 +94,11 @@ public interface IWeGroupCodeService extends IService<WeGroupCode> {
*/
WeGroupCode
getWeGroupByUuid
(
String
uuid
);
/**
* 通过员工活码获取群活码,用于新客自动拉群。
* @param state 员工活码state
* @return 群活码URL
*/
String
selectGroupCodeUrlByEmplCodeState
(
String
state
);
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java
浏览文件 @
ee422d06
...
...
@@ -53,10 +53,9 @@ public interface IWePresTagGroupTaskService {
/**
* 更新老客户标签建群任务
*
*
@param taskId 待更新任务id
* @param wePresTagGroupTaskDto 更新数据
* @return 结果
* @taskId 待更新任务id
* @return 更新条数
*/
int
updateTask
(
Long
taskId
,
WePresTagGroupTaskDto
wePresTagGroupTaskDto
);
...
...
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java
浏览文件 @
ee422d06
package
com.linkwechat.wecom.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.
Lambda
QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.linkwechat.common.utils.StringUtils
;
import
com.linkwechat.wecom.domain.WeGroupCode
;
...
...
@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -58,7 +59,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
taskVo
.
setKeywordList
(
taskKeywordList
);
}
// 群活码信息
taskVo
.
setGroupCodeInfo
(
this
.
getGroupVoByTaskId
(
taskVo
.
getGroupCodeId
())
);
setGroupCodeVoByTask
(
taskVo
);
// 通过群活码id查询对应的群
List
<
String
>
groupNameList
=
taskMapper
.
getGroupNameListByTaskId
(
taskVo
.
getTaskId
());
groupNameList
.
removeIf
(
Objects:
:
isNull
);
...
...
@@ -83,7 +84,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
taskVo
.
setKeywordList
(
keywordList
);
}
// 群活码
taskVo
.
setGroupCodeInfo
(
this
.
getGroupVoByTaskId
(
taskVo
.
getGroupCodeId
())
);
setGroupCodeVoByTask
(
taskVo
);
// 群聊名称列表
List
<
String
>
groupNameList
=
taskMapper
.
getGroupNameListByTaskId
(
taskVo
.
getTaskId
());
groupNameList
.
removeIf
(
Objects:
:
isNull
);
...
...
@@ -127,9 +128,9 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
public
int
updateTask
(
WeKeywordGroupTask
task
,
String
[]
keywords
)
{
if
(
taskMapper
.
updateById
(
task
)
==
1
)
{
// 删除原有的关键词
QueryWrapper
<
WeKeywordGroupTaskKeyword
>
taskKwQueryWrapper
=
new
QueryWrapper
<>();
taskKwQueryWrapper
.
eq
(
"task_id"
,
task
.
getTaskId
());
taskKwMapper
.
delete
(
taskKwQuery
Wrapper
);
LambdaQueryWrapper
<
WeKeywordGroupTaskKeyword
>
keywordWrapper
=
new
Lambda
QueryWrapper
<>();
keywordWrapper
.
eq
(
WeKeywordGroupTaskKeyword:
:
getTaskId
,
task
.
getTaskId
());
taskKwMapper
.
delete
(
keyword
Wrapper
);
// 再重新插入新的关键词
List
<
WeKeywordGroupTaskKeyword
>
taskKeywordList
=
Arrays
.
stream
(
keywords
)
...
...
@@ -153,14 +154,17 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
@Transactional
public
int
batchRemoveTaskByIds
(
Long
[]
ids
)
{
// 移除其所有关键词对象
QueryWrapper
<
WeKeywordGroupTaskKeyword
>
taskKwQueryWrapper
=
new
QueryWrapper
<>();
taskKwQueryWrapper
.
in
(
"task_id"
,
Arrays
.
asList
(
ids
));
taskKwMapper
.
delete
(
taskKwQueryWrapper
);
QueryWrapper
<
WeKeywordGroupTask
>
taskQueryWrapper
=
new
QueryWrapper
<>();
taskKwQueryWrapper
.
in
(
"task_id"
,
Arrays
.
asList
(
ids
));
return
taskMapper
.
delete
(
taskQueryWrapper
);
LambdaQueryWrapper
<
WeKeywordGroupTaskKeyword
>
keywordWrapper
=
new
LambdaQueryWrapper
<>();
keywordWrapper
.
in
(
WeKeywordGroupTaskKeyword:
:
getTaskId
,
Arrays
.
asList
(
ids
));
taskKwMapper
.
delete
(
keywordWrapper
);
LambdaQueryWrapper
<
WeKeywordGroupTask
>
taskWrapper
=
new
LambdaQueryWrapper
<>();
taskWrapper
.
in
(
WeKeywordGroupTask:
:
getTaskId
,
Arrays
.
asList
(
ids
));
return
taskMapper
.
delete
(
taskWrapper
);
}
/*
*/
/**
* 检测任务名是否唯一
*
...
...
@@ -186,7 +190,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
taskVo
.
setKeywordList
(
this
.
getTaskKeywordList
(
taskVo
.
getTaskId
()));
List
<
String
>
groupNameList
=
taskMapper
.
getGroupNameListByTaskId
(
taskVo
.
getTaskId
());
// 群活码
taskVo
.
setGroupCodeInfo
(
this
.
getGroupVoByTaskId
(
taskVo
.
getGroupCodeId
())
);
setGroupCodeVoByTask
(
taskVo
);
// 群名称列表
groupNameList
.
removeIf
(
StringUtils:
:
isNull
);
taskVo
.
setGroupNameList
(
groupNameList
);
...
...
@@ -200,23 +204,23 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
* @param taskId 任务id
*/
private
List
<
WeKeywordGroupTaskKeyword
>
getTaskKeywordList
(
Long
taskId
)
{
QueryWrapper
<
WeKeywordGroupTaskKeyword
>
taskKeywordQueryWrapper
=
new
QueryWrapper
<>();
taskKeywordQueryWrapper
.
eq
(
"task_id"
,
taskId
);
return
taskKwMapper
.
selectList
(
taskKeywordQueryW
rapper
);
LambdaQueryWrapper
<
WeKeywordGroupTaskKeyword
>
wrapper
=
new
Lambda
QueryWrapper
<>();
wrapper
.
eq
(
WeKeywordGroupTaskKeyword:
:
getTaskId
,
taskId
);
return
taskKwMapper
.
selectList
(
w
rapper
);
}
/**
* 获取群活码简略信息
*
* @param groupCodeId 群活码id
* @return 群活码简略信息
* @param taskVo 关键词任务信息
*/
private
WeGroupCodeVo
getGroupVoByTaskId
(
Long
groupCodeId
)
{
WeGroupCode
groupCode
=
groupCodeMapper
.
selectWeGroupCodeById
(
groupCodeId
);
WeGroupCodeVo
groupCodeVo
=
new
WeGroupCodeVo
();
groupCodeVo
.
setId
(
groupCode
.
getId
());
groupCodeVo
.
setCodeUrl
(
groupCode
.
getCodeUrl
());
groupCodeVo
.
setUuid
(
groupCode
.
getUuid
());
return
groupCodeVo
;
private
void
setGroupCodeVoByTask
(
WeKeywordGroupTaskVo
taskVo
)
{
WeGroupCode
groupCode
=
groupCodeMapper
.
selectWeGroupCodeById
(
taskVo
.
getGroupCodeId
());
Optional
.
ofNullable
(
groupCode
).
ifPresent
(
code
->
{
WeGroupCodeVo
groupCodeVo
=
new
WeGroupCodeVo
();
groupCodeVo
.
setId
(
code
.
getId
());
groupCodeVo
.
setCodeUrl
(
code
.
getCodeUrl
());
groupCodeVo
.
setUuid
(
code
.
getUuid
());
taskVo
.
setGroupCodeInfo
(
groupCodeVo
);
});
}
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java
浏览文件 @
ee422d06
package
com.linkwechat.wecom.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.
Lambda
QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.linkwechat.common.enums.WeEmpleCodeType
;
import
com.linkwechat.common.exception.wecom.WeComException
;
...
...
@@ -162,7 +162,7 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
// 更新员工活码以及其对应的 "联系我" 配置
WeEmpleCode
weEmplCode
=
weEmpleCodeMapper
.
selectWeEmpleCodeById
(
communityNewGroup
.
getEmplCodeId
());
// 更改员工活码的扫码标签、使用员工
g
etScopsAndTags
(
weEmplCode
,
communityNewGroupDto
);
s
etScopsAndTags
(
weEmplCode
,
communityNewGroupDto
);
// 更新使用场景、欢迎语、是否验证
weEmplCode
.
setScenario
(
communityNewGroupDto
.
getCodeName
());
weEmplCode
.
setWelcomeMsg
(
communityNewGroupDto
.
getWelcomeMsg
());
...
...
@@ -210,8 +210,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
WeEmpleCode
weEmpleCode
=
new
WeEmpleCode
();
//
获取
员工和扫码标签
g
etScopsAndTags
(
weEmpleCode
,
communityNewGroupDto
);
//
设置
员工和扫码标签
s
etScopsAndTags
(
weEmpleCode
,
communityNewGroupDto
);
// 固定为多人类型
weEmpleCode
.
setCodeType
(
WeEmpleCodeType
.
MULTI
.
getType
());
...
...
@@ -231,10 +231,15 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
return
weEmpleCode
;
}
private
void
getScopsAndTags
(
WeEmpleCode
weEmpleCode
,
WeCommunityNewGroupDto
communityNewGroupDto
)
{
/**
* 设置员工活码的标签列表和员工列表
* @param weEmpleCode 员工活码
* @param communityNewGroupDto 新客拉群信息
*/
private
void
setScopsAndTags
(
WeEmpleCode
weEmpleCode
,
WeCommunityNewGroupDto
communityNewGroupDto
)
{
// 获取活码员工列表 TODO user_id是对应business_id?
QueryWrapper
<
WeUser
>
userQueryWrapper
=
new
QueryWrapper
<>();
userQueryWrapper
.
in
(
"user_id"
,
communityNewGroupDto
.
getEmplList
());
LambdaQueryWrapper
<
WeUser
>
userQueryWrapper
=
new
Lambda
QueryWrapper
<>();
userQueryWrapper
.
in
(
WeUser:
:
getUserId
,
communityNewGroupDto
.
getEmplList
());
List
<
WeUser
>
weUserList
=
weUserMapper
.
selectList
(
userQueryWrapper
);
List
<
WeEmpleCodeUseScop
>
weEmpleCodeUseScopList
=
weUserList
.
stream
().
map
(
e
->
{
WeEmpleCodeUseScop
scop
=
new
WeEmpleCodeUseScop
();
...
...
@@ -248,8 +253,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
// 获取活码标签
List
<
String
>
tagIdList
=
communityNewGroupDto
.
getTagList
();
QueryWrapper
<
WeTag
>
tagQueryWrapper
=
new
QueryWrapper
<>();
tagQueryWrapper
.
in
(
"tag_id"
,
tagIdList
);
LambdaQueryWrapper
<
WeTag
>
tagQueryWrapper
=
new
Lambda
QueryWrapper
<>();
tagQueryWrapper
.
in
(
WeTag:
:
getTagId
,
tagIdList
);
List
<
WeTag
>
weTagList
=
weTagMapper
.
selectList
(
tagQueryWrapper
);
List
<
WeEmpleCodeTag
>
weEmpleCodeTagList
=
weTagList
.
stream
().
map
(
e
->
{
WeEmpleCodeTag
tag
=
new
WeEmpleCodeTag
();
...
...
@@ -267,21 +272,32 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
* @param vo 新客自动拉群
*/
private
void
getCompleteEmplCodeInfo
(
WeCommunityNewGroupVo
vo
)
{
// 获取群活码信息
// 设置员工活码信息
WeEmpleCode
empleCode
=
weEmpleCodeMapper
.
selectWeEmpleCodeById
(
vo
.
getEmplCodeId
());
Optional
.
ofNullable
(
empleCode
).
ifPresent
(
e
->
{
vo
.
setEmplCodeUrl
(
e
.
getQrCode
());
vo
.
setWelcomeMsg
(
e
.
getWelcomeMsg
());
vo
.
setSkipVerify
(
e
.
getSkipVerify
());
});
// 设置群活码信息
WeGroupCode
weGroupCode
=
weGroupCodeMapper
.
selectWeGroupCodeById
(
vo
.
getGroupCodeId
());
WeGroupCodeVo
weGroupCodeVo
=
new
WeGroupCodeVo
();
BeanUtils
.
copyProperties
(
weGroupCode
,
weGroupCodeVo
);
vo
.
setGroupCodeInfo
(
weGroupCodeVo
);
Optional
.
ofNullable
(
weGroupCode
).
ifPresent
(
e
->
{
WeGroupCodeVo
groupCodeVo
=
WeGroupCodeVo
.
builder
()
.
id
(
e
.
getId
())
.
codeUrl
(
e
.
getCodeUrl
())
.
uuid
(
e
.
getUuid
())
.
build
();
BeanUtils
.
copyProperties
(
e
,
groupCodeVo
);
vo
.
setGroupCodeInfo
(
groupCodeVo
);
});
// 获取员工列表信息
List
<
WeEmpleCodeUseScop
>
empleCodeUseScopList
=
empleCodeUseScopMapper
.
selectWeEmpleCodeUseScopListById
(
vo
.
getEmplCodeId
());
vo
.
setEmplList
(
empleCodeUseScopList
);
// 获取员工活码信息
WeEmpleCode
empleCode
=
weEmpleCodeMapper
.
selectWeEmpleCodeById
(
vo
.
getEmplCodeId
());
vo
.
setEmplCodeUrl
(
empleCode
.
getQrCode
());
vo
.
setWelcomeMsg
(
empleCode
.
getWelcomeMsg
());
// 获取相关群聊信息
List
<
WeGroup
>
groupList
=
weGroupCodeMapper
.
selectWeGroupListByGroupCodeId
(
vo
.
getGroupCodeId
());
vo
.
setGroupList
(
groupList
);
...
...
@@ -289,7 +305,5 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
// 获取标签信息
List
<
WeEmpleCodeTag
>
tagList
=
empleCodeTagMapper
.
selectWeEmpleCodeTagListById
(
vo
.
getEmplCodeId
());
vo
.
setTagList
(
tagList
);
vo
.
setSkipVerify
(
empleCode
.
getSkipVerify
());
}
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java
浏览文件 @
ee422d06
...
...
@@ -4,7 +4,6 @@ import java.util.List;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.linkwechat.common.config.CosConfig
;
import
com.linkwechat.common.exception.wecom.WeComException
;
import
com.linkwechat.wecom.domain.WeGroupCodeActual
;
import
com.linkwechat.wecom.mapper.WeCommunityNewGroupMapper
;
...
...
@@ -151,7 +150,7 @@ public class WeGroupCodeServiceImpl extends ServiceImpl<WeGroupCodeMapper,WeGrou
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
deleteWeGroupCodeById
(
Long
id
)
{
// 需要删除新
科
拉群信息
// 需要删除新
客
拉群信息
communityNewGroupMapper
.
removeWeCommunityNewGroupByGroupCodeId
(
id
);
return
weGroupCodeMapper
.
deleteWeGroupCodeById
(
id
);
}
...
...
@@ -178,4 +177,14 @@ public class WeGroupCodeServiceImpl extends ServiceImpl<WeGroupCodeMapper,WeGrou
public
WeGroupCode
getWeGroupByUuid
(
String
uuid
)
{
return
weGroupCodeMapper
.
getWeGroupByUuid
(
uuid
);
}
/**
* 通过员工活码获取群活码,用于新客自动拉群。
* @param state 员工活码state
* @return 群活码URL
*/
@Override
public
String
selectGroupCodeUrlByEmplCodeState
(
String
state
)
{
return
weGroupCodeMapper
.
selectGroupCodeUrlByEmplCodeState
(
state
);
}
}
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java
浏览文件 @
ee422d06
package
com.linkwechat.wecom.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.
Lambda
QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.linkwechat.common.core.domain.entity.WeCorpAccount
;
import
com.linkwechat.common.enums.CommunityTaskType
;
...
...
@@ -139,8 +139,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
// 再插入新数据
this
.
saveChatAndMaterialBinds
(
ruleId
,
groupIdList
,
materialIdList
);
// 删除旧图片
QueryWrapper
<
WeGroupSopPic
>
queryWrapper
=
new
QueryWrapper
<>();
sopPicMapper
.
delete
(
queryWrapper
.
eq
(
"rule_id"
,
ruleId
));
LambdaQueryWrapper
<
WeGroupSopPic
>
queryWrapper
=
new
Lambda
QueryWrapper
<>();
sopPicMapper
.
delete
(
queryWrapper
.
eq
(
WeGroupSopPic:
:
getRuleId
,
ruleId
));
// 保留新上传的图片
List
<
WeGroupSopPic
>
sopPicList
=
picUrlList
.
stream
().
map
(
picUrl
->
new
WeGroupSopPic
(
ruleId
,
picUrl
)).
collect
(
Collectors
.
toList
());
...
...
@@ -164,16 +164,17 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
int
affectedRows
=
groupSopMapper
.
deleteBatchIds
(
Arrays
.
asList
(
ids
));
if
(
affectedRows
>
0
)
{
// 解除群聊和素材关联
QueryWrapper
<
WeGroupSopChat
>
sopGroupQueryWrapper
=
new
QueryWrapper
<>();
sopGroupQueryWrapper
.
in
(
"rule_id"
,
Arrays
.
asList
(
ids
));
sopChatMapper
.
delete
(
sopGroupQueryWrapper
);
QueryWrapper
<
WeGroupSopMaterial
>
sopMaterialQueryWrapper
=
new
QueryWrapper
<>();
sopMaterialQueryWrapper
.
in
(
"rule_id"
,
Arrays
.
asList
(
ids
));
sopMaterialMapper
.
delete
(
sopMaterialQueryWrapper
);
LambdaQueryWrapper
<
WeGroupSopChat
>
groupQueryWrapper
=
new
LambdaQueryWrapper
<>();
groupQueryWrapper
.
in
(
WeGroupSopChat:
:
getRuleId
,
Arrays
.
asList
(
ids
));
sopChatMapper
.
delete
(
groupQueryWrapper
);
LambdaQueryWrapper
<
WeGroupSopMaterial
>
materialQueryWrapper
=
new
LambdaQueryWrapper
<>();
materialQueryWrapper
.
in
(
WeGroupSopMaterial:
:
getRuleId
,
Arrays
.
asList
(
ids
));
sopMaterialMapper
.
delete
(
materialQueryWrapper
);
// 删除手动上传的图片
QueryWrapper
<
WeGroupSopPic
>
picQueryWrapper
=
new
QueryWrapper
<>();
picQueryWrapper
.
in
(
"rule_id"
,
Arrays
.
asList
(
ids
));
LambdaQueryWrapper
<
WeGroupSopPic
>
picQueryWrapper
=
new
Lambda
QueryWrapper
<>();
picQueryWrapper
.
in
(
WeGroupSopPic:
:
getRuleId
,
Arrays
.
asList
(
ids
));
sopPicMapper
.
delete
(
picQueryWrapper
);
}
return
affectedRows
;
...
...
@@ -216,8 +217,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
}
// 设置图片列表
QueryWrapper
<
WeGroupSopPic
>
picQueryWrapper
=
new
QueryWrapper
<>();
picQueryWrapper
.
eq
(
"rule_id"
,
ruleId
);
LambdaQueryWrapper
<
WeGroupSopPic
>
picQueryWrapper
=
new
Lambda
QueryWrapper
<>();
picQueryWrapper
.
eq
(
WeGroupSopPic:
:
getRuleId
,
ruleId
);
List
<
WeGroupSopPic
>
sopPicList
=
sopPicMapper
.
selectList
(
picQueryWrapper
);
if
(
StringUtils
.
isNotEmpty
(
sopPicList
))
{
List
<
String
>
picUrlList
=
sopPicList
.
stream
().
map
(
WeGroupSopPic:
:
getPicUrl
).
collect
(
Collectors
.
toList
());
...
...
@@ -255,12 +256,14 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
* @param ruleId 规则id
*/
private
void
deleteChatAndMaterialBinds
(
Long
ruleId
)
{
QueryWrapper
<
WeGroupSopChat
>
sopChatQueryWrapper
=
new
QueryWrapper
<>();
sopChatQueryWrapper
.
eq
(
"rule_id"
,
ruleId
);
sopChatMapper
.
delete
(
sopChatQueryWrapper
);
QueryWrapper
<
WeGroupSopMaterial
>
sopMaterialQueryWrapper
=
new
QueryWrapper
<>();
sopMaterialQueryWrapper
.
eq
(
"rule_id"
,
ruleId
);
sopMaterialMapper
.
delete
(
sopMaterialQueryWrapper
);
// 删除群聊绑定
LambdaQueryWrapper
<
WeGroupSopChat
>
chatQueryWrapper
=
new
LambdaQueryWrapper
<>();
chatQueryWrapper
.
eq
(
WeGroupSopChat:
:
getRuleId
,
ruleId
);
sopChatMapper
.
delete
(
chatQueryWrapper
);
// 删除素材绑定
LambdaQueryWrapper
<
WeGroupSopMaterial
>
materialQueryWrapper
=
new
LambdaQueryWrapper
<>();
materialQueryWrapper
.
eq
(
WeGroupSopMaterial:
:
getRuleId
,
ruleId
);
sopMaterialMapper
.
delete
(
materialQueryWrapper
);
}
/**
...
...
@@ -306,11 +309,11 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
* @return 群聊信息列表
*/
private
List
<
WeGroup
>
getGroupListByRuleId
(
Long
ruleId
)
{
QueryWrapper
<
WeGroup
>
groupQueryWrapper
=
new
QueryWrapper
<>();
LambdaQueryWrapper
<
WeGroup
>
groupQueryWrapper
=
new
Lambda
QueryWrapper
<>();
List
<
String
>
chatIdList
=
groupSopMapper
.
getChatIdListByRuleId
(
ruleId
);
List
<
WeGroup
>
groupList
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
chatIdList
))
{
groupQueryWrapper
.
in
(
"chat_id"
,
chatIdList
);
groupQueryWrapper
.
in
(
WeGroup:
:
getChatId
,
chatIdList
);
groupList
=
groupMapper
.
selectList
(
groupQueryWrapper
);
}
return
groupList
;
...
...
@@ -326,10 +329,13 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
// 构造请求参数
WeMessagePushDto
pushDto
=
new
WeMessagePushDto
();
// 查询群聊列表,获取群主列表
QueryWrapper
<
WeGroup
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
in
(
"chat_id"
,
groupIdList
);
LambdaQueryWrapper
<
WeGroup
>
queryWrapper
=
new
Lambda
QueryWrapper
<>();
queryWrapper
.
in
(
WeGroup:
:
getChatId
,
groupIdList
);
List
<
WeGroup
>
groupList
=
groupMapper
.
selectList
(
queryWrapper
);
String
toUser
=
groupList
.
stream
().
map
(
WeGroup:
:
getOwner
).
collect
(
Collectors
.
joining
(
"|"
));
String
toUser
=
groupList
.
stream
()
.
map
(
WeGroup:
:
getOwner
)
.
collect
(
Collectors
.
joining
(
"|"
));
pushDto
.
setTouser
(
toUser
);
// 获取agentId
...
...
linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java
浏览文件 @
ee422d06
...
...
@@ -2,8 +2,8 @@ package com.linkwechat.wecom.service.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.
Lambda
QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.
Lambda
UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.linkwechat.common.core.domain.entity.WeCorpAccount
;
import
com.linkwechat.common.enums.ChatType
;
...
...
@@ -159,30 +159,29 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
List
<
Long
>
ids
=
Arrays
.
asList
(
idList
);
// 解除关联的标签
QueryWrapper
<
WePresTagGroupTaskTag
>
taskTagQueryWrapper
=
new
QueryWrapper
<>();
ta
skTagQueryWrapper
.
in
(
"task_id"
,
ids
);
taskTagMapper
.
delete
(
ta
skTa
gQueryWrapper
);
LambdaQueryWrapper
<
WePresTagGroupTaskTag
>
tagQueryWrapper
=
new
Lambda
QueryWrapper
<>();
ta
gQueryWrapper
.
in
(
WePresTagGroupTaskTag:
:
getTaskId
,
ids
);
taskTagMapper
.
delete
(
tagQueryWrapper
);
// 解除关联的员工
QueryWrapper
<
WePresTagGroupTaskScope
>
taskScopeQueryWrapper
=
new
QueryWrapper
<>();
taskScopeQueryWrapper
.
in
(
"task_id"
,
ids
);
taskScopeMapper
.
delete
(
taskS
copeQueryWrapper
);
LambdaQueryWrapper
<
WePresTagGroupTaskScope
>
scopeQueryWrapper
=
new
Lambda
QueryWrapper
<>();
scopeQueryWrapper
.
in
(
WePresTagGroupTaskScope:
:
getTaskId
,
ids
);
taskScopeMapper
.
delete
(
s
copeQueryWrapper
);
// 删除其用户统计
QueryWrapper
<
WePresTagGroupTaskStat
>
statQueryWrapper
=
new
QueryWrapper
<>();
statQueryWrapper
.
in
(
"task_id"
,
ids
);
LambdaQueryWrapper
<
WePresTagGroupTaskStat
>
statQueryWrapper
=
new
Lambda
QueryWrapper
<>();
statQueryWrapper
.
in
(
WePresTagGroupTaskStat:
:
getTaskId
,
ids
);
taskStatMapper
.
delete
(
statQueryWrapper
);
// 删除task
QueryWrapper
<
WePresTagGroupTask
>
taskQueryWrapper
=
new
QueryWrapper
<>();
taskQueryWrapper
.
in
(
"task_id"
,
ids
);
//
最后
删除task
LambdaQueryWrapper
<
WePresTagGroupTask
>
taskQueryWrapper
=
new
Lambda
QueryWrapper
<>();
taskQueryWrapper
.
in
(
WePresTagGroupTask:
:
getTaskId
,
ids
);
return
taskMapper
.
delete
(
taskQueryWrapper
);
}
/**
* 更新老客户标签建群任务
*
*
@param taskId 待更新任务id
* @param wePresTagGroupTaskDto 更新数据
* @return 结果
* @taskId 待更新任务id
* @return 更新条数
*/
@Override
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
...
...
@@ -192,22 +191,25 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
wePresTagGroupTask
.
setTaskId
(
taskId
);
wePresTagGroupTask
.
setUpdateBy
(
SecurityUtils
.
getUsername
());
if
(
taskMapper
.
updateTask
(
wePresTagGroupTask
)
>
0
)
{
// 更新标签
// 先删除旧标签
QueryWrapper
<
WePresTagGroupTaskTag
>
taskTagQueryWrapper
=
new
Query
Wrapper
<>();
taskTagQueryWrapper
.
eq
(
"task_id"
,
taskId
);
//
更新标签 -
先删除旧标签
LambdaUpdateWrapper
<
WePresTagGroupTaskTag
>
taskTagQueryWrapper
=
new
LambdaUpdate
Wrapper
<>();
taskTagQueryWrapper
.
eq
(
WePresTagGroupTaskTag:
:
getTaskId
,
taskId
);
taskTagMapper
.
delete
(
taskTagQueryWrapper
);
// 再添加新标签
//
更新标签 -
再添加新标签
List
<
String
>
tagIdList
=
wePresTagGroupTaskDto
.
getTagList
();
if
(
CollectionUtil
.
isNotEmpty
(
tagIdList
))
{
List
<
WePresTagGroupTaskTag
>
wePresTagGroupTaskTagList
=
tagIdList
.
stream
().
map
(
id
->
new
WePresTagGroupTaskTag
(
taskId
,
id
)).
collect
(
Collectors
.
toList
());
List
<
WePresTagGroupTaskTag
>
wePresTagGroupTaskTagList
=
tagIdList
.
stream
()
.
map
(
id
->
new
WePresTagGroupTaskTag
(
taskId
,
id
))
.
collect
(
Collectors
.
toList
());
taskTagMapper
.
batchBindsTaskTags
(
wePresTagGroupTaskTagList
);
}
// 先解除旧的员工绑定信息
QueryWrapper
<
WePresTagGroupTaskScope
>
taskScopeQueryWrapper
=
new
Query
Wrapper
<>();
taskScopeQueryWrapper
.
eq
(
"task_id"
,
taskId
);
taskScopeMapper
.
delete
(
taskS
copeQueryWrapper
);
LambdaUpdateWrapper
<
WePresTagGroupTaskScope
>
scopeQueryWrapper
=
new
LambdaUpdate
Wrapper
<>();
scopeQueryWrapper
.
eq
(
WePresTagGroupTaskScope:
:
getTaskId
,
taskId
);
taskScopeMapper
.
delete
(
s
copeQueryWrapper
);
// 再重新绑定员工信息
List
<
String
>
userIdList
=
wePresTagGroupTaskDto
.
getScopeList
();
...
...
@@ -380,7 +382,7 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
text
.
setContent
(
task
.
getWelcomeMsg
());
queryData
.
setText
(
text
);
// 群活码图片(上传临时文件获取media_id)
TODO 过期问题?
// 群活码图片(上传临时文件获取media_id)
ImageMessageDto
image
=
new
ImageMessageDto
();
WeGroupCode
groupCode
=
groupCodeMapper
.
selectWeGroupCodeById
(
task
.
getGroupCodeId
());
WeMediaDto
mediaDto
=
materialService
.
uploadTemporaryMaterial
(
groupCode
.
getCodeUrl
(),
MediaType
.
IMAGE
.
getMediaType
(),
"临时文件"
);
...
...
@@ -397,9 +399,9 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
SendMessageResultDto
resultDto
=
customerMessagePushClient
.
sendCustomerMessageToUser
(
queryData
);
// 设定该任务的msgid
UpdateWrapper
<
WePresTagGroupTask
>
updateWrapper
=
new
UpdateWrapper
<>();
updateWrapper
.
eq
(
"task_id"
,
task
.
getTaskId
());
updateWrapper
.
set
(
"msgid"
,
resultDto
.
getMsgid
());
LambdaUpdateWrapper
<
WePresTagGroupTask
>
updateWrapper
=
new
Lambda
UpdateWrapper
<>();
updateWrapper
.
eq
(
WePresTagGroupTask:
:
getTaskId
,
task
.
getTaskId
());
updateWrapper
.
set
(
WePresTagGroupTask:
:
getMsgid
,
resultDto
.
getMsgid
());
this
.
update
(
updateWrapper
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
linkwe-wecom/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml
浏览文件 @
ee422d06
...
...
@@ -51,7 +51,6 @@
IFNULL((SELECT count(1) FROM we_group_code_actual WHERE group_code_id = w.id AND TIMESTAMPDIFF(DAY, sysdate(), effect_time )
<
3), 0) AS about_to_expire_codes
FROM
we_group_code w
</sql>
<select
id=
"selectWeGroupCodeList"
parameterType=
"WeGroupCode"
resultMap=
"WeGroupCodeResult"
>
...
...
@@ -116,6 +115,20 @@
wgc.id = #{groupCodeId}
</select>
<select
id=
"selectGroupCodeUrlByEmplCodeState"
parameterType=
"String"
resultType=
"String"
>
SELECT DISTINCT
wgc.code_url
FROM
we_group_code wgc
LEFT JOIN we_community_new_group wcn ON wgc.id = wcn.group_code_id
LEFT JOIN we_emple_code wec ON wec.id = wcn.empl_code_id
WHERE
wgc.del_flag = 0
AND wcn.del_flag = 0
AND wec.del_flag = 0
AND wec.state = #{state}
</select>
<select
id=
"checkActivityNameUnique"
parameterType=
"String"
resultType=
"int"
>
select count(1) from we_group_code where activity_name = #{activityName} limit 1
</select>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录