diff --git a/rc-service/rc-inner-api/external-inner/external-inner-model/src/main/java/com/red/circle/external/inner/model/enums/message/GroupMessageTypeEnum.java b/rc-service/rc-inner-api/external-inner/external-inner-model/src/main/java/com/red/circle/external/inner/model/enums/message/GroupMessageTypeEnum.java index 40461683..ef3bc92f 100644 --- a/rc-service/rc-inner-api/external-inner/external-inner-model/src/main/java/com/red/circle/external/inner/model/enums/message/GroupMessageTypeEnum.java +++ b/rc-service/rc-inner-api/external-inner/external-inner-model/src/main/java/com/red/circle/external/inner/model/enums/message/GroupMessageTypeEnum.java @@ -126,4 +126,9 @@ public enum GroupMessageTypeEnum { */ SYS_ACTIVITY, + /** + * 百顺游戏中奖 + */ + GAME_BAISHUN_WIN, + } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/GameBaishunServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/GameBaishunServiceImpl.java index 0e37c835..2833c3c9 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/GameBaishunServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/GameBaishunServiceImpl.java @@ -1,6 +1,7 @@ package com.red.circle.other.app.service.game; import com.red.circle.auth.inner.endpoint.AuthClient; +import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; import com.red.circle.component.game.baishun.GameBaishunService; import com.red.circle.component.game.baishun.error.BaishunErrorCode; import com.red.circle.component.game.baishun.props.GameBaishunProperties; @@ -13,20 +14,18 @@ import com.red.circle.component.game.baishun.response.BaishunResponse; import com.red.circle.component.game.baishun.response.BaishunTokenResponse; import com.red.circle.component.game.baishun.response.BaishunUserProfileResponse; import com.red.circle.component.redis.service.RedisService; -import com.red.circle.external.inner.endpoint.message.OfficialNoticeClient; -import com.red.circle.external.inner.model.cmd.message.notice.official.NoticeExtTemplateTypeCmd; -import com.red.circle.external.inner.model.enums.message.OfficialNoticeTypeEnum; +import com.red.circle.external.inner.endpoint.message.ImGroupClient; +import com.red.circle.external.inner.model.cmd.message.BroadcastGroupMsgBodyCmd; +import com.red.circle.external.inner.model.enums.message.GroupMessageTypeEnum; import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.exception.ResponseException; import com.red.circle.framework.core.security.UserCredential; -import com.red.circle.mq.business.model.event.game.GameBaiShunTwoFunProperties; import com.red.circle.mq.business.model.event.task.TaskApprovalEvent; import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.other.app.convertor.user.UserProfileAppConvertor; import com.red.circle.other.app.util.OfficialNoticeUtils; 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.GameListCacheService; import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig; import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService; import com.red.circle.other.inner.enums.config.EnumConfigKey; @@ -64,10 +63,10 @@ public class GameBaishunServiceImpl implements GameBaishunService { private final UserProfileGateway userProfileGateway; private final GameBaishunProperties gameBaishunProperties; private final TaskMqMessage taskMqMessage; - private final OfficialNoticeClient officialNoticeClient; private final UserProfileAppConvertor userProfileAppConvertor; private final EnumConfigCacheService enumConfigCacheService; private final GameListConfigService gameListConfigService; + private final ImGroupClient imGroupClient; @Override public BaishunResponse getToken(BaishunTokenRequest request) { @@ -175,7 +174,7 @@ public class GameBaishunServiceImpl implements GameBaishunService { .build()); BigDecimal cost = enumConfigCacheService - .getValueBigDecimal(EnumConfigKey.HIGH_VALUE_GIFT_STANDARD, sysOrigin); + .getValueBigDecimal(EnumConfigKey.GAME_BROADCAST_AMOUNT, sysOrigin); if (cost.compareTo(BigDecimal.ZERO) <= 0) { cost = BigDecimal.valueOf(5000L); } @@ -189,11 +188,13 @@ public class GameBaishunServiceImpl implements GameBaishunService { Map build = OfficialNoticeUtils.buildUserProfile(userProfile); build.put("gameUrl", gameListConfig.getCover()); build.put("currencyDiff", request.getCurrencyDiff()); - officialNoticeClient.send(NoticeExtTemplateTypeCmd.builder() - .toAccount(userId) - .noticeType(OfficialNoticeTypeEnum.GAME_BAISHUN_WIN) - .templateParam(build) - .build() + + imGroupClient.sendMessageBroadcast( + BroadcastGroupMsgBodyCmd.builder() + .toPlatform(SysOriginPlatformEnum.LIKEI) + .type(GroupMessageTypeEnum.GAME_BAISHUN_WIN) + .data(build) + .build() ); } } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/sys/impl/GameListConfigServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/sys/impl/GameListConfigServiceImpl.java index 3f18b938..0aa7d10b 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/sys/impl/GameListConfigServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/sys/impl/GameListConfigServiceImpl.java @@ -121,7 +121,7 @@ public class GameListConfigServiceImpl extends @Override public GameListConfig getByGameId(String gameId, String sysOrigin) { return query() - .likeRight(GameListConfig::getName, "_" + gameId) // 匹配 %_1345 + .likeLeft(GameListConfig::getName, "_" + gameId) // 匹配 %_1345 .eq(GameListConfig::getSysOrigin, sysOrigin) .last(PageConstant.LIMIT_ONE) .getOne(); diff --git a/rc-service/rc-service-other/other-start/src/test/java/SpringTest.java b/rc-service/rc-service-other/other-start/src/test/java/SpringTest.java index 8a9246c6..085b5579 100644 --- a/rc-service/rc-service-other/other-start/src/test/java/SpringTest.java +++ b/rc-service/rc-service-other/other-start/src/test/java/SpringTest.java @@ -1,6 +1,20 @@ import com.red.circle.OtherServiceApplication; -import com.red.circle.other.app.scheduler.TeamBillTask; +import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; +import com.red.circle.external.inner.endpoint.message.ImGroupClient; +import com.red.circle.external.inner.endpoint.message.OfficialNoticeClient; +import com.red.circle.external.inner.model.cmd.message.BroadcastGroupMsgBodyCmd; +import com.red.circle.external.inner.model.cmd.message.notice.official.NoticeExtTemplateTypeCmd; +import com.red.circle.external.inner.model.enums.message.GroupMessageTypeEnum; +import com.red.circle.external.inner.model.enums.message.OfficialNoticeTypeEnum; +import com.red.circle.other.app.convertor.user.UserProfileAppConvertor; +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.ability.InviteUserGateway; +import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService; +import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig; +import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService; +import com.red.circle.other.inner.model.dto.user.UserProfileDTO; +import com.red.circle.tool.core.parse.DataTypeUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -8,6 +22,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.math.BigDecimal; +import java.util.Map; +import java.util.Objects; @SpringBootTest(classes = OtherServiceApplication.class) @RunWith(SpringRunner.class) @@ -15,12 +31,42 @@ public class SpringTest { @Autowired private InviteUserGateway inviteUserGateway; + @Autowired + private OfficialNoticeClient officialNoticeClient; + @Autowired + private UserProfileAppConvertor userProfileAppConvertor; + @Autowired + private EnumConfigCacheService enumConfigCacheService; + @Autowired + private GameListConfigService gameListConfigService; + @Autowired + private UserProfileGateway userProfileGateway; + @Autowired + private ImGroupClient imGroupClient; @Test public void execute() { - BigDecimal amount = new BigDecimal("100"); - Long userId = 1963789902071508993L; - inviteUserGateway.getRechargeCommission(amount, "LIKEI", userId); + Long userId = 1954021558348390402L; + + UserProfileDTO userProfile = userProfileAppConvertor.toUserProfileDTO( + userProfileGateway.getByUserId(DataTypeUtils.toLong(userId))); + + GameListConfig gameListConfig = gameListConfigService.getByGameId("1090", "LIKEI"); + if (Objects.nonNull(gameListConfig)) { + Map build = OfficialNoticeUtils.buildUserProfile(userProfile); + build.put("gameUrl", gameListConfig.getCover()); + build.put("currencyDiff", 6000); + + imGroupClient.sendMessageBroadcast( + BroadcastGroupMsgBodyCmd.builder() + .toPlatform(SysOriginPlatformEnum.LIKEI) + .type(GroupMessageTypeEnum.GAME_BAISHUN_WIN) + .data(build) + .build() + ); + + } + } }