欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将枚举类转化为map集合或者list集合

程序员文章站 2024-01-27 22:24:52
...
使用场景:

有时候产品原型中查询列表是, 筛选条件中, 有条件下拉选, 但是条件不是很多, 也就几个, 这个时候可以使用数据字典或者枚举类, 我这里使用的枚举类转化为list集合, 来发送给前端
将枚举类转化为map集合或者list集合
平台名称枚举类

@Getter
public enum AdPlatformEnum {

    pc_wap(1, "PC/WAP"),
    APP_WECHAT(2, "APP/微信"),
    SHOW_ROOM(3, "展厅"),
    ;

    private Integer code;
    private String name;

    AdPlatformEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 获取广告位置集合Map
     * @return
     */
    public static HashMap<Integer,String> getAdPlatformMap() {
        HashMap<Integer, String> map = new HashMap<>();
        for (AdPlatformEnum AdPlatformEnum : EnumSet.allOf(AdPlatformEnum.class)) {
            map.put(AdPlatformEnum.code, AdPlatformEnum.name);
        }
        return map;
    }
    /**
     * 获取广告位置集合List
     * @return
     */
    public static List<HashMap<String,String>> getAdPlatformList() {
        List<HashMap<String, String>> list = new ArrayList<>();
        for (AdPlatformEnum AdPlatformEnum : EnumSet.allOf(AdPlatformEnum.class)) {
            HashMap<String, String> map = new HashMap<>();
            map.put("code",AdPlatformEnum.code.toString());
            map.put("name",AdPlatformEnum.name);
            list.add(map);
        }
        return list;
    }

广告位置枚举类

@Getter
public enum AdPositionEnum {

    CHANGE_SCREEN(1, "刷屏机首页轮播"),
    IPAD_LEFT_FIRST(2, "ipad优惠活动左一"),
    TV_LEFT_FIRST(3, "智能TV优惠活动左一"),
    WATER_BRAND(4, "水牌优惠活动文字链"),
    TV_HOME(5, "智能电视首页广告"),
    CLOUD_MINI_PRO_BANNER(6, "首页banner"),
    ;
    /*位置编码*/
    private Integer code;
    /*位置名称*/
    private String name;

    AdPositionEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 获取广告位置集合Map
     * @return
     */
    public static HashMap<Integer,String> getAdPositionMap() {
        HashMap<Integer, String> map = new HashMap<>();
        for (AdPositionEnum adPositionEnum : EnumSet.allOf(AdPositionEnum.class)) {
            map.put(adPositionEnum.code, adPositionEnum.name);
        }
        return map;
    }
    /**
     * 获取广告位置集合List
     * @return
     */
    public static List<HashMap<String,String>> getAdPositionList() {
        List<HashMap<String, String>> list = new ArrayList<>();
        for (AdPositionEnum adPositionEnum : EnumSet.allOf(AdPositionEnum.class)) {
            HashMap<String, String> map = new HashMap<>();
            map.put("code",adPositionEnum.code.toString());
            map.put("name",adPositionEnum.name);
            list.add(map);
        }
        return list;
    }

controller

@RestController
@RequestMapping("miniProSelect")
@Api(tags = "小程序通用下拉选")
public class CommonSelectController {

    @ApiOperation("广告平台下拉选")
    @GetMapping("/AdPlatformSelect")
    public ResultUtils platformSelect() {
        List<HashMap<String, String>> adPlatformList = AdPlatformEnum.getAdPlatformList();
        return ResultUtils.success(adPlatformList);
    }

    @ApiOperation("广告位置下拉选")
    @GetMapping("/AdPositionSelect")
    public ResultUtils AdPositionSelect() {
        List<HashMap<String, String>> adPositionList = AdPositionEnum.getAdPositionList();
        return ResultUtils.success(adPositionList);
    }

结果展示:

平台下拉选
将枚举类转化为map集合或者list集合
广告位置下拉选
将枚举类转化为map集合或者list集合