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);
/**
* 家族消息处理.