Commit 897a1469 by 王祖波

Merge branch 'refs/heads/feature-chat-activity'

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/chat/GroupChatUserMapper.java
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/MaterialServiceImpl.java
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/util/ApolloUtils.java
parents 903d4460 d34e898b
...@@ -54,4 +54,24 @@ public interface StatisticsApolloKeyConstant { ...@@ -54,4 +54,24 @@ public interface StatisticsApolloKeyConstant {
* 用于好办链接列表数据 企业+链接 * 用于好办链接列表数据 企业+链接
*/ */
String data_haoban_link_list = "data_haoban_link_list"; String data_haoban_link_list = "data_haoban_link_list";
/**
* 社群邀请有礼 数据概览
*/
String data_mkt_group_chat_data_overview = "data_mkt_group_chat_data_overview";
/**
* 社群邀请有礼 阶段奖励
*/
String data_mkt_group_chat_data_reward_level = "data_mkt_group_chat_data_reward_level";
/**
* 社群邀请有礼 参与客户明细
*/
String data_mkt_group_chat_data_inviter_detail = "data_mkt_group_chat_data_inviter_detail";
/**
* 社群邀请有礼,小程序端数据
*/
String DATA_MKT_GROUP_CHAT_DATA_MBR = "data_mkt_group_chat_data_mbr";
} }
package com.gic.haoban.manage.api.dto.chat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityJoinQDTO;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 社群邀请有礼表(TabHaobanGroupChatActivity)实体类
*
* @author makejava
* @since 2024-09-27 16:09:38
*/
public class GroupChatActivityBaseDTO implements Serializable {
private static final long serialVersionUID = 973688857967269973L;
/**
* 社群活动id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityId;
/**
* 活动名称
*/
private String activityName;
/**
* 开始时间
*/
private Date startDate;
/**
* 结束时间
*/
private Date endDate;
/**
* 终止/截止时间
*/
private Date limitDate;
/**
* 活动图片
*/
private String activityImg;
/**
* 活动受邀页图片
*/
private String activityInviteImg;
/**
* 活动说明
*/
private String activityDesc;
/**
* 活动分享标题
*/
private String activityShareTitle;
/**
* 活动分享卡片图片
*/
private String activityShareImg;
/**
* 活动分享海报图片
*/
private String activityPosterImg;
/**
* 状态1未开始2进行中3已终止4已结束
*/
private Integer status;
/**
* 奖励类型 1定额奖励2阶梯奖励
*/
private Integer inviteRewardType;
/**
* 入群方式 1规则入群2定向入群
*/
private Integer joinType;
/**
* 入群规则 1邀请人所在企微群2服务门店3协管门店4LBS定位 [{"openFlag":0,"val":1},{"openFlag":0,"val":2},{"openFlag":0,"val":3},{"openFlag":0,"val":4}]
*/
private String joinRule;
/**
* 入群兜底群活码id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long joinChatHmId;
/**
* 邀请类型 0不限制1入群前未处于任何企业群聊内算有效邀请2首次加入企业群聊才算有效邀请
*/
private Integer inviteType;
/**
* 邀请会员类型 0所有用户1开卡会员
*/
private Integer inviteMemberType;
/**
* 打标签1是0否
*/
private Integer labelFlag;
/**
* {"id": 1, "name": "标签名称" }
*/
private String labelJson;
/**
* 异常提醒 0 不提醒 1短信提醒
*/
private Integer exceptionNotice;
/**
* 异常提醒数量
*/
private Integer exceptionNoticeNum;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
private String creatorId;
private String creatorName;
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public String getActivityName() {
return activityName;
}
public void setActivityName(String activityName) {
this.activityName = activityName;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getLimitDate() {
return limitDate;
}
public void setLimitDate(Date limitDate) {
this.limitDate = limitDate;
}
public String getActivityImg() {
return activityImg;
}
public void setActivityImg(String activityImg) {
this.activityImg = activityImg;
}
public String getActivityInviteImg() {
return activityInviteImg;
}
public void setActivityInviteImg(String activityInviteImg) {
this.activityInviteImg = activityInviteImg;
}
public String getActivityDesc() {
return activityDesc;
}
public void setActivityDesc(String activityDesc) {
this.activityDesc = activityDesc;
}
public String getActivityShareTitle() {
return activityShareTitle;
}
public void setActivityShareTitle(String activityShareTitle) {
this.activityShareTitle = activityShareTitle;
}
public String getActivityShareImg() {
return activityShareImg;
}
public void setActivityShareImg(String activityShareImg) {
this.activityShareImg = activityShareImg;
}
public String getActivityPosterImg() {
return activityPosterImg;
}
public void setActivityPosterImg(String activityPosterImg) {
this.activityPosterImg = activityPosterImg;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getInviteRewardType() {
return inviteRewardType;
}
public void setInviteRewardType(Integer inviteRewardType) {
this.inviteRewardType = inviteRewardType;
}
public Integer getJoinType() {
return joinType;
}
public void setJoinType(Integer joinType) {
this.joinType = joinType;
}
public String getJoinRule() {
return joinRule;
}
public void setJoinRule(String joinRule) {
this.joinRule = joinRule;
}
public Long getJoinChatHmId() {
return joinChatHmId;
}
public void setJoinChatHmId(Long joinChatHmId) {
this.joinChatHmId = joinChatHmId;
}
public Integer getInviteType() {
return inviteType;
}
public void setInviteType(Integer inviteType) {
this.inviteType = inviteType;
}
public Integer getInviteMemberType() {
return inviteMemberType;
}
public void setInviteMemberType(Integer inviteMemberType) {
this.inviteMemberType = inviteMemberType;
}
public Integer getLabelFlag() {
return labelFlag;
}
public void setLabelFlag(Integer labelFlag) {
this.labelFlag = labelFlag;
}
public String getLabelJson() {
return labelJson;
}
public void setLabelJson(String labelJson) {
this.labelJson = labelJson;
}
public Integer getExceptionNotice() {
return exceptionNotice;
}
public void setExceptionNotice(Integer exceptionNotice) {
this.exceptionNotice = exceptionNotice;
}
public Integer getExceptionNoticeNum() {
return exceptionNoticeNum;
}
public void setExceptionNoticeNum(Integer exceptionNoticeNum) {
this.exceptionNoticeNum = exceptionNoticeNum;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
}
package com.gic.haoban.manage.api.dto.chat;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityJoinQDTO;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 社群邀请有礼表(TabHaobanGroupChatActivity)实体类
*
* @author makejava
* @since 2024-09-27 16:09:38
*/
public class GroupChatActivityDTO extends GroupChatActivityBaseDTO implements Serializable {
private static final long serialVersionUID = 973688857967269973L;
/**
* 奖励规则map key为奖励邀请人类型
*/
private Map<Integer,List<GroupChatActivityRewardDTO>> rewardMap;
/**
* 入群规则列表
*/
private List<GroupChatActivityJoinDTO> joinList;
public Map<Integer, List<GroupChatActivityRewardDTO>> getRewardMap() {
return rewardMap;
}
public void setRewardMap(Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap) {
this.rewardMap = rewardMap;
}
public List<GroupChatActivityJoinDTO> getJoinList() {
return joinList;
}
public void setJoinList(List<GroupChatActivityJoinDTO> joinList) {
this.joinList = joinList;
}
}
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
public class GroupChatActivityHmDTO extends GroupChatHmDTO implements Serializable {
/**
* 是否已经入群 1是0否
*/
private Integer joinGroup;
public Integer getJoinGroup() {
return joinGroup;
}
public void setJoinGroup(Integer joinGroup) {
this.joinGroup = joinGroup;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
import java.util.Date;
/**
* @author shangfeng
* @date 2024-10-08 13:56:35
*/
public class GroupChatActivityInviteLogDTO implements Serializable {
private static final long serialVersionUID = -5565985004891538070L;
/**
* 社群活动邀请id
*/
private Long chatActivityInviteId;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 邀请人会员ID
*/
private String inviterMemberId;
/**
* 受邀人会员ID
*/
private String inviteeMemberId;
/**
* 受邀人外部联系人id
*/
private String inviteeUserId;
/**
* 姓名
*/
private String userName;
/**
* 昵称
*/
private String nickName;
/**
* 群id
*/
private Long groupChatId;
/**
* 有效邀请类型 1有效0无效
*/
private Integer inviteType;
/**
* 无效邀请类型 1非首次参与活动受邀入群2入群前已处于企业群聊内3非首次加入企业群聊
*/
private Integer invalidInviteType;
/**
* 是否新增会员 1是 0否 null未统计
*/
private Integer addMemberType;
/**
* 有效邀请达成的批次 达成所有奖励限制后为-1
*/
private Integer batchNumber;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
public Long getChatActivityInviteId() {
return chatActivityInviteId;
}
public void setChatActivityInviteId(Long chatActivityInviteId) {
this.chatActivityInviteId = chatActivityInviteId;
}
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 getInviteeMemberId() {
return inviteeMemberId;
}
public void setInviteeMemberId(String inviteeMemberId) {
this.inviteeMemberId = inviteeMemberId;
}
public String getInviteeUserId() {
return inviteeUserId;
}
public void setInviteeUserId(String inviteeUserId) {
this.inviteeUserId = inviteeUserId;
}
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 Long getGroupChatId() {
return groupChatId;
}
public void setGroupChatId(Long groupChatId) {
this.groupChatId = groupChatId;
}
public Integer getInviteType() {
return inviteType;
}
public void setInviteType(Integer inviteType) {
this.inviteType = inviteType;
}
public Integer getInvalidInviteType() {
return invalidInviteType;
}
public void setInvalidInviteType(Integer invalidInviteType) {
this.invalidInviteType = invalidInviteType;
}
public Integer getAddMemberType() {
return addMemberType;
}
public void setAddMemberType(Integer addMemberType) {
this.addMemberType = addMemberType;
}
public Integer getBatchNumber() {
return batchNumber;
}
public void setBatchNumber(Integer batchNumber) {
this.batchNumber = batchNumber;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.api.dto.chat;
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 java.io.Serializable;
import java.util.Date;
/**
* 社群邀请有礼入群规则表(TabHaobanGroupChatActivityJoin)实体类
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public class GroupChatActivityJoinDTO implements Serializable {
private static final long serialVersionUID = -95747409578903881L;
/**
* 社群活动入群规则id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityJoinId;
/**
* 内容活动id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityId;
/**
* 会员类型(0:会员筛选,1:会员分组)
*/
private Integer memberType;
/**
* 人群
*/
private String filterJson;
/**
* 人群回显
*/
private String filterJsonView;
/**
* 序号 从小到大
*/
private Integer index;
/**
* 群活码id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatHmId;
public Long getChatActivityJoinId() {
return chatActivityJoinId;
}
public void setChatActivityJoinId(Long chatActivityJoinId) {
this.chatActivityJoinId = chatActivityJoinId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public Integer getMemberType() {
return memberType;
}
public void setMemberType(Integer memberType) {
this.memberType = memberType;
}
public String getFilterJson() {
return filterJson;
}
public void setFilterJson(String filterJson) {
this.filterJson = filterJson;
}
public String getFilterJsonView() {
return filterJsonView;
}
public void setFilterJsonView(String filterJsonView) {
this.filterJsonView = filterJsonView;
}
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public Long getChatHmId() {
return chatHmId;
}
public void setChatHmId(Long chatHmId) {
this.chatHmId = chatHmId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GroupChatActivityJoinDTO that = (GroupChatActivityJoinDTO) o;
return Objects.equal(chatActivityId, that.chatActivityId) && Objects.equal(memberType, that.memberType) && Objects.equal(filterJson, that.filterJson) && Objects.equal(index, that.index) && Objects.equal(chatHmId, that.chatHmId);
}
@Override
public int hashCode() {
return Objects.hashCode(chatActivityId, memberType, filterJson, index, chatHmId);
}
}
package com.gic.haoban.manage.api.dto.chat;
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.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
/**
* 社群邀请有礼奖励规则表(TabHaobanGroupChatActivityReward)实体类
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public class GroupChatActivityRewardBaseDTO implements Serializable {
private static final long serialVersionUID = -78111537762472232L;
/**
* 社群活动奖励规则id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityRewardId;
/**
* 内容活动id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityId;
/**
* 奖励邀请人数
*/
private Integer inviteNumber;
/**
* 奖励阶梯 固定奖励默认1
*/
private Integer inviteLevel;
/**
* 奖励人类型 1邀请人2受邀人
*/
private Integer rewardInvite;
/**
* 奖励类型 1积分2成长值3卡券
*/
private Integer rewardType;
/**
* 最多奖励数量
*/
private Integer limitReward;
/**
* 奖励内容 积分值 成长值 卡券id(逗号分隔)
*/
private String rewardValue;
/**
* 奖励名称 积分名称 成长值名称 卡券名称
*/
private String rewardName;
public Long getChatActivityRewardId() {
return chatActivityRewardId;
}
public void setChatActivityRewardId(Long chatActivityRewardId) {
this.chatActivityRewardId = chatActivityRewardId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public Integer getInviteNumber() {
return inviteNumber;
}
public void setInviteNumber(Integer inviteNumber) {
this.inviteNumber = inviteNumber;
}
public Integer getInviteLevel() {
return inviteLevel;
}
public void setInviteLevel(Integer inviteLevel) {
this.inviteLevel = inviteLevel;
}
public Integer getRewardInvite() {
return rewardInvite;
}
public void setRewardInvite(Integer rewardInvite) {
this.rewardInvite = rewardInvite;
}
public Integer getRewardType() {
return rewardType;
}
public void setRewardType(Integer rewardType) {
this.rewardType = rewardType;
}
public Integer getLimitReward() {
return limitReward;
}
public void setLimitReward(Integer limitReward) {
this.limitReward = limitReward;
}
public String getRewardValue() {
return rewardValue;
}
public void setRewardValue(String rewardValue) {
this.rewardValue = rewardValue;
}
public String getRewardName() {
return rewardName;
}
public void setRewardName(String rewardName) {
this.rewardName = rewardName;
}
public static List<GroupChatActivityRewardBaseDTO> mapConvert(Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap) {
List<GroupChatActivityRewardBaseDTO> list = new ArrayList<>();
rewardMap.forEach((k,v)->{
for (GroupChatActivityRewardDTO rewardDTO : v) {
List<GroupChatActivityRewardDetailDTO> detailList = rewardDTO.getDetailList();
for (GroupChatActivityRewardDetailDTO detailDTO : detailList) {
GroupChatActivityRewardBaseDTO rewardBaseDTO = new GroupChatActivityRewardBaseDTO();
rewardBaseDTO.setChatActivityRewardId(detailDTO.getChatActivityRewardId());
rewardBaseDTO.setRewardInvite(k);
rewardBaseDTO.setChatActivityId(rewardDTO.getChatActivityId());
rewardBaseDTO.setInviteNumber(rewardDTO.getInviteNumber());
rewardBaseDTO.setInviteLevel(rewardDTO.getInviteLevel());
rewardBaseDTO.setLimitReward(rewardDTO.getLimitReward());
rewardBaseDTO.setRewardType(detailDTO.getRewardType());
rewardBaseDTO.setRewardValue(detailDTO.getRewardValue());
rewardBaseDTO.setRewardName(detailDTO.getRewardName());
list.add(rewardBaseDTO);
}
}
});
return list;
}
public static Map<Integer, List<GroupChatActivityRewardDTO>> reverseMapConvert(List<GroupChatActivityRewardBaseDTO> baseDTOList) {
// 按 rewardInvite、chatActivityId 和 inviteLevel 进行分组
Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap = baseDTOList.stream()
.collect(Collectors.groupingBy(
GroupChatActivityRewardBaseDTO::getRewardInvite,
Collectors.collectingAndThen(
Collectors.groupingBy(baseDTO -> Lists.newArrayList(baseDTO.getChatActivityId(), baseDTO.getInviteLevel())),
chatActivityGroups -> chatActivityGroups.values().stream()
.map(group -> {
GroupChatActivityRewardBaseDTO firstDTO = group.get(0);
GroupChatActivityRewardDTO rewardDTO = new GroupChatActivityRewardDTO();
rewardDTO.setRewardInvite(firstDTO.getRewardInvite());
rewardDTO.setChatActivityId(firstDTO.getChatActivityId());
rewardDTO.setInviteNumber(firstDTO.getInviteNumber());
rewardDTO.setInviteLevel(firstDTO.getInviteLevel());
rewardDTO.setLimitReward(firstDTO.getLimitReward());
List<GroupChatActivityRewardDetailDTO> detailList = group.stream()
.sorted(Comparator.comparing(GroupChatActivityRewardBaseDTO::getRewardType))
.map(baseDTO -> {
GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO();
detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId());
detailDTO.setRewardType(baseDTO.getRewardType());
detailDTO.setRewardValue(baseDTO.getRewardValue());
detailDTO.setRewardName(baseDTO.getRewardName());
return detailDTO;
})
.collect(Collectors.toList());
rewardDTO.setDetailList(detailList);
return rewardDTO;
})
.sorted(Comparator.comparing(GroupChatActivityRewardDTO::getInviteLevel))
.collect(Collectors.toList())
)
));
return rewardMap;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GroupChatActivityRewardBaseDTO that = (GroupChatActivityRewardBaseDTO) o;
return Objects.equal(chatActivityId, that.chatActivityId) && Objects.equal(inviteNumber, that.inviteNumber) && Objects.equal(inviteLevel, that.inviteLevel) && Objects.equal(rewardInvite, that.rewardInvite) && Objects.equal(rewardType, that.rewardType) && Objects.equal(limitReward, that.limitReward) && Objects.equal(rewardValue, that.rewardValue);
}
@Override
public int hashCode() {
return Objects.hashCode(chatActivityId, inviteNumber, inviteLevel, rewardInvite, rewardType, limitReward, rewardValue);
}
}
package com.gic.haoban.manage.api.dto.chat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.google.common.base.Objects;
import java.io.Serializable;
import java.util.List;
/**
* 社群邀请有礼奖励规则表(TabHaobanGroupChatActivityReward)实体类
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public class GroupChatActivityRewardDTO implements Serializable {
private static final long serialVersionUID = -78111537762472232L;
/**
* 内容活动id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityId;
/**
* 奖励邀请人数
*/
private Integer inviteNumber;
/**
* 奖励阶梯 固定奖励默认1
*/
private Integer inviteLevel;
/**
* 奖励人类型 1邀请人2受邀人
*/
private Integer rewardInvite;
/**
* 最多奖励数量
*/
private Integer limitReward;
/**
* 奖励明细列表
*/
private List<GroupChatActivityRewardDetailDTO> detailList;
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public Integer getInviteNumber() {
return inviteNumber;
}
public void setInviteNumber(Integer inviteNumber) {
this.inviteNumber = inviteNumber;
}
public Integer getInviteLevel() {
return inviteLevel;
}
public void setInviteLevel(Integer inviteLevel) {
this.inviteLevel = inviteLevel;
}
public Integer getRewardInvite() {
return rewardInvite;
}
public void setRewardInvite(Integer rewardInvite) {
this.rewardInvite = rewardInvite;
}
public Integer getLimitReward() {
return limitReward;
}
public void setLimitReward(Integer limitReward) {
this.limitReward = limitReward;
}
public List<GroupChatActivityRewardDetailDTO> getDetailList() {
return detailList;
}
public void setDetailList(List<GroupChatActivityRewardDetailDTO> detailList) {
this.detailList = detailList;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GroupChatActivityRewardDTO rewardDTO = (GroupChatActivityRewardDTO) o;
return Objects.equal(chatActivityId, rewardDTO.chatActivityId) && Objects.equal(inviteNumber, rewardDTO.inviteNumber) && Objects.equal(inviteLevel, rewardDTO.inviteLevel) && Objects.equal(rewardInvite, rewardDTO.rewardInvite) && Objects.equal(limitReward, rewardDTO.limitReward) && Objects.equal(detailList, rewardDTO.detailList);
}
@Override
public int hashCode() {
return Objects.hashCode(chatActivityId, inviteNumber, inviteLevel, rewardInvite, limitReward, detailList);
}
}
package com.gic.haoban.manage.api.dto.chat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.google.common.base.Objects;
import java.io.Serializable;
public class GroupChatActivityRewardDetailDTO implements Serializable {
private static final long serialVersionUID = -78111537762472232L;
/**
* 社群活动奖励规则id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityRewardId;
/**
* 奖励类型 1积分2成长值3卡券
*/
private Integer rewardType;
/**
* 奖励内容 积分值 成长值 卡券id(逗号分隔)
*/
private String rewardValue;
/**
* 奖励名称 积分名称 成长值名称 卡券名称
*/
private String rewardName;
public Long getChatActivityRewardId() {
return chatActivityRewardId;
}
public void setChatActivityRewardId(Long chatActivityRewardId) {
this.chatActivityRewardId = chatActivityRewardId;
}
public Integer getRewardType() {
return rewardType;
}
public void setRewardType(Integer rewardType) {
this.rewardType = rewardType;
}
public String getRewardValue() {
return rewardValue;
}
public void setRewardValue(String rewardValue) {
this.rewardValue = rewardValue;
}
public String getRewardName() {
return rewardName;
}
public void setRewardName(String rewardName) {
this.rewardName = rewardName;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GroupChatActivityRewardDetailDTO that = (GroupChatActivityRewardDetailDTO) o;
return Objects.equal(rewardType, that.rewardType) && Objects.equal(rewardValue, that.rewardValue);
}
@Override
public int hashCode() {
return Objects.hashCode(rewardType, rewardValue);
}
}
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
import java.util.Date;
/**
* @author shangfeng
* @date 2024-10-09 10:13:56
*/
public class GroupChatActivityRewardDetailLogDTO implements Serializable {
private static final long serialVersionUID = -6244377713277293414L;
/**
* 社群活动奖励明细id
*/
private Long chatActivityRewardDetailId;
/**
* 社群活动奖励id
*/
private Long chatActivityRewardId;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 社群活动奖励规则id
*/
private Long activityRewardId;
/**
* 会员ID
*/
private String memberId;
/**
* 奖励类型 1积分2成长值3卡券
*/
private Integer rewardType;
/**
* 奖励内容 积分值 成长值 卡券id(逗号分隔)
*/
private String rewardValue;
/**
* 奖励名称
*/
private String rewardName;
/**
* 奖励内容备注
*/
private String rewardRemark;
/**
* 奖励关联业务日志id
*/
private String rewardBusinessId;
/**
* 操作奖励是否成功 1是 0否
*/
private Integer successFlag;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
public Long getChatActivityRewardDetailId() {
return chatActivityRewardDetailId;
}
public void setChatActivityRewardDetailId(Long chatActivityRewardDetailId) {
this.chatActivityRewardDetailId = chatActivityRewardDetailId;
}
public Long getChatActivityRewardId() {
return chatActivityRewardId;
}
public void setChatActivityRewardId(Long chatActivityRewardId) {
this.chatActivityRewardId = chatActivityRewardId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public Long getActivityRewardId() {
return activityRewardId;
}
public void setActivityRewardId(Long activityRewardId) {
this.activityRewardId = activityRewardId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Integer getRewardType() {
return rewardType;
}
public void setRewardType(Integer rewardType) {
this.rewardType = rewardType;
}
public String getRewardValue() {
return rewardValue;
}
public void setRewardValue(String rewardValue) {
this.rewardValue = rewardValue;
}
public String getRewardName() {
return rewardName;
}
public void setRewardName(String rewardName) {
this.rewardName = rewardName;
}
public String getRewardRemark() {
return rewardRemark;
}
public void setRewardRemark(String rewardRemark) {
this.rewardRemark = rewardRemark;
}
public String getRewardBusinessId() {
return rewardBusinessId;
}
public void setRewardBusinessId(String rewardBusinessId) {
this.rewardBusinessId = rewardBusinessId;
}
public Integer getSuccessFlag() {
return successFlag;
}
public void setSuccessFlag(Integer successFlag) {
this.successFlag = successFlag;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author shangfeng
* @date 2024-10-09 10:11:34
*/
public class GroupChatActivityRewardLogDTO implements Serializable {
private static final long serialVersionUID = -5926101376740603421L;
/**
* 社群活动奖励id
*/
private Long chatActivityRewardLogId;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 会员ID
*/
private String memberId;
/**
* 奖励人类型 1邀请人2受邀人
*/
private Integer rewardInvite;
/**
* 奖励阶梯 阶梯奖励,其他奖励默认1
*/
private Integer inviteLevel;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
private List<GroupChatActivityRewardDetailLogDTO> rewardDetailLogDTOList;
public Long getChatActivityRewardLogId() {
return chatActivityRewardLogId;
}
public void setChatActivityRewardLogId(Long chatActivityRewardLogId) {
this.chatActivityRewardLogId = chatActivityRewardLogId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Integer getRewardInvite() {
return rewardInvite;
}
public void setRewardInvite(Integer rewardInvite) {
this.rewardInvite = rewardInvite;
}
public Integer getInviteLevel() {
return inviteLevel;
}
public void setInviteLevel(Integer inviteLevel) {
this.inviteLevel = inviteLevel;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public List<GroupChatActivityRewardDetailLogDTO> getRewardDetailLogDTOList() {
return rewardDetailLogDTOList;
}
public void setRewardDetailLogDTOList(List<GroupChatActivityRewardDetailLogDTO> rewardDetailLogDTOList) {
this.rewardDetailLogDTOList = rewardDetailLogDTOList;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityInvalidInviteTypeEnum {
/**
* 无效邀请类型 1非首次参与活动受邀入群2入群前已处于企业群聊内3非首次加入企业群聊
*/
ONE(1, "非首次参与活动受邀入群"),
TWO(2, "入群前未处于任何企业群聊内算有效邀请"),
THREE(3, "首次加入企业群聊才算有效邀请"),
;
public final Integer value;
public final String desc;
ChatActivityInvalidInviteTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityInvalidInviteTypeEnum inviteTypeEnum : ChatActivityInvalidInviteTypeEnum.values()) {
if (Objects.equals(value, inviteTypeEnum.value)) {
return inviteTypeEnum.desc;
}
}
return null;
}
public static ChatActivityInvalidInviteTypeEnum getByValue(Integer value) {
for (ChatActivityInvalidInviteTypeEnum inviteTypeEnum : ChatActivityInvalidInviteTypeEnum.values()) {
if (Objects.equals(value, inviteTypeEnum.value)) {
return inviteTypeEnum;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityInviteMemberTypeEnum {
/**
* 邀请会员类型 0所有用户1开卡会员
*/
ALL(0, "所有用户"),
OPEN_CARD(1, "开卡会员"),
;
public final Integer value;
public final String desc;
ChatActivityInviteMemberTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityInviteMemberTypeEnum inviteMemberTypeEnum : ChatActivityInviteMemberTypeEnum.values()) {
if (Objects.equals(value, inviteMemberTypeEnum.value)) {
return inviteMemberTypeEnum.desc;
}
}
return null;
}
public static ChatActivityInviteMemberTypeEnum getByValue(Integer value) {
for (ChatActivityInviteMemberTypeEnum inviteMemberTypeEnum : ChatActivityInviteMemberTypeEnum.values()) {
if (Objects.equals(value, inviteMemberTypeEnum.value)) {
return inviteMemberTypeEnum;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityInviteRewardEnum {
/**
* 奖励类型 1定额奖励2阶梯奖励
*/
FIXED_REWARD(1, "定额奖励"),
LADDER_REWARD(2, "阶梯奖励"),
;
public final Integer value;
public final String desc;
ChatActivityInviteRewardEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityInviteRewardEnum inviteRewardEnum : ChatActivityInviteRewardEnum.values()) {
if (Objects.equals(value, inviteRewardEnum.value)) {
return inviteRewardEnum.desc;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityInviteTypeEnum {
/**
* 邀请类型 0不限制1入群前未处于任何企业群聊内算有效邀请2首次加入企业群聊才算有效邀请
*/
NONE(0, "不限制"),
NONE_GROUP_CHAT(1, "入群前未处于任何企业群聊内算有效邀请"),
FIRST_GROUP_CHAT(2, "首次加入企业群聊才算有效邀请"),
;
public final Integer value;
public final String desc;
ChatActivityInviteTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityInviteTypeEnum inviteTypeEnum : ChatActivityInviteTypeEnum.values()) {
if (Objects.equals(value, inviteTypeEnum.value)) {
return inviteTypeEnum.desc;
}
}
return null;
}
public static ChatActivityInviteTypeEnum getByValue(Integer value) {
for (ChatActivityInviteTypeEnum inviteTypeEnum : ChatActivityInviteTypeEnum.values()) {
if (Objects.equals(value, inviteTypeEnum.value)) {
return inviteTypeEnum;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityJoinEnum {
/**
* 入群方式 1规则入群2定向入群
*/
RULE(1, "规则入群"),
ORIENTED(2, "定向入群"),
;
public final Integer value;
public final String desc;
ChatActivityJoinEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityJoinEnum joinEnum : ChatActivityJoinEnum.values()) {
if (Objects.equals(value, joinEnum.value)) {
return joinEnum.desc;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityJoinRuleEnum {
/**
* 入群规则 1邀请人所在企微群2服务门店3协管门店4LBS定位
*/
INVITER_CHAT(1, "邀请人所在企微群"),
MAIN_STORE(2, "服务门店"),
OTHER_STORE(3, "协管门店"),
LBS(4, "LBS定位"),
;
public final Integer value;
public final String desc;
ChatActivityJoinRuleEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityJoinRuleEnum joinRuleEnum : ChatActivityJoinRuleEnum.values()) {
if (Objects.equals(value, joinRuleEnum.value)) {
return joinRuleEnum.desc;
}
}
return null;
}
public static ChatActivityJoinRuleEnum getByValue(Integer value) {
for (ChatActivityJoinRuleEnum joinRuleEnum : ChatActivityJoinRuleEnum.values()) {
if (Objects.equals(value, joinRuleEnum.value)) {
return joinRuleEnum;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityRewardEnum {
/**
* 奖励类型 1积分2成长值3卡券
*/
INTEGRAL(1, "积分"),
GROWTH(2, "成长值"),
COUPON(3, "卡券"),
;
public final Integer value;
public final String desc;
ChatActivityRewardEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityRewardEnum activityRewardEnum : ChatActivityRewardEnum.values()) {
if (Objects.equals(value, activityRewardEnum.value)) {
return activityRewardEnum.desc;
}
}
return null;
}
public static ChatActivityRewardEnum getByValue(Integer value) {
for (ChatActivityRewardEnum activityRewardEnum : ChatActivityRewardEnum.values()) {
if (Objects.equals(value, activityRewardEnum.value)) {
return activityRewardEnum;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityRewardInviteEnum {
/**
* 奖励人类型 1邀请人2受邀人
*/
INVITER(1, "邀请人"),
INVITEE(2, "受邀人"),
;
public final Integer value;
public final String desc;
ChatActivityRewardInviteEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityRewardInviteEnum rewardInviteEnum : ChatActivityRewardInviteEnum.values()) {
if (Objects.equals(value, rewardInviteEnum.value)) {
return rewardInviteEnum.desc;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums.chat;
import java.util.Objects;
/**
* Created by wangzubo on 2023/3/13.
*/
public enum ChatActivityStatusEnum {
/**
* 活动状态1未开始2进行中3已终止4已结束
*/
NOT_START(1, "未开始"),
START(2, "进行中"),
STOP(3, "已终止"),
END(4, "已结束"),
;
public final Integer value;
public final String desc;
ChatActivityStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public static String getDescByValue(Integer value) {
for (ChatActivityStatusEnum activityStatusEnum : ChatActivityStatusEnum.values()) {
if (Objects.equals(value, activityStatusEnum.value)) {
return activityStatusEnum.desc;
}
}
return null;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import java.io.Serializable;
public class GroupChatActivityHmQDTO implements Serializable {
private static final long serialVersionUID = -28454620622119889L;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 邀请人会员ID
*/
private String inviterMemberId;
/**
* 受邀人会员ID
*/
private String inviteeMemberId;
/**
* 受邀人unionID
*/
private String inviteeUnionId;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 纬度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/**
* 省市编码
*/
private String districtCode;
/**
* 是否跳过地区定位
*/
private boolean skipArea = false;
private GroupChatActivityDTO chatActivity;
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 getInviteeMemberId() {
return inviteeMemberId;
}
public void setInviteeMemberId(String inviteeMemberId) {
this.inviteeMemberId = inviteeMemberId;
}
public String getInviteeUnionId() {
return inviteeUnionId;
}
public void setInviteeUnionId(String inviteeUnionId) {
this.inviteeUnionId = inviteeUnionId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public GroupChatActivityDTO getChatActivity() {
return chatActivity;
}
public void setChatActivity(GroupChatActivityDTO chatActivity) {
this.chatActivity = chatActivity;
}
public boolean isSkipArea() {
return skipArea;
}
public void setSkipArea(boolean skipArea) {
this.skipArea = skipArea;
}
public String getDistrictCode() {
return districtCode;
}
public void setDistrictCode(String districtCode) {
this.districtCode = districtCode;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.commons.web.qo.PageQo;
import java.io.Serializable;
import java.util.Date;
/**
* @author shangfeng
* @date 2024-10-08 14:00:59
*/
public class GroupChatActivityInviteLogQDTO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = -3517354863714637621L;
private String enterpriseId;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 邀请人会员ID
*/
private String inviterMemberId;
/**
* 受邀请人会员ID
*/
private String inviteeMemberId;
/**
* 有效邀请类型 1有效0无效
*/
private Integer inviteType;
/**
* 是否新增会员 1是 0否 null未统计
*/
private Integer addMemberType;
/**
* 批次
*/
private Integer batchNumber;
/**
* 开始时间
*/
private Date beginTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 排序字段
*/
private String sortFiled;
/**
* 排序类型
*/
private String sortType;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = 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 Integer getInviteType() {
return inviteType;
}
public void setInviteType(Integer inviteType) {
this.inviteType = inviteType;
}
public String getInviteeMemberId() {
return inviteeMemberId;
}
public void setInviteeMemberId(String inviteeMemberId) {
this.inviteeMemberId = inviteeMemberId;
}
public Integer getAddMemberType() {
return addMemberType;
}
public void setAddMemberType(Integer addMemberType) {
this.addMemberType = addMemberType;
}
public Date getBeginTime() {
return beginTime;
}
public void setBeginTime(Date beginTime) {
this.beginTime = beginTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Integer getBatchNumber() {
return batchNumber;
}
public void setBatchNumber(Integer batchNumber) {
this.batchNumber = batchNumber;
}
public String getSortFiled() {
return sortFiled;
}
public void setSortFiled(String sortFiled) {
this.sortFiled = sortFiled;
}
public String getSortType() {
return sortType;
}
public void setSortType(String sortType) {
this.sortType = sortType;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityJoinDTO;
import java.io.Serializable;
import java.util.Date;
/**
* 社群邀请有礼入群规则表(TabHaobanGroupChatActivityJoin)实体类
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public class GroupChatActivityJoinQDTO extends GroupChatActivityJoinDTO implements Serializable {
private static final long serialVersionUID = -95747409578903881L;
/**
* 会员筛选-回显
*/
private String filterJsonView;
public String getFilterJsonView() {
return filterJsonView;
}
public void setFilterJsonView(String filterJsonView) {
this.filterJsonView = filterJsonView;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDTO;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 社群邀请有礼表(TabHaobanGroupChatActivity)实体类
*
* @author makejava
* @since 2024-09-27 16:09:38
*/
public class GroupChatActivityQDTO implements Serializable {
private static final long serialVersionUID = 973688857967269973L;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 活动名称
*/
private String activityName;
/**
* 开始时间
*/
private Date startDate;
/**
* 结束时间
*/
private Date endDate;
/**
* 状态1未开始2进行中3已终止4已结束
*/
private Integer status;
/**
* 活动图片
*/
private String activityImg;
/**
* 活动受邀页图片
*/
private String activityInviteImg;
/**
* 活动说明
*/
private String activityDesc;
/**
* 活动分享标题
*/
private String activityShareTitle;
/**
* 活动分享卡片图片
*/
private String activityShareImg;
/**
* 活动分享海报图片
*/
private String activityPosterImg;
/**
* 奖励类型 1定额奖励2阶梯奖励
*/
private Integer inviteRewardType;
/**
* 入群方式 1规则入群2定向入群
*/
private Integer joinType;
/**
* 入群规则 1邀请人所在企微群2服务门店3协管门店4LBS定位 [{"openFlag":0,"val":1},{"openFlag":0,"val":2},{"openFlag":0,"val":3},{"openFlag":0,"val":4}]
*/
private String joinRule;
/**
* 入群兜底群活码id
*/
private Long joinChatHmId;
/**
* 邀请类型 0不限制1入群前未处于任何企业群聊内算有效邀请2首次加入企业群聊才算有效邀请
*/
private Integer inviteType;
/**
* 邀请会员类型 0所有用户1开卡会员
*/
private Integer inviteMemberType;
/**
* 打标签1是0否
*/
private Integer labelFlag;
/**
* {"id": 1, "name": "标签名称" }
*/
private String labelJson;
/**
* 异常提醒 0 不提醒 1短信提醒
*/
private Integer exceptionNotice;
/**
* 异常提醒数量
*/
private Integer exceptionNoticeNum;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private String creatorId;
private String creatorName;
/**
* 奖励规则map key为奖励邀请人类型
*/
private Map<Integer,List<GroupChatActivityRewardDTO>> rewardMap;
/**
* 入群规则列表
*/
private List<GroupChatActivityJoinQDTO> joinList;
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public String getActivityName() {
return activityName;
}
public void setActivityName(String activityName) {
this.activityName = activityName;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getActivityImg() {
return activityImg;
}
public void setActivityImg(String activityImg) {
this.activityImg = activityImg;
}
public String getActivityInviteImg() {
return activityInviteImg;
}
public void setActivityInviteImg(String activityInviteImg) {
this.activityInviteImg = activityInviteImg;
}
public String getActivityDesc() {
return activityDesc;
}
public void setActivityDesc(String activityDesc) {
this.activityDesc = activityDesc;
}
public String getActivityShareTitle() {
return activityShareTitle;
}
public void setActivityShareTitle(String activityShareTitle) {
this.activityShareTitle = activityShareTitle;
}
public String getActivityShareImg() {
return activityShareImg;
}
public void setActivityShareImg(String activityShareImg) {
this.activityShareImg = activityShareImg;
}
public String getActivityPosterImg() {
return activityPosterImg;
}
public void setActivityPosterImg(String activityPosterImg) {
this.activityPosterImg = activityPosterImg;
}
public Integer getInviteRewardType() {
return inviteRewardType;
}
public void setInviteRewardType(Integer inviteRewardType) {
this.inviteRewardType = inviteRewardType;
}
public Integer getJoinType() {
return joinType;
}
public void setJoinType(Integer joinType) {
this.joinType = joinType;
}
public String getJoinRule() {
return joinRule;
}
public void setJoinRule(String joinRule) {
this.joinRule = joinRule;
}
public Long getJoinChatHmId() {
return joinChatHmId;
}
public void setJoinChatHmId(Long joinChatHmId) {
this.joinChatHmId = joinChatHmId;
}
public Integer getInviteType() {
return inviteType;
}
public void setInviteType(Integer inviteType) {
this.inviteType = inviteType;
}
public Integer getInviteMemberType() {
return inviteMemberType;
}
public void setInviteMemberType(Integer inviteMemberType) {
this.inviteMemberType = inviteMemberType;
}
public Integer getLabelFlag() {
return labelFlag;
}
public void setLabelFlag(Integer labelFlag) {
this.labelFlag = labelFlag;
}
public String getLabelJson() {
return labelJson;
}
public void setLabelJson(String labelJson) {
this.labelJson = labelJson;
}
public Integer getExceptionNotice() {
return exceptionNotice;
}
public void setExceptionNotice(Integer exceptionNotice) {
this.exceptionNotice = exceptionNotice;
}
public Integer getExceptionNoticeNum() {
return exceptionNoticeNum;
}
public void setExceptionNoticeNum(Integer exceptionNoticeNum) {
this.exceptionNoticeNum = exceptionNoticeNum;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Map<Integer, List<GroupChatActivityRewardDTO>> getRewardMap() {
return rewardMap;
}
public void setRewardMap(Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap) {
this.rewardMap = rewardMap;
}
public List<GroupChatActivityJoinQDTO> getJoinList() {
return joinList;
}
public void setJoinList(List<GroupChatActivityJoinQDTO> joinList) {
this.joinList = joinList;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import java.io.Serializable;
import java.util.List;
/**
* @author shangfeng
* @date 2024-10-09 10:41:40
*/
public class GroupChatActivityRewardDetailLogQDTO implements Serializable {
private static final long serialVersionUID = -2314846257775934409L;
private List<Long> rewardLogIdList;
public List<Long> getRewardLogIdList() {
return rewardLogIdList;
}
public void setRewardLogIdList(List<Long> rewardLogIdList) {
this.rewardLogIdList = rewardLogIdList;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
/**
* @author shangfeng
* @date 2024-10-09 10:18:00
*/
public class GroupChatActivityRewardLogQDTO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = -7610364164825668426L;
private String enterpriseId;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 邀请人会员ID
*/
private String memberId;
/**
* 奖励人类型 1邀请人2受邀人
*/
private Integer rewardInvite;
/**
* 开始时间
*/
private Date beginTime;
/**
* 结束时间
*/
private Date endTime;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Integer getRewardInvite() {
return rewardInvite;
}
public void setRewardInvite(Integer rewardInvite) {
this.rewardInvite = rewardInvite;
}
public Date getBeginTime() {
return beginTime;
}
public void setBeginTime(Date beginTime) {
this.beginTime = beginTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class GroupChatActivitySearchQDTO implements Serializable {
private static final long serialVersionUID = 692426229105512689L;
private String wxEnterpriseId;
/**
* 搜索内容
*/
private String search;
/**
* 状态1未开始2进行中3已终止4已结束
*/
private Integer status;
/**
* 奖励类型 1定额奖励2阶梯奖励
*/
private Integer inviteRewardType;
/**
* 入群方式 1规则入群2定向入群
*/
private Integer joinType;
/**
* 开始时间
*/
private Date beginDate;
/**
* 结束时间
*/
private Date endDate;
/**
* 创建人id列表
*/
private List<String> creatorIdList;
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getInviteRewardType() {
return inviteRewardType;
}
public void setInviteRewardType(Integer inviteRewardType) {
this.inviteRewardType = inviteRewardType;
}
public Integer getJoinType() {
return joinType;
}
public void setJoinType(Integer joinType) {
this.joinType = joinType;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public List<String> getCreatorIdList() {
return creatorIdList;
}
public void setCreatorIdList(List<String> creatorIdList) {
this.creatorIdList = creatorIdList;
}
}
package com.gic.haoban.manage.api.qdto.chat;
import java.io.Serializable;
import java.util.Date;
public class GroupChatActivityShareBindQDTO implements Serializable {
private static final long serialVersionUID = -28454620622119889L;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 邀请人会员ID
*/
private String inviterMemberId;
/**
* 受邀人会员ID
*/
private String inviteeMemberId;
/**
* 受邀人unionID
*/
private String inviteeUnionId;
/**
* 企业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 getInviteeMemberId() {
return inviteeMemberId;
}
public void setInviteeMemberId(String inviteeMemberId) {
this.inviteeMemberId = inviteeMemberId;
}
public String getInviteeUnionId() {
return inviteeUnionId;
}
public void setInviteeUnionId(String inviteeUnionId) {
this.inviteeUnionId = inviteeUnionId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
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;
}
}
package com.gic.haoban.manage.api.qdto.combined;
import java.io.Serializable;
public class CombinedQDTO implements Serializable {
private static final long serialVersionUID = -28454620622119889L;
/**
* 主图url
*/
private String imageUrl;
/**
* 小程序码url
*/
private String qrCodeUrl;
/**
* 展示样式
*/
private Integer showStyle;
/**
* 第一行文字
*/
private String lineOne;
/**
* 第二行文字
*/
private String lineTwo;
/**
* 1群发 2朋友圈
*/
private Integer mediaType;
/**
* 导购id(作标识)
*/
private String clerkId;
/**
* 业务id(作标识)
*/
private String businessId;
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getQrCodeUrl() {
return qrCodeUrl;
}
public void setQrCodeUrl(String qrCodeUrl) {
this.qrCodeUrl = qrCodeUrl;
}
public Integer getShowStyle() {
return showStyle;
}
public void setShowStyle(Integer showStyle) {
this.showStyle = showStyle;
}
public String getLineOne() {
return lineOne;
}
public void setLineOne(String lineOne) {
this.lineOne = lineOne;
}
public String getLineTwo() {
return lineTwo;
}
public void setLineTwo(String lineTwo) {
this.lineTwo = lineTwo;
}
public Integer getMediaType() {
return mediaType;
}
public void setMediaType(Integer mediaType) {
this.mediaType = mediaType;
}
public String getUnionString() {
return this.getImageUrl() + this.getQrCodeUrl() + this.getShowStyle() + this.getLineOne() + this.getLineTwo() + this.getMediaType();
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getBusinessId() {
return businessId;
}
public void setBusinessId(String businessId) {
this.businessId = businessId;
}
}
...@@ -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);
} }
...@@ -7,6 +7,7 @@ import com.gic.haoban.manage.api.dto.BatchAddMaterialDTO; ...@@ -7,6 +7,7 @@ import com.gic.haoban.manage.api.dto.BatchAddMaterialDTO;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO; import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.MaterialCategoryDTO; import com.gic.haoban.manage.api.dto.MaterialCategoryDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO; import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.qdto.combined.CombinedQDTO;
import java.util.List; import java.util.List;
...@@ -85,4 +86,6 @@ public interface MaterialApiService { ...@@ -85,4 +86,6 @@ public interface MaterialApiService {
com.gic.api.base.commons.ServiceResponse<String> getMaterialIdByUrl(String wxEnterpriseId, ContentMaterialDTO dto) ; com.gic.api.base.commons.ServiceResponse<String> getMaterialIdByUrl(String wxEnterpriseId, ContentMaterialDTO dto) ;
com.gic.api.base.commons.ServiceResponse<String> getMaterialIdByCombined(String wxEnterpriseId, CombinedQDTO combinedQDTO);
} }
package com.gic.haoban.manage.api.service.chat;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityBaseDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityQDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivitySearchQDTO;
import java.util.List;
/**
* Created by wangzubo on 2022/10/31.
*/
public interface GroupChatActivityApiService {
/**
* 保存互动营销活动
* @param qdto
* @return
*/
ServiceResponse<Long> saveActivity(GroupChatActivityQDTO qdto) ;
/**
* 获取活动详情
* @param chatActivityId
* @return
*/
ServiceResponse<GroupChatActivityDTO> getActivityDetail(String enterpriseId, Long chatActivityId);
/**
* 获取活动详情(缓存)
* @param chatActivityId
* @return
*/
ServiceResponse<GroupChatActivityDTO> getActivityDetailCache(String enterpriseId,Long chatActivityId);
/**
* 通过活动id列表获取
* @param enterpriseId
* @param chatActivityIdList
* @return
*/
ServiceResponse<List<GroupChatActivityBaseDTO>> listByActivityIds(String enterpriseId, List<Long> chatActivityIdList);
/**
* 通过活动id列表获取(包含已删除)
* @param enterpriseId
* @param chatActivityIdList
* @return
*/
ServiceResponse<List<GroupChatActivityBaseDTO>> listByActivityIdsDel(String enterpriseId, List<Long> chatActivityIdList);
/**
* 分页查询活动列表
* @param enterpriseId 企业id
* @param searchQDTO 搜索条件
* @return
*/
ServiceResponse<Page<GroupChatActivityDTO>> pageActivity(String enterpriseId, GroupChatActivitySearchQDTO searchQDTO, BasePageInfo pageInfo);
/**
* 终止活动
* @param enterpriseId 企业id
* @param chatActivityId 活动id
*/
ServiceResponse<GroupChatActivityDTO> stopActivity(String enterpriseId, Long chatActivityId) ;
/**
* 删除活动
* @param enterpriseId 企业id
* @param chatActivityId 活动id
*/
ServiceResponse<Void> delActivity(String enterpriseId, Long chatActivityId) ;
}
package com.gic.haoban.manage.api.service.chat;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityInviteLogDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardLogDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityInviteLogQDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardLogQDTO;
import java.util.List;
/**
* @author shangfeng
* @date 2024-10-08 14:38:18
*/
public interface GroupChatActivityLogApiService {
/**
* 查询C端邀请人数据
*
* @param inviteLogQDTO
* @return
*/
ServiceResponse<List<GroupChatActivityInviteLogDTO>> queryMaxBatchInviteLog(GroupChatActivityInviteLogQDTO inviteLogQDTO);
/**
* 邀请明细
*
* @param inviteLogQDTO
* @return
*/
ServiceResponse<Page<GroupChatActivityInviteLogDTO>> queryInviteLogDetails(GroupChatActivityInviteLogQDTO inviteLogQDTO);
/**
* 查询奖励明细
*
* @param rewardLogQDTO
* @return
*/
ServiceResponse<Page<GroupChatActivityRewardLogDTO>> queryRewardLogDetails(GroupChatActivityRewardLogQDTO rewardLogQDTO);
/**
* 查询奖励次数
*
* @param rewardLogQDTO
* @return
*/
ServiceResponse<Long> queryRewardNum(GroupChatActivityRewardLogQDTO rewardLogQDTO);
}
package com.gic.haoban.manage.api.service.chat;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityHmDTO;
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.GroupChatActivityShareBindQDTO;
import java.util.List;
/**
* Created by wangzubo on 2022/10/31.
*/
public interface GroupChatActivityShareApiService {
/**
* 绑定分享关系
* @param shareBind
*/
ServiceResponse<Void> shareBind(GroupChatActivityShareBindQDTO shareBind);
/**
* 获取入群活码列表
* @param activityHmQDTO
* @return
*/
ServiceResponse<List<GroupChatActivityHmDTO>> listGroupChatHm(GroupChatActivityHmQDTO activityHmQDTO);
/**
* 社群入群MQ
* @param param
* @return
*/
ServiceResponse<Void> shareGroupChatInviteMQ(String param);
}
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.5.1</version> <version>5.6.2</version>
</dependency> </dependency>
<dependency> <dependency>
...@@ -229,6 +229,18 @@ ...@@ -229,6 +229,18 @@
<artifactId>gic-member-ext-api</artifactId> <artifactId>gic-member-ext-api</artifactId>
<version>${gic-member-ext-api}</version> <version>${gic-member-ext-api}</version>
</dependency> </dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.gic.haoban.manage.service.context.chat;
import com.gic.api.base.commons.Constant;
import com.gic.enterprise.api.service.ScreeningDetailService;
import com.gic.haoban.manage.api.dto.chat.*;
import com.gic.haoban.manage.api.enums.chat.ChatActivityRewardEnum;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivity;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityJoin;
import com.gic.marketing.api.enums.MarketingBusinessTypeEnum;
import com.gic.marketing.api.enums.MarketingTagModuleEnum;
import com.gic.marketing.api.qdto.CouponReferAlarmQDTO;
import com.gic.marketing.api.service.CouponReferAlarmService;
import com.gic.member.tag.api.dto.MemberTagBusinessGroupDTO;
import com.gic.member.tag.api.service.MemberTagBusinessGroupApiService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* Created by wangzubo on 2024/8/23.
*/
@Component
public class BusinessManager {
private static final Logger logger = LoggerFactory.getLogger(BusinessManager.class);
@Autowired
private MemberTagBusinessGroupApiService memberTagBusinessGroupApiService;
@Autowired
private ScreeningDetailService screeningDetailService;
@Autowired
private CouponReferAlarmService couponReferAlarmService;
public void dealMemberTagByActivity(TabGroupChatActivity activityDTO, TabGroupChatActivityJoin activityJoin , boolean delete) {
String enterpriseId = activityDTO.getEnterpriseId();
Long chatActivityId = activityDTO.getChatActivityId();
if (delete) {
logger.info("删除计划使用人群分组关联关系chatActivityId:{}", chatActivityId);
memberTagBusinessGroupApiService.deleteByBusinessIdAndEnterpriseId(String.valueOf(chatActivityId), enterpriseId);
return;
}
Integer memberType = activityJoin.getMemberType();
String filterJson = activityJoin.getFilterJson();
String filterJsonView = activityJoin.getFilterJsonView();
if (StringUtils.isNotBlank(filterJson) && Objects.equals(memberType,1)) {
String[] split = filterJson.split(",");
MemberTagBusinessGroupDTO memberTagBusinessGroupDTO = new MemberTagBusinessGroupDTO();
memberTagBusinessGroupDTO.setTagGroupIdList(Arrays.asList(split));
memberTagBusinessGroupDTO.setBusinessId(String.valueOf(chatActivityId));
memberTagBusinessGroupDTO.setEnterpriseId(enterpriseId);
memberTagBusinessGroupDTO.setBusinessType(MarketingBusinessTypeEnum.Marketing_business_type.getCode());
memberTagBusinessGroupDTO.setBusinessModuleName(MarketingTagModuleEnum.GROUP_CHAT_ACTIVITY.getModuleTypeName());
memberTagBusinessGroupDTO.setBusinessName(activityDTO.getActivityName());
memberTagBusinessGroupDTO.setBusinessLink(MarketingTagModuleEnum.GROUP_CHAT_ACTIVITY.getPagePath());
logger.info("处理计划使用人群分组关联关系chatActivityId:{}", chatActivityId);
memberTagBusinessGroupApiService.batchDelAndAddByBusinessId(memberTagBusinessGroupDTO);
}
if (Objects.equals(memberType, 0) && filterJsonView != null) {
screeningDetailService.save("GROUP_CHAT_SEARCH_ID_" + activityDTO.getChatActivityId() + "-" + activityJoin.getIndex(), filterJsonView);
}
}
public void dealCouponAlarmByActivity(GroupChatActivityDTO activityDTO,boolean delete) {
if (Objects.equals(activityDTO.getExceptionNotice(), Constant.FLAG_TRUE) && !delete) {
CouponReferAlarmQDTO couponReferAlarmQDTO = new CouponReferAlarmQDTO();
couponReferAlarmQDTO.setSystemType(0);
couponReferAlarmQDTO.setStartTime(activityDTO.getStartDate());
couponReferAlarmQDTO.setEndTime(activityDTO.getLimitDate() != null ? activityDTO.getLimitDate() : activityDTO.getEndDate());
couponReferAlarmQDTO.setCreatorId(activityDTO.getCreatorId());
List<String> couponIdList = GroupChatActivityRewardBaseDTO.mapConvert(activityDTO.getRewardMap()).stream()
.filter(x -> Objects.equals(x.getRewardType(), ChatActivityRewardEnum.COUPON.value))
.map(GroupChatActivityRewardBaseDTO::getRewardValue)
.flatMap(x -> Arrays.stream(x.split(",")))
.distinct().collect(Collectors.toList());
couponReferAlarmQDTO.setCouponIdList(couponIdList);
couponReferAlarmQDTO.setEnterpriseId(activityDTO.getEnterpriseId());
couponReferAlarmQDTO.setReferType(3);
couponReferAlarmQDTO.setSystemType(1);
couponReferAlarmQDTO.setReferId(String.valueOf(activityDTO.getChatActivityId()));
couponReferAlarmQDTO.setTitle("社群邀请有礼-" + activityDTO.getActivityName());
couponReferAlarmQDTO.setAlarmStock(activityDTO.getExceptionNoticeNum());
couponReferAlarmQDTO.setDelAlarmFlag(1);
couponReferAlarmService.add(couponReferAlarmQDTO);
}else {
couponReferAlarmService.del(String.valueOf(activityDTO.getChatActivityId()),2);
}
}
}
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()));
}
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityInviteLogQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityInviteLog;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 社群邀请有礼邀请日志表(TabHaobanGroupChatActivityInviteLog)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:55
*/
public interface GroupChatActivityInviteLogMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityInviteId 主键
* @return 实例对象
*/
TabGroupChatActivityInviteLog queryById(Long chatActivityInviteId);
/**
* 查询指定行数据
*
* @param tabGroupChatActivityInviteLog 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabGroupChatActivityInviteLog> queryAll(TabGroupChatActivityInviteLog tabGroupChatActivityInviteLog);
/**
* 统计总行数
*
* @param tabGroupChatActivityInviteLog 查询条件
* @return 总行数
*/
long count(TabGroupChatActivityInviteLog tabGroupChatActivityInviteLog);
/**
* 新增数据
*
* @param tabGroupChatActivityInviteLog 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivityInviteLog tabGroupChatActivityInviteLog);
/**
* 根据活动id和要求人查询当前最大批次
* 有效邀请
*
* @param chatActivityId
* @param inviterMemberId
* @return
*/
Integer queryMaxBatchByChatActivityIdAndInviterMemberId(@Param("chatActivityId") Long chatActivityId,
@Param("inviterMemberId") String inviterMemberId);
/**
* 查询邀请记录日志
*
* @param inviteLogQDTO
* @return
*/
List<TabGroupChatActivityInviteLog> queryList(GroupChatActivityInviteLogQDTO inviteLogQDTO);
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityJoin;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityReward;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 社群邀请有礼入群规则表(TabHaobanGroupChatActivityJoin)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public interface GroupChatActivityJoinMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityJoinId 主键
* @return 实例对象
*/
TabGroupChatActivityJoin queryById(Long chatActivityJoinId);
/**
* 通过ID列表查询多条数据
* @param chatActivityIds
* @return
*/
List<TabGroupChatActivityJoin> queryByChatActivityIds(@Param("chatActivityIds")List<Long> chatActivityIds);
/**
* 查询指定行数据
*
* @param tabGroupChatActivityJoin 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabGroupChatActivityJoin> queryAllByLimit(TabGroupChatActivityJoin tabGroupChatActivityJoin, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param tabGroupChatActivityJoin 查询条件
* @return 总行数
*/
long count(TabGroupChatActivityJoin tabGroupChatActivityJoin);
/**
* 新增数据
*
* @param tabGroupChatActivityJoin 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivityJoin tabGroupChatActivityJoin);
/**
* 修改数据
*
* @param tabGroupChatActivityJoin 实例对象
* @return 影响行数
*/
int update(TabGroupChatActivityJoin tabGroupChatActivityJoin);
/**
* 通过主键删除数据
*
* @param chatActivityJoinId 主键
* @return 影响行数
*/
int deleteById(Long chatActivityJoinId);
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivitySearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 社群邀请有礼表(TabHaobanGroupChatActivity)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:35
*/
public interface GroupChatActivityMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityId 主键
* @return 实例对象
*/
TabGroupChatActivity queryById(Long chatActivityId);
/**
* 通过ID列表查询多条数据
* @param chatActivityIds
* @return
*/
List<TabGroupChatActivity> queryByIds(@Param("chatActivityIds") List<Long> chatActivityIds);
/**
* 通过ID列表查询多条数据
* @param chatActivityIds
* @return
*/
List<TabGroupChatActivity> queryByIdsDel(@Param("chatActivityIds")List<Long> chatActivityIds);
/**
* 分页查询数据
* @param enterpriseId
* @param searchQDTO
* @return
*/
List<TabGroupChatActivity> listActivity(@Param("enterpriseId") String enterpriseId,
@Param("search") GroupChatActivitySearchQDTO searchQDTO);
List<TabGroupChatActivity> listActivityByDate(TabGroupChatActivity tabGroupChatActivity);
/**
* 统计总行数
*
* @param tabGroupChatActivity 查询条件
* @return 总行数
*/
long count(TabGroupChatActivity tabGroupChatActivity);
/**
* 新增数据
*
* @param tabGroupChatActivity 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivity tabGroupChatActivity);
/**
* 修改数据
*
* @param tabGroupChatActivity 实例对象
* @return 影响行数
*/
int update(TabGroupChatActivity tabGroupChatActivity);
/**
* 通过主键删除数据
*
* @param chatActivityId 主键
* @return 影响行数
*/
int deleteById(@Param("enterpriseId") String enterpriseId,@Param("chatActivityId")Long chatActivityId);
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardDetailLogQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityRewardDetailLog;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 社群活动完成奖励明细表(TabHaobanGroupChatActivityRewardDetailLog)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:57
*/
public interface GroupChatActivityRewardDetailLogMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityRewardDetailId 主键
* @return 实例对象
*/
TabGroupChatActivityRewardDetailLog queryById(Long chatActivityRewardDetailId);
/**
* 查询指定行数据
*
* @param tabGroupChatActivityRewardDetailLog 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabGroupChatActivityRewardDetailLog> queryAllByLimit(TabGroupChatActivityRewardDetailLog tabGroupChatActivityRewardDetailLog, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param tabGroupChatActivityRewardDetailLog 查询条件
* @return 总行数
*/
long count(TabGroupChatActivityRewardDetailLog tabGroupChatActivityRewardDetailLog);
/**
* 新增数据
*
* @param tabGroupChatActivityRewardDetailLog 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivityRewardDetailLog tabGroupChatActivityRewardDetailLog);
/**
* 修改数据
*
* @param tabGroupChatActivityRewardDetailLog 实例对象
* @return 影响行数
*/
int update(TabGroupChatActivityRewardDetailLog tabGroupChatActivityRewardDetailLog);
/**
* 批量查询奖励明细
*
* @param rewardDetailLogQDTO
* @return
*/
List<TabGroupChatActivityRewardDetailLog> queryList(GroupChatActivityRewardDetailLogQDTO rewardDetailLogQDTO);
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardLogDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityRewardLogQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityRewardLog;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 内容活动完成奖励表(TabHaobanGroupChatActivityRewardLog)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:57
*/
public interface GroupChatActivityRewardLogMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityRewardId 主键
* @return 实例对象
*/
TabGroupChatActivityRewardLog queryById(Long chatActivityRewardId);
/**
* 查询指定行数据
*
* @param tabGroupChatActivityRewardLog 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabGroupChatActivityRewardLog> queryAllByLimit(TabGroupChatActivityRewardLog tabGroupChatActivityRewardLog, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param tabGroupChatActivityRewardLog 查询条件
* @return 总行数
*/
long count(TabGroupChatActivityRewardLog tabGroupChatActivityRewardLog);
/**
* 新增数据
*
* @param tabGroupChatActivityRewardLog 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivityRewardLog tabGroupChatActivityRewardLog);
/**
* 修改数据
*
* @param tabGroupChatActivityRewardLog 实例对象
* @return 影响行数
*/
int update(TabGroupChatActivityRewardLog tabGroupChatActivityRewardLog);
/**
* 通过主键删除数据
*
* @param chatActivityRewardId 主键
* @return 影响行数
*/
int deleteById(Long chatActivityRewardId);
/**
* 查询奖励数据
*
* @param rewardLogQDTO
* @return
*/
List<TabGroupChatActivityRewardLog> queryList(GroupChatActivityRewardLogQDTO rewardLogQDTO);
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityReward;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 社群邀请有礼奖励规则表(TabHaobanGroupChatActivityReward)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public interface GroupChatActivityRewardMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityRewardId 主键
* @return 实例对象
*/
TabGroupChatActivityReward queryById(Long chatActivityRewardId);
/**
* 通过ID列表查询多条数据
* @param chatActivityIds
* @return
*/
List<TabGroupChatActivityReward> queryByChatActivityIds(@Param("chatActivityIds")List<Long> chatActivityIds);
/**
* 查询指定行数据
*
* @param tabGroupChatActivityReward 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabGroupChatActivityReward> queryAllByLimit(TabGroupChatActivityReward tabGroupChatActivityReward, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param tabGroupChatActivityReward 查询条件
* @return 总行数
*/
long count(TabGroupChatActivityReward tabGroupChatActivityReward);
/**
* 新增数据
*
* @param tabGroupChatActivityReward 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivityReward tabGroupChatActivityReward);
/**
* 修改数据
*
* @param tabGroupChatActivityReward 实例对象
* @return 影响行数
*/
int update(TabGroupChatActivityReward tabGroupChatActivityReward);
/**
* 通过主键删除数据
*
* @param chatActivityRewardId 主键
* @return 影响行数
*/
int deleteById(Long chatActivityRewardId);
}
package com.gic.haoban.manage.service.dao.mapper.chat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivityShareBind;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 社群邀请有礼邀请人和受邀人绑定表(TabHaobanGroupChatActivityShareBind)表数据库访问层
*
* @author makejava
* @since 2024-09-27 16:09:57
*/
public interface GroupChatActivityShareBindMapper {
/**
* 通过ID查询单条数据
*
* @param chatActivityBindId 主键
* @return 实例对象
*/
TabGroupChatActivityShareBind queryById(Long chatActivityBindId);
/**
* 获取24小时内有效记录
* @param inviteeUnionId
* @return
*/
List<TabGroupChatActivityShareBind> query24Record(@Param("inviteeUnionIds")List<String> inviteeUnionId);
/**
* 查询指定行数据
*
* @param tabGroupChatActivityShareBind 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabGroupChatActivityShareBind> queryAllByLimit(TabGroupChatActivityShareBind tabGroupChatActivityShareBind, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param tabGroupChatActivityShareBind 查询条件
* @return 总行数
*/
long count(TabGroupChatActivityShareBind tabGroupChatActivityShareBind);
/**
* 新增数据
*
* @param tabGroupChatActivityShareBind 实例对象
* @return 影响行数
*/
int insert(TabGroupChatActivityShareBind tabGroupChatActivityShareBind);
/**
* 修改数据
*
* @param tabGroupChatActivityShareBind 实例对象
* @return 影响行数
*/
int update(TabGroupChatActivityShareBind tabGroupChatActivityShareBind);
/**
* 通过主键删除数据
*
* @param chatActivityBindId 主键
* @return 影响行数
*/
int deleteById(Long chatActivityBindId);
}
...@@ -37,7 +37,8 @@ public interface GroupChatHmRelationMapper { ...@@ -37,7 +37,8 @@ public interface GroupChatHmRelationMapper {
* @throws * @throws
*/ */
public List<Long> listChatHmId(@Param("groupChatId") Long groupChatId); public List<Long> listChatHmId(@Param("groupChatId") Long groupChatId);
public List<TabGroupChatHmRelation> listChatHmByGroupChatIds(@Param("groupChatIds") List<Long> groupChatIds);
public List<GroupChatHmRelationBO> getHmValidChatCount(@Param("hmList") List<Long> hmList) ; public List<GroupChatHmRelationBO> getHmValidChatCount(@Param("hmList") List<Long> hmList) ;
......
...@@ -77,4 +77,6 @@ public interface GroupChatMapper { ...@@ -77,4 +77,6 @@ public interface GroupChatMapper {
public List<GroupChatDTO> listChangeOwner() ; public List<GroupChatDTO> listChangeOwner() ;
List<String> listOpenGroupChatDK(@Param("enterpriseId")String enterpriseId, @Param("staffId") String staffId); List<String> listOpenGroupChatDK(@Param("enterpriseId")String enterpriseId, @Param("staffId") String staffId);
List<TabGroupChat> listByStaffIds(@Param("enterpriseId")String enterpriseId, @Param("staffIds") List<String> staffId);
} }
\ No newline at end of file
...@@ -41,6 +41,9 @@ public interface GroupChatUserMapper { ...@@ -41,6 +41,9 @@ public interface GroupChatUserMapper {
public List<TabGroupChatUser> listAllChatUser(@Param("wxEnterpriseId") String wxEnterpriseId, public List<TabGroupChatUser> listAllChatUser(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("groupChatId") Long groupChatId); @Param("groupChatId") Long groupChatId);
public List<TabGroupChatUser> listByUserId(@Param("enterpriseId") String enterpriseId,
@Param("userId") String userId, @Param("statusFlag") Integer statusFlag);
public List<GroupChatUserDTO> listPage(GroupChatUserSearchQDTO qdto); public List<GroupChatUserDTO> listPage(GroupChatUserSearchQDTO qdto);
/** /**
...@@ -87,4 +90,8 @@ public interface GroupChatUserMapper { ...@@ -87,4 +90,8 @@ public interface GroupChatUserMapper {
* @return * @return
*/ */
List<GroupChatHmMemberRelationBO> listMemberChatHmIdByChatHmIdsAndMemberId(@Param("chatHmIds")List<Long> chatHmIds, @Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId); List<GroupChatHmMemberRelationBO> listMemberChatHmIdByChatHmIdsAndMemberId(@Param("chatHmIds")List<Long> chatHmIds, @Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId);
List<TabGroupChatUser> getByUnionId(@Param("enterpriseId")String enterpriseId, @Param("unionid")String unionid);
List<Long> listByUnionIdAndChatHmId(@Param("enterpriseId")String enterpriseId, @Param("unionid")String unionid,@Param("chatHmIdList")List<Long> chatHmIdList);
} }
\ No newline at end of file
...@@ -54,6 +54,7 @@ public class HoloDataSource implements InitializingBean, DisposableBean { ...@@ -54,6 +54,7 @@ public class HoloDataSource implements InitializingBean, DisposableBean {
holoConfig.setJdbcUrl(holoUrl); holoConfig.setJdbcUrl(holoUrl);
holoConfig.setUsername(holoUserName); holoConfig.setUsername(holoUserName);
holoConfig.setPassword(holoPassword); holoConfig.setPassword(holoPassword);
log.info("holo链接初始化,holoUrl:{},holoUserName:{},holoPassword:{}",holoUrl,holoUserName,holoPassword);
holoConfig.setConnectionMaxIdleMs(13000); holoConfig.setConnectionMaxIdleMs(13000);
HoloClient newClient = new HoloClient(holoConfig); HoloClient newClient = new HoloClient(holoConfig);
newClient.setAsyncCommit(false); newClient.setAsyncCommit(false);
......
package com.gic.haoban.manage.service.entity.chat;
import java.util.Date;
import java.io.Serializable;
/**
* 社群邀请有礼表(TabHaobanGroupChatActivity)实体类
*
* @author makejava
* @since 2024-09-27 16:09:38
*/
public class TabGroupChatActivity implements Serializable {
private static final long serialVersionUID = 973688857967269973L;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 活动名称
*/
private String activityName;
/**
* 开始时间
*/
private Date startDate;
/**
* 结束时间
*/
private Date endDate;
/**
* 终止/截止时间
*/
private Date limitDate;
/**
* 活动图片
*/
private String activityImg;
/**
* 活动受邀页图片
*/
private String activityInviteImg;
/**
* 活动说明
*/
private String activityDesc;
/**
* 活动分享标题
*/
private String activityShareTitle;
/**
* 活动分享卡片图片
*/
private String activityShareImg;
/**
* 活动分享海报图片
*/
private String activityPosterImg;
/**
* 状态1未开始2进行中3已终止4已结束
*/
private Integer status;
/**
* 奖励类型 1定额奖励2阶梯奖励
*/
private Integer inviteRewardType;
/**
* 入群方式 1规则入群2定向入群
*/
private Integer joinType;
/**
* 入群规则 1邀请人所在企微群2服务门店3协管门店4LBS定位 [{"openFlag":0,"val":1},{"openFlag":0,"val":2},{"openFlag":0,"val":3},{"openFlag":0,"val":4}]
*/
private String joinRule;
/**
* 入群兜底群活码id
*/
private Long joinChatHmId;
/**
* 邀请类型 0不限制1入群前未处于任何企业群聊内算有效邀请2首次加入企业群聊才算有效邀请
*/
private Integer inviteType;
/**
* 邀请会员类型 0所有用户1开卡会员
*/
private Integer inviteMemberType;
/**
* 打标签1是0否
*/
private Integer labelFlag;
/**
* {"id": 1, "name": "标签名称" }
*/
private String labelJson;
/**
* 异常提醒 0 不提醒 1短信提醒
*/
private Integer exceptionNotice;
/**
* 异常提醒数量
*/
private Integer exceptionNoticeNum;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
private String creatorId;
private String creatorName;
private Integer deleteFlag;
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public String getActivityName() {
return activityName;
}
public void setActivityName(String activityName) {
this.activityName = activityName;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getLimitDate() {
return limitDate;
}
public void setLimitDate(Date limitDate) {
this.limitDate = limitDate;
}
public String getActivityImg() {
return activityImg;
}
public void setActivityImg(String activityImg) {
this.activityImg = activityImg;
}
public String getActivityInviteImg() {
return activityInviteImg;
}
public void setActivityInviteImg(String activityInviteImg) {
this.activityInviteImg = activityInviteImg;
}
public String getActivityDesc() {
return activityDesc;
}
public void setActivityDesc(String activityDesc) {
this.activityDesc = activityDesc;
}
public String getActivityShareTitle() {
return activityShareTitle;
}
public void setActivityShareTitle(String activityShareTitle) {
this.activityShareTitle = activityShareTitle;
}
public String getActivityShareImg() {
return activityShareImg;
}
public void setActivityShareImg(String activityShareImg) {
this.activityShareImg = activityShareImg;
}
public String getActivityPosterImg() {
return activityPosterImg;
}
public void setActivityPosterImg(String activityPosterImg) {
this.activityPosterImg = activityPosterImg;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getInviteRewardType() {
return inviteRewardType;
}
public void setInviteRewardType(Integer inviteRewardType) {
this.inviteRewardType = inviteRewardType;
}
public Integer getJoinType() {
return joinType;
}
public void setJoinType(Integer joinType) {
this.joinType = joinType;
}
public String getJoinRule() {
return joinRule;
}
public void setJoinRule(String joinRule) {
this.joinRule = joinRule;
}
public Long getJoinChatHmId() {
return joinChatHmId;
}
public void setJoinChatHmId(Long joinChatHmId) {
this.joinChatHmId = joinChatHmId;
}
public Integer getInviteType() {
return inviteType;
}
public void setInviteType(Integer inviteType) {
this.inviteType = inviteType;
}
public Integer getInviteMemberType() {
return inviteMemberType;
}
public void setInviteMemberType(Integer inviteMemberType) {
this.inviteMemberType = inviteMemberType;
}
public Integer getLabelFlag() {
return labelFlag;
}
public void setLabelFlag(Integer labelFlag) {
this.labelFlag = labelFlag;
}
public String getLabelJson() {
return labelJson;
}
public void setLabelJson(String labelJson) {
this.labelJson = labelJson;
}
public Integer getExceptionNotice() {
return exceptionNotice;
}
public void setExceptionNotice(Integer exceptionNotice) {
this.exceptionNotice = exceptionNotice;
}
public Integer getExceptionNoticeNum() {
return exceptionNoticeNum;
}
public void setExceptionNoticeNum(Integer exceptionNoticeNum) {
this.exceptionNoticeNum = exceptionNoticeNum;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
package com.gic.haoban.manage.service.entity.chat;
import java.util.Date;
import java.io.Serializable;
/**
* 社群邀请有礼邀请日志表(TabHaobanGroupChatActivityInviteLog)实体类
*
* @author makejava
* @since 2024-09-27 16:09:55
*/
public class TabGroupChatActivityInviteLog implements Serializable {
private static final long serialVersionUID = 383845466789440463L;
/**
* 社群活动邀请id
*/
private Long chatActivityInviteId;
/**
* 社群活动id
*/
private Long chatActivityId;
/**
* 邀请人会员ID
*/
private String inviterMemberId;
/**
* 受邀人会员ID
*/
private String inviteeMemberId;
/**
* 受邀人外部联系人id
*/
private String inviteeUserId;
/**
* 受邀人unionId
*/
private String inviteeUnionId;
/**
* 姓名
*/
private String userName;
/**
* 昵称
*/
private String nickName;
/**
* 群id
*/
private Long groupChatId;
/**
* 有效邀请类型 1有效0无效
*/
private Integer inviteType;
/**
* 无效邀请类型 1非首次参与活动受邀入群2入群前已处于企业群聊内3非首次加入企业群聊
*/
private Integer invalidInviteType;
/**
* 是否新增会员 1是 0否 null未统计
*/
private Integer addMemberType;
/**
* 有效邀请达成的批次 达成所有奖励限制后为-1
*/
private Integer batchNumber;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
private Integer deleteFlag;
public Long getChatActivityInviteId() {
return chatActivityInviteId;
}
public void setChatActivityInviteId(Long chatActivityInviteId) {
this.chatActivityInviteId = chatActivityInviteId;
}
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 getInviteeMemberId() {
return inviteeMemberId;
}
public void setInviteeMemberId(String inviteeMemberId) {
this.inviteeMemberId = inviteeMemberId;
}
public String getInviteeUserId() {
return inviteeUserId;
}
public void setInviteeUserId(String inviteeUserId) {
this.inviteeUserId = inviteeUserId;
}
public String getInviteeUnionId() {
return inviteeUnionId;
}
public void setInviteeUnionId(String inviteeUnionId) {
this.inviteeUnionId = inviteeUnionId;
}
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 Long getGroupChatId() {
return groupChatId;
}
public void setGroupChatId(Long groupChatId) {
this.groupChatId = groupChatId;
}
public Integer getInviteType() {
return inviteType;
}
public void setInviteType(Integer inviteType) {
this.inviteType = inviteType;
}
public Integer getInvalidInviteType() {
return invalidInviteType;
}
public void setInvalidInviteType(Integer invalidInviteType) {
this.invalidInviteType = invalidInviteType;
}
public Integer getAddMemberType() {
return addMemberType;
}
public void setAddMemberType(Integer addMemberType) {
this.addMemberType = addMemberType;
}
public Integer getBatchNumber() {
return batchNumber;
}
public void setBatchNumber(Integer batchNumber) {
this.batchNumber = batchNumber;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
package com.gic.haoban.manage.service.entity.chat;
import java.util.Date;
import java.io.Serializable;
/**
* 社群邀请有礼入群规则表(TabHaobanGroupChatActivityJoin)实体类
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public class TabGroupChatActivityJoin implements Serializable {
private static final long serialVersionUID = -95747409578903881L;
/**
* 社群活动入群规则id
*/
private Long chatActivityJoinId;
/**
* 内容活动id
*/
private Long chatActivityId;
/**
* 会员类型(0:会员筛选,1:会员分组)
*/
private Integer memberType;
/**
* 人群
*/
private String filterJson;
/**
* 人群回显
*/
private String filterJsonView;
/**
* 序号 从小到大
*/
private Integer index;
/**
* 群活码id
*/
private Long chatHmId;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
private Integer deleteFlag;
public Long getChatActivityJoinId() {
return chatActivityJoinId;
}
public void setChatActivityJoinId(Long chatActivityJoinId) {
this.chatActivityJoinId = chatActivityJoinId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public Integer getMemberType() {
return memberType;
}
public void setMemberType(Integer memberType) {
this.memberType = memberType;
}
public String getFilterJson() {
return filterJson;
}
public void setFilterJson(String filterJson) {
this.filterJson = filterJson;
}
public String getFilterJsonView() {
return filterJsonView;
}
public void setFilterJsonView(String filterJsonView) {
this.filterJsonView = filterJsonView;
}
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public Long getChatHmId() {
return chatHmId;
}
public void setChatHmId(Long chatHmId) {
this.chatHmId = chatHmId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
package com.gic.haoban.manage.service.entity.chat;
import java.util.Date;
import java.io.Serializable;
/**
* 社群邀请有礼奖励规则表(TabHaobanGroupChatActivityReward)实体类
*
* @author makejava
* @since 2024-09-27 16:09:56
*/
public class TabGroupChatActivityReward implements Serializable {
private static final long serialVersionUID = -78111537762472232L;
/**
* 社群活动奖励规则id
*/
private Long chatActivityRewardId;
/**
* 内容活动id
*/
private Long chatActivityId;
/**
* 奖励邀请人数
*/
private Integer inviteNumber;
/**
* 奖励阶梯 固定奖励默认1
*/
private Integer inviteLevel;
/**
* 奖励人类型 1邀请人2受邀人
*/
private Integer rewardInvite;
/**
* 奖励类型 1积分2成长值3卡券
*/
private Integer rewardType;
/**
* 最多奖励数量
*/
private Integer limitReward;
/**
* 奖励内容 积分值 成长值 卡券id(逗号分隔)
*/
private String rewardValue;
/**
* 奖励名称 积分名称 成长值名称 卡券名称
*/
private String rewardName;
/**
* 企业ID
*/
private String enterpriseId;
/**
* 微信企业ID
*/
private String wxEnterpriseId;
private Date createTime;
private Date updateTime;
private Integer deleteFlag;
public Long getChatActivityRewardId() {
return chatActivityRewardId;
}
public void setChatActivityRewardId(Long chatActivityRewardId) {
this.chatActivityRewardId = chatActivityRewardId;
}
public Long getChatActivityId() {
return chatActivityId;
}
public void setChatActivityId(Long chatActivityId) {
this.chatActivityId = chatActivityId;
}
public Integer getInviteNumber() {
return inviteNumber;
}
public void setInviteNumber(Integer inviteNumber) {
this.inviteNumber = inviteNumber;
}
public Integer getInviteLevel() {
return inviteLevel;
}
public void setInviteLevel(Integer inviteLevel) {
this.inviteLevel = inviteLevel;
}
public Integer getRewardInvite() {
return rewardInvite;
}
public void setRewardInvite(Integer rewardInvite) {
this.rewardInvite = rewardInvite;
}
public Integer getRewardType() {
return rewardType;
}
public void setRewardType(Integer rewardType) {
this.rewardType = rewardType;
}
public Integer getLimitReward() {
return limitReward;
}
public void setLimitReward(Integer limitReward) {
this.limitReward = limitReward;
}
public String getRewardValue() {
return rewardValue;
}
public void setRewardValue(String rewardValue) {
this.rewardValue = rewardValue;
}
public String getRewardName() {
return rewardName;
}
public void setRewardName(String rewardName) {
this.rewardName = rewardName;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment