From 7c16c483fa9a35350e9a3de711a2796a9240f731 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Wed, 24 Dec 2025 17:43:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B6=E6=97=8F=E7=AD=89=E7=BA=A7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/family/FamilyRestController.java | 20 +- .../command/family/FamilyLevelListExe.java | 180 ++---------------- .../app/service/family/FamilyServiceImpl.java | 4 +- .../family/FamilyLevelParentCacheCO.java | 2 +- .../app/service/family/FamilyService.java | 2 +- 5 files changed, 21 insertions(+), 187 deletions(-) diff --git a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java index 7f7652b3..4afb73e5 100644 --- a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java +++ b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java @@ -42,14 +42,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - *

- * 家族服务 前端控制器. - *

- * - * @author lisizhe on 2023/9/19 - * @eo.api-type http - * @eo.groupName 家族服务 - * @eo.path /family + * 家族管理 */ @RequiredArgsConstructor @RestController @@ -169,15 +162,10 @@ public class FamilyRestController extends BaseController { } /** - * 全部等级配置集合. - * - * @eo.name 全部等级配置集合. - * @eo.url /list/level-config - * @eo.method get - * @eo.request-type formdata + * 家族等级配置 */ -// @GetMapping("/list/level-config") - public List listLevelConfig(AppExtCommand cmd) { + @GetMapping("/list/level-config") + public List listLevelConfig(AppExtCommand cmd) { return familyService.listLevelConfig(cmd); } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyLevelListExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyLevelListExe.java index 3c2ec73a..5d1f9607 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyLevelListExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyLevelListExe.java @@ -1,201 +1,47 @@ package com.red.circle.other.app.command.family; -import com.fasterxml.jackson.core.type.TypeReference; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.red.circle.common.business.dto.cmd.AppExtCommand; import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.response.CommonErrorCode; import com.red.circle.other.app.dto.clientobject.family.FamilyLevelCO; -import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO; -import com.red.circle.other.infra.database.cache.service.other.FamilyLevelCacheService; -import com.red.circle.other.infra.database.rds.entity.badge.BadgePictureConfig; import com.red.circle.other.infra.database.rds.entity.family.FamilyLevelConfig; -import com.red.circle.other.infra.database.rds.entity.gift.GiftConfig; -import com.red.circle.other.infra.database.rds.entity.props.PropsSourceRecord; -import com.red.circle.other.infra.database.rds.service.badge.BadgePictureConfigService; import com.red.circle.other.infra.database.rds.service.family.FamilyLevelConfigService; -import com.red.circle.other.infra.database.rds.service.gift.GiftConfigService; -import com.red.circle.other.infra.database.rds.service.props.PropsSourceRecordService; import com.red.circle.tool.core.collection.CollectionUtils; -import com.red.circle.tool.core.json.JacksonUtils; -import com.red.circle.tool.core.text.StringUtils; import java.util.Comparator; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; /** - *

- * 全部等级配置集合. - *

- * - * @author pengshigang - * @since 2021-07-20 + * 家族等级列表. */ @Component @RequiredArgsConstructor public class FamilyLevelListExe { - private final GiftConfigService giftConfigService; - private final FamilyLevelCacheService familyLevelCacheService; - private final PropsSourceRecordService propsSourceRecordService; private final FamilyLevelConfigService familyLevelConfigService; - private final BadgePictureConfigService badgePictureConfigService; - - private final Map familyLevelSortMapping = new HashMap<>() {{ - put("BLACK_IRON", 0); - put("BRONZE", 1); - put("SILVER", 2); - put("GOLD", 3); - put("PLATINUM", 4); - }}; - - public List execute(AppExtCommand cmd) { - - String jsonStr = getCacheFamilyLevelParent(cmd); - if (StringUtils.isBlank(jsonStr)) { - - List parents = getLevelCO(getLevelConfigs(cmd), cmd); - familyLevelCache(cmd, parents); - return parents; - } - return Optional - .ofNullable(JacksonUtils - .readValue(jsonStr, new TypeReference>() { - })) - .orElse(Lists.newArrayList()); - } - - private String getCacheFamilyLevelParent(AppExtCommand cmd) { - return familyLevelCacheService.getFamilyLevelParent(cmd.getReqSysOrigin().getOrigin()); - } - - private void familyLevelCache(AppExtCommand cmd, List parents) { - familyLevelCacheService.setFamilyLevelParent( - cmd.getReqSysOrigin().getOrigin(), JacksonUtils.toJson(parents)); - } - - private List getLevelCO(List levelConfigs, - AppExtCommand cmd) { - - Map mapProp = mapProp(levelConfigs); - Map mapGift = mapGift(levelConfigs); - Map mapBadge = mapBadge(cmd.getReqSysOrigin().getOrigin(), - levelConfigs); - - List levelList = levelConfigs.stream().map( - familyLevelConfig -> setFamilyLevelCO(mapProp, mapBadge, mapGift, familyLevelConfig, - getBuild(familyLevelConfig))).collect(Collectors.toList()); - - if (CollectionUtils.isEmpty(levelList)) { - return Lists.newArrayList(); - } - List levelParents = Lists.newArrayList(); - - getStringListMap(levelList).forEach((k, list) -> - levelParents.add(new FamilyLevelParentCacheCO() - .setLevelType(k) - .setSort(Optional.ofNullable(familyLevelSortMapping.get(k)).orElse(1000)) - .setLevel(list) - ) - ); - - return levelParents.stream().sorted(Comparator.comparing(FamilyLevelParentCacheCO::getSort)) - .collect(Collectors.toList()); - } - - private Map> getStringListMap(List levelList) { - return levelList.stream().collect(Collectors.groupingBy(FamilyLevelCO::getLevelType)); - } - - private FamilyLevelCO setFamilyLevelCO(Map mapProp, - Map mapBadge, - Map mapGift, - FamilyLevelConfig familyLevelConfig, FamilyLevelCO levelCO) { - - PropsSourceRecord avatarFrame = mapProp.get(familyLevelConfig.getAvatarFrameId()); - BadgePictureConfig badge = mapBadge.get(familyLevelConfig.getBadgeId()); - GiftConfig gift = mapGift.get(familyLevelConfig.getGiftId()); - - levelCO.setLevelType(familyLevelConfig.getLevelType()); - - if (Objects.nonNull(avatarFrame)) { - levelCO.setAvatarFrameCover(avatarFrame.getCover()); - levelCO.setAvatarFrameSvg(avatarFrame.getSourceUrl()); - } - - if (Objects.nonNull(badge)) { - levelCO.setBadgeCover(badge.getSelectUrl()); - levelCO.setBadgeSvg(badge.getAnimationUrl()); - } - - if (Objects.nonNull(gift)) { - levelCO.setGiftCover(gift.getGiftPhoto()); - levelCO.setGiftSvg(gift.getGiftSourceUrl()); - } - levelCO.setSort(familyLevelConfig.getSort()); - return levelCO; - } - - private List getLevelConfigs(AppExtCommand cmd) { + public List execute(AppExtCommand cmd) { List levelConfigs = familyLevelConfigService .listLevelConfig(cmd.getReqSysOrigin().getOrigin()); ResponseAssert.isFalse(CommonErrorCode.NOT_FOUND_RECORD_INFO, CollectionUtils.isEmpty(levelConfigs)); - return levelConfigs; - + return levelConfigs.stream() + .map(this::convertToLevelCO) + .sorted(Comparator.comparing(FamilyLevelCO::getSort)) + .collect(Collectors.toList()); } - - private Map mapGift(List levelConfigs) { - if (CollectionUtils.isEmpty(levelConfigs)) { - return Maps.newHashMap(); - } - return giftConfigService.mapByIds(getGiftIds(levelConfigs)); - } - - private Set getGiftIds(List levelConfigs) { - return levelConfigs.stream().map(FamilyLevelConfig::getGiftId).collect(Collectors.toSet()); - } - - private Map mapProp(List levelConfigs) { - - if (CollectionUtils.isEmpty(levelConfigs)) { - return Maps.newHashMap(); - } - return propsSourceRecordService - .mapByIds(levelConfigs.stream().map(FamilyLevelConfig::getAvatarFrameId).collect( - Collectors.toSet())); - } - - private Map mapBadge(String sysOrigin, - List levelConfigs) { - - if (CollectionUtils.isEmpty(levelConfigs)) { - return Maps.newHashMap(); - } - return badgePictureConfigService - .mapBadge(sysOrigin, levelConfigs.stream().map(FamilyLevelConfig::getBadgeId).collect( - Collectors.toSet())); - } - - private FamilyLevelCO getBuild(FamilyLevelConfig familyLevelConfig) { + private FamilyLevelCO convertToLevelCO(FamilyLevelConfig config) { return new FamilyLevelCO() - .setLevelKey(familyLevelConfig.getLevelKey()) - .setLevelExp(familyLevelConfig.getLevelExp()) - .setMaxMember(familyLevelConfig.getMaxMember()) - .setMaxManager(familyLevelConfig.getMaxManager()) - .setLevelBackgroundPicture(familyLevelConfig.getLevelBackgroundPicture()); + .setLevelKey(config.getLevelKey()) + .setLevelExp(config.getLevelExp()) + .setMaxMember(config.getMaxMember()) + .setMaxManager(config.getMaxManager()) + .setLevelBackgroundPicture(config.getLevelBackgroundPicture()) + .setSort(config.getSort()); } - } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java index 3ec32421..04d94944 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java @@ -34,7 +34,7 @@ import com.red.circle.other.app.command.family.FamilyBoxClaimExe; import com.red.circle.other.app.dto.clientobject.family.FamilyBaseInfoCO; import com.red.circle.other.app.dto.clientobject.family.FamilyCreateRulesCO; import com.red.circle.other.app.dto.clientobject.family.FamilyLeaderboardCO; -import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO; +import com.red.circle.other.app.dto.clientobject.family.FamilyLevelCO; import com.red.circle.other.app.dto.clientobject.family.FamilyListCO; import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO; import com.red.circle.other.app.dto.clientobject.family.FamilyMsgListCO; @@ -165,7 +165,7 @@ public class FamilyServiceImpl implements FamilyService { } @Override - public List listLevelConfig(AppExtCommand cmd) { + public List listLevelConfig(AppExtCommand cmd) { return familyLevelListExe.execute(cmd); } diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyLevelParentCacheCO.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyLevelParentCacheCO.java index 6885da2d..58bca225 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyLevelParentCacheCO.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyLevelParentCacheCO.java @@ -22,7 +22,7 @@ public class FamilyLevelParentCacheCO implements Serializable { private static final long serialVersionUID = 1L; /** - * 等级类型(BLACK_IRON.黑铁 BRONZE.青铜 SILVER.白银 GOLD.黄金 PLATINUM.铂金). + * */ private String levelType; diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java index e173deab..0f647c68 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java @@ -59,7 +59,7 @@ public interface FamilyService { /** * 全部等级配置集合. */ - List listLevelConfig(AppExtCommand cmd); + List listLevelConfig(AppExtCommand cmd); /** * 家族消息处理.