mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-12 06:57:13 +08:00
refactor: 优化枚举字典处理,增加颜色类型
1.重构 useDict 方法,同时支持枚举和查询字典,对应后端接口增加缓存处理 2.优化 BaseEnum 处理,增加 color 字段可用于设置对应枚举背景颜色(同字典背景颜色)
This commit is contained in:
@@ -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;
|
||||
}
|
@@ -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;
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
@@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user