徽章
This commit is contained in:
parent
f94fb80701
commit
310a6c8050
@ -31,14 +31,19 @@ public class BadgeConfigDTO implements Serializable {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章类型.
|
* 徽章类型.
|
||||||
*/
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章等级.
|
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||||
*/
|
*/
|
||||||
|
private String displayType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 徽章等级.
|
||||||
|
*/
|
||||||
private Integer badgeLevel;
|
private Integer badgeLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -43,14 +43,19 @@ public class BadgeConfigDetailsDTO implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String badgeName;
|
private String badgeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章类型.
|
* 徽章类型.
|
||||||
*/
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章key.
|
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||||
*/
|
*/
|
||||||
|
private String displayType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 徽章key.
|
||||||
|
*/
|
||||||
private String badgeKey;
|
private String badgeKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -45,14 +45,19 @@ public class UseBadgeDTO implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String badgeName;
|
private String badgeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章类型.
|
* 徽章类型.
|
||||||
*/
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否佩戴上
|
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||||
*/
|
*/
|
||||||
|
private String displayType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否佩戴上
|
||||||
|
*/
|
||||||
private Boolean use;
|
private Boolean use;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -45,14 +45,19 @@ public class UserUseBadgeDTO implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String badgeName;
|
private String badgeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章类型.
|
* 徽章类型.
|
||||||
*/
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
/**
|
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||||
* 是否佩戴上
|
*/
|
||||||
|
private String displayType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否佩戴上
|
||||||
*/
|
*/
|
||||||
private Boolean use;
|
private Boolean use;
|
||||||
|
|
||||||
|
|||||||
@ -36,12 +36,18 @@ public class BadgeConfig extends TimestampBaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 徽章类型.
|
* 徽章类型.
|
||||||
*/
|
*/
|
||||||
@TableField("type")
|
@TableField("type")
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 徽章等级.
|
* 展示类型: LONG 长徽章, SHORT 短徽章.
|
||||||
*/
|
*/
|
||||||
|
@TableField("display_type")
|
||||||
|
private String displayType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 徽章等级.
|
||||||
|
*/
|
||||||
@TableField("badge_level")
|
@TableField("badge_level")
|
||||||
private Integer badgeLevel;
|
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 BADGE_TYPE = PropsTypeEnum.BADGE.name();
|
||||||
private static final String DEFAULT_BADGE_SOURCE_TYPE = SysBadgeConfigTypeEnum.ACTIVITY.getName();
|
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 PropsResourcesCommon propsResourcesCommon;
|
||||||
private final FamilyLevelConfigService familyLevelConfigService;
|
private final FamilyLevelConfigService familyLevelConfigService;
|
||||||
@ -194,6 +196,9 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
|||||||
}
|
}
|
||||||
JSONObject expand = parseExpand(dto.getExpand());
|
JSONObject expand = parseExpand(dto.getExpand());
|
||||||
String badgeSourceType = normalizeBadgeSourceType(expand.getString("badgeType"));
|
String badgeSourceType = normalizeBadgeSourceType(expand.getString("badgeType"));
|
||||||
|
String badgeDisplayType = normalizeBadgeDisplayType(
|
||||||
|
firstNotBlank(expand.getString("badgeDisplayType"), expand.getString("displayType")),
|
||||||
|
badgeSourceType);
|
||||||
Integer badgeLevel = expand.getInteger("badgeLevel");
|
Integer badgeLevel = expand.getInteger("badgeLevel");
|
||||||
Long milestone = expand.getLong("milestone");
|
Long milestone = expand.getLong("milestone");
|
||||||
String badgeKey = StringUtils.isNotBlank(expand.getString("badgeKey"))
|
String badgeKey = StringUtils.isNotBlank(expand.getString("badgeKey"))
|
||||||
@ -203,6 +208,7 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
|||||||
BadgeConfig badgeConfig = new BadgeConfig()
|
BadgeConfig badgeConfig = new BadgeConfig()
|
||||||
.setId(badgeId)
|
.setId(badgeId)
|
||||||
.setType(badgeSourceType)
|
.setType(badgeSourceType)
|
||||||
|
.setDisplayType(badgeDisplayType)
|
||||||
.setBadgeLevel(Objects.nonNull(badgeLevel) ? badgeLevel : 0)
|
.setBadgeLevel(Objects.nonNull(badgeLevel) ? badgeLevel : 0)
|
||||||
.setMilestone(milestone)
|
.setMilestone(milestone)
|
||||||
.setBadgeName(propsSourceRecord.getName())
|
.setBadgeName(propsSourceRecord.getName())
|
||||||
@ -254,9 +260,31 @@ public class PropsSourceClientServiceImpl implements PropsSourceClientService {
|
|||||||
}
|
}
|
||||||
return DEFAULT_BADGE_SOURCE_TYPE;
|
return DEFAULT_BADGE_SOURCE_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private String normalizeBadgeDisplayType(String displayType, String badgeSourceType) {
|
||||||
public PropsRedPacketSkinDTO getPropsRedPacketSkin(Long id) {
|
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(
|
return propsResourcesInnerConvertor.toPropsRedPacketSkinDTO(
|
||||||
propsRedPacketSkinService.getById(id));
|
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