消息功能完善
1. 赠送道具 2. 购买道具 3. bd邀请代理 4. 代理邀请主播
This commit is contained in:
parent
a4861816c0
commit
8575e93a5b
@ -74,7 +74,8 @@ public interface PropsBackpackClientApi {
|
|||||||
ResultResponse givePropsNotify(
|
ResultResponse givePropsNotify(
|
||||||
@RequestParam("userId") Long userId,
|
@RequestParam("userId") Long userId,
|
||||||
@RequestParam("propsType") String propsType,
|
@RequestParam("propsType") String propsType,
|
||||||
@RequestParam("days") Integer days
|
@RequestParam("days") Integer days,
|
||||||
|
@RequestParam("propsId") Long propsId
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -138,7 +138,7 @@ public class PropsGiveServiceImpl implements PropsGiveService {
|
|||||||
if (Objects.equals(cmd.getSecondaryType(), ConsolePropsTypeEnum.THEME.getName())) {
|
if (Objects.equals(cmd.getSecondaryType(), ConsolePropsTypeEnum.THEME.getName())) {
|
||||||
handleTheme(cmd);
|
handleTheme(cmd);
|
||||||
//发送通知
|
//发送通知
|
||||||
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays());
|
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays(), Long.valueOf(cmd.getContent()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sendPropsBackpack(cmd);
|
sendPropsBackpack(cmd);
|
||||||
@ -151,7 +151,7 @@ public class PropsGiveServiceImpl implements PropsGiveService {
|
|||||||
isNullOrZero(cmd.getExchangeDays());
|
isNullOrZero(cmd.getExchangeDays());
|
||||||
handleBadge(cmd);
|
handleBadge(cmd);
|
||||||
//发送通知
|
//发送通知
|
||||||
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays());
|
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays(), Long.valueOf(cmd.getContent()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Objects.equals(cmd.getType(), PropsActivityRewardEnum.GOLD.name())) {
|
if (Objects.equals(cmd.getType(), PropsActivityRewardEnum.GOLD.name())) {
|
||||||
@ -325,7 +325,7 @@ public class PropsGiveServiceImpl implements PropsGiveService {
|
|||||||
.setOpUser(cmd.getOpsUser());
|
.setOpUser(cmd.getOpsUser());
|
||||||
propsBackpackClient.giveProps(givePropsBackpackCmd);
|
propsBackpackClient.giveProps(givePropsBackpackCmd);
|
||||||
//发送通知
|
//发送通知
|
||||||
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays());
|
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays(), Long.valueOf(cmd.getContent()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.red.circle.mq.rocket.business.producer.TaskMqMessage;
|
|||||||
import com.red.circle.other.app.dto.cmd.material.PropsPurchasingCmd;
|
import com.red.circle.other.app.dto.cmd.material.PropsPurchasingCmd;
|
||||||
import com.red.circle.other.domain.gateway.props.PropsStoreGateway;
|
import com.red.circle.other.domain.gateway.props.PropsStoreGateway;
|
||||||
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||||
|
import com.red.circle.other.domain.model.user.UserProfile;
|
||||||
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
|
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
|
||||||
import com.red.circle.other.infra.database.mongo.entity.live.RoomSetting;
|
import com.red.circle.other.infra.database.mongo.entity.live.RoomSetting;
|
||||||
import com.red.circle.other.infra.database.mongo.service.live.RoomProfileManagerService;
|
import com.red.circle.other.infra.database.mongo.service.live.RoomProfileManagerService;
|
||||||
@ -26,6 +27,7 @@ import com.red.circle.other.inner.model.dto.material.props.NobleVipAbility;
|
|||||||
import com.red.circle.other.inner.model.dto.material.props.ProductProps;
|
import com.red.circle.other.inner.model.dto.material.props.ProductProps;
|
||||||
import com.red.circle.other.inner.model.dto.material.props.PropsNobleVipAbilityDTO;
|
import com.red.circle.other.inner.model.dto.material.props.PropsNobleVipAbilityDTO;
|
||||||
import com.red.circle.other.inner.model.dto.material.props.PropsStoreCommodity;
|
import com.red.circle.other.inner.model.dto.material.props.PropsStoreCommodity;
|
||||||
|
import com.red.circle.tool.core.collection.MapBuilder;
|
||||||
import com.red.circle.tool.core.date.LocalDateTimeUtils;
|
import com.red.circle.tool.core.date.LocalDateTimeUtils;
|
||||||
import com.red.circle.tool.core.date.TimestampUtils;
|
import com.red.circle.tool.core.date.TimestampUtils;
|
||||||
import com.red.circle.tool.core.sequence.IdWorkerUtils;
|
import com.red.circle.tool.core.sequence.IdWorkerUtils;
|
||||||
@ -94,7 +96,7 @@ public class PropsPurchasingCmdExe {
|
|||||||
nobleVipAbility(cmd, commodity);
|
nobleVipAbility(cmd, commodity);
|
||||||
}
|
}
|
||||||
|
|
||||||
sendGiveAwayNotice(cmd);
|
sendGiveAwayNotice(cmd, commodity);
|
||||||
|
|
||||||
//完成任务 钩子 9 充值
|
//完成任务 钩子 9 充值
|
||||||
taskMqMessage.sendTask(TaskApprovalEvent.builder()
|
taskMqMessage.sendTask(TaskApprovalEvent.builder()
|
||||||
@ -176,18 +178,24 @@ public class PropsPurchasingCmdExe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void sendGiveAwayNotice(PropsPurchasingCmd cmd) {
|
private void sendGiveAwayNotice(PropsPurchasingCmd cmd, PropsStoreCommodity commodity) {
|
||||||
if (cmd.isPurchasing()) {
|
if (cmd.isPurchasing()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UserProfile userProfile = userProfileGateway.getByUserId(cmd.requiredReqUserId());
|
||||||
|
|
||||||
|
String sourceUrl = commodity.getPropsResources().getSourceUrl();
|
||||||
officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder()
|
officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder()
|
||||||
.toAccount(cmd.getAcceptUserId())
|
.toAccount(cmd.getAcceptUserId())
|
||||||
.noticeType(OfficialNoticeTypeEnum.GIVE_AWAY_PROPS)
|
.noticeType(OfficialNoticeTypeEnum.GIVE_AWAY_PROPS)
|
||||||
.templateParam(Map.of("nickname",
|
.templateParam(MapBuilder.builder()
|
||||||
userProfileGateway.getByUserId(cmd.requiredReqUserId())
|
.put("userProfile", String.format("%s(%s)", userProfile.getUserNickname(), userProfile.getAccount()))
|
||||||
.getUserNickname()
|
.put("userAvatar", userProfile.getUserAvatar())
|
||||||
, "effectDuration", cmd.getDays()))
|
.put("countryCode", userProfile.getCountryCode())
|
||||||
|
.put("countryName", userProfile.getCountryName())
|
||||||
|
.build())
|
||||||
|
.expand(sourceUrl)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import com.red.circle.framework.core.response.ResponseErrorCode;
|
|||||||
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
|
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
|
||||||
import com.red.circle.other.app.dto.clientobject.team.BdInviteMessageCO;
|
import com.red.circle.other.app.dto.clientobject.team.BdInviteMessageCO;
|
||||||
import com.red.circle.other.app.dto.cmd.team.*;
|
import com.red.circle.other.app.dto.cmd.team.*;
|
||||||
|
import com.red.circle.other.app.util.OfficialNoticeUtils;
|
||||||
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||||
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
|
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
|
||||||
import com.red.circle.other.infra.database.mongo.entity.team.bd.BdInviteAgentMessage;
|
import com.red.circle.other.infra.database.mongo.entity.team.bd.BdInviteAgentMessage;
|
||||||
@ -183,10 +184,7 @@ public class AgentInviteHostExe {
|
|||||||
officialNoticeClient.send(
|
officialNoticeClient.send(
|
||||||
NoticeExtTemplateTypeCmd.builder()
|
NoticeExtTemplateTypeCmd.builder()
|
||||||
.toAccount(message.getUserId())
|
.toAccount(message.getUserId())
|
||||||
.templateParam(MapBuilder.builder()
|
.templateParam(OfficialNoticeUtils.buildUserProfile(userProfile))
|
||||||
.put("userProfile", String.format("%s(%s)", userProfile.getUserNickname(),
|
|
||||||
userProfile.actualAccount()))
|
|
||||||
.build())
|
|
||||||
.noticeType(noticeTypeEnum)
|
.noticeType(noticeTypeEnum)
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
@ -195,28 +193,13 @@ public class AgentInviteHostExe {
|
|||||||
private void sendMessage(AgentInviteHostCmd cmd) {
|
private void sendMessage(AgentInviteHostCmd cmd) {
|
||||||
UserProfileDTO userProfile = userProfileAppConvertor.toUserProfileDTO(userProfileGateway.getByUserId(cmd.requiredReqUserId()));
|
UserProfileDTO userProfile = userProfileAppConvertor.toUserProfileDTO(userProfileGateway.getByUserId(cmd.requiredReqUserId()));
|
||||||
ResponseAssert.notNull(UserErrorCode.USER_INFO_NOT_FOUND, userProfile);
|
ResponseAssert.notNull(UserErrorCode.USER_INFO_NOT_FOUND, userProfile);
|
||||||
String h5Url = enumConfigCacheService.getValue(EnumConfigKey.H5_DOMAIN_BASE_URL_V2,cmd.requireReqSysOrigin());
|
// String h5Url = enumConfigCacheService.getValue(EnumConfigKey.H5_DOMAIN_BASE_URL_V2,cmd.requireReqSysOrigin());
|
||||||
|
|
||||||
if (StringUtils.isBlank(h5Url)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String path = null;
|
|
||||||
|
|
||||||
if (Objects.equals(cmd.requireReqSysOriginEnum(), SysOriginPlatformEnum.TARAB)) {
|
|
||||||
path = "/team-tarab";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isBlank(path)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder()
|
officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder()
|
||||||
.toAccount(cmd.getInviteUserId())
|
.toAccount(cmd.getInviteUserId())
|
||||||
.noticeType(OfficialNoticeTypeEnum.AGENT_SEND_INVITE_HOST)
|
.noticeType(OfficialNoticeTypeEnum.AGENT_SEND_INVITE_HOST)
|
||||||
.templateParam(MapBuilder.builder()
|
.templateParam(OfficialNoticeUtils.buildUserProfile(userProfile))
|
||||||
.put("userProfile", String.format("%s(%s)", userProfile.getUserNickname(),
|
// .expand(h5Url)
|
||||||
userProfile.actualAccount()))
|
|
||||||
.build())
|
|
||||||
.expand(h5Url + path)
|
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.red.circle.framework.core.asserts.ResponseAssert;
|
|||||||
import com.red.circle.framework.core.response.CommonErrorCode;
|
import com.red.circle.framework.core.response.CommonErrorCode;
|
||||||
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
|
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
|
||||||
import com.red.circle.other.app.dto.cmd.team.DbInviteAgentCmd;
|
import com.red.circle.other.app.dto.cmd.team.DbInviteAgentCmd;
|
||||||
|
import com.red.circle.other.app.util.OfficialNoticeUtils;
|
||||||
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||||
import com.red.circle.other.domain.gateway.user.ability.UserRegionGateway;
|
import com.red.circle.other.domain.gateway.user.ability.UserRegionGateway;
|
||||||
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
|
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
|
||||||
@ -153,40 +154,15 @@ public class BdAgentInviteExe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(DbInviteAgentCmd cmd) {
|
private void sendMessage(DbInviteAgentCmd cmd) {
|
||||||
cmd.setUrl("/team-yolo/apply-join");
|
|
||||||
UserProfileDTO userProfile = userProfileAppConvertor.toUserProfileDTO(
|
UserProfileDTO userProfile = userProfileAppConvertor.toUserProfileDTO(
|
||||||
userProfileGateway.getByUserId(cmd.requiredReqUserId())
|
userProfileGateway.getByUserId(cmd.requiredReqUserId())
|
||||||
);
|
);
|
||||||
ResponseAssert.notNull(UserErrorCode.USER_INFO_NOT_FOUND, userProfile);
|
ResponseAssert.notNull(UserErrorCode.USER_INFO_NOT_FOUND, userProfile);
|
||||||
String h5Url = enumConfigCacheService.getValue(EnumConfigKey.H5_DOMAIN_BASE_URL_V2,
|
|
||||||
cmd.requireReqSysOrigin());
|
|
||||||
|
|
||||||
if (StringUtils.isBlank(h5Url)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String path = null;
|
|
||||||
if (Objects.equals(cmd.requireReqSysOriginEnum(), SysOriginPlatformEnum.TARAB)) {
|
|
||||||
path = "/team-tarab";
|
|
||||||
}
|
|
||||||
if (Objects.equals(cmd.requireReqSysOriginEnum(), SysOriginPlatformEnum.YOLO)) {
|
|
||||||
if (StringUtils.isNotBlank(cmd.getUrl())){
|
|
||||||
path = cmd.getUrl();
|
|
||||||
}else {
|
|
||||||
path = "/team";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
if (StringUtils.isBlank(path)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder()
|
officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder()
|
||||||
.toAccount(cmd.getInviteUserId())
|
.toAccount(cmd.getInviteUserId())
|
||||||
.noticeType(OfficialNoticeTypeEnum.BD_SEND_INVITE_AGENT)
|
.noticeType(OfficialNoticeTypeEnum.BD_SEND_INVITE_AGENT)
|
||||||
.templateParam(MapBuilder.builder()
|
.templateParam(OfficialNoticeUtils.buildUserProfile(userProfile))
|
||||||
.put("userProfile", String.format("%s(%s)", userProfile.getUserNickname(),
|
|
||||||
userProfile.actualAccount()))
|
|
||||||
.build())
|
|
||||||
.expand(h5Url + path)
|
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.red.circle.other.app.util;
|
||||||
|
|
||||||
|
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
|
||||||
|
import com.red.circle.tool.core.collection.MapBuilder;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class OfficialNoticeUtils {
|
||||||
|
|
||||||
|
public static Map<Object, Object> buildUserProfile(UserProfileDTO userProfile) {
|
||||||
|
return MapBuilder.builder()
|
||||||
|
.put("userNickname", userProfile.getUserNickname())
|
||||||
|
.put("account", userProfile.actualAccount())
|
||||||
|
.put("userAvatar", userProfile.getUserAvatar())
|
||||||
|
.put("countryCode", userProfile.getCountryCode())
|
||||||
|
.put("countryName", userProfile.getCountryName())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -5,6 +5,8 @@ import com.red.circle.external.inner.model.cmd.message.notice.official.NoticeExt
|
|||||||
import com.red.circle.external.inner.model.enums.message.OfficialNoticeTypeEnum;
|
import com.red.circle.external.inner.model.enums.message.OfficialNoticeTypeEnum;
|
||||||
import com.red.circle.framework.dto.ResultResponse;
|
import com.red.circle.framework.dto.ResultResponse;
|
||||||
import com.red.circle.other.app.inner.service.material.props.PropsBackpackClientService;
|
import com.red.circle.other.app.inner.service.material.props.PropsBackpackClientService;
|
||||||
|
import com.red.circle.other.infra.database.rds.entity.props.PropsSourceRecord;
|
||||||
|
import com.red.circle.other.infra.database.rds.service.props.PropsSourceRecordService;
|
||||||
import com.red.circle.other.infra.utils.I18nUtils;
|
import com.red.circle.other.infra.utils.I18nUtils;
|
||||||
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||||
import com.red.circle.other.domain.gateway.user.ability.UserRegionGateway;
|
import com.red.circle.other.domain.gateway.user.ability.UserRegionGateway;
|
||||||
@ -43,6 +45,7 @@ public class PropsBackpackClientEndpoint implements PropsBackpackClientApi {
|
|||||||
private final OfficialNoticeClient officialNoticeClient;
|
private final OfficialNoticeClient officialNoticeClient;
|
||||||
private final UserProfileGateway userProfileGateway;
|
private final UserProfileGateway userProfileGateway;
|
||||||
private final UserRegionGateway userRegionGateway;
|
private final UserRegionGateway userRegionGateway;
|
||||||
|
private final PropsSourceRecordService propsSourceRecordService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResultResponse<UsePropsDTO> switchUseProps(Long userId, Long propsId) {
|
public ResultResponse<UsePropsDTO> switchUseProps(Long userId, Long propsId) {
|
||||||
@ -79,15 +82,21 @@ public class PropsBackpackClientEndpoint implements PropsBackpackClientApi {
|
|||||||
return ResultResponse.success();
|
return ResultResponse.success();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResultResponse<Void> givePropsNotify(Long userId ,String type,Integer days) {
|
public ResultResponse<Void> givePropsNotify(Long userId ,String type,Integer days, Long propsId) {
|
||||||
UserProfile user = userProfileGateway.getByUserId(userId);
|
UserProfile user = userProfileGateway.getByUserId(userId);
|
||||||
|
String url = null;
|
||||||
|
PropsSourceRecord props = propsSourceRecordService.getPropsById(propsId);
|
||||||
|
if (props != null) {
|
||||||
|
url = props.getCover();
|
||||||
|
}
|
||||||
|
|
||||||
if (!Objects.isNull(user)) {
|
if (!Objects.isNull(user)) {
|
||||||
RegionConfig region = userRegionGateway.getRegionConfigByUserId(userId);
|
RegionConfig region = userRegionGateway.getRegionConfigByUserId(userId);
|
||||||
officialNoticeClient.send(
|
officialNoticeClient.send(
|
||||||
NoticeExtTemplateCustomizeCmd.builder().toAccount(userId)
|
NoticeExtTemplateCustomizeCmd.builder().toAccount(userId)
|
||||||
.noticeType(OfficialNoticeTypeEnum.GIVE_AWAY_PROPS)
|
.noticeType(OfficialNoticeTypeEnum.GIVE_AWAY_PROPS)
|
||||||
.content(I18nUtils.getPropsRewardContent(type, days, I18nUtils.getLanguageByRegion(region.getRegionName())))
|
.content(I18nUtils.getPropsRewardContent(type, days, I18nUtils.getLanguageByRegion(region.getRegionName())))
|
||||||
.expand(null)
|
.expand(url)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
return ResultResponse.success();
|
return ResultResponse.success();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user