Commit f16dec85 by xiongjiangtao

Merge remote-tracking branch 'origin/feature-chat-activity' into feature-chat-activity

parents 3a67f511 1696e065
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;
......@@ -18,7 +20,7 @@ public class GroupChatActivityBaseDTO implements Serializable {
/**
* 社群活动id
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityId;
/**
* 活动名称
......@@ -79,7 +81,7 @@ public class GroupChatActivityBaseDTO implements Serializable {
/**
* 入群兜底群活码id
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize(using = ToStringSerializer.class)
private Long joinChatHmId;
/**
* 邀请类型 0不限制1入群前未处于任何企业群聊内算有效邀请2首次加入企业群聊才算有效邀请
......
......@@ -5,6 +5,7 @@ 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)实体类
......@@ -16,21 +17,21 @@ public class GroupChatActivityDTO extends GroupChatActivityBaseDTO implements Se
private static final long serialVersionUID = 973688857967269973L;
/**
* 奖励规则列表
* 奖励规则map key为奖励邀请人类型
*/
private List<GroupChatActivityRewardDTO> rewardList;
private Map<Integer,List<GroupChatActivityRewardDTO>> rewardMap;
/**
* 入群规则列表
*/
private List<GroupChatActivityJoinDTO> joinList;
public List<GroupChatActivityRewardDTO> getRewardList() {
return rewardList;
public Map<Integer, List<GroupChatActivityRewardDTO>> getRewardMap() {
return rewardMap;
}
public void setRewardList(List<GroupChatActivityRewardDTO> rewardList) {
this.rewardList = rewardList;
public void setRewardMap(Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap) {
this.rewardMap = rewardMap;
}
public List<GroupChatActivityJoinDTO> getJoinList() {
......
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 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> baseList) {
return baseList.stream()
.collect(Collectors.groupingBy(
GroupChatActivityRewardBaseDTO::getRewardInvite,
Collectors.mapping(baseDTO -> {
GroupChatActivityRewardDTO rewardDTO = new GroupChatActivityRewardDTO();
rewardDTO.setChatActivityId(baseDTO.getChatActivityId());
rewardDTO.setInviteNumber(baseDTO.getInviteNumber());
rewardDTO.setInviteLevel(baseDTO.getInviteLevel());
rewardDTO.setLimitReward(baseDTO.getLimitReward());
rewardDTO.setRewardInvite(baseDTO.getRewardInvite());
GroupChatActivityRewardDetailDTO detailDTO = new GroupChatActivityRewardDetailDTO();
detailDTO.setChatActivityRewardId(baseDTO.getChatActivityRewardId());
detailDTO.setRewardType(baseDTO.getRewardType());
detailDTO.setRewardValue(baseDTO.getRewardValue());
detailDTO.setRewardName(baseDTO.getRewardName());
if (rewardDTO.getDetailList() == null) {
rewardDTO.setDetailList(new ArrayList<>());
}
rewardDTO.getDetailList().add(detailDTO);
return rewardDTO;
}, Collectors.toList())
));
}
@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.annotation.JsonIgnoreProperties;
import com.google.common.base.Objects;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 社群邀请有礼奖励规则表(TabHaobanGroupChatActivityReward)实体类
......@@ -15,14 +15,9 @@ import java.util.Date;
public class GroupChatActivityRewardDTO implements Serializable {
private static final long serialVersionUID = -78111537762472232L;
/**
* 社群活动奖励规则id
*/
@JsonIgnoreProperties(ignoreUnknown = true)
private Long chatActivityRewardId;
/**
* 内容活动id
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize(using = ToStringSerializer.class)
private Long chatActivityId;
/**
* 奖励邀请人数
......@@ -37,29 +32,15 @@ public class GroupChatActivityRewardDTO implements Serializable {
*/
private Integer rewardInvite;
/**
* 奖励类型 1积分2成长值3卡券
*/
private Integer rewardType;
/**
* 最多奖励数量
*/
private Integer limitReward;
/**
* 奖励内容 积分值 成长值 卡券id
*/
private String rewardValue;
/**
* 奖励名称 卡券名称
* 奖励明细列表
*/
private String rewardName;
private List<GroupChatActivityRewardDetailDTO> detailList;
public Long getChatActivityRewardId() {
return chatActivityRewardId;
}
public void setChatActivityRewardId(Long chatActivityRewardId) {
this.chatActivityRewardId = chatActivityRewardId;
}
public Long getChatActivityId() {
return chatActivityId;
......@@ -93,14 +74,6 @@ public class GroupChatActivityRewardDTO implements Serializable {
this.rewardInvite = rewardInvite;
}
public Integer getRewardType() {
return rewardType;
}
public void setRewardType(Integer rewardType) {
this.rewardType = rewardType;
}
public Integer getLimitReward() {
return limitReward;
}
......@@ -109,33 +82,12 @@ public class GroupChatActivityRewardDTO implements Serializable {
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;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GroupChatActivityRewardDTO that = (GroupChatActivityRewardDTO) 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);
public List<GroupChatActivityRewardDetailDTO> getDetailList() {
return detailList;
}
@Override
public int hashCode() {
return Objects.hashCode(chatActivityId, inviteNumber, inviteLevel, rewardInvite, rewardType, limitReward, rewardValue);
public void setDetailList(List<GroupChatActivityRewardDetailDTO> detailList) {
this.detailList = 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 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;
}
}
......@@ -5,6 +5,7 @@ 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)实体类
......@@ -112,9 +113,9 @@ public class GroupChatActivityQDTO implements Serializable {
private String creatorName;
/**
* 奖励规则列表
* 奖励规则map key为奖励邀请人类型
*/
private List<GroupChatActivityRewardDTO> rewardList;
private Map<Integer,List<GroupChatActivityRewardDTO>> rewardMap;
/**
* 入群规则列表
......@@ -321,12 +322,12 @@ public class GroupChatActivityQDTO implements Serializable {
this.creatorName = creatorName;
}
public List<GroupChatActivityRewardDTO> getRewardList() {
return rewardList;
public Map<Integer, List<GroupChatActivityRewardDTO>> getRewardMap() {
return rewardMap;
}
public void setRewardList(List<GroupChatActivityRewardDTO> rewardList) {
this.rewardList = rewardList;
public void setRewardMap(Map<Integer, List<GroupChatActivityRewardDTO>> rewardMap) {
this.rewardMap = rewardMap;
}
public List<GroupChatActivityJoinQDTO> getJoinList() {
......
......@@ -2,9 +2,7 @@ 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.GroupChatActivityDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityJoinDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDTO;
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;
......@@ -81,9 +79,9 @@ public class BusinessManager {
couponReferAlarmQDTO.setStartTime(activityDTO.getStartDate());
couponReferAlarmQDTO.setEndTime(activityDTO.getLimitDate() != null ? activityDTO.getLimitDate() : activityDTO.getEndDate());
couponReferAlarmQDTO.setCreatorId(activityDTO.getCreatorId());
List<String> couponIdList = activityDTO.getRewardList().stream()
List<String> couponIdList = GroupChatActivityRewardBaseDTO.mapConvert(activityDTO.getRewardMap()).stream()
.filter(x -> Objects.equals(x.getRewardType(), ChatActivityRewardEnum.COUPON.value))
.map(GroupChatActivityRewardDTO::getRewardValue)
.map(GroupChatActivityRewardBaseDTO::getRewardValue)
.flatMap(x -> Arrays.stream(x.split(",")))
.distinct().collect(Collectors.toList());
couponReferAlarmQDTO.setCouponIdList(couponIdList);
......
......@@ -8,7 +8,7 @@ import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityHmQDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityQDTO;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivitySearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatActivity;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatHm;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmBO;
import java.util.List;
......@@ -107,10 +107,10 @@ public interface GroupChatActivityService {
*/
void activityQuartzUpdateStatus();
/**
* 获取入群活码列表
* @param activityHmQDTO
* @return
*/
List<TabGroupChatHm> listHm(GroupChatActivityHmQDTO activityHmQDTO);
// /**
// * 获取入群活码列表
// * @param activityHmQDTO
// * @return
// */
// List<GroupChatHmBO> listGroupChatHm(GroupChatActivityHmQDTO activityHmQDTO) throws BusinessException;
}
......@@ -5,17 +5,13 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.service.EnterpriseWxaLinkService;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityJoinDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityRewardDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.chat.*;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.api.enums.chat.ChatActivityRewardEnum;
import com.gic.haoban.manage.api.qdto.chat.GroupChatActivityQDTO;
......@@ -34,7 +30,6 @@ import com.gic.log.record.anno.GicLogRecord;
import com.gic.log.record.util.GicLogRecordCategoryEnum;
import com.gic.log.record.util.GicLogRecordEvaluationContext;
import com.gic.log.record.util.GicLogRecordOptTypeEnum;
import com.gic.marketing.api.dto.CoupCardDTO;
import com.gic.marketing.api.dto.card.CardStockAndInvalidDTO;
import com.gic.marketing.api.service.CouponCardService;
import com.gic.member.tag.api.dto.MemberTagGroupDTO;
......@@ -127,9 +122,9 @@ public class GroupChatActivityController {
hmIdList.add(joinChatHmId);
}
//构建卡券map
List<String> couponIdList = activityVO.getRewardList().stream()
List<String> couponIdList = GroupChatActivityRewardBaseDTO.mapConvert(activityVO.getRewardMap()).stream()
.filter(x -> Objects.equals(x.getRewardType(), ChatActivityRewardEnum.COUPON.value))
.map(GroupChatActivityRewardDTO::getRewardValue)
.map(GroupChatActivityRewardBaseDTO::getRewardValue)
.flatMap(rewardValue -> Arrays.stream(rewardValue.split(",")))
.distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(couponIdList)) {
......@@ -149,7 +144,7 @@ public class GroupChatActivityController {
memberWeightView.put("searchId", "GROUP_CHAT_SEARCH_ID_" + joinDTO.getChatActivityJoinId());
} else if (Objects.equals(memberType,1)) {
// 会员分组
memberWeightView.put("tagGroupList", listMemberTagGroupInfoByGoupIds(joinDTO.getFilterJson()));
memberWeightView.put("tagGroupList", listMemberTagGroupInfoByGroupIds(joinDTO.getFilterJson()));
}
activityVO.setMemberWeightViewList(memberWeightViewList);
Long chatHmId = joinDTO.getChatHmId();
......@@ -178,7 +173,7 @@ public class GroupChatActivityController {
}
public List<MemberTagGroupVO> listMemberTagGroupInfoByGoupIds(String tagGroupIds) {
public List<MemberTagGroupVO> listMemberTagGroupInfoByGroupIds(String tagGroupIds) {
List<MemberTagGroupVO> result = new ArrayList<>();
if (StringUtils.isBlank(tagGroupIds)) {
......
......@@ -26,6 +26,8 @@
<dubbo:reference interface="com.gic.haoban.manage.api.service.chat.GroupChatApiService" id="groupChatApiService" timeout="10000"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.chat.GroupChatHmApiService" id="groupChatHmApiService" timeout="10000"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.chat.GroupChatActivityApiService" id="groupChatActivityApiService" timeout="10000"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.chat.GroupChatActivityLogApiService" id="groupChatActivityLogApiService" timeout="10000"/>
<dubbo:reference interface="com.gic.enterprise.api.service.EnterpriseWxaLinkService" id="enterpriseWxaLinkService" timeout="100000" retries="0" check="false" />
<dubbo:reference interface="com.gic.haoban.manage.api.service.QwFriendApiService" id="qwFriendApiService" timeout="10000"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.hm.WxUserAddLogApiService" id="wxUserAddLogApiService" timeout="10000"/>
<dubbo:reference interface="com.gic.member.tag.api.service.MemberTagApiService" id="memberTagApiService" timeout="10000"/>
......
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