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
8e781fe8
Commit
8e781fe8
authored
Mar 31, 2025
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
客户群导出
parent
5168c08d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
415 additions
and
0 deletions
+415
-0
GroupChatUserSearchQDTO.java
...ban/manage/api/dto/qdto/chat/GroupChatUserSearchQDTO.java
+15
-0
GroupChatController.java
...aoban/manage/web/controller/chat/GroupChatController.java
+0
-0
GroupChatUserExcelHandler.java
...manage/web/controller/chat/GroupChatUserExcelHandler.java
+105
-0
GroupChatUserQuitExcelHandler.java
...ge/web/controller/chat/GroupChatUserQuitExcelHandler.java
+88
-0
LinkDataExcelHandler.java
...haoban/manage/web/controller/hm/LinkDataExcelHandler.java
+2
-0
GroupChatUserExcelVO.java
...m/gic/haoban/manage/web/vo/chat/GroupChatUserExcelVO.java
+66
-0
GroupChatUserQuitExcelVO.java
...c/haoban/manage/web/vo/chat/GroupChatUserQuitExcelVO.java
+139
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/qdto/chat/GroupChatUserSearchQDTO.java
View file @
8e781fe8
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
qdto
.
chat
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -22,6 +24,11 @@ public class GroupChatUserSearchQDTO implements Serializable {
private
Integer
status
=
1
;
private
String
wxChatId
;
/**
* 下载导出参数:数据脱敏 1:脱敏 2:完整
*/
private
Integer
dataType
=
1
;
public
List
<
String
>
getStaffIdList
()
{
return
staffIdList
;
}
...
...
@@ -30,6 +37,14 @@ public class GroupChatUserSearchQDTO implements Serializable {
this
.
staffIdList
=
staffIdList
;
}
public
Integer
getDataType
()
{
return
dataType
;
}
public
void
setDataType
(
Integer
dataType
)
{
this
.
dataType
=
dataType
;
}
public
String
getWxChatId
()
{
return
wxChatId
;
}
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/chat/GroupChatController.java
View file @
8e781fe8
This diff is collapsed.
Click to expand it.
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/chat/GroupChatUserExcelHandler.java
0 → 100644
View file @
8e781fe8
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
chat
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO
;
import
com.gic.haoban.manage.api.service.chat.GroupChatApiService
;
import
com.gic.haoban.manage.web.controller.moment.QwMomentController
;
import
com.gic.haoban.manage.web.vo.chat.GroupChatUserExcelVO
;
import
com.gic.haoban.manage.web.vo.moment.MomentDataExcelVO
;
import
com.gic.member.api.dto.es.MemberDataDTO
;
import
com.gic.web.common.download.DownloadHandlerAbstract
;
import
com.gic.web.common.download.context.Context
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
public
class
GroupChatUserExcelHandler
extends
DownloadHandlerAbstract
<
GroupChatUserExcelVO
>
{
@Autowired
private
GroupChatApiService
groupChatApiService
;
@Autowired
private
QwMomentController
qwMomentController
;
@Override
public
List
<
GroupChatUserExcelVO
>
getData
(
Context
context
,
String
searchDataParams
,
Integer
currentPage
)
{
GroupChatUserSearchQDTO
qdto
=
JSON
.
parseObject
(
searchDataParams
,
GroupChatUserSearchQDTO
.
class
);
BasePageInfo
basePageInfo
=
new
BasePageInfo
()
;
basePageInfo
.
setPageSize
(
this
.
getPageSize
());
basePageInfo
.
setPageNum
(
currentPage
);
ServiceResponse
<
Page
<
GroupChatUserDTO
>>
resp
=
this
.
groupChatApiService
.
listUserPage
(
qdto
,
basePageInfo
);
List
<
GroupChatUserExcelVO
>
voList
=
new
ArrayList
<>()
;
for
(
GroupChatUserDTO
dto
:
resp
.
getResult
().
getResult
())
{
GroupChatUserExcelVO
vo
=
EntityUtil
.
changeEntityByJSON
(
GroupChatUserExcelVO
.
class
,
dto
);
vo
.
setAddTimeExcel
(
DateUtil
.
dateToStr
(
dto
.
getJoinTime
(),
"yyyy-MM-dd HH:mm:ss"
));
if
(
dto
.
getUserType
()
==
1
)
{
vo
.
setUserTypeExcel
(
"企业成员"
);
}
else
if
(
dto
.
getUserType
()
==
2
)
{
vo
.
setUserTypeExcel
(
"外部成员"
);
}
else
{
vo
.
setUserTypeExcel
(
"客户"
);
}
Integer
joinScene
=
dto
.
getJoinScene
();
if
(
null
!=
joinScene
)
{
String
invitor_user_name
=
dto
.
getInvitorUserName
();
if
(
StringUtils
.
isBlank
(
invitor_user_name
))
{
invitor_user_name
=
"群成员"
;
}
if
(
joinScene
==
1
)
{
// 由群成员邀请入群(直接邀请入群)
vo
.
setSceneExcel
(
String
.
format
(
"由%s直接邀请入群"
,
invitor_user_name
));
}
else
if
(
joinScene
==
2
)
{
// 由群成员邀请入群(通过邀请链接入群)
vo
.
setSceneExcel
(
String
.
format
(
"通过%s分享链接入群"
,
invitor_user_name
));
}
else
if
(
joinScene
==
3
)
{
// 通过扫描群二维码入群
vo
.
setSceneExcel
(
String
.
format
(
"通过扫描%s分享的二维码入群"
,
invitor_user_name
));
}
voList
.
add
(
vo
);
}
}
List
<
String
>
memberIdList
=
voList
.
stream
().
filter
(
o
->
StringUtils
.
isNotBlank
(
o
.
getMemberId
())).
map
(
o
->
o
.
getMemberId
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
memberIdList
))
{
Map
<
String
,
MemberDataDTO
>
map
=
this
.
qwMomentController
.
getMemberMap
(
qdto
.
getEnterpriseId
(),
memberIdList
)
;
for
(
GroupChatUserExcelVO
vo
:
voList
)
{
String
memberId
=
vo
.
getMemberId
()
;
if
(
null
==
map
.
get
(
memberId
))
{
vo
.
setMemberScene
(
2
);
}
else
{
MemberDataDTO
data
=
map
.
get
(
memberId
)
;
vo
.
setMemberName
(
data
.
getName
());
vo
.
setMemberNick
(
data
.
getNickName
());
vo
.
setMemberCard
(
data
.
getCardNo
());
vo
.
setMemberPhone
(
data
.
getPhoneNumber
());
vo
.
setMemberScene
(
3
);
}
}
}
return
voList
;
}
@Override
public
List
<
String
>
getColumnNames
()
{
return
Arrays
.
asList
(
"群成员名称"
,
"群成员昵称"
,
"身份"
,
"客户姓名"
,
"客户昵称"
,
"手机号"
,
"卡号"
,
"入群方式"
,
"入群时间"
);
}
@Override
public
LinkedHashMap
<
String
,
List
<
String
>>
doubleColumnNames
()
{
return
null
;
}
@Override
public
List
<
String
>
getColumns
()
{
return
Arrays
.
asList
(
"userName"
,
"nickName"
,
"userTypeExcel"
,
"memberName"
,
"memberNick"
,
"memberPhone"
,
"memberCard"
,
"sceneExcel"
,
"addTimeExcel"
);
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/chat/GroupChatUserQuitExcelHandler.java
0 → 100644
View file @
8e781fe8
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
chat
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO
;
import
com.gic.haoban.manage.api.service.chat.GroupChatApiService
;
import
com.gic.haoban.manage.web.controller.moment.QwMomentController
;
import
com.gic.haoban.manage.web.vo.chat.GroupChatUserExcelVO
;
import
com.gic.haoban.manage.web.vo.chat.GroupChatUserQuitExcelVO
;
import
com.gic.member.api.dto.es.MemberDataDTO
;
import
com.gic.web.common.download.DownloadHandlerAbstract
;
import
com.gic.web.common.download.context.Context
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
public
class
GroupChatUserQuitExcelHandler
extends
DownloadHandlerAbstract
<
GroupChatUserQuitExcelVO
>
{
@Autowired
private
GroupChatApiService
groupChatApiService
;
@Autowired
private
QwMomentController
qwMomentController
;
@Override
public
List
<
GroupChatUserQuitExcelVO
>
getData
(
Context
context
,
String
searchDataParams
,
Integer
currentPage
)
{
GroupChatUserSearchQDTO
qdto
=
JSON
.
parseObject
(
searchDataParams
,
GroupChatUserSearchQDTO
.
class
);
BasePageInfo
basePageInfo
=
new
BasePageInfo
()
;
basePageInfo
.
setPageSize
(
this
.
getPageSize
());
basePageInfo
.
setPageNum
(
currentPage
);
ServiceResponse
<
Page
<
GroupChatUserDTO
>>
resp
=
this
.
groupChatApiService
.
listUserPage
(
qdto
,
basePageInfo
);
List
<
GroupChatUserQuitExcelVO
>
voList
=
new
ArrayList
<>()
;
for
(
GroupChatUserDTO
dto
:
resp
.
getResult
().
getResult
())
{
GroupChatUserQuitExcelVO
vo
=
EntityUtil
.
changeEntityByJSON
(
GroupChatUserQuitExcelVO
.
class
,
dto
);
vo
.
setUserQuitTimeExcel
(
DateUtil
.
dateToStr
(
dto
.
getUserQuitTime
(),
"yyyy-MM-dd HH:mm:ss"
));
if
(
dto
.
getUserType
()==
1
)
{
vo
.
setUserTypeExcel
(
"企业成员"
);
}
else
if
(
dto
.
getUserType
()==
2
)
{
vo
.
setUserTypeExcel
(
"外部成员"
);
}
else
{
vo
.
setUserTypeExcel
(
"客户"
);
}
voList
.
add
(
vo
);
}
List
<
String
>
memberIdList
=
voList
.
stream
().
filter
(
o
->
StringUtils
.
isNotBlank
(
o
.
getMemberId
())).
map
(
o
->
o
.
getMemberId
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
memberIdList
))
{
Map
<
String
,
MemberDataDTO
>
map
=
this
.
qwMomentController
.
getMemberMap
(
qdto
.
getEnterpriseId
(),
memberIdList
)
;
for
(
GroupChatUserQuitExcelVO
vo
:
voList
)
{
String
memberId
=
vo
.
getMemberId
()
;
if
(
null
==
map
.
get
(
memberId
))
{
vo
.
setMemberScene
(
2
);
}
else
{
MemberDataDTO
data
=
map
.
get
(
memberId
)
;
vo
.
setMemberName
(
data
.
getName
());
vo
.
setMemberNick
(
data
.
getNickName
());
vo
.
setMemberCard
(
data
.
getCardNo
());
vo
.
setMemberPhone
(
data
.
getPhoneNumber
());
vo
.
setMemberScene
(
3
);
}
}
}
return
voList
;
}
@Override
public
List
<
String
>
getColumnNames
()
{
return
Arrays
.
asList
(
"群成员姓名"
,
"群成员昵称"
,
"身份"
,
"客户姓名"
,
"客户昵称"
,
"手机号"
,
"卡号"
,
"群名称"
,
"群主"
,
"群主关联门店"
,
"退群时间"
);
}
@Override
public
LinkedHashMap
<
String
,
List
<
String
>>
doubleColumnNames
()
{
return
null
;
}
@Override
public
List
<
String
>
getColumns
()
{
return
Arrays
.
asList
(
"userName"
,
"nickName"
,
"userTypeExcel"
,
"memberName"
,
"memberNick"
,
"memberPhone"
,
"memberCard"
,
"chatName"
,
"staffName"
,
"quitStaffStore"
,
"userQuitTimeExcel"
);
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/hm/LinkDataExcelHandler.java
View file @
8e781fe8
...
...
@@ -12,9 +12,11 @@ import com.gic.web.common.download.DownloadHandlerAbstract;
import
com.gic.web.common.download.context.Context
;
import
com.gic.web.common.utils.DataApiUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
public
class
LinkDataExcelHandler
extends
DownloadHandlerAbstract
<
LinkDataExcelVO
>
{
@Override
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/chat/GroupChatUserExcelVO.java
View file @
8e781fe8
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
chat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer
;
import
com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer
;
import
com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer
;
import
java.io.Serializable
;
/**
...
...
@@ -30,6 +35,67 @@ public class GroupChatUserExcelVO implements Serializable {
private
String
sceneExcel
;
private
String
addTimeExcel
;
private
String
memberId
;
private
String
memberNick
;
@JsonSerialize
(
using
=
UserNameJsonSeralizer
.
class
)
private
String
memberName
;
@JsonSerialize
(
using
=
PhoneNumberJsonSeralizer
.
class
)
private
String
memberPhone
;
@JsonSerialize
(
using
=
CardNoJsonSeralizer
.
class
)
private
String
memberCard
;
/**
* 1:非会员 2:会员已注销 3:正常
*/
private
Integer
memberScene
;
public
Integer
getMemberScene
()
{
return
memberScene
;
}
public
void
setMemberScene
(
Integer
memberScene
)
{
this
.
memberScene
=
memberScene
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getMemberNick
()
{
return
memberNick
;
}
public
void
setMemberNick
(
String
memberNick
)
{
this
.
memberNick
=
memberNick
;
}
public
String
getMemberName
()
{
return
memberName
;
}
public
void
setMemberName
(
String
memberName
)
{
this
.
memberName
=
memberName
;
}
public
String
getMemberPhone
()
{
return
memberPhone
;
}
public
void
setMemberPhone
(
String
memberPhone
)
{
this
.
memberPhone
=
memberPhone
;
}
public
String
getMemberCard
()
{
return
memberCard
;
}
public
void
setMemberCard
(
String
memberCard
)
{
this
.
memberCard
=
memberCard
;
}
public
String
getUserTypeExcel
()
{
return
userTypeExcel
;
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/chat/GroupChatUserQuitExcelVO.java
0 → 100644
View file @
8e781fe8
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
chat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer
;
import
com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer
;
import
com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer
;
import
java.io.Serializable
;
public
class
GroupChatUserQuitExcelVO
implements
Serializable
{
/**1企业成员2外部联系人3客户*/
private
String
userTypeExcel
;
/**姓名*/
private
String
userName
;
/**昵称*/
private
String
nickName
;
/**用户退群时间*/
private
String
userQuitTimeExcel
;
private
String
chatName
;
private
String
staffName
;
private
String
quitStaffStore
;
private
String
memberId
;
private
String
memberNick
;
@JsonSerialize
(
using
=
UserNameJsonSeralizer
.
class
)
private
String
memberName
;
@JsonSerialize
(
using
=
PhoneNumberJsonSeralizer
.
class
)
private
String
memberPhone
;
@JsonSerialize
(
using
=
CardNoJsonSeralizer
.
class
)
private
String
memberCard
;
private
Integer
memberScene
;
public
String
getUserTypeExcel
()
{
return
userTypeExcel
;
}
public
void
setUserTypeExcel
(
String
userTypeExcel
)
{
this
.
userTypeExcel
=
userTypeExcel
;
}
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
}
public
String
getUserQuitTimeExcel
()
{
return
userQuitTimeExcel
;
}
public
void
setUserQuitTimeExcel
(
String
userQuitTimeExcel
)
{
this
.
userQuitTimeExcel
=
userQuitTimeExcel
;
}
public
String
getChatName
()
{
return
chatName
;
}
public
void
setChatName
(
String
chatName
)
{
this
.
chatName
=
chatName
;
}
public
String
getStaffName
()
{
return
staffName
;
}
public
void
setStaffName
(
String
staffName
)
{
this
.
staffName
=
staffName
;
}
public
String
getQuitStaffStore
()
{
return
quitStaffStore
;
}
public
void
setQuitStaffStore
(
String
quitStaffStore
)
{
this
.
quitStaffStore
=
quitStaffStore
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getMemberNick
()
{
return
memberNick
;
}
public
void
setMemberNick
(
String
memberNick
)
{
this
.
memberNick
=
memberNick
;
}
public
String
getMemberName
()
{
return
memberName
;
}
public
void
setMemberName
(
String
memberName
)
{
this
.
memberName
=
memberName
;
}
public
String
getMemberPhone
()
{
return
memberPhone
;
}
public
void
setMemberPhone
(
String
memberPhone
)
{
this
.
memberPhone
=
memberPhone
;
}
public
String
getMemberCard
()
{
return
memberCard
;
}
public
void
setMemberCard
(
String
memberCard
)
{
this
.
memberCard
=
memberCard
;
}
public
Integer
getMemberScene
()
{
return
memberScene
;
}
public
void
setMemberScene
(
Integer
memberScene
)
{
this
.
memberScene
=
memberScene
;
}
}
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