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
6208acb9
Commit
6208acb9
authored
Oct 17, 2024
by
王祖波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
社群活动邀请逻辑
parent
a4094846
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
1085 additions
and
98 deletions
+1085
-98
GroupChatActivityJoinDTO.java
.../haoban/manage/api/dto/chat/GroupChatActivityJoinDTO.java
+5
-3
GroupChatActivityRewardBaseDTO.java
...n/manage/api/dto/chat/GroupChatActivityRewardBaseDTO.java
+3
-2
GroupChatActivityRewardDetailDTO.java
...manage/api/dto/chat/GroupChatActivityRewardDetailDTO.java
+1
-1
GroupChatActivityRewardDetailLogDTO.java
...age/api/dto/chat/GroupChatActivityRewardDetailLogDTO.java
+1
-1
GroupChatActivityShareQDTO.java
...oban/manage/api/qdto/chat/GroupChatActivityShareQDTO.java
+44
-0
HaobanTimerApiService.java
.../gic/haoban/manage/api/service/HaobanTimerApiService.java
+5
-0
JoinRuleManager.java
...c/haoban/manage/service/context/chat/JoinRuleManager.java
+49
-1
RewardSender.java
.../gic/haoban/manage/service/context/chat/RewardSender.java
+136
-0
GroupChatActivityInviteLogMapper.java
...ice/dao/mapper/chat/GroupChatActivityInviteLogMapper.java
+1
-34
GroupChatActivityRewardDetailLogMapper.java
...o/mapper/chat/GroupChatActivityRewardDetailLogMapper.java
+0
-8
TabGroupChatActivityInviteLog.java
...ge/service/entity/chat/TabGroupChatActivityInviteLog.java
+12
-0
TabGroupChatActivityReward.java
...anage/service/entity/chat/TabGroupChatActivityReward.java
+2
-2
TabGroupChatActivityRewardDetailLog.java
...vice/entity/chat/TabGroupChatActivityRewardDetailLog.java
+1
-1
RewardReturnBO.java
...com/gic/haoban/manage/service/pojo/bo/RewardReturnBO.java
+38
-0
GroupChatActivityBaseContext.java
...ge/service/pojo/bo/chat/GroupChatActivityBaseContext.java
+75
-0
GroupChatActivityContext.java
...manage/service/pojo/bo/chat/GroupChatActivityContext.java
+37
-0
GroupChatActivityInviteLogService.java
...rvice/service/chat/GroupChatActivityInviteLogService.java
+15
-0
GroupChatActivityRewardLogService.java
...rvice/service/chat/GroupChatActivityRewardLogService.java
+8
-0
GroupChatActivityInviteLogServiceImpl.java
...vice/chat/impl/GroupChatActivityInviteLogServiceImpl.java
+302
-4
GroupChatActivityJoinServiceImpl.java
...e/service/chat/impl/GroupChatActivityJoinServiceImpl.java
+2
-2
GroupChatActivityRewardLogServiceImpl.java
...vice/chat/impl/GroupChatActivityRewardLogServiceImpl.java
+152
-6
GroupChatServiceImpl.java
...anage/service/service/chat/impl/GroupChatServiceImpl.java
+4
-0
HaobanTimerApiServiceImpl.java
...e/service/service/out/impl/HaobanTimerApiServiceImpl.java
+9
-0
ExecuteServiceUtil.java
...om/gic/haoban/manage/service/util/ExecuteServiceUtil.java
+26
-0
GroupChatActivityInviteLogMapper.xml
...esources/mapper/chat/GroupChatActivityInviteLogMapper.xml
+9
-21
GroupChatActivityRewardDetailLogMapper.xml
...es/mapper/chat/GroupChatActivityRewardDetailLogMapper.xml
+0
-12
GroupChatTest.java
haoban-manage3-service/src/test/java/GroupChatTest.java
+148
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/GroupChatActivityJoinDTO.java
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
chat
;
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
chat
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.google.common.base.Objects
;
import
com.google.common.base.Objects
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -17,12 +19,12 @@ public class GroupChatActivityJoinDTO implements Serializable {
...
@@ -17,12 +19,12 @@ public class GroupChatActivityJoinDTO implements Serializable {
/**
/**
* 社群活动入群规则id
* 社群活动入群规则id
*/
*/
@Json
IgnoreProperties
(
ignoreUnknown
=
true
)
@Json
Serialize
(
using
=
ToStringSerializer
.
class
)
private
Long
chatActivityJoinId
;
private
Long
chatActivityJoinId
;
/**
/**
* 内容活动id
* 内容活动id
*/
*/
@Json
IgnoreProperties
(
ignoreUnknown
=
true
)
@Json
Serialize
(
using
=
ToStringSerializer
.
class
)
private
Long
chatActivityId
;
private
Long
chatActivityId
;
/**
/**
* 会员类型(0:会员筛选,1:会员分组)
* 会员类型(0:会员筛选,1:会员分组)
...
@@ -43,7 +45,7 @@ public class GroupChatActivityJoinDTO implements Serializable {
...
@@ -43,7 +45,7 @@ public class GroupChatActivityJoinDTO implements Serializable {
/**
/**
* 群活码id
* 群活码id
*/
*/
@Json
IgnoreProperties
(
ignoreUnknown
=
true
)
@Json
Serialize
(
using
=
ToStringSerializer
.
class
)
private
Long
chatHmId
;
private
Long
chatHmId
;
public
Long
getChatActivityJoinId
()
{
public
Long
getChatActivityJoinId
()
{
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/GroupChatActivityRewardBaseDTO.java
View file @
6208acb9
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.api.dto.chat;
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.api.dto.chat;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.google.common.base.Objects
;
import
com.google.common.base.Objects
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -52,7 +53,7 @@ public class GroupChatActivityRewardBaseDTO implements Serializable {
...
@@ -52,7 +53,7 @@ public class GroupChatActivityRewardBaseDTO implements Serializable {
*/
*/
private
String
rewardValue
;
private
String
rewardValue
;
/**
/**
* 奖励名称 积分名称 成长值名称 卡券名称
(逗号分隔)
* 奖励名称 积分名称 成长值名称 卡券名称
*/
*/
private
String
rewardName
;
private
String
rewardName
;
...
@@ -157,7 +158,7 @@ public class GroupChatActivityRewardBaseDTO implements Serializable {
...
@@ -157,7 +158,7 @@ public class GroupChatActivityRewardBaseDTO implements Serializable {
.
collect
(
Collectors
.
groupingBy
(
.
collect
(
Collectors
.
groupingBy
(
GroupChatActivityRewardBaseDTO:
:
getRewardInvite
,
GroupChatActivityRewardBaseDTO:
:
getRewardInvite
,
Collectors
.
collectingAndThen
(
Collectors
.
collectingAndThen
(
Collectors
.
groupingBy
(
baseDTO
->
Arrays
.
as
List
(
baseDTO
.
getChatActivityId
(),
baseDTO
.
getInviteLevel
())),
Collectors
.
groupingBy
(
baseDTO
->
Lists
.
newArray
List
(
baseDTO
.
getChatActivityId
(),
baseDTO
.
getInviteLevel
())),
chatActivityGroups
->
chatActivityGroups
.
values
().
stream
()
chatActivityGroups
->
chatActivityGroups
.
values
().
stream
()
.
map
(
group
->
{
.
map
(
group
->
{
GroupChatActivityRewardBaseDTO
firstDTO
=
group
.
get
(
0
);
GroupChatActivityRewardBaseDTO
firstDTO
=
group
.
get
(
0
);
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/GroupChatActivityRewardDetailDTO.java
View file @
6208acb9
...
@@ -23,7 +23,7 @@ public class GroupChatActivityRewardDetailDTO implements Serializable {
...
@@ -23,7 +23,7 @@ public class GroupChatActivityRewardDetailDTO implements Serializable {
*/
*/
private
String
rewardValue
;
private
String
rewardValue
;
/**
/**
* 奖励名称 积分名称 成长值名称 卡券名称
(逗号分隔)
* 奖励名称 积分名称 成长值名称 卡券名称
*/
*/
private
String
rewardName
;
private
String
rewardName
;
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/GroupChatActivityRewardDetailLogDTO.java
View file @
6208acb9
...
@@ -42,7 +42,7 @@ public class GroupChatActivityRewardDetailLogDTO implements Serializable {
...
@@ -42,7 +42,7 @@ public class GroupChatActivityRewardDetailLogDTO implements Serializable {
private
Integer
rewardType
;
private
Integer
rewardType
;
/**
/**
* 奖励内容 积分值 成长值 卡券id
* 奖励内容 积分值 成长值 卡券id
(逗号分隔)
*/
*/
private
String
rewardValue
;
private
String
rewardValue
;
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/qdto/chat/GroupChatActivityShareQDTO.java
0 → 100644
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
api
.
qdto
.
chat
;
import
java.io.Serializable
;
public
class
GroupChatActivityShareQDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
28454620622119889L
;
/**
* 社群活动id
*/
private
Long
chatActivityId
;
/**
* 邀请人会员ID
*/
private
String
inviterMemberId
;
/**
* 企业ID
*/
private
String
enterpriseId
;
public
Long
getChatActivityId
()
{
return
chatActivityId
;
}
public
void
setChatActivityId
(
Long
chatActivityId
)
{
this
.
chatActivityId
=
chatActivityId
;
}
public
String
getInviterMemberId
()
{
return
inviterMemberId
;
}
public
void
setInviterMemberId
(
String
inviterMemberId
)
{
this
.
inviterMemberId
=
inviterMemberId
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/HaobanTimerApiService.java
View file @
6208acb9
...
@@ -134,4 +134,9 @@ public interface HaobanTimerApiService {
...
@@ -134,4 +134,9 @@ public interface HaobanTimerApiService {
*/
*/
void
openStaffServiceTimer
(
String
params
)
;
void
openStaffServiceTimer
(
String
params
)
;
/**
* 社群活动定时任务
* @param params
*/
void
groupChatActivityTime
(
String
params
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/context/chat/JoinRuleManager.java
View file @
6208acb9
...
@@ -94,6 +94,12 @@ public class JoinRuleManager {
...
@@ -94,6 +94,12 @@ public class JoinRuleManager {
R
apply
(
T
t
)
throws
BusinessException
;
R
apply
(
T
t
)
throws
BusinessException
;
}
}
/**
* 获取入群群活码
* @param activityHmQDTO qdto
* @return
* @throws BusinessException
*/
public
List
<
GroupChatHmBO
>
listGroupHm
(
GroupChatActivityHmQDTO
activityHmQDTO
)
throws
BusinessException
{
public
List
<
GroupChatHmBO
>
listGroupHm
(
GroupChatActivityHmQDTO
activityHmQDTO
)
throws
BusinessException
{
GroupChatActivityDTO
chatActivity
=
activityHmQDTO
.
getChatActivity
();
GroupChatActivityDTO
chatActivity
=
activityHmQDTO
.
getChatActivity
();
String
inviteeMemberId
=
activityHmQDTO
.
getInviteeMemberId
();
String
inviteeMemberId
=
activityHmQDTO
.
getInviteeMemberId
();
...
@@ -137,6 +143,13 @@ public class JoinRuleManager {
...
@@ -137,6 +143,13 @@ public class JoinRuleManager {
return
null
;
return
null
;
}
}
/**
* 校验会员是否满足校验条件
* @param chatActivity 社群活动
* @param joinDTO 入群规则
* @param memberId 受邀人id
* @return
*/
private
boolean
checkActivityMember
(
GroupChatActivityDTO
chatActivity
,
GroupChatActivityJoinDTO
joinDTO
,
String
memberId
)
{
private
boolean
checkActivityMember
(
GroupChatActivityDTO
chatActivity
,
GroupChatActivityJoinDTO
joinDTO
,
String
memberId
)
{
String
enterpriseId
=
chatActivity
.
getEnterpriseId
();
String
enterpriseId
=
chatActivity
.
getEnterpriseId
();
Integer
memberType
=
joinDTO
.
getMemberType
();
Integer
memberType
=
joinDTO
.
getMemberType
();
...
@@ -158,7 +171,7 @@ public class JoinRuleManager {
...
@@ -158,7 +171,7 @@ public class JoinRuleManager {
dto
.
setMemberId
(
memberId
);
dto
.
setMemberId
(
memberId
);
exist
=
memberTagGroupApiService
.
memberIsExistGroup
(
dto
);
exist
=
memberTagGroupApiService
.
memberIsExistGroup
(
dto
);
}
}
logger
.
info
(
"activity:{},memberId:{}
无权限"
,
chatActivity
.
getChatActivityId
(),
memberId
);
logger
.
info
(
"activity:{},memberId:{}
,joinId:{},有无权限:{}"
,
chatActivity
.
getChatActivityId
(),
memberId
,
joinDTO
.
getChatActivityJoinId
(),
exist
);
return
exist
;
return
exist
;
}
}
...
@@ -172,6 +185,11 @@ public class JoinRuleManager {
...
@@ -172,6 +185,11 @@ public class JoinRuleManager {
return
null
;
return
null
;
}
}
/**
* 获取邀请人所在群群活码
* @param activityHmQDTO qdto
* @return
*/
private
List
<
GroupChatHmBO
>
handleInviterChat
(
GroupChatActivityHmQDTO
activityHmQDTO
)
{
private
List
<
GroupChatHmBO
>
handleInviterChat
(
GroupChatActivityHmQDTO
activityHmQDTO
)
{
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
...
@@ -205,6 +223,11 @@ public class JoinRuleManager {
...
@@ -205,6 +223,11 @@ public class JoinRuleManager {
return
listPage
.
getResult
();
return
listPage
.
getResult
();
}
}
/**
* 获取会员主门店群活码
* @param activityHmQDTO qdto
* @return
*/
private
List
<
GroupChatHmBO
>
handleMainStore
(
GroupChatActivityHmQDTO
activityHmQDTO
)
{
private
List
<
GroupChatHmBO
>
handleMainStore
(
GroupChatActivityHmQDTO
activityHmQDTO
)
{
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
...
@@ -219,6 +242,11 @@ public class JoinRuleManager {
...
@@ -219,6 +242,11 @@ public class JoinRuleManager {
return
getByStoreIdList
(
enterpriseId
,
wxEnterpriseId
,
Lists
.
newArrayList
(
mainStoreId
));
return
getByStoreIdList
(
enterpriseId
,
wxEnterpriseId
,
Lists
.
newArrayList
(
mainStoreId
));
}
}
/**
* 获取会员协管门店群活码
* @param activityHmQDTO qdto
* @return
*/
private
List
<
GroupChatHmBO
>
handleOtherStore
(
GroupChatActivityHmQDTO
activityHmQDTO
)
{
private
List
<
GroupChatHmBO
>
handleOtherStore
(
GroupChatActivityHmQDTO
activityHmQDTO
)
{
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
...
@@ -233,6 +261,12 @@ public class JoinRuleManager {
...
@@ -233,6 +261,12 @@ public class JoinRuleManager {
return
getByStoreIdList
(
enterpriseId
,
wxEnterpriseId
,
assistantStoreIds
);
return
getByStoreIdList
(
enterpriseId
,
wxEnterpriseId
,
assistantStoreIds
);
}
}
/**
* 获取会员最近定位门店群活码
* @param activityHmQDTO qdto
* @return
* @throws BusinessException
*/
private
List
<
GroupChatHmBO
>
handleLbs
(
GroupChatActivityHmQDTO
activityHmQDTO
)
throws
BusinessException
{
private
List
<
GroupChatHmBO
>
handleLbs
(
GroupChatActivityHmQDTO
activityHmQDTO
)
throws
BusinessException
{
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
enterpriseId
=
activityHmQDTO
.
getEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
String
wxEnterpriseId
=
activityHmQDTO
.
getChatActivity
().
getWxEnterpriseId
();
...
@@ -280,6 +314,13 @@ public class JoinRuleManager {
...
@@ -280,6 +314,13 @@ public class JoinRuleManager {
return
storeToHmMap
.
get
(
storeId
);
return
storeToHmMap
.
get
(
storeId
);
}
}
/**
* 根据门店id获取群活码
* @param enterpriseId 企业id
* @param wxEnterpriseId 好办企业id
* @param storeIdList 门店id列表
* @return
*/
private
List
<
GroupChatHmBO
>
getByStoreIdList
(
String
enterpriseId
,
String
wxEnterpriseId
,
List
<
String
>
storeIdList
)
{
private
List
<
GroupChatHmBO
>
getByStoreIdList
(
String
enterpriseId
,
String
wxEnterpriseId
,
List
<
String
>
storeIdList
)
{
logger
.
info
(
"门店id列表:{}"
,
JSON
.
toJSONString
(
storeIdList
));
logger
.
info
(
"门店id列表:{}"
,
JSON
.
toJSONString
(
storeIdList
));
// 获取导购列表
// 获取导购列表
...
@@ -327,6 +368,13 @@ public class JoinRuleManager {
...
@@ -327,6 +368,13 @@ public class JoinRuleManager {
}
}
/**
* 获取门店id对应群活码映射
* @param enterpriseId 企业id
* @param wxEnterpriseId 好办企业id
* @param storeIdList 门店id列表
* @return
*/
private
Map
<
String
,
List
<
GroupChatHmBO
>>
getStoreIdToGroupChatHmBOMap
(
String
enterpriseId
,
String
wxEnterpriseId
,
List
<
String
>
storeIdList
)
{
private
Map
<
String
,
List
<
GroupChatHmBO
>>
getStoreIdToGroupChatHmBOMap
(
String
enterpriseId
,
String
wxEnterpriseId
,
List
<
String
>
storeIdList
)
{
logger
.
info
(
"门店id列表:{}"
,
JSON
.
toJSONString
(
storeIdList
));
logger
.
info
(
"门店id列表:{}"
,
JSON
.
toJSONString
(
storeIdList
));
Page
<
ClerkDTO
>
page
=
clerkService
.
pageClerkByNameOrCode
(
enterpriseId
,
""
,
storeIdList
,
1
,
10000
);
Page
<
ClerkDTO
>
page
=
clerkService
.
pageClerkByNameOrCode
(
enterpriseId
,
""
,
storeIdList
,
1
,
10000
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/context/chat/RewardSender.java
0 → 100644
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
context
.
chat
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.BusinessException
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.content.api.enums.activity.ContentActivityRewardEnum
;
import
com.gic.enterprise.api.enums.PlatformChannelEnum
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityRewardDetailLog
;
import
com.gic.haoban.manage.service.pojo.bo.RewardReturnBO
;
import
com.gic.haoban.manage.service.util.ExecuteServiceUtil
;
import
com.gic.marketing.api.dto.CoupCardCode
;
import
com.gic.marketing.api.dto.CoupCardLogDTO
;
import
com.gic.marketing.api.enums.MarketingErrCode
;
import
com.gic.marketing.api.service.CoupCardDistributionService
;
import
com.gic.member.api.constant.integral.IntegralTypeEnum
;
import
com.gic.member.api.dto.integral.req.IntegralOperationFullReq
;
import
com.gic.member.api.dto.integral.resp.IntegralOperationResp
;
import
com.gic.member.api.service.integral.IntegralWriteApiService
;
import
com.gic.member.ext.api.dto.growth.constant.GrowthErrorCode
;
import
com.gic.member.ext.api.dto.growth.req.MemberGrowthChangeValueReq
;
import
com.gic.member.ext.api.dto.growth.resp.MemberGrowthOperateResp
;
import
com.gic.member.ext.api.enums.growth.GrowthRuleEnum
;
import
com.gic.member.ext.api.service.MemberGrowthWriteApiService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Objects
;
@Component
public
class
RewardSender
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
RewardSender
.
class
);
private
static
final
String
BUSINESS_NAME
=
"社群邀请有礼"
;
@Autowired
private
IntegralWriteApiService
integralWriteApiService
;
@Autowired
private
CoupCardDistributionService
coupCardDistributionService
;
@Autowired
private
MemberGrowthWriteApiService
memberGrowthWriteApiService
;
public
RewardReturnBO
sendReward
(
TabGroupChatActivityRewardDetailLog
rewardDetailLog
,
String
activityName
)
throws
BusinessException
{
String
enterpriseId
=
rewardDetailLog
.
getEnterpriseId
();
String
memberId
=
rewardDetailLog
.
getMemberId
();
Long
chatActivityId
=
rewardDetailLog
.
getChatActivityId
();
String
rewardDetailLogId
=
String
.
valueOf
(
rewardDetailLog
.
getChatActivityRewardDetailId
());
Integer
rewardType
=
rewardDetailLog
.
getRewardType
();
String
rewardValue
=
rewardDetailLog
.
getRewardValue
();
logger
.
info
(
"处理奖励: enterpriseId={}, memberId={}, rewardType={}, rewardValue={}"
,
enterpriseId
,
memberId
,
rewardType
,
rewardValue
);
switch
(
ContentActivityRewardEnum
.
getByValue
(
rewardType
))
{
case
INTEGRAL:
Integer
integral
=
Integer
.
parseInt
(
rewardValue
);
return
sendIntegral
(
enterpriseId
,
memberId
,
integral
,
BUSINESS_NAME
+
"-"
+
activityName
,
rewardDetailLogId
,
rewardDetailLogId
);
case
GROWTH:
Integer
growthValue
=
Integer
.
parseInt
(
rewardValue
);
return
sendGrowth
(
enterpriseId
,
memberId
,
growthValue
,
activityName
,
rewardDetailLogId
,
rewardDetailLogId
);
case
COUPON:
return
sendCoupon
(
enterpriseId
,
memberId
,
rewardValue
,
String
.
valueOf
(
chatActivityId
));
default
:
throw
new
BusinessException
(
"-1"
,
"不支持的奖励类型"
);
}
}
public
RewardReturnBO
sendIntegral
(
String
enterpriseId
,
String
memberId
,
Integer
integral
,
String
remark
,
String
relationId
,
String
oRelationId
)
throws
BusinessException
{
Integer
integralType
=
integral
>
0
?
IntegralTypeEnum
.
TYPE_1122
.
getCode
()
:
IntegralTypeEnum
.
TYPE_1242
.
getCode
();
IntegralOperationFullReq
req
=
new
IntegralOperationFullReq
();
req
.
setMemberId
(
memberId
);
req
.
setEnterpriseId
(
enterpriseId
);
req
.
setIntegralType
(
integralType
);
req
.
setIntegral
(
integral
);
req
.
setSourceChannel
(
PlatformChannelEnum
.
C_WECHAT_MINI
.
getChannelCode
());
req
.
setRemark
(
remark
);
req
.
setUniqueId
(
relationId
);
req
.
setRelationId
(
relationId
);
req
.
setoRelationId
(
oRelationId
);
logger
.
info
(
"发送积分:{}"
,
JSON
.
toJSONString
(
req
));
ServiceResponse
<
IntegralOperationResp
>
response
=
ExecuteServiceUtil
.
executeService
(()
->
integralWriteApiService
.
integralOperation
(
req
),
"积分处理异常"
);
if
(
response
.
isSuccess
()
&&
response
.
getResult
()
!=
null
)
{
Integer
realOperationIntegral
=
response
.
getResult
().
getRealOperationIntegral
();
return
new
RewardReturnBO
(
response
.
getResult
().
getIntegralLogId
(),
realOperationIntegral
!=
null
?
realOperationIntegral
:
integral
);
}
throw
new
BusinessException
(
"-1"
,
response
.
getMessage
());
}
public
RewardReturnBO
sendGrowth
(
String
enterpriseId
,
String
memberId
,
Integer
growthValue
,
String
remark
,
String
relationId
,
String
oRelationId
)
throws
BusinessException
{
String
ruleCode
=
GrowthRuleEnum
.
INVITE_ACTIVITY
.
getRuleCode
();
MemberGrowthChangeValueReq
req
=
new
MemberGrowthChangeValueReq
();
req
.
setEnterpriseId
(
enterpriseId
);
req
.
setMemberId
(
memberId
);
req
.
setChannelCode
(
PlatformChannelEnum
.
C_WECHAT_MINI
.
getChannelCode
());
req
.
setRuleCode
(
ruleCode
);
req
.
setGrowthChangeValue
(
growthValue
);
req
.
desc
(
BUSINESS_NAME
,
remark
);
req
.
setOuterChangeId
(
relationId
);
req
.
setOriginChangeId
(
oRelationId
);
logger
.
info
(
"发送成长值: {}"
,
JSON
.
toJSONString
(
req
));
ServiceResponse
<
MemberGrowthOperateResp
>
response
=
ExecuteServiceUtil
.
executeService
(()
->
memberGrowthWriteApiService
.
updateMemberGrowthChangeValue
(
req
),
"成长值发放异常"
);
if
(
response
.
isSuccess
()
&&
response
.
getResult
()
!=
null
)
{
MemberGrowthOperateResp
growthResp
=
response
.
getResult
();
return
new
RewardReturnBO
(
String
.
valueOf
(
growthResp
.
getChangeId
()),
growthResp
.
getActualChangeGrowth
());
}
if
(
Objects
.
equals
(
response
.
getCode
(),
GrowthErrorCode
.
MEMBER_GROWTH_IS_ZERO
.
code
()))
{
//当前会员没有成长值,无法进行扣除
return
new
RewardReturnBO
(
""
,
0
);
}
throw
new
BusinessException
(
"-1"
,
response
.
getMessage
());
}
public
RewardReturnBO
sendCoupon
(
String
enterpriseId
,
String
memberId
,
String
cardId
,
String
relationId
)
throws
BusinessException
{
logger
.
info
(
"发送卡券: enterpriseId={}, memberId={}, cardId={}, relationId={}"
,
enterpriseId
,
memberId
,
cardId
,
relationId
);
ServiceResponse
<
CoupCardLogDTO
>
response
=
ExecuteServiceUtil
.
executeService
(()
->
coupCardDistributionService
.
sendCard
(
enterpriseId
,
cardId
,
memberId
,
""
,
CoupCardCode
.
CARD_RECEIVE_CODE_GROUP_CHAT_ACTIVITY
.
getCode
(),
CoupCardCode
.
CARD_RECEIVE_CODE_GROUP_CHAT_ACTIVITY
.
getRelationType
(),
relationId
,
true
),
"卡券发放异常"
);
if
(
response
.
isSuccess
()
&&
response
.
getResult
()
!=
null
)
{
CoupCardLogDTO
cardLogDTO
=
response
.
getResult
();
return
new
RewardReturnBO
(
cardLogDTO
.
getCardLogId
(),
null
);
}
throw
new
BusinessException
(
"-1"
,
MarketingErrCode
.
convertCouponError
(
response
.
getMessage
()));
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatActivityInviteLogMapper.java
View file @
6208acb9
...
@@ -30,7 +30,7 @@ public interface GroupChatActivityInviteLogMapper {
...
@@ -30,7 +30,7 @@ public interface GroupChatActivityInviteLogMapper {
* @param pageable 分页对象
* @param pageable 分页对象
* @return 对象列表
* @return 对象列表
*/
*/
List
<
TabGroupChatActivityInviteLog
>
queryAll
ByLimit
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
,
@Param
(
"pageable"
)
Pageable
pageable
);
List
<
TabGroupChatActivityInviteLog
>
queryAll
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
);
/**
/**
* 统计总行数
* 统计总行数
...
@@ -49,39 +49,6 @@ public interface GroupChatActivityInviteLogMapper {
...
@@ -49,39 +49,6 @@ public interface GroupChatActivityInviteLogMapper {
int
insert
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
);
int
insert
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
);
/**
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanGroupChatActivityInviteLog> 实例对象列表
* @return 影响行数
*/
int
insertBatch
(
@Param
(
"entities"
)
List
<
TabGroupChatActivityInviteLog
>
entities
);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanGroupChatActivityInviteLog> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int
insertOrUpdateBatch
(
@Param
(
"entities"
)
List
<
TabGroupChatActivityInviteLog
>
entities
);
/**
* 修改数据
*
* @param tabGroupChatActivityInviteLog 实例对象
* @return 影响行数
*/
int
update
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
);
/**
* 通过主键删除数据
*
* @param chatActivityInviteId 主键
* @return 影响行数
*/
int
deleteById
(
Long
chatActivityInviteId
);
/**
* 根据活动id和要求人查询当前最大批次
* 根据活动id和要求人查询当前最大批次
* 有效邀请
* 有效邀请
*
*
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatActivityRewardDetailLogMapper.java
View file @
6208acb9
...
@@ -57,14 +57,6 @@ public interface GroupChatActivityRewardDetailLogMapper {
...
@@ -57,14 +57,6 @@ public interface GroupChatActivityRewardDetailLogMapper {
int
update
(
TabGroupChatActivityRewardDetailLog
tabGroupChatActivityRewardDetailLog
);
int
update
(
TabGroupChatActivityRewardDetailLog
tabGroupChatActivityRewardDetailLog
);
/**
/**
* 通过主键删除数据
*
* @param chatActivityRewardDetailId 主键
* @return 影响行数
*/
int
deleteById
(
Long
chatActivityRewardDetailId
);
/**
* 批量查询奖励明细
* 批量查询奖励明细
*
*
* @param rewardDetailLogQDTO
* @param rewardDetailLogQDTO
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/chat/TabGroupChatActivityInviteLog.java
View file @
6208acb9
...
@@ -32,6 +32,10 @@ public class TabGroupChatActivityInviteLog implements Serializable {
...
@@ -32,6 +32,10 @@ public class TabGroupChatActivityInviteLog implements Serializable {
*/
*/
private
String
inviteeUserId
;
private
String
inviteeUserId
;
/**
/**
* 受邀人unionId
*/
private
String
inviteeUnionId
;
/**
* 姓名
* 姓名
*/
*/
private
String
userName
;
private
String
userName
;
...
@@ -115,6 +119,14 @@ public class TabGroupChatActivityInviteLog implements Serializable {
...
@@ -115,6 +119,14 @@ public class TabGroupChatActivityInviteLog implements Serializable {
this
.
inviteeUserId
=
inviteeUserId
;
this
.
inviteeUserId
=
inviteeUserId
;
}
}
public
String
getInviteeUnionId
()
{
return
inviteeUnionId
;
}
public
void
setInviteeUnionId
(
String
inviteeUnionId
)
{
this
.
inviteeUnionId
=
inviteeUnionId
;
}
public
String
getUserName
()
{
public
String
getUserName
()
{
return
userName
;
return
userName
;
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/chat/TabGroupChatActivityReward.java
View file @
6208acb9
...
@@ -40,11 +40,11 @@ public class TabGroupChatActivityReward implements Serializable {
...
@@ -40,11 +40,11 @@ public class TabGroupChatActivityReward implements Serializable {
*/
*/
private
Integer
limitReward
;
private
Integer
limitReward
;
/**
/**
* 奖励内容 积分值 成长值 卡券id
* 奖励内容 积分值 成长值 卡券id
(逗号分隔)
*/
*/
private
String
rewardValue
;
private
String
rewardValue
;
/**
/**
* 奖励名称 卡券名称
* 奖励名称
积分名称 成长值名称
卡券名称
*/
*/
private
String
rewardName
;
private
String
rewardName
;
/**
/**
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/chat/TabGroupChatActivityRewardDetailLog.java
View file @
6208acb9
...
@@ -36,7 +36,7 @@ public class TabGroupChatActivityRewardDetailLog implements Serializable {
...
@@ -36,7 +36,7 @@ public class TabGroupChatActivityRewardDetailLog implements Serializable {
*/
*/
private
Integer
rewardType
;
private
Integer
rewardType
;
/**
/**
* 奖励内容 积分值 成长值 卡券id
* 奖励内容 积分值 成长值 卡券id
(逗号分隔)
*/
*/
private
String
rewardValue
;
private
String
rewardValue
;
/**
/**
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/RewardReturnBO.java
0 → 100644
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
;
/**
* Created by wangzubo on 2024/8/24.
*/
public
class
RewardReturnBO
{
/**
* 奖励业务日志id
*/
private
String
rewardBusinessId
;
/**
* 奖励或返回实际值
*/
private
Integer
rewardValue
;
public
RewardReturnBO
(
String
rewardBusinessId
,
Integer
rewardValue
)
{
this
.
rewardBusinessId
=
rewardBusinessId
;
this
.
rewardValue
=
rewardValue
;
}
public
String
getRewardBusinessId
()
{
return
rewardBusinessId
;
}
public
void
setRewardBusinessId
(
String
rewardBusinessId
)
{
this
.
rewardBusinessId
=
rewardBusinessId
;
}
public
Integer
getRewardValue
()
{
return
rewardValue
;
}
public
void
setRewardValue
(
Integer
rewardValue
)
{
this
.
rewardValue
=
rewardValue
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/chat/GroupChatActivityBaseContext.java
0 → 100644
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
chat
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatUser
;
/**
* Created by wangzubo on 2024/10/9.
*/
public
class
GroupChatActivityBaseContext
{
/**
* 入群详情id
*/
private
Long
chatUserId
;
/**
* 社群活动id
*/
private
Long
chatActivityId
;
/**
* 邀请人会员ID
*/
private
String
inviterMemberId
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 唯一id
*/
private
String
uniqueId
;
public
Long
getChatUserId
()
{
return
chatUserId
;
}
public
void
setChatUserId
(
Long
chatUserId
)
{
this
.
chatUserId
=
chatUserId
;
}
public
Long
getChatActivityId
()
{
return
chatActivityId
;
}
public
void
setChatActivityId
(
Long
chatActivityId
)
{
this
.
chatActivityId
=
chatActivityId
;
}
public
String
getInviterMemberId
()
{
return
inviterMemberId
;
}
public
void
setInviterMemberId
(
String
inviterMemberId
)
{
this
.
inviterMemberId
=
inviterMemberId
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getUniqueId
()
{
return
uniqueId
;
}
public
void
setUniqueId
(
String
uniqueId
)
{
this
.
uniqueId
=
uniqueId
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/chat/GroupChatActivityContext.java
0 → 100644
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
chat
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatUser
;
/**
* Created by wangzubo on 2024/10/9.
*/
public
class
GroupChatActivityContext
extends
GroupChatActivityBaseContext
{
/**
* 群详情
*/
private
TabGroupChatUser
chatUser
;
/**
* 社群活动
*/
private
GroupChatActivityDTO
chatActivityDTO
;
public
TabGroupChatUser
getChatUser
()
{
return
chatUser
;
}
public
void
setChatUser
(
TabGroupChatUser
chatUser
)
{
this
.
chatUser
=
chatUser
;
}
public
GroupChatActivityDTO
getChatActivityDTO
()
{
return
chatActivityDTO
;
}
public
void
setChatActivityDTO
(
GroupChatActivityDTO
chatActivityDTO
)
{
this
.
chatActivityDTO
=
chatActivityDTO
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/GroupChatActivityInviteLogService.java
View file @
6208acb9
...
@@ -3,6 +3,9 @@ package com.gic.haoban.manage.service.service.chat;
...
@@ -3,6 +3,9 @@ package com.gic.haoban.manage.service.service.chat;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityInviteLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityInviteLogDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityInviteLogQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityInviteLogQDTO
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatUser
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityBaseContext
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityContext
;
import
java.util.List
;
import
java.util.List
;
...
@@ -29,4 +32,16 @@ public interface GroupChatActivityInviteLogService {
...
@@ -29,4 +32,16 @@ public interface GroupChatActivityInviteLogService {
* @return
* @return
*/
*/
Page
<
GroupChatActivityInviteLogDTO
>
queryInviteLogDetails
(
GroupChatActivityInviteLogQDTO
inviteLogQDTO
);
Page
<
GroupChatActivityInviteLogDTO
>
queryInviteLogDetails
(
GroupChatActivityInviteLogQDTO
inviteLogQDTO
);
/**
* 入群异步处理参与社群活动
* @param list
*/
void
groupChatInviteMQ
(
List
<
TabGroupChatUser
>
list
);
/**
* 入群参与社群活动
* @param context
*/
void
groupChatInvite
(
GroupChatActivityBaseContext
context
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/GroupChatActivityRewardLogService.java
View file @
6208acb9
...
@@ -4,6 +4,8 @@ import com.gic.api.base.commons.Page;
...
@@ -4,6 +4,8 @@ import com.gic.api.base.commons.Page;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardLogDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardLogQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardLogQDTO
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityContext
;
/**
/**
* 内容活动完成奖励表(TabHaobanGroupChatActivityRewardLog)表服务接口
* 内容活动完成奖励表(TabHaobanGroupChatActivityRewardLog)表服务接口
*
*
...
@@ -21,4 +23,10 @@ public interface GroupChatActivityRewardLogService {
...
@@ -21,4 +23,10 @@ public interface GroupChatActivityRewardLogService {
*/
*/
Page
<
GroupChatActivityRewardLogDTO
>
queryRewardLogDetails
(
GroupChatActivityRewardLogQDTO
rewardLogQDTO
);
Page
<
GroupChatActivityRewardLogDTO
>
queryRewardLogDetails
(
GroupChatActivityRewardLogQDTO
rewardLogQDTO
);
/**
* 处理奖励发放并保存日志
* @param context
*/
void
dealRewardAndSaveLog
(
GroupChatActivityContext
context
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatActivityInviteLogServiceImpl.java
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Constant
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityInviteLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityInviteLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDTO
;
import
com.gic.haoban.manage.api.enums.chat.ChatActivityInvalidInviteTypeEnum
;
import
com.gic.haoban.manage.api.enums.chat.ChatActivityInviteRewardEnum
;
import
com.gic.haoban.manage.api.enums.chat.ChatActivityInviteTypeEnum
;
import
com.gic.haoban.manage.api.enums.chat.ChatActivityRewardInviteEnum
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityInviteLogQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityInviteLogQDTO
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatActivityInviteLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatActivityInviteLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatUserMapper
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityInviteLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityInviteLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityShareBind
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatUser
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityBaseContext
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityContext
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityShareBindService
;
import
com.gic.member.tag.api.dto.outapi.MemberTagSingleDTO
;
import
com.gic.member.tag.api.service.MemberTagOpenApiService
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageHelper
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -26,8 +52,23 @@ import java.util.stream.Collectors;
...
@@ -26,8 +52,23 @@ import java.util.stream.Collectors;
*/
*/
@Service
(
"groupChatActivityInviteLogService"
)
@Service
(
"groupChatActivityInviteLogService"
)
public
class
GroupChatActivityInviteLogServiceImpl
implements
GroupChatActivityInviteLogService
{
public
class
GroupChatActivityInviteLogServiceImpl
implements
GroupChatActivityInviteLogService
{
@Resource
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
GroupChatActivityInviteLogService
.
class
);
public
static
final
String
ACTIVITY_GROUP_CHAT_KEY
=
"haoban-manage3-service:activity_group_chat:"
;
@Autowired
private
GroupChatActivityInviteLogMapper
groupChatActivityInviteLogMapper
;
private
GroupChatActivityInviteLogMapper
groupChatActivityInviteLogMapper
;
@Autowired
private
GroupChatActivityService
groupChatActivityService
;
@Autowired
private
GroupChatActivityRewardLogService
groupChatActivityRewardLogService
;
@Autowired
private
GroupChatUserMapper
groupChatUserMapper
;
@Autowired
private
GroupChatActivityShareBindService
groupChatActivityShareBindService
;
@Autowired
private
MemberTagOpenApiService
memberTagOpenApiService
;
private
GroupChatActivityInviteLogDTO
convertToDTO
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
){
private
GroupChatActivityInviteLogDTO
convertToDTO
(
TabGroupChatActivityInviteLog
tabGroupChatActivityInviteLog
){
GroupChatActivityInviteLogDTO
groupChatActivityInviteLogDTO
=
new
GroupChatActivityInviteLogDTO
();
GroupChatActivityInviteLogDTO
groupChatActivityInviteLogDTO
=
new
GroupChatActivityInviteLogDTO
();
...
@@ -56,4 +97,261 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
...
@@ -56,4 +97,261 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
List
<
TabGroupChatActivityInviteLog
>
logList
=
groupChatActivityInviteLogMapper
.
queryList
(
inviteLogQDTO
);
List
<
TabGroupChatActivityInviteLog
>
logList
=
groupChatActivityInviteLogMapper
.
queryList
(
inviteLogQDTO
);
return
PageHelperUtils
.
changePageHelperToCurrentPage
(
logList
,
GroupChatActivityInviteLogDTO
.
class
);
return
PageHelperUtils
.
changePageHelperToCurrentPage
(
logList
,
GroupChatActivityInviteLogDTO
.
class
);
}
}
@Override
public
void
groupChatInviteMQ
(
List
<
TabGroupChatUser
>
chatUserList
)
{
chatUserList
=
chatUserList
.
stream
().
filter
(
x
->
!
Objects
.
equals
(
x
.
getUserType
(),
1
)
&&
StringUtils
.
isNotBlank
(
x
.
getUnionid
()))
.
collect
(
Collectors
.
toList
());
logger
.
info
(
"入群逻辑处理数:{}"
,
chatUserList
.
size
());
if
(
CollectionUtils
.
isEmpty
(
chatUserList
))
{
return
;
}
List
<
String
>
unionIdList
=
chatUserList
.
stream
().
map
(
TabGroupChatUser:
:
getUnionid
).
collect
(
Collectors
.
toList
());
List
<
List
<
String
>>
partition
=
Lists
.
partition
(
unionIdList
,
1000
);
for
(
List
<
String
>
unionIds
:
partition
)
{
List
<
TabGroupChatActivityShareBind
>
shareBindList
=
groupChatActivityShareBindService
.
query24Record
(
unionIds
);
if
(
CollectionUtils
.
isEmpty
(
shareBindList
))
{
return
;
}
logger
.
info
(
"入群有邀请绑定数:{}"
,
shareBindList
.
size
());
Map
<
String
,
List
<
TabGroupChatActivityShareBind
>>
map
=
shareBindList
.
stream
().
collect
(
Collectors
.
groupingBy
(
TabGroupChatActivityShareBind:
:
getInviteeUnionId
));
for
(
TabGroupChatUser
groupChatUser
:
chatUserList
)
{
Long
chatUserId
=
groupChatUser
.
getChatUserId
();
String
unionid
=
groupChatUser
.
getUnionid
();
List
<
TabGroupChatActivityShareBind
>
list
=
map
.
get
(
unionid
);
if
(
CollectionUtils
.
isEmpty
(
list
))
{
continue
;
}
Set
<
Long
>
chatActivityIdSet
=
new
HashSet
<>();
//同个活动取最近一条绑定信息
for
(
TabGroupChatActivityShareBind
shareBind
:
list
)
{
Long
chatActivityId
=
shareBind
.
getChatActivityId
();
if
(
chatActivityIdSet
.
add
(
chatActivityId
))
{
GroupChatActivityBaseContext
chatActivityContext
=
new
GroupChatActivityBaseContext
();
chatActivityContext
.
setChatUserId
(
chatUserId
);
chatActivityContext
.
setChatActivityId
(
chatActivityId
);
chatActivityContext
.
setInviterMemberId
(
shareBind
.
getInviterMemberId
());
chatActivityContext
.
setEnterpriseId
(
shareBind
.
getEnterpriseId
());
chatActivityContext
.
setUniqueId
(
shareBind
.
getInviteeUnionId
());
// todo 社群邀请-mq异步
// groupChatInvite(chatActivityContext);
try
{
GICMQClientUtil
.
getClientInstance
().
sendMessage
(
"shareGroupChatInviteMQ"
,
JSON
.
toJSONString
(
chatActivityContext
));
}
catch
(
Exception
e
)
{
logger
.
info
(
"社群邀请MQ发送异常"
,
e
);
}
}
}
}
}
}
@Override
public
void
groupChatInvite
(
GroupChatActivityBaseContext
baseContext
)
{
logger
.
info
(
"社群活动邀请:{}"
,
JSON
.
toJSONString
(
baseContext
));
Long
chatUserId
=
baseContext
.
getChatUserId
();
GroupChatActivityContext
context
=
EntityUtil
.
changeEntityNew
(
GroupChatActivityContext
.
class
,
baseContext
);
TabGroupChatUser
groupChatUser
=
groupChatUserMapper
.
selectById
(
chatUserId
);
if
(
groupChatUser
==
null
)
{
logger
.
info
(
"社群群明细为空"
);
return
;
}
context
.
setChatUser
(
groupChatUser
);
String
inviterMemberId
=
context
.
getInviterMemberId
();
String
enterpriseId
=
context
.
getEnterpriseId
();
Long
chatActivityId
=
context
.
getChatActivityId
();
String
key
=
ACTIVITY_GROUP_CHAT_KEY
+
inviterMemberId
;
RedisUtil
.
lock
(
key
,
30L
);
try
{
GroupChatActivityDTO
chatActivityDTO
=
groupChatActivityService
.
getActivityDetailCache
(
enterpriseId
,
chatActivityId
);
if
(
chatActivityDTO
==
null
)
{
logger
.
info
(
"社群活动为空"
);
return
;
}
context
.
setChatActivityDTO
(
chatActivityDTO
);
boolean
checked
=
checkActivity
(
context
);
if
(!
checked
)
{
return
;
}
Integer
inviteType
=
Constant
.
FLAG_FALSE
;
int
batchNumber
=
-
1
;
Integer
invalidInviteType
=
getActivityEffective
(
context
);
logger
.
info
(
"获取本次入群有效状态:{}"
,
invalidInviteType
);
if
(
invalidInviteType
==
null
)
{
inviteType
=
Constant
.
FLAG_TRUE
;
//获取奖励批次
batchNumber
=
getActivityBatchNumber
(
context
);
}
//保存邀请记录
saveChatActivityInvite
(
context
,
batchNumber
,
inviteType
,
invalidInviteType
);
//有效发放奖励
if
(
Objects
.
equals
(
inviteType
,
Constant
.
FLAG_TRUE
))
{
groupChatActivityRewardLogService
.
dealRewardAndSaveLog
(
context
);
}
//受邀人打标
Integer
labelFlag
=
chatActivityDTO
.
getLabelFlag
();
String
labelJson
=
chatActivityDTO
.
getLabelJson
();
if
(
Objects
.
equals
(
labelFlag
,
Constant
.
FLAG_TRUE
)
&&
StringUtils
.
isNotBlank
(
labelJson
))
{
MemberTagSingleDTO
dto
=
new
MemberTagSingleDTO
();
dto
.
setEnterpriseId
(
enterpriseId
);
dto
.
setOptType
(
0
);
dto
.
setMemberId
(
context
.
getChatUser
().
getMemberId
());
String
id
=
JSONObject
.
parseObject
(
labelJson
).
getString
(
"id"
);
dto
.
setTagItemIdList
(
Lists
.
newArrayList
(
id
));
this
.
memberTagOpenApiService
.
saveMemberTagSingle
(
dto
);
}
}
catch
(
Exception
e
)
{
logger
.
info
(
"社群活动处理异常"
,
e
);
}
finally
{
RedisUtil
.
unlock
(
key
);
}
}
/**
* 校验活动是否写邀请记录
* @param context
* @return
*/
private
boolean
checkActivity
(
GroupChatActivityContext
context
)
{
GroupChatActivityDTO
activity
=
context
.
getChatActivityDTO
();
TabGroupChatUser
chatUser
=
context
.
getChatUser
();
Date
joinTime
=
chatUser
.
getJoinTime
();
Date
startDate
=
activity
.
getStartDate
();
Date
endDate
=
activity
.
getEndDate
();
Date
limitDate
=
activity
.
getLimitDate
();
if
(
DateUtil
.
compare
(
startDate
,
joinTime
)
>
0
)
{
logger
.
info
(
"活动开始时间大于入群时间"
);
return
false
;
}
if
(
limitDate
!=
null
)
{
endDate
=
limitDate
;
}
logger
.
info
(
"校验活动判断时间:{}"
,
endDate
);
//入群时间大于结束时间
if
(
DateUtil
.
compare
(
joinTime
,
endDate
)
>
0
)
{
logger
.
info
(
"入群时间大于结束时间"
);
return
false
;
}
TabGroupChatActivityInviteLog
inviteLog
=
new
TabGroupChatActivityInviteLog
();
inviteLog
.
setChatActivityId
(
context
.
getChatActivityId
());
inviteLog
.
setInviteeUserId
(
chatUser
.
getUserId
());
inviteLog
.
setEnterpriseId
(
context
.
getEnterpriseId
());
inviteLog
.
setInviterMemberId
(
context
.
getInviterMemberId
());
List
<
TabGroupChatActivityInviteLog
>
list
=
groupChatActivityInviteLogMapper
.
queryAll
(
inviteLog
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
logger
.
info
(
"已有邀请记录:{}"
,
JSON
.
toJSONString
(
inviteLog
));
return
false
;
}
return
true
;
}
/**
* 获取本次入群有效状态
*
* @param context
* @return
*/
private
Integer
getActivityEffective
(
GroupChatActivityContext
context
)
{
GroupChatActivityDTO
activity
=
context
.
getChatActivityDTO
();
String
enterpriseId
=
activity
.
getEnterpriseId
();
String
userId
=
context
.
getChatUser
().
getUserId
();
Long
chatActivityId
=
context
.
getChatActivityId
();
Integer
inviteType
=
activity
.
getInviteType
();
TabGroupChatActivityInviteLog
inviteLog
=
new
TabGroupChatActivityInviteLog
();
inviteLog
.
setChatActivityId
(
chatActivityId
);
inviteLog
.
setInviteeUserId
(
userId
);
inviteLog
.
setEnterpriseId
(
enterpriseId
);
List
<
TabGroupChatActivityInviteLog
>
list
=
groupChatActivityInviteLogMapper
.
queryAll
(
inviteLog
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
return
ChatActivityInvalidInviteTypeEnum
.
ONE
.
value
;
}
if
(
Objects
.
equals
(
ChatActivityInviteTypeEnum
.
NONE_GROUP_CHAT
.
value
,
inviteType
))
{
List
<
TabGroupChatUser
>
chatUserList
=
groupChatUserMapper
.
listByUserId
(
enterpriseId
,
userId
,
1
);
if
(
CollectionUtils
.
isNotEmpty
(
chatUserList
))
{
return
ChatActivityInvalidInviteTypeEnum
.
TWO
.
value
;
}
}
if
(
Objects
.
equals
(
ChatActivityInviteTypeEnum
.
FIRST_GROUP_CHAT
.
value
,
inviteType
))
{
List
<
TabGroupChatUser
>
chatUserList2
=
groupChatUserMapper
.
listByUserId
(
enterpriseId
,
userId
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
chatUserList2
))
{
return
ChatActivityInvalidInviteTypeEnum
.
THREE
.
value
;
}
}
return
null
;
}
/**
* 获取完成批次
* @param context
* @return
*/
private
int
getActivityBatchNumber
(
GroupChatActivityContext
context
)
{
GroupChatActivityDTO
activity
=
context
.
getChatActivityDTO
();
String
enterpriseId
=
activity
.
getEnterpriseId
();
String
inviterMemberId
=
context
.
getInviterMemberId
();
Long
chatActivityId
=
context
.
getChatActivityId
();
TabGroupChatActivityInviteLog
inviteLog
=
new
TabGroupChatActivityInviteLog
();
inviteLog
.
setChatActivityId
(
chatActivityId
);
inviteLog
.
setInviterMemberId
(
inviterMemberId
);
inviteLog
.
setEnterpriseId
(
enterpriseId
);
inviteLog
.
setInviteType
(
Constant
.
FLAG_TRUE
);
Long
count
=
groupChatActivityInviteLogMapper
.
count
(
inviteLog
)
+
1
;
logger
.
info
(
"有效邀请数:{}"
,
count
);
Integer
inviteRewardType
=
activity
.
getInviteRewardType
();
int
batchNumber
=
-
1
;
Map
<
Integer
,
List
<
GroupChatActivityRewardDTO
>>
rewardMap
=
activity
.
getRewardMap
();
List
<
GroupChatActivityRewardDTO
>
rewardDTOList
=
rewardMap
.
get
(
ChatActivityRewardInviteEnum
.
INVITER
.
value
);
if
(
Objects
.
equals
(
inviteRewardType
,
ChatActivityInviteRewardEnum
.
FIXED_REWARD
.
value
))
{
GroupChatActivityRewardDTO
rewardDTO
=
rewardDTOList
.
get
(
0
);
Integer
limitReward
=
rewardDTO
.
getLimitReward
();
Integer
inviteNumber
=
rewardDTO
.
getInviteNumber
();
batchNumber
=
count
.
intValue
()
/
inviteNumber
;
batchNumber
=
batchNumber
>
limitReward
?
-
1
:
batchNumber
;
}
else
{
batchNumber
=
1
;
int
maxInviteNumber
=
rewardDTOList
.
stream
().
mapToInt
(
GroupChatActivityRewardDTO:
:
getInviteNumber
).
max
().
getAsInt
();
for
(
GroupChatActivityRewardDTO
rewardDTO
:
rewardDTOList
)
{
Integer
inviteNumber
=
rewardDTO
.
getInviteNumber
();
if
(
inviteNumber
==
maxInviteNumber
)
{
if
(
count
.
intValue
()
>
maxInviteNumber
)
{
batchNumber
=
-
1
;
}
else
if
(
count
.
intValue
()
==
maxInviteNumber
)
{
batchNumber
=
rewardDTO
.
getInviteLevel
();
}
break
;
}
else
if
(
count
.
intValue
()
>
inviteNumber
)
{
batchNumber
=
rewardDTO
.
getInviteLevel
();
}
}
}
logger
.
info
(
"有效邀请批次:{}"
,
batchNumber
);
return
batchNumber
;
}
private
void
saveChatActivityInvite
(
GroupChatActivityContext
context
,
Integer
batchNumber
,
Integer
inviteType
,
Integer
invalidInviteType
)
{
TabGroupChatActivityInviteLog
inviteLog
=
new
TabGroupChatActivityInviteLog
();
inviteLog
.
setChatActivityInviteId
(
UniqueIdUtils
.
uniqueLong
());
inviteLog
.
setChatActivityId
(
context
.
getChatActivityId
());
inviteLog
.
setInviterMemberId
(
context
.
getInviterMemberId
());
TabGroupChatUser
chatUser
=
context
.
getChatUser
();
if
(
StringUtils
.
isBlank
(
chatUser
.
getMemberId
()))
{
inviteLog
.
setInviteeMemberId
(
"-1"
);
}
else
{
inviteLog
.
setInviteeMemberId
(
chatUser
.
getMemberId
());
}
inviteLog
.
setInviteeUserId
(
chatUser
.
getUserId
());
inviteLog
.
setInviteeUnionId
(
chatUser
.
getUnionid
());
inviteLog
.
setUserName
(
chatUser
.
getUserName
());
inviteLog
.
setNickName
(
chatUser
.
getNickName
());
inviteLog
.
setGroupChatId
(
chatUser
.
getGroupChatId
());
inviteLog
.
setInviteType
(
inviteType
);
inviteLog
.
setInvalidInviteType
(
invalidInviteType
);
inviteLog
.
setBatchNumber
(
batchNumber
);
inviteLog
.
setEnterpriseId
(
chatUser
.
getEnterpriseId
());
inviteLog
.
setWxEnterpriseId
(
chatUser
.
getWxEnterpriseId
());
groupChatActivityInviteLogMapper
.
insert
(
inviteLog
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatActivityJoinServiceImpl.java
View file @
6208acb9
...
@@ -51,14 +51,14 @@ public class GroupChatActivityJoinServiceImpl implements GroupChatActivityJoinSe
...
@@ -51,14 +51,14 @@ public class GroupChatActivityJoinServiceImpl implements GroupChatActivityJoinSe
}
}
@Override
@Override
public
void
saveActivityJoin
(
TabGroupChatActivity
activity
,
List
<
TabGroupChatActivityJoin
>
reward
List
)
{
public
void
saveActivityJoin
(
TabGroupChatActivity
activity
,
List
<
TabGroupChatActivityJoin
>
join
List
)
{
Long
chatActivityId
=
activity
.
getChatActivityId
();
Long
chatActivityId
=
activity
.
getChatActivityId
();
List
<
TabGroupChatActivityJoin
>
oldJoinList
=
listByActivityId
(
chatActivityId
);
List
<
TabGroupChatActivityJoin
>
oldJoinList
=
listByActivityId
(
chatActivityId
);
Map
<
Long
,
TabGroupChatActivityJoin
>
oldRewardMap
=
oldJoinList
.
stream
().
collect
(
Map
<
Long
,
TabGroupChatActivityJoin
>
oldRewardMap
=
oldJoinList
.
stream
().
collect
(
Collectors
.
toMap
(
TabGroupChatActivityJoin:
:
getChatActivityJoinId
,
v
->
v
));
Collectors
.
toMap
(
TabGroupChatActivityJoin:
:
getChatActivityJoinId
,
v
->
v
));
//先删除
//先删除
businessManager
.
dealMemberTagByActivity
(
activity
,
null
,
true
);
businessManager
.
dealMemberTagByActivity
(
activity
,
null
,
true
);
reward
List
.
forEach
(
rule
->{
join
List
.
forEach
(
rule
->{
Long
chatActivityJoinId
=
rule
.
getChatActivityJoinId
();
Long
chatActivityJoinId
=
rule
.
getChatActivityJoinId
();
if
(
chatActivityJoinId
!=
null
)
{
if
(
chatActivityJoinId
!=
null
)
{
oldRewardMap
.
remove
(
chatActivityJoinId
);
oldRewardMap
.
remove
(
chatActivityJoinId
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatActivityRewardLogServiceImpl.java
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
chat
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.BusinessException
;
import
com.gic.api.base.commons.Constant
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.api.dto.chat.*
;
import
com.gic.haoban.manage.api.enums.chat.ChatActivityInviteRewardEnum
;
import
com.gic.haoban.manage.api.enums.chat.ChatActivityRewardInviteEnum
;
import
com.gic.haoban.manage.service.context.chat.RewardSender
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatActivityInviteLogMapper
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityInviteLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDetailLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardLogDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardDetailLogQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardDetailLogQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardLogQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardLogQDTO
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatActivityRewardDetailLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatActivityRewardLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatActivityRewardLogMapper
;
import
com.gic.haoban.manage.service.entity.chat.*
;
import
com.gic.haoban.manage.service.pojo.bo.RewardReturnBO
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityContext
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityInviteLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityInviteLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityRewardLog
;
import
com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityRewardLog
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardDetailLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardDetailLogService
;
...
@@ -15,9 +26,19 @@ import com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardLogServ
...
@@ -15,9 +26,19 @@ import com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardLogServ
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageHelper
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -32,11 +53,18 @@ import java.util.stream.Collectors;
...
@@ -32,11 +53,18 @@ import java.util.stream.Collectors;
@Service
(
"groupChatActivityRewardLogService"
)
@Service
(
"groupChatActivityRewardLogService"
)
public
class
GroupChatActivityRewardLogServiceImpl
implements
GroupChatActivityRewardLogService
{
public
class
GroupChatActivityRewardLogServiceImpl
implements
GroupChatActivityRewardLogService
{
@Resource
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
GroupChatActivityRewardLogService
.
class
);
private
GroupChatActivityRewardLogMapper
groupChatActivityRewardLogMapper
;
@Resource
@Autowired
private
GroupChatActivityRewardLogMapper
groupChatActivityRewardLogMapper
;
@Autowired
private
GroupChatActivityInviteLogMapper
groupChatActivityInviteLogMapper
;
@Autowired
private
GroupChatActivityRewardDetailLogMapper
groupChatActivityRewardDetailLogMapper
;
@Autowired
private
GroupChatActivityRewardDetailLogService
groupChatActivityRewardDetailLogService
;
private
GroupChatActivityRewardDetailLogService
groupChatActivityRewardDetailLogService
;
@Autowired
private
RewardSender
rewardSender
;
private
GroupChatActivityRewardLogDTO
convertToDTO
(
TabGroupChatActivityRewardLog
tabGroupChatActivityRewardLog
)
{
private
GroupChatActivityRewardLogDTO
convertToDTO
(
TabGroupChatActivityRewardLog
tabGroupChatActivityRewardLog
)
{
GroupChatActivityRewardLogDTO
groupChatActivityRewardLogDTO
=
new
GroupChatActivityRewardLogDTO
();
GroupChatActivityRewardLogDTO
groupChatActivityRewardLogDTO
=
new
GroupChatActivityRewardLogDTO
();
...
@@ -74,4 +102,122 @@ public class GroupChatActivityRewardLogServiceImpl implements GroupChatActivityR
...
@@ -74,4 +102,122 @@ public class GroupChatActivityRewardLogServiceImpl implements GroupChatActivityR
page
.
setResult
(
rewardLogDTOList
);
page
.
setResult
(
rewardLogDTOList
);
return
page
;
return
page
;
}
}
@Override
public
void
dealRewardAndSaveLog
(
GroupChatActivityContext
context
)
{
Long
chatActivityId
=
context
.
getChatActivityId
();
String
inviterMemberId
=
context
.
getInviterMemberId
();
String
enterpriseId
=
context
.
getEnterpriseId
();
GroupChatActivityDTO
chatActivityDTO
=
context
.
getChatActivityDTO
();
Integer
inviteRewardType
=
chatActivityDTO
.
getInviteRewardType
();
Map
<
Integer
,
List
<
GroupChatActivityRewardDTO
>>
rewardMap
=
chatActivityDTO
.
getRewardMap
();
TabGroupChatActivityInviteLog
inviteLog
=
new
TabGroupChatActivityInviteLog
();
inviteLog
.
setChatActivityId
(
chatActivityId
);
inviteLog
.
setInviterMemberId
(
inviterMemberId
);
inviteLog
.
setEnterpriseId
(
enterpriseId
);
inviteLog
.
setInviteType
(
Constant
.
FLAG_TRUE
);
Long
count
=
groupChatActivityInviteLogMapper
.
count
(
inviteLog
);
if
(
count
<=
0
)
{
return
;
}
//发送邀请人奖励
List
<
GroupChatActivityRewardDTO
>
inviterRewardDTOList
=
rewardMap
.
get
(
ChatActivityRewardInviteEnum
.
INVITER
.
value
);
if
(
CollectionUtils
.
isNotEmpty
(
inviterRewardDTOList
))
{
List
<
GroupChatActivityRewardDTO
>
sendReward
=
new
ArrayList
<>();
Integer
inviteLevel
=
1
;
for
(
GroupChatActivityRewardDTO
rewardDTO
:
inviterRewardDTOList
)
{
Integer
inviteNumber
=
rewardDTO
.
getInviteNumber
();
Integer
limitReward
=
rewardDTO
.
getLimitReward
();
if
(
Objects
.
equals
(
ChatActivityInviteRewardEnum
.
FIXED_REWARD
.
value
,
inviteRewardType
))
{
//固定奖励 有效邀请为整数倍 且 完成奖励次数小于等于奖励上限
if
(
count
.
intValue
()
%
inviteNumber
==
0
&&
count
.
intValue
()
/
inviteNumber
<=
limitReward
)
{
sendReward
.
add
(
rewardDTO
);
}
}
else
if
(
Objects
.
equals
(
ChatActivityInviteRewardEnum
.
LADDER_REWARD
.
value
,
inviteRewardType
))
{
// 阶梯奖励 有效邀请次数相等
if
(
count
.
intValue
()
==
inviteNumber
)
{
sendReward
.
add
(
rewardDTO
);
inviteLevel
=
rewardDTO
.
getInviteLevel
();
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
sendReward
))
{
dealInviteReward
(
chatActivityId
,
inviterMemberId
,
inviteLevel
,
ChatActivityRewardInviteEnum
.
INVITER
.
value
,
sendReward
,
chatActivityDTO
);
}
}
List
<
GroupChatActivityRewardDTO
>
inviteeRewardDTOList
=
rewardMap
.
get
(
ChatActivityRewardInviteEnum
.
INVITEE
.
value
);
//发送受邀人奖励
if
(
CollectionUtils
.
isNotEmpty
(
inviteeRewardDTOList
))
{
String
memberId
=
context
.
getChatUser
().
getMemberId
();
if
(
StringUtils
.
isBlank
(
memberId
))
{
logger
.
info
(
"受邀人memberId为空"
);
return
;
}
dealInviteReward
(
chatActivityId
,
inviterMemberId
,
1
,
ChatActivityRewardInviteEnum
.
INVITEE
.
value
,
inviteeRewardDTOList
,
chatActivityDTO
);
}
}
/**
* 发送奖励并保存日志
* @param chatActivityId 活动id
* @param memberId 会员id
* @param inviteLevel 完成的层级
* @param rewardInvite 奖励人类型
* @param sendReward 发送的奖励明细
* @param activityDTO 活动DTO
*/
private
void
dealInviteReward
(
Long
chatActivityId
,
String
memberId
,
Integer
inviteLevel
,
Integer
rewardInvite
,
List
<
GroupChatActivityRewardDTO
>
sendReward
,
GroupChatActivityDTO
activityDTO
)
{
String
enterpriseId
=
activityDTO
.
getEnterpriseId
();
String
wxEnterpriseId
=
activityDTO
.
getWxEnterpriseId
();
String
activityName
=
activityDTO
.
getActivityName
();
//保存奖励记录
Long
rewardLogId
=
UniqueIdUtils
.
uniqueLong
();
TabGroupChatActivityRewardLog
rewardLog
=
new
TabGroupChatActivityRewardLog
();
rewardLog
.
setChatActivityRewardLogId
(
rewardLogId
);
rewardLog
.
setChatActivityId
(
chatActivityId
);
rewardLog
.
setMemberId
(
memberId
);
rewardLog
.
setRewardInvite
(
rewardInvite
);
rewardLog
.
setInviteLevel
(
inviteLevel
);
rewardLog
.
setEnterpriseId
(
enterpriseId
);
rewardLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
groupChatActivityRewardLogMapper
.
insert
(
rewardLog
);
for
(
GroupChatActivityRewardDTO
rewardDTO
:
sendReward
)
{
List
<
GroupChatActivityRewardDetailDTO
>
detailList
=
rewardDTO
.
getDetailList
();
for
(
GroupChatActivityRewardDetailDTO
rewardDetailDTO
:
detailList
)
{
String
rewardValue
=
rewardDetailDTO
.
getRewardValue
();
List
<
JSONObject
>
list
=
JSONArray
.
parseArray
(
rewardDetailDTO
.
getRewardName
(),
JSONObject
.
class
);
String
[]
rewardList
=
rewardValue
.
split
(
","
);
for
(
int
i
=
0
;
i
<
rewardList
.
length
;
i
++)
{
String
rewardV
=
rewardList
[
i
];
String
rewardName
=
list
.
get
(
i
).
getString
(
"name"
);
TabGroupChatActivityRewardDetailLog
rewardDetailLog
=
new
TabGroupChatActivityRewardDetailLog
();
Long
rewardDetailId
=
UniqueIdUtils
.
uniqueLong
();
rewardDetailLog
.
setChatActivityRewardDetailId
(
rewardDetailId
);
rewardDetailLog
.
setChatActivityRewardId
(
rewardDetailDTO
.
getChatActivityRewardId
());
rewardDetailLog
.
setChatActivityId
(
rewardDTO
.
getChatActivityId
());
rewardDetailLog
.
setActivityRewardId
(
rewardDetailDTO
.
getChatActivityRewardId
());
rewardDetailLog
.
setMemberId
(
memberId
);
rewardDetailLog
.
setRewardType
(
rewardDetailDTO
.
getRewardType
());
rewardDetailLog
.
setRewardValue
(
rewardV
);
rewardDetailLog
.
setRewardName
(
rewardName
);
rewardDetailLog
.
setSuccessFlag
(
Constant
.
FLAG_FALSE
);
rewardDetailLog
.
setEnterpriseId
(
enterpriseId
);
rewardDetailLog
.
setWxEnterpriseId
(
wxEnterpriseId
);
groupChatActivityRewardDetailLogMapper
.
insert
(
rewardDetailLog
);
RewardReturnBO
rewardReturnBO
=
null
;
String
rewardRemark
=
null
;
try
{
rewardReturnBO
=
rewardSender
.
sendReward
(
rewardDetailLog
,
activityName
);
}
catch
(
BusinessException
e
)
{
logger
.
info
(
"发放奖励失败 rewardDetailLogId:{}"
,
rewardDetailId
,
e
);
rewardRemark
=
e
.
getMessage
();
}
rewardDetailLog
.
setRewardRemark
(
rewardRemark
);
if
(
rewardReturnBO
!=
null
)
{
rewardDetailLog
.
setRewardBusinessId
(
rewardReturnBO
.
getRewardBusinessId
());
rewardDetailLog
.
setSuccessFlag
(
Constant
.
FLAG_TRUE
);
}
}
}
}
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatServiceImpl.java
View file @
6208acb9
...
@@ -14,6 +14,7 @@ import com.gic.enterprise.api.dto.StoreDTO;
...
@@ -14,6 +14,7 @@ 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.manage.service.dao.mapper.WxEnterpriseMapper
;
import
com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService
;
import
com.gic.member.ext.api.enums.growth.GrowthRuleEnum
;
import
com.gic.member.ext.api.enums.growth.GrowthRuleEnum
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
...
@@ -128,6 +129,8 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -128,6 +129,8 @@ public class GroupChatServiceImpl implements GroupChatService {
private
WxEnterpriseMapper
wxEnterpriseMapper
;
private
WxEnterpriseMapper
wxEnterpriseMapper
;
@Autowired
@Autowired
private
ExternalMemberService
externalMemberService
;
private
ExternalMemberService
externalMemberService
;
@Autowired
private
GroupChatActivityInviteLogService
groupChatActivityInviteLogService
;
private
static
GicMQClient
mqClient
=
GICMQClientUtil
.
getClientInstance
();
private
static
GicMQClient
mqClient
=
GICMQClientUtil
.
getClientInstance
();
...
@@ -749,6 +752,7 @@ public class GroupChatServiceImpl implements GroupChatService {
...
@@ -749,6 +752,7 @@ public class GroupChatServiceImpl implements GroupChatService {
}
}
if
(
CollectionUtils
.
isNotEmpty
(
needAddUserList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
needAddUserList
))
{
this
.
groupChatUserMapper
.
batchInsert
(
needAddUserList
);
this
.
groupChatUserMapper
.
batchInsert
(
needAddUserList
);
groupChatActivityInviteLogService
.
groupChatInviteMQ
(
needAddUserList
);
}
}
// 删除退群的人
// 删除退群的人
List
<
Long
>
deleteIdList
=
new
ArrayList
<>();
List
<
Long
>
deleteIdList
=
new
ArrayList
<>();
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/HaobanTimerApiServiceImpl.java
View file @
6208acb9
...
@@ -8,6 +8,8 @@ import com.gic.haoban.manage.service.dao.mapper.hm.WxUserAddLogMapper;
...
@@ -8,6 +8,8 @@ import com.gic.haoban.manage.service.dao.mapper.hm.WxUserAddLogMapper;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.hm.TabWxUserAddLog
;
import
com.gic.haoban.manage.service.entity.hm.TabWxUserAddLog
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatDataService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatDataService
;
import
com.gic.haoban.manage.service.util.DingUtils
;
import
com.gic.haoban.manage.service.util.DingUtils
;
import
com.gic.haoban.manage.service.util.HBQwMonitorUtils
;
import
com.gic.haoban.manage.service.util.HBQwMonitorUtils
;
...
@@ -54,6 +56,8 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
...
@@ -54,6 +56,8 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
private
HaobanCommonMQApiService
haobanCommonMQApiService
;
private
HaobanCommonMQApiService
haobanCommonMQApiService
;
@Autowired
@Autowired
private
OpenStaffService
openStaffService
;
private
OpenStaffService
openStaffService
;
@Autowired
private
GroupChatActivityService
groupChatActivityService
;
@Override
@Override
...
@@ -186,4 +190,9 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
...
@@ -186,4 +190,9 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
public
void
openStaffServiceTimer
(
String
params
)
{
public
void
openStaffServiceTimer
(
String
params
)
{
this
.
openStaffService
.
openStaffServiceTimer
()
;
this
.
openStaffService
.
openStaffServiceTimer
()
;
}
}
@Override
public
void
groupChatActivityTime
(
String
params
)
{
groupChatActivityService
.
activityQuartzUpdateStatus
();
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/util/ExecuteServiceUtil.java
0 → 100644
View file @
6208acb9
package
com
.
gic
.
haoban
.
manage
.
service
.
util
;
import
com.gic.api.base.commons.BusinessException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.function.Supplier
;
/**
* Created by wangzubo on 2024/9/8.
*/
public
class
ExecuteServiceUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ExecuteServiceUtil
.
class
);
public
static
<
T
>
T
executeService
(
Supplier
<
T
>
serviceCall
,
String
errorMsg
)
throws
BusinessException
{
try
{
return
serviceCall
.
get
();
}
catch
(
Exception
e
)
{
logger
.
error
(
errorMsg
,
e
);
throw
new
BusinessException
(
"-1"
,
errorMsg
);
}
}
}
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatActivityInviteLogMapper.xml
View file @
6208acb9
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
<result
property=
"inviterMemberId"
column=
"inviter_member_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"inviterMemberId"
column=
"inviter_member_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"inviteeMemberId"
column=
"invitee_member_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"inviteeMemberId"
column=
"invitee_member_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"inviteeUserId"
column=
"invitee_user_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"inviteeUserId"
column=
"invitee_user_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"inviteeUnionId"
column=
"invitee_union_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"userName"
column=
"user_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"userName"
column=
"user_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"nickName"
column=
"nick_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"nickName"
column=
"nick_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"groupChatId"
column=
"group_chat_id"
jdbcType=
"INTEGER"
/>
<result
property=
"groupChatId"
column=
"group_chat_id"
jdbcType=
"INTEGER"
/>
...
@@ -24,7 +25,7 @@
...
@@ -24,7 +25,7 @@
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
chat_activity_invite_id
chat_activity_invite_id
, chat_activity_id, inviter_member_id, invitee_member_id, invitee_user_id,
, chat_activity_id, inviter_member_id, invitee_member_id, invitee_user_id,
invitee_union_id,
user_name, nick_name, group_chat_id, invite_type, invalid_invite_type, add_member_type, batch_number,
user_name, nick_name, group_chat_id, invite_type, invalid_invite_type, add_member_type, batch_number,
enterprise_id, wx_enterprise_id, create_time, update_time, delete_flag
enterprise_id, wx_enterprise_id, create_time, update_time, delete_flag
</sql>
</sql>
...
@@ -39,12 +40,12 @@
...
@@ -39,12 +40,12 @@
</select>
</select>
<!--查询指定行数据-->
<!--查询指定行数据-->
<select
id=
"queryAllByLimit"
resultMap=
"TabHaobanGroupChatActivityInviteLogMap"
>
<select
id=
"queryAll"
resultMap=
"TabHaobanGroupChatActivityInviteLogMap"
>
select chat_activity_invite_id, chat_activity_id, inviter_member_id, invitee_member_id, invitee_user_id,
select
user_name, nick_name, group_chat_id, invite_type, invalid_invite_type, add_member_type, batch_number,
<include
refid=
"Base_Column_List"
/>
enterprise_id, wx_enterprise_id, create_time, update_time, delete_flag
from tab_haoban_group_chat_activity_invite_log
from tab_haoban_group_chat_activity_invite_log
<where>
<where>
and enterprise_id = #{enterpriseId} and delete_flag = 0
<if
test=
"chatActivityInviteId != null"
>
<if
test=
"chatActivityInviteId != null"
>
and chat_activity_invite_id = #{chatActivityInviteId}
and chat_activity_invite_id = #{chatActivityInviteId}
</if>
</if>
...
@@ -81,14 +82,10 @@
...
@@ -81,14 +82,10 @@
<if
test=
"batchNumber != null"
>
<if
test=
"batchNumber != null"
>
and batch_number = #{batchNumber}
and batch_number = #{batchNumber}
</if>
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"wxEnterpriseId != null and wxEnterpriseId != ''"
>
<if
test=
"wxEnterpriseId != null and wxEnterpriseId != ''"
>
and wx_enterprise_id = #{wxEnterpriseId}
and wx_enterprise_id = #{wxEnterpriseId}
</if>
</if>
</where>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
</select>
<!--统计总行数-->
<!--统计总行数-->
...
@@ -96,6 +93,7 @@
...
@@ -96,6 +93,7 @@
select count(1)
select count(1)
from tab_haoban_group_chat_activity_invite_log
from tab_haoban_group_chat_activity_invite_log
<where>
<where>
and enterprise_id = #{enterpriseId} and delete_flag = 0
<if
test=
"chatActivityInviteId != null"
>
<if
test=
"chatActivityInviteId != null"
>
and chat_activity_invite_id = #{chatActivityInviteId}
and chat_activity_invite_id = #{chatActivityInviteId}
</if>
</if>
...
@@ -132,9 +130,6 @@
...
@@ -132,9 +130,6 @@
<if
test=
"batchNumber != null"
>
<if
test=
"batchNumber != null"
>
and batch_number = #{batchNumber}
and batch_number = #{batchNumber}
</if>
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"wxEnterpriseId != null and wxEnterpriseId != ''"
>
<if
test=
"wxEnterpriseId != null and wxEnterpriseId != ''"
>
and wx_enterprise_id = #{wxEnterpriseId}
and wx_enterprise_id = #{wxEnterpriseId}
</if>
</if>
...
@@ -143,22 +138,15 @@
...
@@ -143,22 +138,15 @@
<!--新增所有列-->
<!--新增所有列-->
<insert
id=
"insert"
keyProperty=
"chatActivityInviteId"
useGeneratedKeys=
"true"
>
<insert
id=
"insert"
keyProperty=
"chatActivityInviteId"
useGeneratedKeys=
"true"
>
insert into tab_haoban_group_chat_activity_invite_log(chat_activity_invite_id,chat_activity_id, inviter_member_id, invitee_member_id, invitee_user_id,
insert into tab_haoban_group_chat_activity_invite_log(chat_activity_invite_id,chat_activity_id, inviter_member_id, invitee_member_id, invitee_user_id,
invitee_union_id,
user_name, nick_name, group_chat_id, invite_type, invalid_invite_type, add_member_type, batch_number,
user_name, nick_name, group_chat_id, invite_type, invalid_invite_type, add_member_type, batch_number,
enterprise_id, wx_enterprise_id)
enterprise_id, wx_enterprise_id)
values (#{chatActivityInviteId},#{chatActivityId}, #{inviterMemberId}, #{inviteeMemberId}, #{inviteeUserId}, #{userName}, #{nickName},
values (#{chatActivityInviteId},#{chatActivityId}, #{inviterMemberId}, #{inviteeMemberId}, #{inviteeUserId},
#{inviteeUnionId},
#{userName}, #{nickName},
#{groupChatId}, #{inviteType}, #{invalidInviteType}, #{addMemberType}, #{batchNumber}, #{enterpriseId},
#{groupChatId}, #{inviteType}, #{invalidInviteType}, #{addMemberType}, #{batchNumber}, #{enterpriseId},
#{wxEnterpriseId})
#{wxEnterpriseId})
</insert>
</insert>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
delete
from tab_haoban_group_chat_activity_invite_log
where chat_activity_invite_id = #{chatActivityInviteId}
</delete>
<select
id=
"queryMaxBatchByChatActivityIdAndInviterMemberId"
resultType=
"integer"
>
<select
id=
"queryMaxBatchByChatActivityIdAndInviterMemberId"
resultType=
"integer"
>
select max(batch_number)
select max(batch_number)
from tab_haoban_group_chat_activity_invite_log
from tab_haoban_group_chat_activity_invite_log
...
...
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatActivityRewardDetailLogMapper.xml
View file @
6208acb9
...
@@ -219,22 +219,10 @@
...
@@ -219,22 +219,10 @@
<if
test=
"successFlag != null"
>
<if
test=
"successFlag != null"
>
success_flag = #{successFlag},
success_flag = #{successFlag},
</if>
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
enterprise_id = #{enterpriseId},
</if>
<if
test=
"wxEnterpriseId != null and wxEnterpriseId != ''"
>
wx_enterprise_id = #{wxEnterpriseId},
</if>
</set>
</set>
where chat_activity_reward_detail_id = #{chatActivityRewardDetailId}
where chat_activity_reward_detail_id = #{chatActivityRewardDetailId}
</update>
</update>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
delete
from tab_haoban_group_chat_activity_reward_detail_log
where chat_activity_reward_detail_id = #{chatActivityRewardDetailId}
</delete>
<select
id=
"queryList"
resultMap=
"TabHaobanGroupChatActivityRewardDetailLogMap"
>
<select
id=
"queryList"
resultMap=
"TabHaobanGroupChatActivityRewardDetailLogMap"
>
select
select
...
...
haoban-manage3-service/src/test/java/GroupChatTest.java
0 → 100644
View file @
6208acb9
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.content.api.qdto.activity.ContentActivityQDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDetailDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityHmQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityJoinQDTO
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivityQDTO
;
import
com.gic.haoban.manage.api.service.chat.GroupChatActivityApiService
;
import
com.gic.haoban.manage.api.service.chat.GroupChatActivityShareApiService
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityBaseContext
;
import
com.gic.haoban.manage.service.pojo.bo.chat.GroupChatActivityContext
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityRewardLogService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityService
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.util.*
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
locations
=
{
"classpath:applicationContext-conf.xml"
})
public
class
GroupChatTest
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
GroupChatTest
.
class
);
@Autowired
private
GroupChatActivityApiService
groupChatActivityApiService
;
@Autowired
private
GroupChatActivityShareApiService
groupChatActivityShareApiService
;
@Autowired
private
GroupChatActivityInviteLogService
groupChatActivityInviteLogService
;
@Test
public
void
saveActivity
()
throws
Exception
{
GroupChatActivityQDTO
qdto
=
new
GroupChatActivityQDTO
();
qdto
.
setActivityName
(
"测试活动2"
);
qdto
.
setStartDate
(
new
Date
(
"2024/10/11"
));
qdto
.
setEndDate
(
new
Date
(
"2025/10/10"
));
qdto
.
setActivityImg
(
"123"
);
qdto
.
setActivityInviteImg
(
"123"
);
qdto
.
setActivityDesc
(
"123"
);
qdto
.
setActivityShareTitle
(
"123"
);
qdto
.
setActivityShareImg
(
"123"
);
qdto
.
setActivityPosterImg
(
"123"
);
qdto
.
setInviteRewardType
(
2
);
qdto
.
setJoinType
(
2
);
// qdto.setJoinRule();
qdto
.
setJoinChatHmId
(
709467854075881635L
);
qdto
.
setInviteType
(
1
);
qdto
.
setInviteMemberType
(
1
);
qdto
.
setLabelFlag
(
0
);
// qdto.setLabelJson();
qdto
.
setExceptionNotice
(
0
);
qdto
.
setExceptionNoticeNum
(
0
);
qdto
.
setEnterpriseId
(
"ff8080815dacd3a2015dacd3ef5c0000"
);
qdto
.
setWxEnterpriseId
(
"ca66a01b79474c40b3e7c7f93daf1a3b"
);
qdto
.
setCreatorId
(
"fefd1c81641711e69d0818c58a146fd2"
);
qdto
.
setCreatorName
(
"达摩管理"
);
List
<
GroupChatActivityRewardDTO
>
rewardList
=
new
ArrayList
<>();
GroupChatActivityRewardDTO
rewardDTO
=
new
GroupChatActivityRewardDTO
();
rewardDTO
.
setInviteNumber
(
1
);
rewardDTO
.
setInviteLevel
(
1
);
rewardDTO
.
setRewardInvite
(
1
);
rewardDTO
.
setLimitReward
(
3
);
Map
<
Integer
,
List
<
GroupChatActivityRewardDTO
>>
rewardMap
=
new
HashMap
<>();
List
<
GroupChatActivityRewardDetailDTO
>
detailList
=
new
ArrayList
<>();
GroupChatActivityRewardDetailDTO
rewardDetail
=
new
GroupChatActivityRewardDetailDTO
();
rewardDetail
.
setRewardType
(
1
);
rewardDetail
.
setRewardValue
(
"2"
);
rewardDetail
.
setRewardName
(
"2积分"
);
detailList
.
add
(
rewardDetail
);
rewardDTO
.
setDetailList
(
detailList
);
rewardList
.
add
(
rewardDTO
);
rewardMap
.
put
(
1
,
rewardList
);
rewardDTO
=
new
GroupChatActivityRewardDTO
();
rewardDTO
.
setInviteNumber
(
1
);
rewardDTO
.
setInviteLevel
(
1
);
rewardDTO
.
setRewardInvite
(
2
);
rewardDTO
.
setLimitReward
(
1
);
List
<
GroupChatActivityRewardDetailDTO
>
detailList2
=
new
ArrayList
<>();
GroupChatActivityRewardDetailDTO
rewardDetail2
=
new
GroupChatActivityRewardDetailDTO
();
rewardDetail2
.
setRewardType
(
1
);
rewardDetail2
.
setRewardValue
(
"8"
);
rewardDetail2
.
setRewardName
(
"8积分"
);
detailList2
.
add
(
rewardDetail2
);
rewardDTO
.
setDetailList
(
detailList2
);
rewardList
.
add
(
rewardDTO
);
rewardMap
.
put
(
2
,
rewardList
);
qdto
.
setRewardMap
(
rewardMap
);
List
<
GroupChatActivityJoinQDTO
>
joinList
=
new
ArrayList
<>();
GroupChatActivityJoinQDTO
join
=
new
GroupChatActivityJoinQDTO
();
join
.
setMemberType
(
0
);
join
.
setFilterJson
(
""
);
join
.
setFilterJsonView
(
""
);
join
.
setIndex
(
2
);
join
.
setChatHmId
(
709467854075881635L
);
joinList
.
add
(
join
);
qdto
.
setJoinList
(
joinList
);
join
=
new
GroupChatActivityJoinQDTO
();
join
.
setMemberType
(
0
);
join
.
setFilterJson
(
""
);
join
.
setFilterJsonView
(
""
);
join
.
setIndex
(
1
);
join
.
setChatHmId
(
709467854075881635L
);
joinList
.
add
(
join
);
qdto
.
setJoinList
(
joinList
);
ServiceResponse
<
Long
>
response
=
groupChatActivityApiService
.
saveActivity
(
qdto
);
System
.
out
.
println
(
JSONObject
.
toJSONString
(
response
));
}
@Test
public
void
listGroupChatHm
()
throws
Exception
{
GroupChatActivityHmQDTO
groupChatActivityHmQDTO
=
new
GroupChatActivityHmQDTO
();
groupChatActivityHmQDTO
.
setChatActivityId
(
716721754221821953L
);
groupChatActivityHmQDTO
.
setInviterMemberId
(
"ff808081906def5201907645bfc7005a"
);
groupChatActivityHmQDTO
.
setInviteeMemberId
(
"ff8080818215878101821949a845003c"
);
groupChatActivityHmQDTO
.
setInviteeUnionId
(
"123456"
);
groupChatActivityHmQDTO
.
setEnterpriseId
(
"ff8080815dacd3a2015dacd3ef5c0000"
);
groupChatActivityHmQDTO
.
setDistrictCode
(
"330100"
);
groupChatActivityHmQDTO
.
setLatitude
(
"30.247100"
);
groupChatActivityHmQDTO
.
setLongitude
(
"120.209000"
);
groupChatActivityHmQDTO
.
setSkipArea
(
false
);
ServiceResponse
<
List
<
GroupChatHmDTO
>>
listServiceResponse
=
groupChatActivityShareApiService
.
listGroupChatHm
(
groupChatActivityHmQDTO
);
System
.
out
.
println
(
JSONObject
.
toJSONString
(
listServiceResponse
));
}
@Test
public
void
groupChatInviteMQ
()
throws
Exception
{
// groupChatActivityInviteLogService.groupChatInviteMQ("ff8080815dacd3a2015dacd3ef5c0000","123456",717384135185809471L);
}
@Test
public
void
dealRewardAndSaveLog
()
throws
Exception
{
GroupChatActivityBaseContext
context
=
new
GroupChatActivityBaseContext
();
context
.
setChatUserId
(
717384135185809471L
);
context
.
setChatActivityId
(
716721754221821953L
);
context
.
setInviterMemberId
(
"ff808081906def5201907645bfc7005a"
);
context
.
setEnterpriseId
(
"ff8080815dacd3a2015dacd3ef5c0000"
);
groupChatActivityInviteLogService
.
groupChatInvite
(
context
);
}
}
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