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
9c196b4c
Commit
9c196b4c
authored
Dec 08, 2022
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
群
parent
b28cb626
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
340 additions
and
53 deletions
+340
-53
GroupChatOwnerDTO.java
...com/gic/haoban/manage/api/dto/chat/GroupChatOwnerDTO.java
+21
-0
GroupChatSearchQDTO.java
.../haoban/manage/api/dto/qdto/chat/GroupChatSearchQDTO.java
+1
-1
OwnerSearchQDTO.java
.../gic/haoban/manage/api/dto/qdto/chat/OwnerSearchQDTO.java
+10
-0
ChatNoticeMapper.java
...oban/manage/service/dao/mapper/chat/ChatNoticeMapper.java
+5
-2
GroupChatDataMapper.java
...n/manage/service/dao/mapper/chat/GroupChatDataMapper.java
+5
-10
GroupChatHmRelationMapper.java
...ge/service/dao/mapper/chat/GroupChatHmRelationMapper.java
+18
-5
GroupChatMapper.java
...aoban/manage/service/dao/mapper/chat/GroupChatMapper.java
+3
-0
TabGroupChat.java
...m/gic/haoban/manage/service/entity/chat/TabGroupChat.java
+10
-1
GroupChatDataService.java
...ban/manage/service/service/chat/GroupChatDataService.java
+10
-0
GroupChatHmService.java
...aoban/manage/service/service/chat/GroupChatHmService.java
+12
-2
GroupChatService.java
.../haoban/manage/service/service/chat/GroupChatService.java
+2
-0
GroupChatDataServiceImpl.java
...e/service/service/chat/impl/GroupChatDataServiceImpl.java
+97
-1
GroupChatHmServiceImpl.java
...age/service/service/chat/impl/GroupChatHmServiceImpl.java
+57
-5
GroupChatServiceImpl.java
...anage/service/service/chat/impl/GroupChatServiceImpl.java
+25
-4
ChatNoticeMapper.xml
...rvice/src/main/resources/mapper/chat/ChatNoticeMapper.xml
+10
-0
GroupChatDataMapper.xml
...ce/src/main/resources/mapper/chat/GroupChatDataMapper.xml
+15
-14
GroupChatHmRelationMapper.xml
.../main/resources/mapper/chat/GroupChatHmRelationMapper.xml
+8
-1
GroupChatMapper.xml
...ervice/src/main/resources/mapper/chat/GroupChatMapper.xml
+22
-6
GroupChatOwnerMapper.xml
...e/src/main/resources/mapper/chat/GroupChatOwnerMapper.xml
+9
-1
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/GroupChatOwnerDTO.java
View file @
9c196b4c
...
...
@@ -21,9 +21,30 @@ public class GroupChatOwnerDTO implements Serializable {
private
String
wxEnterpriseId
;
/**群数量*/
private
Integer
chatCount
;
/**
* 微信用户id
*/
private
String
wxUserId
;
private
String
wxOpenUserId
;
private
java
.
util
.
Date
createTime
;
private
java
.
util
.
Date
updateTime
;
public
String
getWxUserId
()
{
return
wxUserId
;
}
public
void
setWxUserId
(
String
wxUserId
)
{
this
.
wxUserId
=
wxUserId
;
}
public
String
getWxOpenUserId
()
{
return
wxOpenUserId
;
}
public
void
setWxOpenUserId
(
String
wxOpenUserId
)
{
this
.
wxOpenUserId
=
wxOpenUserId
;
}
public
String
getStaffName
()
{
return
staffName
;
}
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/qdto/chat/GroupChatSearchQDTO.java
View file @
9c196b4c
...
...
@@ -14,7 +14,7 @@ public class GroupChatSearchQDTO implements Serializable {
private
String
enterpriseId
;
private
String
searchParams
;
// 群状态 0跟进人正常1跟进人离职2离职继承中 4已解散
private
Integer
status
;
private
Integer
status
=
0
;
private
Date
dismissStartDate
;
private
Date
dismissEndDate
;
// 群主列表
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/qdto/chat/OwnerSearchQDTO.java
View file @
9c196b4c
...
...
@@ -21,6 +21,16 @@ public class OwnerSearchQDTO implements Serializable {
private
String
wxEnterpriseId
;
private
String
searchParams
;
// 1查询在职 2查离职
private
int
status
=
1
;
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
String
getSearchParams
()
{
return
searchParams
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/ChatNoticeMapper.java
View file @
9c196b4c
...
...
@@ -2,6 +2,8 @@ package com.gic.haoban.manage.service.dao.mapper.chat;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
import
com.gic.haoban.manage.service.entity.chat.TabChatNotice
;
/**
...
...
@@ -17,7 +19,7 @@ public interface ChatNoticeMapper {
public
int
insert
(
TabChatNotice
entity
);
public
int
closeAll
();
public
int
closeAll
(
@Param
(
"list"
)
List
<
Integer
>
typeList
);
public
List
<
TabChatNotice
>
listAll
();
public
List
<
TabChatNotice
>
listAll
(
@Param
(
"list"
)
List
<
Integer
>
typeList
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatDataMapper.java
View file @
9c196b4c
...
...
@@ -15,14 +15,8 @@ import com.gic.haoban.manage.service.entity.chat.TabGroupChatData;
* @CopyRight
*/
public
interface
GroupChatDataMapper
{
/**
* 新增
* @Title: insert
* @Description: TODO
* @Param @param TabHaobanGroupChatData
*/
public
int
insert
(
TabGroupChatData
tabHaobanGroupChatData
)
;
public
List
<
TabGroupChatData
>
listByParams
(
Map
<
String
,
Object
>
params
)
;
public
int
insert
(
TabGroupChatData
entity
);
public
List
<
TabGroupChatData
>
listByParams
(
Map
<
String
,
Object
>
params
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatHmRelationMapper.java
View file @
9c196b4c
...
...
@@ -19,9 +19,21 @@ public interface GroupChatHmRelationMapper {
public
int
insert
(
TabGroupChatHmRelation
entity
);
public
int
deleteById
(
@Param
(
"chatHmId"
)
Long
chatHmId
,
@Param
(
"groupChatId"
)
Long
groupChatId
);
public
int
updateStatus
(
@Param
(
"chatHmId"
)
Long
chatHmId
,
@Param
(
"groupChatId"
)
Long
groupChatId
,
@Param
(
"statusFlag"
)
int
statusFlag
);
public
List
<
TabGroupChatHmRelation
>
listByChatHmId
(
@Param
(
"chatHmId"
)
Long
chatHmId
);
public
int
deleteById
(
@Param
(
"chatHmId"
)
Long
chatHmId
,
@Param
(
"groupChatId"
)
Long
groupChatId
);
public
int
updateStatus
(
@Param
(
"chatHmId"
)
Long
chatHmId
,
@Param
(
"groupChatId"
)
Long
groupChatId
,
@Param
(
"statusFlag"
)
int
statusFlag
);
public
List
<
TabGroupChatHmRelation
>
listByChatHmId
(
@Param
(
"chatHmId"
)
Long
chatHmId
);
/**
*
* @Title: listChatHmId
* @Description: 查询群关联的活码ID
* @author xugh
* @param groupChatId
* @return
* @throws
*/
public
List
<
Long
>
listChatHmId
(
@Param
(
"groupChatId"
)
Long
groupChatId
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatMapper.java
View file @
9c196b4c
...
...
@@ -33,6 +33,9 @@ public interface GroupChatMapper {
// 更新群状态
public
int
updateChatStatus
(
@Param
(
"groupChatId"
)
Long
groupChatId
,
@Param
(
"chatStatus"
)
int
chatStatus
);
// 更下线
public
int
chatOff
(
@Param
(
"groupChatId"
)
Long
groupChatId
);
public
TabGroupChat
selectById
(
Long
groupChatId
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/chat/TabGroupChat.java
View file @
9c196b4c
...
...
@@ -56,8 +56,17 @@ public class TabGroupChat implements Serializable{
private
String
wxChatIdDk
;
private
Date
offTime
;
private
String
originalStaffId
;
private
int
hmAddStatus
=
1
;
public
Date
getOffTime
()
{
public
int
getHmAddStatus
()
{
return
hmAddStatus
;
}
public
void
setHmAddStatus
(
int
hmAddStatus
)
{
this
.
hmAddStatus
=
hmAddStatus
;
}
public
Date
getOffTime
()
{
return
offTime
;
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/GroupChatDataService.java
View file @
9c196b4c
...
...
@@ -2,4 +2,13 @@ package com.gic.haoban.manage.service.service.chat;
public
interface
GroupChatDataService
{
/**
*
* @Title: chatDataTimer
* @Description: 统计
* @author xugh
* @param params
* @throws
*/
public
void
chatDataTimer
(
String
params
)
;
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/GroupChatHmService.java
View file @
9c196b4c
...
...
@@ -13,6 +13,15 @@ public interface GroupChatHmService {
GroupChatHmBO
getById
(
Long
hmId
);
public
Page
<
GroupChatHmBO
>
listPage
(
ChatHmSearchQDTO
qdto
,
BasePageInfo
basePageInfo
);
/**
*
* @Title: handleChatOff
* @Description: 群下线后活码处理
* @author xugh
* @param groupChat
* @throws
*/
public
void
handleChatOff
(
Long
groupChat
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/GroupChatService.java
View file @
9c196b4c
...
...
@@ -104,4 +104,5 @@ public interface GroupChatService {
* @throws
*/
public
void
transfer
(
String
wxEnterpriseId
,
String
staffId
,
List
<
Long
>
groupChatIdList
)
;
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatDataServiceImpl.java
View file @
9c196b4c
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatDataMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatOwnerMapper
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatData
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatDataService
;
import
com.gic.wechat.api.dto.qywx.chat.GroupChatQwDataDTO
;
import
com.gic.wechat.api.dto.qywx.chat.GroupChatQwDataItemDTO
;
import
com.gic.wechat.api.service.qywx.QywxChatApiService
;
@Service
public
class
GroupChatDataServiceImpl
implements
GroupChatDataService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
GroupChatDataService
.
class
);
@Autowired
private
QywxChatApiService
qywxChatApiService
;
@Autowired
private
WxEnterpriseService
wxEnterpriseService
;
@Autowired
private
Config
config
;
@Autowired
private
GroupChatOwnerMapper
groupChatOwnerMapper
;
@Autowired
private
GroupChatDataMapper
groupChatDataMapper
;
@Override
public
void
chatDataTimer
(
String
params
)
{
t
(
"f5f8c78e395e4ca1a493707316096097"
);
}
private
void
t
(
String
wxEnterpriseId
)
{
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
if
(
null
==
qwDTO
)
{
logger
.
info
(
"wxEnterpriseId不存在,id={}"
,
wxEnterpriseId
);
return
;
}
OwnerSearchQDTO
qdto
=
new
OwnerSearchQDTO
();
qdto
.
setWxEnterpriseId
(
wxEnterpriseId
);
List
<
GroupChatOwnerDTO
>
list
=
this
.
groupChatOwnerMapper
.
listOwner
(
qdto
);
List
<
String
>
userIdList
=
null
;
Map
<
String
,
String
>
staffIdMap
=
new
HashMap
<>();
if
(
qwDTO
.
needOpenUserId3th
())
{
userIdList
=
list
.
stream
().
map
(
dto
->
dto
.
getWxOpenUserId
()).
collect
(
Collectors
.
toList
());
staffIdMap
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
GroupChatOwnerDTO:
:
getWxOpenUserId
,
GroupChatOwnerDTO:
:
getStaffId
,
(
k1
,
k2
)
->
k1
));
}
else
{
userIdList
=
list
.
stream
().
map
(
dto
->
dto
.
getWxUserId
()).
collect
(
Collectors
.
toList
());
staffIdMap
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
GroupChatOwnerDTO:
:
getWxUserId
,
GroupChatOwnerDTO:
:
getStaffId
,
(
k1
,
k2
)
->
k1
));
}
Date
date
=
DateUtil
.
addDay
(
DateUtil
.
getStartTimeOfDay
(),
-
1
);
ServiceResponse
<
List
<
GroupChatQwDataDTO
>>
resp
=
this
.
qywxChatApiService
.
statistic
(
qwDTO
.
getThirdCorpid
(),
config
.
getWxSuiteid
(),
userIdList
,
date
.
getTime
()
/
1000
,
date
.
getTime
()
/
1000
);
logger
.
info
(
JSON
.
toJSONString
(
resp
));
List
<
GroupChatQwDataDTO
>
dataList
=
resp
.
getResult
();
if
(
CollectionUtils
.
isEmpty
(
dataList
))
{
return
;
}
for
(
GroupChatQwDataDTO
dto
:
dataList
)
{
String
userId
=
dto
.
getOwner
();
if
(
StringUtils
.
isEmpty
(
staffIdMap
.
get
(
userId
)))
{
continue
;
}
GroupChatQwDataItemDTO
item
=
dto
.
getData
();
TabGroupChatData
entity
=
new
TabGroupChatData
();
entity
.
setDataId
(
UniqueIdUtils
.
uniqueLong
());
entity
.
setDate
(
date
);
entity
.
setWxEnterpriseId
(
wxEnterpriseId
);
entity
.
setStaffId
(
staffIdMap
.
get
(
userId
));
entity
.
setMsgTotal
(
item
.
getMsg_total
());
entity
.
setChatHasMsg
(
item
.
getChat_has_msg
());
entity
.
setChatTotal
(
item
.
getChat_total
());
entity
.
setNewChatCnt
(
item
.
getNew_chat_cnt
());
entity
.
setMigrateTraineeChatCnt
(
item
.
getMigrate_trainee_chat_cnt
());
entity
.
setMemberHasMsg
(
item
.
getMember_has_msg
());
entity
.
setMemberTotal
(
item
.
getMember_total
());
entity
.
setNewMemberCnt
(
item
.
getNew_member_cnt
());
this
.
groupChatDataMapper
.
insert
(
entity
);
}
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatHmServiceImpl.java
View file @
9c196b4c
...
...
@@ -5,6 +5,7 @@ import java.util.HashSet;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -78,6 +79,56 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
}
@Override
public
void
handleChatOff
(
Long
groupChatId
)
{
List
<
Long
>
hmIdList
=
this
.
groupChatHmRelationMapper
.
listChatHmId
(
groupChatId
);
if
(
CollectionUtils
.
isEmpty
(
hmIdList
))
{
logger
.
info
(
"群下线,处理群活码,无关联活码,chatid={}"
,
groupChatId
);
return
;
}
for
(
Long
chatHmId
:
hmIdList
)
{
TabGroupChatHm
hm
=
this
.
groupChatHmMapper
.
selectById
(
chatHmId
);
if
(
null
==
hm
)
{
logger
.
info
(
"群活码不存在,chatHmId={}"
,
chatHmId
);
return
;
}
List
<
TabGroupChatHmRelation
>
chatRelation
=
this
.
groupChatHmRelationMapper
.
listByChatHmId
(
chatHmId
);
if
(
CollectionUtils
.
isEmpty
(
chatRelation
))
{
logger
.
info
(
"群活码无关联群,chatHmId={}"
,
chatHmId
);
break
;
}
String
wxEnterpriseId
=
hm
.
getWxEnterpriseId
();
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
SecretSettingDTO
secretSetting
=
secretSettingService
.
getSecretSetting
(
wxEnterpriseId
,
SecretTypeEnum
.
CUSTOMIZED_APP
.
getVal
());
if
(
null
==
secretSetting
)
{
logger
.
info
(
"没有配置代开应用"
);
}
String
configId
=
hm
.
getWxConfigId
();
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
))
{
}
}
@Override
public
void
saveHm
(
GroupChatHmDTO
dto
)
{
String
wxEnterpriseId
=
dto
.
getWxEnterpriseId
();
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
...
...
@@ -96,9 +147,10 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
}
dto
.
setChatHmId
(
hmid
);
dto
.
setChatHmCode
(
"HM10"
+
hmid
);
List
<
Long
>
chatidList
=
dto
.
getChatIdList
()
;
List
<
Long
>
chatidList
=
dto
.
getChatIdList
();
List
<
TabGroupChat
>
chatList
=
this
.
groupChatMapper
.
listByIdSet
(
new
HashSet
<>(
chatidList
));
List
<
String
>
wxChatidList
=
chatList
.
stream
().
filter
(
item
->
StringUtils
.
isNotBlank
(
item
.
getWxChatIdDk
())).
map
(
item
->
item
.
getWxChatIdDk
()).
collect
(
Collectors
.
toList
());
List
<
String
>
wxChatidList
=
chatList
.
stream
().
filter
(
item
->
StringUtils
.
isNotBlank
(
item
.
getWxChatIdDk
()))
.
map
(
item
->
item
.
getWxChatIdDk
()).
collect
(
Collectors
.
toList
());
logger
.
info
(
"企微群id={}"
,
wxChatidList
);
AddJoinWayDTO
joinDTO
=
new
AddJoinWayDTO
();
joinDTO
.
setScene
(
2
);
...
...
@@ -136,11 +188,11 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
hm
.
setWxQrCode
(
qrCode
);
this
.
groupChatHmMapper
.
insert
(
hm
);
// 保存realtion
for
(
TabGroupChat
item
:
chatList
)
{
TabGroupChatHmRelation
entity
=
EntityUtil
.
changeEntity
(
TabGroupChatHmRelation
.
class
,
item
)
;
for
(
TabGroupChat
item
:
chatList
)
{
TabGroupChatHmRelation
entity
=
EntityUtil
.
changeEntity
(
TabGroupChatHmRelation
.
class
,
item
);
entity
.
setChatHmId
(
hm
.
getChatHmId
());
entity
.
setRelationId
(
UniqueIdUtils
.
uniqueLong
());
this
.
groupChatHmRelationMapper
.
insert
(
entity
)
;
this
.
groupChatHmRelationMapper
.
insert
(
entity
);
}
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatServiceImpl.java
View file @
9c196b4c
...
...
@@ -53,6 +53,7 @@ import com.gic.haoban.manage.service.service.SecretSettingService;
import
com.gic.haoban.manage.service.service.StaffClerkRelationService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseRelatedService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatHmService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatService
;
import
com.gic.member.api.dto.MemberDTO
;
import
com.gic.member.api.service.MemberService
;
...
...
@@ -97,11 +98,15 @@ public class GroupChatServiceImpl implements GroupChatService {
private
GroupChatOwnerHistoryMapper
groupChatOwnerHistoryMapper
;
@Autowired
private
WxEnterpriseRelatedService
wxEnterpriseRelatedService
;
@Autowired
private
GroupChatHmService
groupChatHmService
;
// 每次拉取成员数
private
int
pageSize
=
10
;
// 每次拉取群数
private
int
limit
=
1
;
// 群下线成员数
private
int
offNum
=
200
;
@Override
public
void
createChat
(
String
corpid
,
String
wxChatId
)
{
...
...
@@ -115,6 +120,7 @@ public class GroupChatServiceImpl implements GroupChatService {
@Override
public
void
dismissChat
(
String
corpid
,
String
wxChatId
)
{
logger
.
info
(
"解散群corpid={},wxChatId={}"
,
corpid
,
wxChatId
);
String
wxEnterpriseId
=
this
.
getWxEnterpriesId
(
corpid
);
if
(
null
==
wxEnterpriseId
)
{
return
;
...
...
@@ -201,8 +207,9 @@ public class GroupChatServiceImpl implements GroupChatService {
@Override
public
void
handChatNotice
(
String
params
)
{
List
<
TabChatNotice
>
list
=
this
.
chatNoticeMapper
.
listAll
();
this
.
chatNoticeMapper
.
closeAll
();
// 处理群通知
List
<
TabChatNotice
>
list
=
this
.
chatNoticeMapper
.
listAll
(
Arrays
.
asList
(
1
,
2
,
3
));
this
.
chatNoticeMapper
.
closeAll
(
Arrays
.
asList
(
1
,
2
,
3
));
for
(
TabChatNotice
item
:
list
)
{
int
type
=
item
.
getType
();
String
wxEnterpriseId
=
item
.
getWxEnterpriseId
();
...
...
@@ -218,6 +225,7 @@ public class GroupChatServiceImpl implements GroupChatService {
this
.
updateGroupChatDetail
(
qwDTO
,
groupChatId
,
true
);
}
}
}
@Override
...
...
@@ -434,6 +442,9 @@ public class GroupChatServiceImpl implements GroupChatService {
return
;
}
List
<
GroupChatDetailMemberDTO
>
memberList
=
detail
.
getMember_list
();
if
(
CollectionUtils
.
isNotEmpty
(
memberList
)
&&
memberList
.
size
()
>=
offNum
)
{
this
.
chatOff
(
chat
);
}
List
<
TabGroupChatUser
>
userList
=
new
ArrayList
<>();
List
<
TabGroupChatUser
>
allUserList
=
this
.
groupChatUserMapper
.
listAllChatUser
(
wxEnterpriseId
,
groupChatId
);
Map
<
String
,
TabGroupChatUser
>
userMap
=
allUserList
.
stream
()
...
...
@@ -640,7 +651,7 @@ public class GroupChatServiceImpl implements GroupChatService {
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
if
(
null
==
qwDTO
)
{
logger
.
info
(
"wxEnterpriseId不存在,id={}"
,
wxEnterpriseId
);
return
;
return
;
}
TabHaobanStaff
staff
=
this
.
staffMapper
.
selectByPrimaryKey
(
staffId
);
String
userid
=
staff
.
getWxUserId
();
...
...
@@ -651,6 +662,15 @@ public class GroupChatServiceImpl implements GroupChatService {
List
<
String
>
wxChatIdList
=
list
.
stream
().
map
(
dto
->
dto
.
getWxChatId
()).
collect
(
Collectors
.
toList
());
ServiceResponse
<
List
<
FailChatListDTO
>>
resp
=
this
.
qywxChatApiService
.
transfer
(
qwDTO
.
getThirdCorpid
(),
config
.
getWxSuiteid
(),
wxChatIdList
,
userid
);
logger
.
info
(
"群继承={}"
,
JSON
.
toJSONString
(
resp
));
logger
.
info
(
"群继承={}"
,
JSON
.
toJSONString
(
resp
));
}
// 群下线
private
void
chatOff
(
TabGroupChat
chat
)
{
Long
groupChatId
=
chat
.
getGroupChatId
();
// 群下线
this
.
groupChatMapper
.
chatOff
(
groupChatId
);
// 通知处理群活码
this
.
groupChatHmService
.
handleChatOff
(
groupChatId
);
}
}
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/chat/ChatNoticeMapper.xml
View file @
9c196b4c
...
...
@@ -51,10 +51,19 @@
status_flag=1,
update_time=now()
where create_time > DATE_ADD(NOW(),INTERVAL -30 MINUTE)
and type in
<foreach
collection=
"list"
close=
")"
index=
"index"
item=
"type"
open=
"("
separator=
","
>
#{type}
</foreach>
</update>
<select
id=
"listAll"
resultMap=
"result-map-tabHaobanChatNotice"
>
select wx_enterprise_id wxEnterpriseId , chat_id chatId , type from tab_haoban_chat_notice where create_time > DATE_ADD(NOW(),INTERVAL -30 MINUTE) and status_flag = 0
and type in
<foreach
collection=
"list"
close=
")"
index=
"index"
item=
"type"
open=
"("
separator=
","
>
#{type}
</foreach>
group by wx_enterprise_id , chat_id , type
</select>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatDataMapper.xml
View file @
9c196b4c
...
...
@@ -52,24 +52,25 @@
migrate_trainee_chat_cnt,
create_time
)VALUES(
#{dataId
,jdbcType=BIGINT
},
#{wxEnterpriseId
,jdbcType=CHAR
},
#{staffId
,jdbcType=CHAR
},
#{date
,jdbcType=DATE
},
#{newChatCnt
,jdbcType=INTEGER
},
#{chatTotal
,jdbcType=INTEGER
},
#{chatHasMsg
,jdbcType=INTEGER
},
#{newMemberCnt
,jdbcType=INTEGER
},
#{memberTotal
,jdbcType=INTEGER
},
#{memberHasMsg
,jdbcType=INTEGER
},
#{msgTotal
,jdbcType=INTEGER
},
#{migrateTraineeChatCnt
,jdbcType=INTEGER
},
#{createTime,jdbcType=TIMESTAMP}
#{dataId},
#{wxEnterpriseId},
#{staffId},
#{date},
#{newChatCnt},
#{chatTotal},
#{chatHasMsg},
#{newMemberCnt},
#{memberTotal},
#{memberHasMsg},
#{msgTotal},
#{migrateTraineeChatCnt},
now()
)
]]>
</insert>
<select
id=
"listByParams"
parameterType=
"java.util.Map"
resultMap=
"result-map-tabHaobanGroupChatData"
>
<select
id=
"listByParams"
parameterType=
"java.util.Map"
resultMap=
"result-map-tabHaobanGroupChatData"
>
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_group_chat_data
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatHmRelationMapper.xml
View file @
9c196b4c
...
...
@@ -74,6 +74,12 @@
<select
id=
"listByChatHmId"
resultMap=
"result-map-tabHaobanGroupChatHmRelation"
>
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_group_chat_hm_relation where chat_hm_id = #{chatHmId} and delete_flag = 0
from tab_haoban_group_chat_hm_relation where chat_hm_id = #{chatHmId} and delete_flag = 0 and status_flag = 1
</select>
<select
id=
"listChatHmId"
resultMap=
"result-map-tabHaobanGroupChatHmRelation"
resultType=
"long"
>
select
distinct(chat_hm_id)
from tab_haoban_group_chat_hm_relation where group_chat_id = #{groupChatId} and delete_flag = 0
</select>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatMapper.xml
View file @
9c196b4c
...
...
@@ -27,6 +27,7 @@
<result
column=
"wx_chat_id_dk"
property=
"wxChatIdDk"
/>
<result
column=
"off_time"
property=
"offTime"
/>
<result
column=
"original_staff_id"
property=
"originalStaffId"
/>
<result
column=
"hm_add_status"
property=
"hmAddStatus"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
group_chat_id,
...
...
@@ -48,7 +49,7 @@
quit_count,
quit_member_count,
enterprise_id,
gic_flag , init_flag , wx_chat_id_dk , off_time, original_staff_id
gic_flag , init_flag , wx_chat_id_dk , off_time, original_staff_id
, hm_add_status
</sql>
<!-- ===================== 新增 ======================== -->
<insert
id=
"insert"
...
...
@@ -74,7 +75,7 @@
quit_count,
quit_member_count,
enterprise_id,
gic_flag , init_flag , original_staff_id
gic_flag , init_flag , original_staff_id
, hm_add_status
)VALUES(
#{groupChatId},
#{wxEnterpriseId},
...
...
@@ -95,7 +96,7 @@
#{quitCount},
#{quitMemberCount},
#{enterpriseId},
#{gicFlag} , #{initFlag} , #{originalStaffId}
#{gicFlag} , #{initFlag} , #{originalStaffId}
, 1
)
]]>
</insert>
...
...
@@ -124,13 +125,16 @@
</update>
<update
id=
"updateChatStatus"
>
update tab_haoban_group_chat set chat_status = #{chatStatus}
,
update tab_haoban_group_chat set chat_status = #{chatStatus}
<if
test=
"chatStatus==4"
>
and
chat_dissolve_time = now()
,
chat_dissolve_time = now()
</if>
update_time =now() where group_chat_id = #{groupChatId}
,
update_time =now() where group_chat_id = #{groupChatId}
</update>
<update
id=
"chatOff"
>
update tab_haoban_group_chat set hm_add_status = 2 , off_time = now() , update_time =now() where group_chat_id = #{groupChatId} and total_count >= 200
</update>
<!-- ============ 查询============= -->
<select
id=
"selectById"
parameterType=
"long"
...
...
@@ -178,6 +182,18 @@
<if
test=
"null != staffId"
>
and staff_id = #{staffId}
</if>
<if
test=
"null == status or 0==status"
>
and chat_status in (0,3)
</if>
<if
test=
"null != status and 1==status"
>
and chat_status = 1
</if>
<if
test=
"null != status and 2==status"
>
and chat_status = 2
</if>
<if
test=
"null != status and 4==status"
>
and chat_status = 4
</if>
</select>
<update
id=
"updateChatEnterpriseId"
>
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatOwnerMapper.xml
View file @
9c196b4c
...
...
@@ -51,11 +51,18 @@
<select
id=
"listOwner"
parameterType=
"com.gic.haoban.manage.api.dto.qdto.chat.OwnerSearchQDTO"
resultType=
"com.gic.haoban.manage.api.dto.chat.GroupChatOwnerDTO"
>
SELECT a.staff_id staffId , b.`staff_name` staffName , a.wx_enterprise_id wxEnterpriseId
SELECT a.staff_id staffId , b.`staff_name` staffName , a.wx_enterprise_id wxEnterpriseId ,
b.wx_user_id wxUserId , b.wx_open_user_id wxOpenUserId
FROM tab_haoban_group_chat_owner a LEFT JOIN tab_haoban_staff b ON a.`staff_id` = b.`staff_id`
where a.wx_enterprise_id=#{wxEnterpriseId}
<if
test=
"null != searchParams"
>
and b.staff_name like '%${searchParams}%'
</if>
<if
test=
"status==1"
>
and b.status_flag = 1
</if>
<if
test=
"status==2"
>
and b.status_flag = 0
</if>
</select>
</mapper>
\ No newline at end of file
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