refactor: 优化枚举字典处理,增加颜色类型

1.重构 useDict 方法,同时支持枚举和查询字典,对应后端接口增加缓存处理
2.优化 BaseEnum 处理,增加 color 字段可用于设置对应枚举背景颜色(同字典背景颜色)
This commit is contained in:
2023-09-17 18:03:14 +08:00
parent 3a3a5d6b71
commit 1f73aa732d
33 changed files with 234 additions and 191 deletions

View File

@@ -20,26 +20,28 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import top.charles7c.cnadmin.common.base.BaseEnum;
import top.charles7c.cnadmin.common.constant.UIConsts;
/**
* 公告类型枚举计划 v1.2.0 增加字典管理用于维护此类信息
* 公告状态枚举
*
* @author Charles7c
* @since 2023/8/20 10:55
*/
@Getter
@RequiredArgsConstructor
public enum AnnouncementTypeEnum implements BaseEnum<Integer, String> {
public enum AnnouncementStatusEnum implements BaseEnum<Integer> {
/** 活动 */
ACTIVITY(1, "活动"),
/** 待发布 */
PENDING_RELEASE(1, "待发布", UIConsts.COLOR_PRIMARY),
/** 消息 */
MESSAGE(2, "消息"),
/** 已发布 */
PUBLISHED(2, "已发布", UIConsts.COLOR_SUCCESS),
/** 通知 */
NOTICE(3, "通知"),;
/** 已过期 */
EXPIRED(3, "已过期", UIConsts.COLOR_ERROR),;
private final Integer value;
private final String description;
private final String color;
}

View File

@@ -45,9 +45,9 @@ public class AnnouncementQuery implements Serializable {
private String title;
/**
* 类型1活动2消息3通知
* 类型
*/
@Schema(description = "类型1活动2消息3通知", example = "1")
@Schema(description = "类型", example = "1")
@Query(type = QueryTypeEnum.EQUAL)
private Integer type;
private String type;
}

View File

@@ -23,6 +23,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import top.charles7c.cnadmin.common.base.BaseVO;
import top.charles7c.cnadmin.system.enums.AnnouncementStatusEnum;
/**
* 公告信息
@@ -65,15 +66,14 @@ public class AnnouncementVO extends BaseVO {
*
* @return 公告状态
*/
@Schema(description = "状态1待发布2已发布3已过期", example = "1")
public Integer getStatus() {
int status = 2;
@Schema(description = "状态1待发布2已发布3已过期", type = "Integer", allowableValues = {"1", "2", "3"}, example = "1")
public AnnouncementStatusEnum getStatus() {
if (null != this.effectiveTime && this.effectiveTime.isAfter(LocalDateTime.now())) {
status = 1;
return AnnouncementStatusEnum.PENDING_RELEASE;
}
if (null != this.terminateTime && this.terminateTime.isBefore(LocalDateTime.now())) {
status = 3;
return AnnouncementStatusEnum.EXPIRED;
}
return status;
return AnnouncementStatusEnum.PUBLISHED;
}
}

View File

@@ -22,8 +22,6 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import top.charles7c.cnadmin.system.enums.AnnouncementTypeEnum;
/**
* 仪表盘-公告信息
*
@@ -49,8 +47,8 @@ public class DashboardAnnouncementVO implements Serializable {
private String title;
/**
* 类型
* 类型(取值于字典 announcement_type
*/
@Schema(description = "类型", type = "Integer", allowableValues = {"1", "2", "3"}, example = "1")
private AnnouncementTypeEnum type;
@Schema(description = "类型(取值于字典 announcement_type", example = "1")
private String type;
}

View File

@@ -20,10 +20,13 @@ import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.vo.LabelValueVO;
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
@@ -43,11 +46,13 @@ import top.charles7c.cnadmin.system.service.DictItemService;
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = CacheConsts.DICT_KEY_PREFIX)
public class DictItemServiceImpl
extends BaseServiceImpl<DictItemMapper, DictItemDO, DictItemVO, DictItemDetailVO, DictItemQuery, DictItemRequest>
implements DictItemService {
@Override
@CacheEvict(allEntries = true)
@Transactional(rollbackFor = Exception.class)
public Long add(DictItemRequest request) {
String value = request.getValue();
@@ -56,6 +61,7 @@ public class DictItemServiceImpl
}
@Override
@CacheEvict(allEntries = true)
@Transactional(rollbackFor = Exception.class)
public void update(DictItemRequest request, Long id) {
String value = request.getValue();
@@ -80,6 +86,7 @@ public class DictItemServiceImpl
}
@Override
@CacheEvict(allEntries = true)
public void deleteByDictIds(List<Long> dictIds) {
baseMapper.lambdaUpdate().in(DictItemDO::getDictId, dictIds).remove();
}