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
d202f3c0
Commit
d202f3c0
authored
Dec 23, 2022
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
c0157cc7
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
357 additions
and
220 deletions
+357
-220
Manage3Constants.java
...com/gic/haoban/manage/api/constants/Manage3Constants.java
+3
-0
GroupChatApiService.java
...c/haoban/manage/api/service/chat/GroupChatApiService.java
+7
-6
GroupChatUserMapper.java
...n/manage/service/dao/mapper/chat/GroupChatUserMapper.java
+2
-0
TabGroupChatUser.java
...c/haoban/manage/service/entity/chat/TabGroupChatUser.java
+67
-46
GroupChatService.java
.../haoban/manage/service/service/chat/GroupChatService.java
+11
-1
GroupChatPlanOwnerLogServiceImpl.java
...e/service/chat/impl/GroupChatPlanOwnerLogServiceImpl.java
+10
-1
GroupChatPlanServiceImpl.java
...e/service/service/chat/impl/GroupChatPlanServiceImpl.java
+8
-11
GroupChatServiceImpl.java
...anage/service/service/chat/impl/GroupChatServiceImpl.java
+185
-143
GroupChatApiServiceImpl.java
...ervice/service/out/impl/chat/GroupChatApiServiceImpl.java
+11
-7
TabHaobanExternalClerkRelatedMapper.xml
.../resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
+0
-4
GroupChatUserMapper.xml
...ce/src/main/resources/mapper/chat/GroupChatUserMapper.xml
+53
-1
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/constants/Manage3Constants.java
View file @
d202f3c0
...
@@ -25,4 +25,7 @@ public class Manage3Constants {
...
@@ -25,4 +25,7 @@ public class Manage3Constants {
* 企微最大分页
* 企微最大分页
*/
*/
public
static
final
Integer
QW_LIMIT
=
1000
;
public
static
final
Integer
QW_LIMIT
=
1000
;
// 群群发统计
public
static
final
Integer
CHAT_PLAN_PAGE_SIZE
=
1
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/chat/GroupChatApiService.java
View file @
d202f3c0
...
@@ -56,24 +56,25 @@ public interface GroupChatApiService {
...
@@ -56,24 +56,25 @@ public interface GroupChatApiService {
/**
/**
*
*
* @Title: refreshChatInfo
* @Title: refreshChatInfo
* @Description: 刷新群
信息
* @Description: 刷新群
* @author xugh
* @author xugh
* @param groupChatId
* @param groupChatId
* @return
* @return
* @throws
* @throws
*/
*/
public
ServiceResponse
<
Void
>
refreshChatInfo
(
Long
groupChatId
);
public
ServiceResponse
<
Void
>
refreshChatInfoFromMQ
(
String
params
);
/**
/**
*
*
* @Title: refreshChat
Info
* @Title: refreshChat
Status
* @Description: 刷新群
信息,从队列获取
* @Description: 刷新群
的状态
* @author xugh
* @author xugh
* @param
groupChatId
* @param
params
* @return
* @return
* @throws
* @throws
*/
*/
public
ServiceResponse
<
Void
>
refreshChat
InfoFromMQ
(
String
params
)
;
public
ServiceResponse
<
Void
>
refreshChat
StatusFromMQ
(
String
params
)
;
/**
/**
*
*
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatUserMapper.java
View file @
d202f3c0
...
@@ -21,6 +21,8 @@ public interface GroupChatUserMapper {
...
@@ -21,6 +21,8 @@ public interface GroupChatUserMapper {
public
int
insert
(
TabGroupChatUser
tabHaobanGroupChatUser
);
public
int
insert
(
TabGroupChatUser
tabHaobanGroupChatUser
);
public
int
batchInsert
(
@Param
(
"list"
)
List
<
TabGroupChatUser
>
userList
);
public
int
dismiss
(
@Param
(
"idList"
)
List
<
Long
>
chatUserIdList
,
@Param
(
"ownerId"
)
String
ownerId
);
public
int
dismiss
(
@Param
(
"idList"
)
List
<
Long
>
chatUserIdList
,
@Param
(
"ownerId"
)
String
ownerId
);
public
int
update
(
TabGroupChatUser
tabHaobanGroupChatUser
);
public
int
update
(
TabGroupChatUser
tabHaobanGroupChatUser
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/chat/TabGroupChatUser.java
View file @
d202f3c0
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
chat
;
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
chat
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
*
*
...
@@ -11,7 +11,7 @@ import java.io.Serializable ;
...
@@ -11,7 +11,7 @@ import java.io.Serializable ;
* @Modify
* @Modify
* @CopyRight
* @CopyRight
*/
*/
public
class
TabGroupChatUser
implements
Serializable
{
public
class
TabGroupChatUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
21771431486600L
;
private
static
final
long
serialVersionUID
=
21771431486600L
;
...
@@ -34,7 +34,7 @@ public class TabGroupChatUser implements Serializable{
...
@@ -34,7 +34,7 @@ public class TabGroupChatUser implements Serializable{
private
String
memberId
;
private
String
memberId
;
/**邀请者*/
/**邀请者*/
private
String
invitorUserId
;
private
String
invitorUserId
;
private
String
invitorUserName
;
private
String
invitorUserName
;
private
java
.
util
.
Date
createTime
;
private
java
.
util
.
Date
createTime
;
private
java
.
util
.
Date
updateTime
;
private
java
.
util
.
Date
updateTime
;
/**1是0否*/
/**1是0否*/
...
@@ -53,7 +53,7 @@ public class TabGroupChatUser implements Serializable{
...
@@ -53,7 +53,7 @@ public class TabGroupChatUser implements Serializable{
private
String
joinRemark
;
private
String
joinRemark
;
private
String
joinState
;
private
String
joinState
;
// 0 成员 1群主 2管理员
// 0 成员 1群主 2管理员
private
Integer
adminFlag
;
private
Integer
adminFlag
=
0
;
public
Integer
getAdminFlag
()
{
public
Integer
getAdminFlag
()
{
return
adminFlag
;
return
adminFlag
;
...
@@ -71,151 +71,171 @@ public class TabGroupChatUser implements Serializable{
...
@@ -71,151 +71,171 @@ public class TabGroupChatUser implements Serializable{
this
.
invitorUserName
=
invitorUserName
;
this
.
invitorUserName
=
invitorUserName
;
}
}
public
void
setChatUserId
(
Long
chatUserId
){
public
void
setChatUserId
(
Long
chatUserId
)
{
this
.
chatUserId
=
chatUserId
;
this
.
chatUserId
=
chatUserId
;
}
}
public
Long
getChatUserId
()
{
public
Long
getChatUserId
()
{
return
chatUserId
;
return
chatUserId
;
}
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
){
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
}
public
String
getWxEnterpriseId
()
{
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
return
wxEnterpriseId
;
}
}
public
void
setEnterpriseId
(
String
enterpriseId
){
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
this
.
enterpriseId
=
enterpriseId
;
}
}
public
String
getEnterpriseId
()
{
public
String
getEnterpriseId
()
{
return
enterpriseId
;
return
enterpriseId
;
}
}
public
void
setUserType
(
Integer
userType
){
public
void
setUserType
(
Integer
userType
)
{
this
.
userType
=
userType
;
this
.
userType
=
userType
;
}
}
public
Integer
getUserType
()
{
public
Integer
getUserType
()
{
return
userType
;
return
userType
;
}
}
public
void
setJoinTime
(
java
.
util
.
Date
joinTime
){
public
void
setJoinTime
(
java
.
util
.
Date
joinTime
)
{
this
.
joinTime
=
joinTime
;
this
.
joinTime
=
joinTime
;
}
}
public
java
.
util
.
Date
getJoinTime
()
{
public
java
.
util
.
Date
getJoinTime
()
{
return
joinTime
;
return
joinTime
;
}
}
public
void
setUserName
(
String
userName
){
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
this
.
userName
=
userName
;
}
}
public
String
getUserName
()
{
public
String
getUserName
()
{
return
userName
;
return
userName
;
}
}
public
void
setNickName
(
String
nickName
){
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
this
.
nickName
=
nickName
;
}
}
public
String
getNickName
()
{
public
String
getNickName
()
{
return
nickName
;
return
nickName
;
}
}
public
void
setUserId
(
String
userId
){
public
void
setUserId
(
String
userId
)
{
this
.
userId
=
userId
;
this
.
userId
=
userId
;
}
}
public
String
getUserId
()
{
public
String
getUserId
()
{
return
userId
;
return
userId
;
}
}
public
void
setUnionid
(
String
unionid
){
public
void
setUnionid
(
String
unionid
)
{
this
.
unionid
=
unionid
;
this
.
unionid
=
unionid
;
}
}
public
String
getUnionid
()
{
public
String
getUnionid
()
{
return
unionid
;
return
unionid
;
}
}
public
void
setMemberId
(
String
memberId
){
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
this
.
memberId
=
memberId
;
}
}
public
String
getMemberId
()
{
public
String
getMemberId
()
{
return
memberId
;
return
memberId
;
}
}
public
void
setInvitorUserId
(
String
invitorUserId
){
public
void
setInvitorUserId
(
String
invitorUserId
)
{
this
.
invitorUserId
=
invitorUserId
;
this
.
invitorUserId
=
invitorUserId
;
}
}
public
String
getInvitorUserId
()
{
public
String
getInvitorUserId
()
{
return
invitorUserId
;
return
invitorUserId
;
}
}
public
void
setCreateTime
(
java
.
util
.
Date
createTime
){
public
void
setCreateTime
(
java
.
util
.
Date
createTime
)
{
this
.
createTime
=
createTime
;
this
.
createTime
=
createTime
;
}
}
public
java
.
util
.
Date
getCreateTime
()
{
public
java
.
util
.
Date
getCreateTime
()
{
return
createTime
;
return
createTime
;
}
}
public
void
setUpdateTime
(
java
.
util
.
Date
updateTime
){
public
void
setUpdateTime
(
java
.
util
.
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
this
.
updateTime
=
updateTime
;
}
}
public
java
.
util
.
Date
getUpdateTime
()
{
public
java
.
util
.
Date
getUpdateTime
()
{
return
updateTime
;
return
updateTime
;
}
}
public
void
setDeleteFlag
(
Integer
deleteFlag
){
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
this
.
deleteFlag
=
deleteFlag
;
}
}
public
Integer
getDeleteFlag
()
{
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
return
deleteFlag
;
}
}
public
void
setGroupChatId
(
Long
groupChatId
){
public
void
setGroupChatId
(
Long
groupChatId
)
{
this
.
groupChatId
=
groupChatId
;
this
.
groupChatId
=
groupChatId
;
}
}
public
Long
getGroupChatId
()
{
public
Long
getGroupChatId
()
{
return
groupChatId
;
return
groupChatId
;
}
}
public
void
setStatusFlag
(
Integer
statusFlag
){
public
void
setStatusFlag
(
Integer
statusFlag
)
{
this
.
statusFlag
=
statusFlag
;
this
.
statusFlag
=
statusFlag
;
}
}
public
Integer
getStatusFlag
()
{
public
Integer
getStatusFlag
()
{
return
statusFlag
;
return
statusFlag
;
}
}
public
void
setUserQuitTime
(
java
.
util
.
Date
userQuitTime
){
public
void
setUserQuitTime
(
java
.
util
.
Date
userQuitTime
)
{
this
.
userQuitTime
=
userQuitTime
;
this
.
userQuitTime
=
userQuitTime
;
}
}
public
java
.
util
.
Date
getUserQuitTime
()
{
public
java
.
util
.
Date
getUserQuitTime
()
{
return
userQuitTime
;
return
userQuitTime
;
}
}
public
void
setQuitScene
(
Integer
quitScene
){
public
void
setQuitScene
(
Integer
quitScene
)
{
this
.
quitScene
=
quitScene
;
this
.
quitScene
=
quitScene
;
}
}
public
Integer
getQuitScene
()
{
public
Integer
getQuitScene
()
{
return
quitScene
;
return
quitScene
;
}
}
public
void
setJoinScene
(
Integer
joinScene
){
public
void
setJoinScene
(
Integer
joinScene
)
{
this
.
joinScene
=
joinScene
;
this
.
joinScene
=
joinScene
;
}
}
public
Integer
getJoinScene
()
{
public
Integer
getJoinScene
()
{
return
joinScene
;
return
joinScene
;
}
}
public
void
setJoinRemark
(
String
joinRemark
){
public
void
setJoinRemark
(
String
joinRemark
)
{
this
.
joinRemark
=
joinRemark
;
this
.
joinRemark
=
joinRemark
;
}
}
public
String
getJoinRemark
()
{
public
String
getJoinRemark
()
{
return
joinRemark
;
return
joinRemark
;
}
}
public
void
setJoinState
(
String
joinState
){
public
void
setJoinState
(
String
joinState
)
{
this
.
joinState
=
joinState
;
this
.
joinState
=
joinState
;
}
}
public
String
getJoinState
()
{
public
String
getJoinState
()
{
return
joinState
;
return
joinState
;
}
}
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/GroupChatService.java
View file @
d202f3c0
...
@@ -39,7 +39,17 @@ public interface GroupChatService {
...
@@ -39,7 +39,17 @@ public interface GroupChatService {
* @param chatHmId
* @param chatHmId
* @throws
* @throws
*/
*/
public
void
refreshChatInfo
(
Long
chatHmId
);
public
void
refreshChatInfo
(
Long
groupChatId
);
/**
*
* @Title: refreshChatStatus
* @Description: 刷新群的状态
* @author xugh
* @param groupChatId
* @throws
*/
public
void
refreshChatStatus
(
Long
groupChatId
);
/**
/**
*
*
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatPlanOwnerLogServiceImpl.java
View file @
d202f3c0
...
@@ -111,6 +111,9 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
...
@@ -111,6 +111,9 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
@Override
@Override
public
void
batchAdd
(
String
staffIdList
,
TabGroupChatPlan
entity
)
{
public
void
batchAdd
(
String
staffIdList
,
TabGroupChatPlan
entity
)
{
if
(
StringUtils
.
isBlank
(
staffIdList
))
{
return
;
}
String
[]
arr
=
staffIdList
.
split
(
","
);
String
[]
arr
=
staffIdList
.
split
(
","
);
List
<
TabGroupChatPlanOwnerLog
>
logList
=
new
ArrayList
<>();
List
<
TabGroupChatPlanOwnerLog
>
logList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
...
@@ -132,7 +135,7 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
...
@@ -132,7 +135,7 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
@Override
@Override
public
void
update
(
TabGroupChatPlanOwnerLog
entity
)
{
public
void
update
(
TabGroupChatPlanOwnerLog
entity
)
{
String
staffId
=
entity
.
getStaffId
()
;
String
staffId
=
entity
.
getStaffId
();
TabHaobanClerkMainStoreRelated
mainStore
=
this
.
clerkMainStoreRelatedService
.
getMainStoreByStaffId
(
staffId
,
TabHaobanClerkMainStoreRelated
mainStore
=
this
.
clerkMainStoreRelatedService
.
getMainStoreByStaffId
(
staffId
,
entity
.
getWxEnterpriseId
());
entity
.
getWxEnterpriseId
());
if
(
null
==
mainStore
)
{
if
(
null
==
mainStore
)
{
...
@@ -159,8 +162,14 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
...
@@ -159,8 +162,14 @@ public class GroupChatPlanOwnerLogServiceImpl implements GroupChatPlanOwnerLogSe
@Override
@Override
public
void
deleteByStaffIds
(
Long
planId
,
String
delStaffIds
)
{
public
void
deleteByStaffIds
(
Long
planId
,
String
delStaffIds
)
{
if
(
StringUtils
.
isBlank
(
delStaffIds
))
{
return
;
}
String
[]
arr
=
delStaffIds
.
split
(
","
);
String
[]
arr
=
delStaffIds
.
split
(
","
);
List
<
String
>
delStaffIdList
=
Arrays
.
asList
(
arr
);
List
<
String
>
delStaffIdList
=
Arrays
.
asList
(
arr
);
if
(
CollectionUtils
.
isEmpty
(
delStaffIdList
))
{
return
;
}
this
.
groupChatPlanOwnerLogMapper
.
deleteByStaffIds
(
planId
,
delStaffIdList
);
this
.
groupChatPlanOwnerLogMapper
.
deleteByStaffIds
(
planId
,
delStaffIdList
);
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatPlanServiceImpl.java
View file @
d202f3c0
...
@@ -31,6 +31,7 @@ import com.gic.dubbo.entity.ProviderLocalTag;
...
@@ -31,6 +31,7 @@ import com.gic.dubbo.entity.ProviderLocalTag;
import
com.gic.enterprise.api.dto.StoreDTO
;
import
com.gic.enterprise.api.dto.StoreDTO
;
import
com.gic.enterprise.api.service.StoreService
;
import
com.gic.enterprise.api.service.StoreService
;
import
com.gic.haoban.common.utils.DingUtils
;
import
com.gic.haoban.common.utils.DingUtils
;
import
com.gic.haoban.manage.api.constants.Manage3Constants
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO
;
...
@@ -101,7 +102,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -101,7 +102,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
// 发送队列
// 发送队列
private
void
putMQForSend
(
Long
id
)
{
private
void
putMQForSend
(
Long
id
)
{
try
{
try
{
mqClient
.
sendCommonMessage
(
"haobanC
ommonRouter
"
,
id
+
""
,
mqClient
.
sendCommonMessage
(
"haobanC
hatMQ
"
,
id
+
""
,
"com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService"
,
"doPlanTimer"
);
"com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService"
,
"doPlanTimer"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"发送MQ异常"
);
logger
.
error
(
"发送MQ异常"
);
...
@@ -112,7 +113,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -112,7 +113,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
// 统计队列
// 统计队列
private
void
putMQForData
(
Long
id
)
{
private
void
putMQForData
(
Long
id
)
{
try
{
try
{
mqClient
.
sendCommonMessage
(
"haobanC
ommonRouter
"
,
id
+
""
,
mqClient
.
sendCommonMessage
(
"haobanC
hatMQ
"
,
id
+
""
,
"com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService"
,
"doPlanSendInfoTimer"
);
"com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService"
,
"doPlanSendInfoTimer"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"发送MQ异常"
);
logger
.
error
(
"发送MQ异常"
);
...
@@ -145,20 +146,16 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -145,20 +146,16 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
}
else
{
}
else
{
this
.
groupChatPlanMapper
.
updateById
(
entity
);
this
.
groupChatPlanMapper
.
updateById
(
entity
);
// 删除本次删除的
// 删除本次删除的
String
delStaffIdList
=
dto
.
getDelStaffIdList
();
this
.
groupChatPlanOwnerLogService
.
deleteByStaffIds
(
planId
,
dto
.
getDelStaffIdList
());
if
(
StringUtils
.
isNotBlank
(
delStaffIdList
))
{
this
.
groupChatPlanOwnerLogService
.
deleteByStaffIds
(
planId
,
delStaffIdList
);
}
// 新增本次新增的
// 新增本次新增的
if
(
StringUtils
.
isNotBlank
(
staffIdList
))
{
this
.
groupChatPlanOwnerLogService
.
batchAdd
(
staffIdList
,
entity
);
this
.
groupChatPlanOwnerLogService
.
batchAdd
(
staffIdList
,
entity
);
}
}
}
// 立即发送
// 立即发送
if
(
entity
.
getSendType
()
==
1
)
{
if
(
entity
.
getSendType
()
==
1
)
{
this
.
putMQForSend
(
entity
.
getPlanId
());
this
.
addOrDelTimer
(
planId
,
entity
.
getSendTime
(),
0
);
this
.
putMQForSend
(
planId
);
}
else
{
}
else
{
this
.
addOrDelTimer
(
entity
.
getPlanId
()
,
entity
.
getSendTime
(),
1
);
this
.
addOrDelTimer
(
planId
,
entity
.
getSendTime
(),
1
);
}
}
}
}
...
@@ -200,7 +197,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
...
@@ -200,7 +197,7 @@ public class GroupChatPlanServiceImpl implements GroupChatPlanService {
madidList
.
add
(
json
.
getString
(
"relation_id"
));
madidList
.
add
(
json
.
getString
(
"relation_id"
));
}
}
int
pageNum
=
0
;
int
pageNum
=
0
;
int
pageSize
=
1
;
int
pageSize
=
Manage3Constants
.
CHAT_PLAN_PAGE_SIZE
;
List
<
TabGroupChatPlanOwnerLog
>
ownerList
=
null
;
List
<
TabGroupChatPlanOwnerLog
>
ownerList
=
null
;
while
(
true
)
{
while
(
true
)
{
ownerList
=
this
.
groupChatPlanOwnerLogMapper
.
listForDoPlan
(
planId
,
pageNum
*
pageSize
,
pageSize
);
ownerList
=
this
.
groupChatPlanOwnerLogMapper
.
listForDoPlan
(
planId
,
pageNum
*
pageSize
,
pageSize
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatServiceImpl.java
View file @
d202f3c0
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.service.chat.impl;
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.service.service.chat.impl;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -125,15 +126,27 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -125,15 +126,27 @@ public class GroupChatServiceImpl implements GroupChatService {
private
static
GicMQClient
mqClient
=
GICMQClientUtil
.
getClientInstance
();
private
static
GicMQClient
mqClient
=
GICMQClientUtil
.
getClientInstance
();
// 每次拉取成员数
// 每次拉取成员数
private
int
pageSize
=
10
;
private
int
pageSize
=
8
;
// 每次拉取群数
// 每次拉取群数
private
int
limit
=
1
;
private
int
limit
=
1
;
// 群下线成员数
// 群下线成员数
private
int
offNum
=
200
;
private
int
offNum
=
200
;
private
void
sendMQ
(
String
params
)
{
// 刷新群
private
void
putMQRefreshChat
(
String
params
)
{
try
{
try
{
mqClient
.
sendCommonMessage
(
"haobanCommonRouter"
,
params
,
mqClient
.
sendCommonMessage
(
"haobanChatMQ"
,
params
,
"com.gic.haoban.manage.api.service.chat.GroupChatApiService"
,
"refreshChatInfoFromMQ"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"发送MQ异常"
);
e
.
printStackTrace
();
}
}
// 刷新群状态
private
void
putMQRefreshChatStatus
(
String
params
)
{
try
{
mqClient
.
sendCommonMessage
(
"haobanChatMQ"
,
params
,
"com.gic.haoban.manage.api.service.chat.GroupChatApiService"
,
"refreshChatInfoFromMQ"
);
"com.gic.haoban.manage.api.service.chat.GroupChatApiService"
,
"refreshChatInfoFromMQ"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"发送MQ异常"
);
logger
.
error
(
"发送MQ异常"
);
...
@@ -203,7 +216,7 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -203,7 +216,7 @@ public class GroupChatServiceImpl implements GroupChatService {
logger
.
info
(
"刷新群信息={}"
,
groupChatId
);
logger
.
info
(
"刷新群信息={}"
,
groupChatId
);
TabGroupChat
chat
=
this
.
groupChatMapper
.
selectById
(
groupChatId
);
TabGroupChat
chat
=
this
.
groupChatMapper
.
selectById
(
groupChatId
);
if
(
null
==
chat
)
{
if
(
null
==
chat
)
{
logger
.
info
(
"群不存在
"
);
logger
.
info
(
"群不存在
,groupChatId={}"
,
groupChatId
);
return
;
return
;
}
}
String
wxEnterpriseId
=
chat
.
getWxEnterpriseId
();
String
wxEnterpriseId
=
chat
.
getWxEnterpriseId
();
...
@@ -254,7 +267,7 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -254,7 +267,7 @@ public class GroupChatServiceImpl implements GroupChatService {
// 更新后重新同步群数据
// 更新后重新同步群数据
JSONObject
json
=
new
JSONObject
();
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"groupChatIdList"
,
groupChatIdList
);
json
.
put
(
"groupChatIdList"
,
groupChatIdList
);
this
.
sendMQ
(
json
.
toJSONString
());
this
.
putMQRefreshChat
(
json
.
toJSONString
());
}
}
// 处理群通知
// 处理群通知
...
@@ -348,7 +361,7 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -348,7 +361,7 @@ public class GroupChatServiceImpl implements GroupChatService {
}
}
// 更新群状态
// 更新群状态
p
ublic
void
updateChatStatus
(
WxEnterpriseQwDTO
qwDTO
,
Long
groupChatId
)
{
p
rivate
void
updateChatStatus
(
WxEnterpriseQwDTO
qwDTO
,
Long
groupChatId
)
{
logger
.
info
(
"更新群状态,groupchatId={}"
,
groupChatId
);
logger
.
info
(
"更新群状态,groupchatId={}"
,
groupChatId
);
TabGroupChat
chat
=
this
.
groupChatMapper
.
selectById
(
groupChatId
);
TabGroupChat
chat
=
this
.
groupChatMapper
.
selectById
(
groupChatId
);
if
(
null
==
chat
)
{
if
(
null
==
chat
)
{
...
@@ -555,7 +568,6 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -555,7 +568,6 @@ public class GroupChatServiceImpl implements GroupChatService {
}
}
private
void
updateGroupChatDetail
(
WxEnterpriseQwDTO
qwDTO
,
TabGroupChat
chat
,
boolean
syncMember
)
{
private
void
updateGroupChatDetail
(
WxEnterpriseQwDTO
qwDTO
,
TabGroupChat
chat
,
boolean
syncMember
)
{
// 控制同时刷新
Long
groupChatId
=
chat
.
getGroupChatId
();
Long
groupChatId
=
chat
.
getGroupChatId
();
String
wxEnterpriseId
=
chat
.
getWxEnterpriseId
();
String
wxEnterpriseId
=
chat
.
getWxEnterpriseId
();
String
enterpriseId
=
chat
.
getEnterpriseId
();
String
enterpriseId
=
chat
.
getEnterpriseId
();
...
@@ -567,170 +579,74 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -567,170 +579,74 @@ public class GroupChatServiceImpl implements GroupChatService {
return
;
return
;
}
}
GroupChatDetailDTO
detail
=
detailResp
.
getResult
();
GroupChatDetailDTO
detail
=
detailResp
.
getResult
();
String
owner
=
detail
.
getOwner
();
TabHaobanStaff
staff
=
this
.
staffMapper
.
selectByUserIdAndEnterpriseId
(
owner
,
wxEnterpriseId
);
if
(
null
==
staff
)
{
logger
.
info
(
"群主staff查不到,不处理,owner={}"
,
owner
);
return
;
}
String
chatName
=
this
.
emoji
(
detail
.
getName
());
String
chatName
=
this
.
emoji
(
detail
.
getName
());
String
notice
=
this
.
emoji
(
detail
.
getNotice
());
String
notice
=
this
.
emoji
(
detail
.
getNotice
());
chat
.
setGroupChatId
(
groupChatId
);
chat
.
setGroupChatId
(
groupChatId
);
chat
.
setChatAddTime
(
new
Date
(
detail
.
getCreate_time
()
*
1000
));
chat
.
setChatAddTime
(
new
Date
(
detail
.
getCreate_time
()
*
1000
));
chat
.
setChatNotice
(
notice
);
chat
.
setChatNotice
(
notice
);
chat
.
setName
(
chatName
);
chat
.
setName
(
chatName
);
// 处理群主
String
owner
=
detail
.
getOwner
();
TabHaobanStaff
staff
=
this
.
staffMapper
.
selectByUserIdAndEnterpriseId
(
owner
,
wxEnterpriseId
);
String
newStaffId
=
null
;
String
oldStaffId
=
chat
.
getStaffId
();
if
(
null
!=
staff
)
{
// 更新staff
newStaffId
=
staff
.
getStaffId
();
chat
.
setStaffId
(
staff
.
getStaffId
());
}
else
{
chat
.
setStaffId
(
null
);
logger
.
info
(
"群主未关联好办,不同步群成员,userid={}"
,
owner
);
}
// 匹配GIC商户ID ,如果已经初始化过,不再自动匹配GIC商户
// 匹配GIC商户ID ,如果已经初始化过,不再自动匹配GIC商户
if
(
chat
.
getInitFlag
()
==
0
)
{
if
(
chat
.
getInitFlag
()
==
0
)
{
if
(
StringUtils
.
isBlank
(
enterpriseId
))
{
enterpriseId
=
matchGicEnterpriseId
(
wxEnterpriseId
,
enterpriseId
,
staff
);
List
<
TabHaobanWxEnterpriseRelated
>
list
=
this
.
wxEnterpriseRelatedService
.
getByWxEnterpriseId
(
wxEnterpriseId
);
if
(
CollectionUtils
.
isNotEmpty
(
list
)
&&
list
.
size
()
==
1
)
{
logger
.
info
(
"匹配群的gic商户id,gic={}"
,
list
.
get
(
0
).
getEnterpriseId
());
enterpriseId
=
list
.
get
(
0
).
getEnterpriseId
();
chat
.
setEnterpriseId
(
enterpriseId
);
}
}
if
(
StringUtils
.
isBlank
(
enterpriseId
)
&&
null
!=
staff
)
{
logger
.
info
(
"匹配群的gic商户id,staffid={}"
,
staff
.
getStaffId
());
List
<
StaffClerkRelationDTO
>
clerkList
=
this
.
staffClerkRelationService
.
listByStaffId
(
wxEnterpriseId
,
staff
.
getStaffId
());
if
(
CollectionUtils
.
isNotEmpty
(
clerkList
))
{
Set
<
String
>
enterpriseIdSet
=
clerkList
.
stream
().
map
(
dto
->
dto
.
getEnterpriseId
())
.
collect
(
Collectors
.
toSet
());
logger
.
info
(
"成员关联导购数={},商户={}"
,
clerkList
.
size
(),
enterpriseIdSet
);
if
(
enterpriseIdSet
.
size
()
==
1
)
{
enterpriseId
=
clerkList
.
get
(
0
).
getEnterpriseId
();
chat
.
setEnterpriseId
(
enterpriseId
);
chat
.
setEnterpriseId
(
enterpriseId
);
}
}
}
logger
.
info
(
"更新群信息={}"
,
JSON
.
toJSONString
(
chat
));
if
(
StringUtils
.
isNotEmpty
(
chat
.
getEnterpriseId
()))
{
if
(
StringUtils
.
isNotEmpty
(
chat
.
getEnterpriseId
()))
{
chat
.
setGicFlag
(
1
);
chat
.
setGicFlag
(
1
);
}
}
}
}
String
oldStaffId
=
chat
.
getStaffId
();
String
newStaffId
=
staff
.
getStaffId
();
chat
.
setStaffId
(
staff
.
getStaffId
());
// 判断是否更新群主
// 判断是否更新群主
this
.
saveOwnerHistory
(
wxEnterpriseId
,
groupChatId
,
newStaffId
,
oldStaffId
);
this
.
saveOwnerHistory
(
wxEnterpriseId
,
groupChatId
,
newStaffId
,
oldStaffId
);
chat
.
setOriginalStaffId
(
oldStaffId
);
chat
.
setOriginalStaffId
(
oldStaffId
);
this
.
groupChatMapper
.
update
(
chat
);
this
.
groupChatMapper
.
update
(
chat
);
if
(
null
==
staff
)
{
logger
.
info
(
"不同步群成员信息,群主未关联好办,owner={}"
,
owner
);
return
;
}
this
.
saveOwner
(
wxEnterpriseId
,
staff
.
getStaffId
());
this
.
saveOwner
(
wxEnterpriseId
,
staff
.
getStaffId
());
if
(!
syncMember
)
{
if
(!
syncMember
)
{
logger
.
info
(
"不同步群成员
信息
"
);
logger
.
info
(
"不同步群成员"
);
return
;
return
;
}
}
List
<
GroupChatDetailMemberDTO
>
memberList
=
detail
.
getMember_list
();
List
<
GroupChatDetailMemberDTO
>
qwUserList
=
detail
.
getMember_list
();
int
totalCount
=
memberList
.
size
();
// 当前群列表
if
(
CollectionUtils
.
isNotEmpty
(
memberList
)
&&
totalCount
>=
offNum
)
{
List
<
TabGroupChatUser
>
nowUserList
=
this
.
groupChatUserMapper
.
listAllChatUser
(
wxEnterpriseId
,
groupChatId
);
this
.
chatOff
(
chat
);
Map
<
String
,
TabGroupChatUser
>
nowUserMap
=
nowUserList
.
stream
()
}
List
<
TabGroupChatUser
>
allUserList
=
this
.
groupChatUserMapper
.
listAllChatUser
(
wxEnterpriseId
,
groupChatId
);
Map
<
String
,
TabGroupChatUser
>
userMap
=
allUserList
.
stream
()
.
collect
(
Collectors
.
toMap
(
TabGroupChatUser:
:
getUserId
,
o
->
o
,
((
k1
,
k2
)
->
k1
)));
.
collect
(
Collectors
.
toMap
(
TabGroupChatUser:
:
getUserId
,
o
->
o
,
((
k1
,
k2
)
->
k1
)));
List
<
TabGroupChatUser
>
needAddUserList
=
new
ArrayList
<>();
List
<
TabGroupChatUser
>
needAddUserList
=
new
ArrayList
<>();
int
totalMemberCount
=
0
;
List
<
GroupChatUserIdDTO
>
adminList
=
detail
.
getAdmin_list
();
List
<
GroupChatUserIdDTO
>
adminList
=
detail
.
getAdmin_list
();
List
<
String
>
adminIdList
=
adminList
.
stream
().
map
(
dto
->
dto
.
getUserid
()).
collect
(
Collectors
.
toList
());
List
<
String
>
adminIdList
=
adminList
.
stream
().
map
(
dto
->
dto
.
getUserid
()).
collect
(
Collectors
.
toList
());
for
(
GroupChatDetailMemberDTO
member
:
memberList
)
{
int
totalMemberCount
=
0
;
String
userName
=
this
.
emoji
(
member
.
getName
());
Map
<
String
,
String
>
invitorMap
=
new
HashMap
<>();
String
nickName
=
this
.
emoji
(
member
.
getGroup_nickname
());
for
(
GroupChatDetailMemberDTO
qwUser
:
qwUserList
)
{
String
userId
=
member
.
getUserid
();
int
memberCount
=
this
.
saveOrUpdateChatUser
(
groupChatId
,
wxEnterpriseId
,
enterpriseId
,
owner
,
nowUserMap
,
TabGroupChatUser
user
=
userMap
.
get
(
userId
);
needAddUserList
,
adminIdList
,
qwUser
,
invitorMap
);
if
(
null
!=
user
)
{
totalMemberCount
=
totalMemberCount
+
memberCount
;
logger
.
info
(
"更新用户,id={}"
,
userId
);
boolean
updateFlag
=
false
;
user
.
setAdminFlag
(
0
);
if
(
member
.
getUserid
().
equals
(
owner
))
{
user
.
setAdminFlag
(
1
);
}
else
if
(
adminIdList
.
contains
(
member
.
getUserid
()))
{
user
.
setAdminFlag
(
2
);
}
if
(
StringUtils
.
isEmpty
(
user
.
getMemberId
()))
{
this
.
matchGicMember
(
wxEnterpriseId
,
enterpriseId
,
member
.
getUnionid
(),
userId
,
user
);
if
(
StringUtils
.
isNotEmpty
(
user
.
getMemberId
()))
{
updateFlag
=
true
;
}
}
if
(
user
.
getUserType
()
==
3
)
{
totalMemberCount
++;
}
user
.
setUserName
(
userName
);
if
(
this
.
isDiff
(
user
.
getUserName
(),
userName
))
{
updateFlag
=
true
;
}
user
.
setNickName
(
nickName
);
if
(
this
.
isDiff
(
user
.
getNickName
(),
nickName
))
{
updateFlag
=
true
;
}
if
(
updateFlag
)
{
this
.
groupChatUserMapper
.
update
(
user
);
}
continue
;
}
user
=
new
TabGroupChatUser
();
user
.
setAdminFlag
(
0
);
if
(
member
.
getUserid
().
equals
(
owner
))
{
user
.
setAdminFlag
(
1
);
}
else
if
(
adminIdList
.
contains
(
member
.
getUserid
()))
{
user
.
setAdminFlag
(
2
);
}
user
.
setChatUserId
(
UniqueIdUtils
.
uniqueLong
());
user
.
setWxEnterpriseId
(
wxEnterpriseId
);
user
.
setEnterpriseId
(
enterpriseId
);
user
.
setUserType
(
member
.
getType
());
user
.
setJoinTime
(
new
Date
(
member
.
getJoin_time
()
*
1000
));
user
.
setUserName
(
userName
);
user
.
setNickName
(
nickName
);
user
.
setGroupChatId
(
groupChatId
);
user
.
setUserId
(
userId
);
user
.
setJoinScene
(
member
.
getJoin_scene
());
user
.
setJoinState
(
null
);
user
.
setUnionid
(
member
.
getUnionid
());
user
.
setDeleteFlag
(
0
);
user
.
setStatusFlag
(
1
);
user
.
setCreateTime
(
new
Date
());
user
.
setUpdateTime
(
new
Date
());
if
(
null
!=
member
.
getInvitor
())
{
String
invitorId
=
member
.
getInvitor
().
getUserid
();
user
.
setInvitorUserId
(
invitorId
);
TabHaobanStaff
invitor
=
this
.
staffMapper
.
selectByUserIdAndEnterpriseId
(
invitorId
,
wxEnterpriseId
);
if
(
null
!=
invitor
)
{
user
.
setInvitorUserName
(
invitor
.
getStaffName
());
}
}
this
.
matchGicMember
(
wxEnterpriseId
,
enterpriseId
,
member
.
getUnionid
(),
userId
,
user
);
if
(
user
.
getUserType
()
==
3
)
{
totalMemberCount
++;
}
needAddUserList
.
add
(
user
);
}
}
List
<
String
>
nowUserIdList
=
memberList
.
stream
().
map
(
dto
->
dto
.
getUserid
()).
collect
(
Collectors
.
toList
());
int
addMemberCount
=
0
;
int
addMemberCount
=
0
;
for
(
TabGroupChatUser
item
:
needAddUserList
)
{
for
(
TabGroupChatUser
item
:
needAddUserList
)
{
this
.
groupChatUserMapper
.
insert
(
item
);
if
(
item
.
getUserType
()
==
3
)
{
if
(
item
.
getUserType
()
==
3
)
{
addMemberCount
++;
addMemberCount
++;
}
}
}
}
int
addCount
=
needAddUserList
.
size
();
if
(
CollectionUtils
.
isNotEmpty
(
needAddUserList
))
{
this
.
groupChatUserMapper
.
batchInsert
(
needAddUserList
);
}
// 删除退群的人
// 删除退群的人
List
<
Long
>
deleteIdList
=
new
ArrayList
<>();
List
<
Long
>
deleteIdList
=
new
ArrayList
<>();
for
(
TabGroupChatUser
user
:
allUserList
)
{
List
<
String
>
nowQwUserIdList
=
qwUserList
.
stream
().
map
(
dto
->
dto
.
getUserid
()).
collect
(
Collectors
.
toList
());
if
(!
nowUserIdList
.
contains
(
user
.
getUserId
()))
{
for
(
TabGroupChatUser
user
:
nowUserList
)
{
if
(!
nowQwUserIdList
.
contains
(
user
.
getUserId
()))
{
deleteIdList
.
add
(
user
.
getChatUserId
());
deleteIdList
.
add
(
user
.
getChatUserId
());
}
}
}
}
// 总成员数
int
totalCount
=
qwUserList
.
size
();
// 本次新增
int
addCount
=
needAddUserList
.
size
();
// 流失总数
// 流失总数
int
quitCount
=
0
;
int
quitCount
=
0
;
// 流水会员数
// 流水会员数
...
@@ -739,16 +655,130 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -739,16 +655,130 @@ public class GroupChatServiceImpl implements GroupChatService {
this
.
groupChatUserMapper
.
dismiss
(
deleteIdList
,
chat
.
getStaffId
());
this
.
groupChatUserMapper
.
dismiss
(
deleteIdList
,
chat
.
getStaffId
());
quitCount
=
deleteIdList
.
size
();
quitCount
=
deleteIdList
.
size
();
for
(
Long
userId
:
deleteIdList
)
{
for
(
Long
userId
:
deleteIdList
)
{
TabGroupChatUser
user
=
u
serMap
.
get
(
userId
);
TabGroupChatUser
user
=
nowU
serMap
.
get
(
userId
);
if
(
null
!=
user
&&
user
.
getUserType
()
==
3
)
{
if
(
null
!=
user
&&
user
.
getUserType
()
==
3
)
{
quitMemberCount
++;
quitMemberCount
++;
}
}
}
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
qwUserList
)
&&
totalCount
>=
offNum
&&
null
!=
chat
.
getOffTime
())
{
logger
.
info
(
"群满下线处理,chatid={}"
,
chat
.
getWxChatId
());
this
.
chatOff
(
chat
);
}
this
.
updateData
(
groupChatId
,
totalCount
,
totalMemberCount
,
addMemberCount
,
addCount
,
quitCount
,
this
.
updateData
(
groupChatId
,
totalCount
,
totalMemberCount
,
addMemberCount
,
addCount
,
quitCount
,
quitMemberCount
);
quitMemberCount
);
}
}
// 保存更新群成员
private
int
saveOrUpdateChatUser
(
Long
groupChatId
,
String
wxEnterpriseId
,
String
enterpriseId
,
String
owner
,
Map
<
String
,
TabGroupChatUser
>
userMap
,
List
<
TabGroupChatUser
>
needAddUserList
,
List
<
String
>
adminIdList
,
GroupChatDetailMemberDTO
qwUser
,
Map
<
String
,
String
>
invitorMap
)
{
int
totalMemberCount
=
0
;
String
userName
=
this
.
emoji
(
qwUser
.
getName
());
String
nickName
=
this
.
emoji
(
qwUser
.
getGroup_nickname
());
String
userId
=
qwUser
.
getUserid
();
TabGroupChatUser
hbUser
=
userMap
.
get
(
userId
);
boolean
updateFlag
=
true
;
boolean
needUpdateFlag
=
false
;
if
(
null
==
hbUser
)
{
updateFlag
=
false
;
hbUser
=
new
TabGroupChatUser
();
}
Integer
oldAdminFlag
=
hbUser
.
getAdminFlag
();
hbUser
.
setAdminFlag
(
0
);
hbUser
.
setUserType
(
qwUser
.
getType
());
if
(
qwUser
.
getUserid
().
equals
(
owner
))
{
hbUser
.
setAdminFlag
(
1
);
}
else
if
(
adminIdList
.
contains
(
qwUser
.
getUserid
()))
{
hbUser
.
setAdminFlag
(
2
);
}
if
(
StringUtils
.
isEmpty
(
hbUser
.
getMemberId
())
&&
qwUser
.
getType
()
==
2
)
{
this
.
matchGicMember
(
wxEnterpriseId
,
enterpriseId
,
qwUser
.
getUnionid
(),
userId
,
hbUser
);
}
if
(
hbUser
.
getUserType
()
==
3
)
{
totalMemberCount
++;
}
hbUser
.
setUserName
(
userName
);
hbUser
.
setNickName
(
nickName
);
if
(
updateFlag
)
{
if
(
null
==
oldAdminFlag
||
!
oldAdminFlag
.
equals
(
hbUser
.
getAdminFlag
()))
{
needUpdateFlag
=
true
;
}
if
(
this
.
isDiff
(
hbUser
.
getUserName
(),
userName
))
{
needUpdateFlag
=
true
;
}
if
(
this
.
isDiff
(
hbUser
.
getNickName
(),
nickName
))
{
needUpdateFlag
=
true
;
}
if
(
needUpdateFlag
)
{
logger
.
info
(
"更新用户,id={}"
,
userId
);
this
.
groupChatUserMapper
.
update
(
hbUser
);
}
return
totalMemberCount
;
}
hbUser
.
setChatUserId
(
UniqueIdUtils
.
uniqueLong
());
hbUser
.
setWxEnterpriseId
(
wxEnterpriseId
);
hbUser
.
setEnterpriseId
(
enterpriseId
);
hbUser
.
setJoinTime
(
new
Date
(
qwUser
.
getJoin_time
()
*
1000
));
hbUser
.
setGroupChatId
(
groupChatId
);
hbUser
.
setUserId
(
userId
);
hbUser
.
setJoinScene
(
qwUser
.
getJoin_scene
());
hbUser
.
setJoinState
(
null
);
hbUser
.
setUnionid
(
qwUser
.
getUnionid
());
hbUser
.
setDeleteFlag
(
0
);
hbUser
.
setStatusFlag
(
1
);
hbUser
.
setCreateTime
(
new
Date
());
hbUser
.
setUpdateTime
(
new
Date
());
if
(
null
!=
qwUser
.
getInvitor
())
{
String
invitorId
=
qwUser
.
getInvitor
().
getUserid
();
if
(
StringUtils
.
isNotBlank
(
invitorId
))
{
hbUser
.
setInvitorUserId
(
invitorId
);
String
invitorUserName
=
invitorMap
.
get
(
invitorId
);
if
(
null
==
invitorUserName
)
{
TabHaobanStaff
invitor
=
this
.
staffMapper
.
selectByUserIdAndEnterpriseId
(
invitorId
,
wxEnterpriseId
);
if
(
null
!=
invitor
)
{
invitorMap
.
put
(
invitorId
,
invitor
.
getStaffName
());
invitorUserName
=
invitor
.
getStaffName
();
}
else
{
invitorMap
.
put
(
invitorId
,
""
);
}
}
if
(
StringUtils
.
isNotBlank
(
invitorUserName
))
{
hbUser
.
setInvitorUserName
(
invitorUserName
);
}
}
}
needAddUserList
.
add
(
hbUser
);
return
totalMemberCount
;
}
// 匹配GIC企业ID
private
String
matchGicEnterpriseId
(
String
wxEnterpriseId
,
String
enterpriseId
,
TabHaobanStaff
staff
)
{
if
(
StringUtils
.
isBlank
(
enterpriseId
))
{
List
<
TabHaobanWxEnterpriseRelated
>
list
=
this
.
wxEnterpriseRelatedService
.
getByWxEnterpriseId
(
wxEnterpriseId
);
if
(
CollectionUtils
.
isNotEmpty
(
list
)
&&
list
.
size
()
==
1
)
{
logger
.
info
(
"匹配到群gic商户id,一对一模式,gic={}"
,
list
.
get
(
0
).
getEnterpriseId
());
enterpriseId
=
list
.
get
(
0
).
getEnterpriseId
();
}
}
if
(
StringUtils
.
isBlank
(
enterpriseId
)
&&
null
!=
staff
)
{
logger
.
info
(
"匹配群的gic商户id,staffid={}"
,
staff
.
getStaffId
());
List
<
StaffClerkRelationDTO
>
clerkList
=
this
.
staffClerkRelationService
.
listByStaffId
(
wxEnterpriseId
,
staff
.
getStaffId
());
if
(
CollectionUtils
.
isNotEmpty
(
clerkList
))
{
Set
<
String
>
enterpriseIdSet
=
clerkList
.
stream
().
map
(
dto
->
dto
.
getEnterpriseId
())
.
collect
(
Collectors
.
toSet
());
logger
.
info
(
"成员关联导购数={},商户={}"
,
clerkList
.
size
(),
enterpriseIdSet
);
if
(
enterpriseIdSet
.
size
()
==
1
)
{
enterpriseId
=
clerkList
.
get
(
0
).
getEnterpriseId
();
}
}
}
return
enterpriseId
;
}
// 字符串是否有修改
private
boolean
isDiff
(
String
a
,
String
b
)
{
private
boolean
isDiff
(
String
a
,
String
b
)
{
if
(
StringUtils
.
isBlank
(
a
)
&&
StringUtils
.
isBlank
(
b
))
{
if
(
StringUtils
.
isBlank
(
a
)
&&
StringUtils
.
isBlank
(
b
))
{
return
false
;
return
false
;
...
@@ -766,14 +796,15 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -766,14 +796,15 @@ public class GroupChatServiceImpl implements GroupChatService {
quitMemberCount
);
quitMemberCount
);
}
}
// 历任群主
private
void
saveOwnerHistory
(
String
wxEnterpriseId
,
Long
groupChatId
,
String
newStaffId
,
String
oldStaffId
)
{
private
void
saveOwnerHistory
(
String
wxEnterpriseId
,
Long
groupChatId
,
String
newStaffId
,
String
oldStaffId
)
{
if
(
null
==
newStaffId
&&
null
==
oldStaffId
)
{
if
(
StringUtils
.
isEmpty
(
newStaffId
)
&&
StringUtils
.
isEmpty
(
oldStaffId
)
)
{
return
;
return
;
}
}
if
(
null
!=
newStaffId
&&
null
!=
oldStaffId
&&
newStaffId
.
equals
(
oldStaffId
))
{
if
(
StringUtils
.
isNotEmpty
(
newStaffId
)
&&
StringUtils
.
isNotEmpty
(
oldStaffId
)
&&
newStaffId
.
equals
(
oldStaffId
))
{
return
;
return
;
}
}
if
(
null
!=
newStaffId
)
{
if
(
StringUtils
.
isNotEmpty
(
newStaffId
)
)
{
if
(
null
!=
this
.
groupChatOwnerHistoryMapper
.
getGroupChatNowStaff
(
groupChatId
,
newStaffId
))
{
if
(
null
!=
this
.
groupChatOwnerHistoryMapper
.
getGroupChatNowStaff
(
groupChatId
,
newStaffId
))
{
return
;
return
;
}
}
...
@@ -785,7 +816,7 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -785,7 +816,7 @@ public class GroupChatServiceImpl implements GroupChatService {
entity
.
setCreateTime
(
new
Date
());
entity
.
setCreateTime
(
new
Date
());
this
.
groupChatOwnerHistoryMapper
.
insert
(
entity
);
this
.
groupChatOwnerHistoryMapper
.
insert
(
entity
);
}
}
if
(
null
!=
oldStaffId
)
{
if
(
StringUtils
.
isNotEmpty
(
oldStaffId
)
)
{
this
.
groupChatOwnerHistoryMapper
.
updateOwnerEnd
(
groupChatId
,
oldStaffId
);
this
.
groupChatOwnerHistoryMapper
.
updateOwnerEnd
(
groupChatId
,
oldStaffId
);
}
}
}
}
...
@@ -901,8 +932,8 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -901,8 +932,8 @@ public class GroupChatServiceImpl implements GroupChatService {
* @throws
* @throws
*/
*/
private
void
saveOwner
(
String
wxEnterpriseId
,
String
staffId
)
{
private
void
saveOwner
(
String
wxEnterpriseId
,
String
staffId
)
{
TabGroupChatOwner
owner
=
this
.
groupChatOwnerMapper
.
selectByStaffId
(
staffId
);
int
chatCount
=
this
.
groupChatMapper
.
getCountByStaffId
(
staffId
);
int
chatCount
=
this
.
groupChatMapper
.
getCountByStaffId
(
staffId
);
TabGroupChatOwner
owner
=
this
.
groupChatOwnerMapper
.
selectByStaffId
(
staffId
);
if
(
null
!=
owner
)
{
if
(
null
!=
owner
)
{
this
.
groupChatOwnerMapper
.
updateChatCount
(
staffId
,
chatCount
);
this
.
groupChatOwnerMapper
.
updateChatCount
(
staffId
,
chatCount
);
}
else
{
}
else
{
...
@@ -977,9 +1008,9 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -977,9 +1008,9 @@ public class GroupChatServiceImpl implements GroupChatService {
if
(!
resp
.
isSuccess
())
{
if
(!
resp
.
isSuccess
())
{
return
ServiceResponse
.
failure
(
"9999"
,
resp
.
getMessage
());
return
ServiceResponse
.
failure
(
"9999"
,
resp
.
getMessage
());
}
else
{
}
else
{
for
(
Long
id
:
groupChatIdList
)
{
JSONObject
json
=
new
JSONObject
();
this
.
updateChatStatus
(
qwDTO
,
id
);
json
.
put
(
"groupChatIdList"
,
groupChatIdList
);
}
this
.
putMQRefreshChatStatus
(
JSON
.
toJSONString
(
json
));
if
(
CollectionUtils
.
isNotEmpty
(
resp
.
getResult
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
resp
.
getResult
()))
{
return
ServiceResponse
.
failure
(
"9999"
,
JSON
.
toJSONString
(
resp
.
getResult
()));
return
ServiceResponse
.
failure
(
"9999"
,
JSON
.
toJSONString
(
resp
.
getResult
()));
}
}
...
@@ -1027,4 +1058,14 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -1027,4 +1058,14 @@ public class GroupChatServiceImpl implements GroupChatService {
}
}
}
}
}
}
@Override
public
void
refreshChatStatus
(
Long
groupChatId
)
{
TabGroupChat
chat
=
this
.
groupChatMapper
.
selectById
(
groupChatId
);
if
(
null
!=
chat
)
{
String
wxEnterpriseId
=
chat
.
getWxEnterpriseId
();
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
this
.
updateChatStatus
(
qwDTO
,
groupChatId
);
}
}
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/chat/GroupChatApiServiceImpl.java
View file @
d202f3c0
...
@@ -165,12 +165,6 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
...
@@ -165,12 +165,6 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
}
}
@Override
@Override
public
ServiceResponse
<
Void
>
refreshChatInfo
(
Long
chatHmId
)
{
this
.
groupChatService
.
refreshChatInfo
(
chatHmId
);
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
updateChatEnterpriseId
(
String
wxEnterpriseId
,
String
enterpriseId
,
public
ServiceResponse
<
Void
>
updateChatEnterpriseId
(
String
wxEnterpriseId
,
String
enterpriseId
,
List
<
Long
>
groupChatIdList
)
{
List
<
Long
>
groupChatIdList
)
{
this
.
groupChatService
.
updateChatEnterpriseId
(
wxEnterpriseId
,
enterpriseId
,
groupChatIdList
);
this
.
groupChatService
.
updateChatEnterpriseId
(
wxEnterpriseId
,
enterpriseId
,
groupChatIdList
);
...
@@ -232,7 +226,17 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
...
@@ -232,7 +226,17 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
JSONObject
json
=
JSONObject
.
parseObject
(
params
);
JSONObject
json
=
JSONObject
.
parseObject
(
params
);
List
<
Long
>
arr
=
JSONObject
.
parseArray
(
json
.
getString
(
"groupChatIdList"
),
Long
.
class
);
List
<
Long
>
arr
=
JSONObject
.
parseArray
(
json
.
getString
(
"groupChatIdList"
),
Long
.
class
);
for
(
Long
id
:
arr
)
{
for
(
Long
id
:
arr
)
{
this
.
refreshChatInfo
(
id
);
this
.
groupChatService
.
refreshChatInfo
(
id
);
}
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
refreshChatStatusFromMQ
(
String
params
)
{
JSONObject
json
=
JSONObject
.
parseObject
(
params
);
List
<
Long
>
arr
=
JSONObject
.
parseArray
(
json
.
getString
(
"groupChatIdList"
),
Long
.
class
);
for
(
Long
id
:
arr
)
{
this
.
groupChatService
.
refreshChatStatus
(
id
);
}
}
return
ServiceResponse
.
success
();
return
ServiceResponse
.
success
();
}
}
...
...
haoban-manage3-service/src/main/resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
View file @
d202f3c0
...
@@ -758,10 +758,6 @@
...
@@ -758,10 +758,6 @@
<select
id=
"getMemberForExternalId"
resultMap=
"BaseResultMap"
>
<select
id=
"getMemberForExternalId"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_external_clerk_related where wx_enterprise_id = #{wxEnterpriseId}
from tab_haoban_external_clerk_related where wx_enterprise_id = #{wxEnterpriseId}
and self_external_userid = #{externalUserId} and status_flag in (1,3,4) and member_id
<![CDATA[ <> '']]>
union
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_external_clerk_related where wx_enterprise_id = #{wxEnterpriseId}
and external_user_id = #{externalUserId} and status_flag in (1,3,4) and member_id
<![CDATA[ <> '' ]]>
and external_user_id = #{externalUserId} and status_flag in (1,3,4) and member_id
<![CDATA[ <> '' ]]>
limit 1
limit 1
</select>
</select>
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatUserMapper.xml
View file @
d202f3c0
...
@@ -104,7 +104,59 @@
...
@@ -104,7 +104,59 @@
]]>
]]>
</insert>
</insert>
<!-- =====================删除==================== -->
<insert
id=
"batchInsert"
>
INSERT INTO tab_haoban_group_chat_user(
chat_user_id,
wx_enterprise_id,
enterprise_id,
user_type,
join_time,
user_name,
nick_name,
user_id,
unionid,
member_id,
invitor_user_id,
create_time,
update_time,
delete_flag,
group_chat_id,
status_flag,
user_quit_time,
quit_scene,
join_scene,
join_remark,
join_state , invitor_user_name , admin_flag
)VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
( #{item.chatUserId},
#{item.wxEnterpriseId},
#{item.enterpriseId},
#{item.userType},
#{item.joinTime},
#{item.userName},
#{item.nickName},
#{item.userId},
#{item.unionid},
#{item.memberId},
#{item.invitorUserId},
#{item.createTime},
#{item.updateTime},
#{item.deleteFlag},
#{item.groupChatId},
#{item.statusFlag},
#{item.userQuitTime},
#{item.quitScene},
#{item.joinScene},
#{item.joinRemark},
#{item.joinState} , #{item.invitorUserName} , #{item.adminFlag}
)
</foreach>
</insert>
<!-- =====================废弃群==================== -->
<update
id=
"dismiss"
>
<update
id=
"dismiss"
>
UPDATE tab_haoban_group_chat_user SET status_flag = 2 , update_time=now() , user_quit_time = now() , quit_scene = 0 , quit_staff_id = #{ownerId} WHERE chat_user_id in
UPDATE tab_haoban_group_chat_user SET status_flag = 2 , update_time=now() , user_quit_time = now() , quit_scene = 0 , quit_staff_id = #{ownerId} WHERE chat_user_id in
<foreach
collection=
"idList"
close=
")"
open=
"("
index=
"index"
item=
"id"
separator=
","
>
<foreach
collection=
"idList"
close=
")"
open=
"("
index=
"index"
item=
"id"
separator=
","
>
...
...
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