Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
768f1fb3
Commit
768f1fb3
authored
Dec 09, 2022
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
活码
parent
3422fe6e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
83 additions
and
24 deletions
+83
-24
ChatHmSearchQDTO.java
...gic/haoban/manage/api/dto/qdto/chat/ChatHmSearchQDTO.java
+9
-0
GroupChatHmServiceImpl.java
...age/service/service/chat/impl/GroupChatHmServiceImpl.java
+65
-20
GroupChatPlanServiceImpl.java
...e/service/service/chat/impl/GroupChatPlanServiceImpl.java
+7
-2
GroupChatHmMapper.xml
...vice/src/main/resources/mapper/chat/GroupChatHmMapper.xml
+2
-2
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/qdto/chat/ChatHmSearchQDTO.java
View file @
768f1fb3
...
@@ -13,6 +13,15 @@ public class ChatHmSearchQDTO implements Serializable {
...
@@ -13,6 +13,15 @@ public class ChatHmSearchQDTO implements Serializable {
private
String
enterpriseId
;
private
String
enterpriseId
;
private
String
searchParams
;
private
String
searchParams
;
private
Integer
status
;
private
Integer
status
;
private
Long
linkId
;
public
Long
getLinkId
()
{
return
linkId
;
}
public
void
setLinkId
(
Long
linkId
)
{
this
.
linkId
=
linkId
;
}
public
Date
getStartDate
()
{
public
Date
getStartDate
()
{
return
startDate
;
return
startDate
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatHmServiceImpl.java
View file @
768f1fb3
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
...
@@ -19,6 +20,7 @@ import com.gic.api.base.commons.ServiceResponse;
...
@@ -19,6 +20,7 @@ import com.gic.api.base.commons.ServiceResponse;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.common.utils.RolesListUtils
;
import
com.gic.haoban.manage.api.constants.Manage3Constants
;
import
com.gic.haoban.manage.api.constants.Manage3Constants
;
import
com.gic.haoban.manage.api.dto.SecretSettingDTO
;
import
com.gic.haoban.manage.api.dto.SecretSettingDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
...
@@ -91,40 +93,82 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
...
@@ -91,40 +93,82 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
logger
.
info
(
"群活码不存在,chatHmId={}"
,
chatHmId
);
logger
.
info
(
"群活码不存在,chatHmId={}"
,
chatHmId
);
return
;
return
;
}
}
if
(
hm
.
getAutoCreateRoom
()
==
0
)
{
logger
.
info
(
"无开启自动建群,不处理自动踢群hmid={}"
,
hm
.
getChatHmId
());
return
;
}
List
<
TabGroupChatHmRelation
>
chatRelation
=
this
.
groupChatHmRelationMapper
.
listByChatHmId
(
chatHmId
);
List
<
TabGroupChatHmRelation
>
chatRelation
=
this
.
groupChatHmRelationMapper
.
listByChatHmId
(
chatHmId
);
if
(
CollectionUtils
.
isEmpty
(
chatRelation
))
{
if
(
CollectionUtils
.
isEmpty
(
chatRelation
))
{
logger
.
info
(
"群活码无关联群,chatHmId={}"
,
chatHmId
);
logger
.
info
(
"群活码无关联群,chatHmId={}"
,
chatHmId
);
break
;
break
;
}
}
String
wxEnterpriseId
=
hm
.
getWxEnterpriseId
();
String
wxEnterpriseId
=
hm
.
getWxEnterpriseId
();
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
wxEnterpriseId
,
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
wxEnterpriseId
,
SecretTypeEnum
.
CUSTOMIZED_APP
.
getVal
());
SecretTypeEnum
.
CUSTOMIZED_APP
.
getVal
());
if
(
null
==
secretSetting
)
{
if
(
null
==
secretSetting
)
{
logger
.
info
(
"没有配置代开应用"
);
logger
.
info
(
"没有配置代开应用"
);
return
;
}
}
String
configId
=
hm
.
getWxConfigId
();
this
.
handleAutoCreateRoom
(
wxEnterpriseId
,
secretSetting
.
getSecretVal
(),
hm
,
chatRelation
);
ServiceResponse
<
AddJoinWayDTO
>
joinResp
=
this
.
qywxChatApiService
.
getJoinWay
(
qwDTO
.
getDkCorpid
(),
secretSetting
.
getSecretVal
(),
configId
);
logger
.
info
(
"查询群活码={}"
,
JSON
.
toJSON
(
joinResp
));
if
(
joinResp
.
isSuccess
())
{
AddJoinWayDTO
join
=
joinResp
.
getResult
();
List
<
String
>
qwChatIdList
=
join
.
getChat_id_list
();
if
(
CollectionUtils
.
isNotEmpty
(
qwChatIdList
))
{
List
<
Long
>
chatIdList
=
chatRelation
.
stream
().
map
(
dto
->
dto
.
getGroupChatId
())
.
collect
(
Collectors
.
toList
());
List
<
TabGroupChat
>
chatList
=
this
.
groupChatMapper
.
listByIdSet
(
new
HashSet
<>(
chatIdList
));
List
<
String
>
hbIdList
=
chatList
.
stream
().
map
(
dto
->
dto
.
getWxChatId
())
.
collect
(
Collectors
.
toList
());
this
.
t
(
qwChatIdList
,
hbIdList
,
chatHmId
);
}
}
}
}
}
private
void
t
(
List
<
String
>
qwIdList
,
List
<
String
>
hbIdList
,
Long
chatHmId
)
{
}
if
(
CollectionUtils
.
isEmpty
(
hbIdList
))
{
/**
* 处理开启自动建群的,如果群满自动下线后,需要从活码中提出
*/
private
void
handleAutoCreateRoom
(
String
wxEnterpriseId
,
String
secret
,
TabGroupChatHm
hm
,
List
<
TabGroupChatHmRelation
>
chatRelation
)
{
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
String
configId
=
hm
.
getWxConfigId
();
ServiceResponse
<
AddJoinWayDTO
>
joinResp
=
this
.
qywxChatApiService
.
getJoinWay
(
qwDTO
.
getDkCorpid
(),
secret
,
configId
);
logger
.
info
(
"查询群活码={}"
,
JSON
.
toJSON
(
joinResp
));
if
(
joinResp
.
isSuccess
())
{
AddJoinWayDTO
join
=
joinResp
.
getResult
();
List
<
String
>
qwChatIdList
=
join
.
getChat_id_list
();
if
(
CollectionUtils
.
isNotEmpty
(
qwChatIdList
))
{
if
(
qwChatIdList
.
size
()
==
1
)
{
logger
.
info
(
"只有1个群"
);
return
;
}
List
<
Long
>
chatIdList
=
chatRelation
.
stream
().
map
(
dto
->
dto
.
getGroupChatId
())
.
collect
(
Collectors
.
toList
());
List
<
TabGroupChat
>
chatList
=
this
.
groupChatMapper
.
listByIdSet
(
new
HashSet
<>(
chatIdList
));
List
<
String
>
hbIdList
=
chatList
.
stream
().
map
(
dto
->
dto
.
getWxChatId
()).
collect
(
Collectors
.
toList
());
logger
.
info
(
"企微群列表={},haoban列表={}"
,
qwChatIdList
,
hbIdList
);
// 差异列表
List
<
String
>
qwList
=
RolesListUtils
.
differenceList
(
qwChatIdList
,
hbIdList
);
if
(
qwChatIdList
.
size
()
==
hbIdList
.
size
()
&&
CollectionUtils
.
isEmpty
(
qwList
))
{
logger
.
info
(
"群未变化"
);
return
;
}
if
(
CollectionUtils
.
isNotEmpty
(
qwList
))
{
// 处理要踢的
for
(
String
wxChatId
:
qwList
)
{
TabGroupChat
chat
=
this
.
groupChatMapper
.
selectByWxChatId
(
wxEnterpriseId
,
wxChatId
);
TabGroupChat
cid
=
null
;
String
staffId
=
chat
.
getStaffId
();
for
(
TabGroupChat
obj
:
chatList
)
{
if
(
obj
.
getStaffId
().
equals
(
staffId
))
{
if
(
null
==
cid
)
{
cid
=
obj
;
}
else
{
if
(
obj
.
getTotalCount
()
>
cid
.
getTotalCount
())
{
cid
=
obj
;
}
}
}
}
if
(
null
!=
cid
)
{
logger
.
info
(
"hm={},群={},要删={}"
,
wxChatId
,
qwChatIdList
,
cid
.
getWxChatId
());
qwChatIdList
.
remove
(
cid
.
getWxChatId
());
// 保存活码
}
}
}
}
}
}
}
}
...
@@ -136,6 +180,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
...
@@ -136,6 +180,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
SecretTypeEnum
.
CUSTOMIZED_APP
.
getVal
());
SecretTypeEnum
.
CUSTOMIZED_APP
.
getVal
());
if
(
null
==
secretSetting
)
{
if
(
null
==
secretSetting
)
{
logger
.
info
(
"没有配置代开应用"
);
logger
.
info
(
"没有配置代开应用"
);
return
;
}
}
boolean
updateFlag
=
false
;
boolean
updateFlag
=
false
;
Long
hmid
=
UniqueIdUtils
.
uniqueLong
();
Long
hmid
=
UniqueIdUtils
.
uniqueLong
();
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatPlanServiceImpl.java
View file @
768f1fb3
...
@@ -36,9 +36,11 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
...
@@ -36,9 +36,11 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.dao.mapper.StaffMapper
;
import
com.gic.haoban.manage.service.dao.mapper.StaffMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatOwnerMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanMapper
;
import
com.gic.haoban.manage.service.entity.TabHaobanStaff
;
import
com.gic.haoban.manage.service.entity.TabHaobanStaff
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatOwner
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlan
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlan
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanOwnerLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatPlanOwnerLog
;
...
@@ -85,6 +87,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -85,6 +87,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
private
StoreService
storeService
;
private
StoreService
storeService
;
@Autowired
@Autowired
private
QuartzService
quartzService
;
private
QuartzService
quartzService
;
@Autowired
private
GroupChatOwnerMapper
groupChatOwnerMapper
;
private
static
GicMQClient
mqClient
=
GICMQClientUtil
.
getClientInstance
();
private
static
GicMQClient
mqClient
=
GICMQClientUtil
.
getClientInstance
();
...
@@ -153,8 +157,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -153,8 +157,8 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
logger
.
info
(
"计划已执行过,planid={}"
,
planId
);
logger
.
info
(
"计划已执行过,planid={}"
,
planId
);
return
;
return
;
}
}
this
.
groupChatPlanMapper
.
updateSendFlag
(
planId
);
// 控制重复发送
// 控制重复发送
this
.
groupChatPlanMapper
.
updateSendFlag
(
planId
);
String
[]
staffIdList
=
plan
.
getStaffIdList
().
split
(
","
);
String
[]
staffIdList
=
plan
.
getStaffIdList
().
split
(
","
);
String
wxEnterpriseId
=
plan
.
getWxEnterpriseId
();
String
wxEnterpriseId
=
plan
.
getWxEnterpriseId
();
String
enterpriseId
=
plan
.
getEnterpriseId
();
String
enterpriseId
=
plan
.
getEnterpriseId
();
...
@@ -178,8 +182,9 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -178,8 +182,9 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
ownerDTO
.
setSendStatus
(
0
);
ownerDTO
.
setSendStatus
(
0
);
}
}
// 群主群数量
// 群主群数量
TabGroupChatOwner
owner
=
this
.
groupChatOwnerMapper
.
selectByStaffId
(
staffId
);
ownerDTO
.
setExpireDate
(
DateUtil
.
addDay
(
new
Date
(),
plan
.
getExpireDays
()));
ownerDTO
.
setExpireDate
(
DateUtil
.
addDay
(
new
Date
(),
plan
.
getExpireDays
()));
ownerDTO
.
setTotalCount
(
0
);
ownerDTO
.
setTotalCount
(
owner
.
getChatCount
()
);
ownerDTO
.
setWxEnterpriseId
(
wxEnterpriseId
);
ownerDTO
.
setWxEnterpriseId
(
wxEnterpriseId
);
ownerDTO
.
setEnterpriseId
(
enterpriseId
);
ownerDTO
.
setEnterpriseId
(
enterpriseId
);
ownerDTO
.
setStaffId
(
staffId
);
ownerDTO
.
setStaffId
(
staffId
);
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatHmMapper.xml
View file @
768f1fb3
...
@@ -142,8 +142,8 @@
...
@@ -142,8 +142,8 @@
<if
test=
"null != startDate"
>
<if
test=
"null != startDate"
>
and create_time >= #{startDate} and create_time
<![CDATA[<=]]>
#{endDate}
and create_time >= #{startDate} and create_time
<![CDATA[<=]]>
#{endDate}
</if>
</if>
<if
test=
"null != searchParams"
>
<if
test=
"null != searchParams
and '' !=searchParams
"
>
and
plan
like '%${searchParams}%'
and
name
like '%${searchParams}%'
</if>
</if>
</select>
</select>
...
...
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