徽章
This commit is contained in:
parent
f94fb80701
commit
310a6c8050
@ -31,14 +31,19 @@ public class BadgeConfigDTO implements Serializable {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 徽章等级.
|
||||
*/
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||
*/
|
||||
private String displayType;
|
||||
|
||||
/**
|
||||
* 徽章等级.
|
||||
*/
|
||||
private Integer badgeLevel;
|
||||
|
||||
/**
|
||||
|
||||
@ -43,14 +43,19 @@ public class BadgeConfigDetailsDTO implements Serializable {
|
||||
*/
|
||||
private String badgeName;
|
||||
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 徽章key.
|
||||
*/
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||
*/
|
||||
private String displayType;
|
||||
|
||||
/**
|
||||
* 徽章key.
|
||||
*/
|
||||
private String badgeKey;
|
||||
|
||||
/**
|
||||
|
||||
@ -45,14 +45,19 @@ public class UseBadgeDTO implements Serializable {
|
||||
*/
|
||||
private String badgeName;
|
||||
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 是否佩戴上
|
||||
*/
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||
*/
|
||||
private String displayType;
|
||||
|
||||
/**
|
||||
* 是否佩戴上
|
||||
*/
|
||||
private Boolean use;
|
||||
|
||||
/**
|
||||
|
||||
@ -45,14 +45,19 @@ public class UserUseBadgeDTO implements Serializable {
|
||||
*/
|
||||
private String badgeName;
|
||||
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
|
||||
/**
|
||||
* 是否佩戴上
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||
*/
|
||||
private String displayType;
|
||||
|
||||
|
||||
/**
|
||||
* 是否佩戴上
|
||||
*/
|
||||
private Boolean use;
|
||||
|
||||
|
||||
@ -36,12 +36,18 @@ public class BadgeConfig extends TimestampBaseEntity {
|
||||
/**
|
||||
* 徽章类型.
|
||||
*/
|
||||
@TableField("type")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 徽章等级.
|
||||
*/
|
||||
@TableField("type")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||
*/
|
||||
@TableField("display_type")
|
||||
private String displayType;
|
||||
|
||||
/**
|
||||
* 徽章等级.
|
||||
*/
|
||||
@TableField("badge_level")
|
||||
private Integer badgeLevel;
|
||||
|
||||
|
||||
@ -51,6 +51,8 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
||||
|
||||
private static final String BADGE_TYPE = PropsTypeEnum.BADGE.name();
|
||||
private static final String DEFAULT_BADGE_SOURCE_TYPE = SysBadgeConfigTypeEnum.ACTIVITY.getName();
|
||||
private static final String BADGE_DISPLAY_TYPE_LONG = "LONG";
|
||||
private static final String BADGE_DISPLAY_TYPE_SHORT = "SHORT";
|
||||
|
||||
private final PropsResourcesCommon propsResourcesCommon;
|
||||
private final FamilyLevelConfigService familyLevelConfigService;
|
||||
@ -194,6 +196,9 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
||||
}
|
||||
JSONObject expand = parseExpand(dto.getExpand());
|
||||
String badgeSourceType = normalizeBadgeSourceType(expand.getString("badgeType"));
|
||||
String badgeDisplayType = normalizeBadgeDisplayType(
|
||||
firstNotBlank(expand.getString("badgeDisplayType"), expand.getString("displayType")),
|
||||
badgeSourceType);
|
||||
Integer badgeLevel = expand.getInteger("badgeLevel");
|
||||
Long milestone = expand.getLong("milestone");
|
||||
String badgeKey = StringUtils.isNotBlank(expand.getString("badgeKey"))
|
||||
@ -203,6 +208,7 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
||||
BadgeConfig badgeConfig = new BadgeConfig()
|
||||
.setId(badgeId)
|
||||
.setType(badgeSourceType)
|
||||
.setDisplayType(badgeDisplayType)
|
||||
.setBadgeLevel(Objects.nonNull(badgeLevel) ? badgeLevel : 0)
|
||||
.setMilestone(milestone)
|
||||
.setBadgeName(propsSourceRecord.getName())
|
||||
@ -254,9 +260,31 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
||||
}
|
||||
return DEFAULT_BADGE_SOURCE_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PropsRedPacketSkinDTO getPropsRedPacketSkin(Long id) {
|
||||
|
||||
private String normalizeBadgeDisplayType(String displayType, String badgeSourceType) {
|
||||
if (StringUtils.isNotBlank(displayType)) {
|
||||
String normalized = displayType.trim().toUpperCase();
|
||||
if (Objects.equals(BADGE_DISPLAY_TYPE_LONG, normalized)
|
||||
|| Objects.equals(BADGE_DISPLAY_TYPE_SHORT, normalized)) {
|
||||
return normalized;
|
||||
}
|
||||
}
|
||||
return Objects.equals(SysBadgeConfigTypeEnum.VIP.getName(), badgeSourceType)
|
||||
? BADGE_DISPLAY_TYPE_LONG
|
||||
: BADGE_DISPLAY_TYPE_SHORT;
|
||||
}
|
||||
|
||||
private String firstNotBlank(String... values) {
|
||||
for (String value : values) {
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PropsRedPacketSkinDTO getPropsRedPacketSkin(Long id) {
|
||||
|
||||
return propsResourcesInnerConvertor.toPropsRedPacketSkinDTO(
|
||||
propsRedPacketSkinService.getById(id));
|
||||
|
||||
25
sql/20260516_sys_badge_display_type.sql
Normal file
25
sql/20260516_sys_badge_display_type.sql
Normal file
@ -0,0 +1,25 @@
|
||||
SET @current_schema := DATABASE();
|
||||
|
||||
SET @add_sys_badge_display_type_sql := IF(
|
||||
NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema = @current_schema
|
||||
AND table_name = 'sys_badge_config'
|
||||
AND column_name = 'display_type'
|
||||
),
|
||||
'ALTER TABLE `sys_badge_config` ADD COLUMN `display_type` varchar(16) NOT NULL DEFAULT '''' COMMENT ''展示类型: LONG长徽章 SHORT短徽章'' AFTER `type`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE add_sys_badge_display_type_stmt FROM @add_sys_badge_display_type_sql;
|
||||
EXECUTE add_sys_badge_display_type_stmt;
|
||||
DEALLOCATE PREPARE add_sys_badge_display_type_stmt;
|
||||
|
||||
UPDATE `sys_badge_config`
|
||||
SET `display_type` = 'LONG'
|
||||
WHERE `type` = 'VIP'
|
||||
AND (`display_type` IS NULL OR `display_type` = '');
|
||||
|
||||
UPDATE `sys_badge_config`
|
||||
SET `display_type` = 'SHORT'
|
||||
WHERE `type` <> 'VIP'
|
||||
AND (`display_type` IS NULL OR `display_type` = '');
|
||||
Loading…
x
Reference in New Issue
Block a user