“djh”
2024-12-04 d1549b8445c65a6775cf1ba093f5040ace0f87e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package com.gkhy.huataiFourierSpecialGasMonitor.api.controller.sysAdmin.converter;
 
import com.gkhy.huataiFourierSpecialGasMonitor.api.controller.model.dto.resp.MenuItemApiDTO;
import com.gkhy.huataiFourierSpecialGasMonitor.api.controller.model.dto.resp.MenuItemMetaApiDTO;
import com.gkhy.huataiFourierSpecialGasMonitor.api.controller.sysAdmin.dto.req.AddAndUpdateMenuItemApiDTO;
import com.gkhy.huataiFourierSpecialGasMonitor.application.sysAdmin.model.dto.req.AddAndUpdateMenuItemAppDTO;
import com.gkhy.huataiFourierSpecialGasMonitor.application.sysAdmin.model.dto.req.NewMenuItemAppDTO;
import com.gkhy.huataiFourierSpecialGasMonitor.application.sysAdmin.model.dto.resp.MenuItemAppDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.List;
 
@Service
public class MenuInfoApiConverter {
 
    public MenuItemApiDTO toMenuItemApiDTO(MenuItemAppDTO menuItemAppDTO){
        if(menuItemAppDTO == null)
            return null;
        MenuItemApiDTO apiDTO = new MenuItemApiDTO();
        copyMenuItemInfoProperities(menuItemAppDTO,apiDTO);
        apiDTO.setChildren(toMenuItemApiDTOList(menuItemAppDTO.getSubMenuItemList()));
        return apiDTO;
    }
 
    private List<MenuItemApiDTO> toMenuItemApiDTOList(List<MenuItemAppDTO> dtoList){
        if(dtoList == null)
            return null;
        List<MenuItemApiDTO> targetList = new ArrayList<>();
        dtoList.forEach(d -> {
            MenuItemApiDTO apiDTO = new MenuItemApiDTO();
            copyMenuItemInfoProperities(d,apiDTO);
            if(d.getSubMenuItemList() != null){
                apiDTO.setChildren(toMenuItemApiDTOList(d.getSubMenuItemList()));
            }
            targetList.add(apiDTO);
        });
        return targetList;
    }
 
    private void copyMenuItemInfoProperities(MenuItemAppDTO orignDTO, MenuItemApiDTO targetDTO){
        if(orignDTO == null || targetDTO == null)
            return;
        targetDTO.setId(orignDTO.getId());
        targetDTO.setLevel(orignDTO.getLevel());
        targetDTO.setParentId(orignDTO.getParentId());
        targetDTO.setName(orignDTO.getName());
        targetDTO.setPath(orignDTO.getPath());
        targetDTO.setRedirect(orignDTO.getRedirect());
        targetDTO.setDescription(orignDTO.getDescInfo());
        targetDTO.setComponent(orignDTO.getComponent());
        targetDTO.setPriority(orignDTO.getPriority());
        targetDTO.setPublic(orignDTO.getPublicable());
        MenuItemMetaApiDTO meta = new MenuItemMetaApiDTO();
        meta.setTitle(orignDTO.getTitle());
        meta.setIcon(orignDTO.getIcon());
        meta.setIsHide(orignDTO.getVisiable());
        meta.setIsAffix(orignDTO.getAffixable());
        meta.setIsIframe(orignDTO.getIframeable());
        meta.setIsKeepAlive(orignDTO.getAliveable());
        meta.setIsLink(orignDTO.getLink());
        meta.setRoles(orignDTO.getRoles());
        if(meta.getIsLink() == null)
            meta.setIsLink("");
        targetDTO.setMeta(meta);
        if(orignDTO.getSubMenuItemList() != null && !orignDTO.getSubMenuItemList().isEmpty()){
            List<MenuItemApiDTO> childs = new ArrayList<>();
            orignDTO.getSubMenuItemList().forEach(orign -> {
                MenuItemApiDTO dd = new MenuItemApiDTO();
                copyMenuItemInfoProperities(orign,dd);
                childs.add(dd);
            });
            targetDTO.setChildren(childs);
        }
    }
 
    public NewMenuItemAppDTO toCreateMenuDto(AddAndUpdateMenuItemApiDTO addAndUpdateMenuItemApiDTO){
        if(addAndUpdateMenuItemApiDTO == null)
            return null;
        NewMenuItemAppDTO dto = new NewMenuItemAppDTO();
        BeanUtils.copyProperties(addAndUpdateMenuItemApiDTO,dto);
        //
        dto.setDescInfo(addAndUpdateMenuItemApiDTO.getDescription());
        //
        if(addAndUpdateMenuItemApiDTO.getMeta() != null){
            dto.setLink(addAndUpdateMenuItemApiDTO.getMeta().getIsLink());
            dto.setTitle(addAndUpdateMenuItemApiDTO.getMeta().getTitle());
            dto.setVisiable(addAndUpdateMenuItemApiDTO.getMeta().getIsHide());
            dto.setIframeable(addAndUpdateMenuItemApiDTO.getMeta().getIsIframe());
            dto.setAliveable(addAndUpdateMenuItemApiDTO.getMeta().getIsKeepAlive());
            dto.setAffixable(addAndUpdateMenuItemApiDTO.getMeta().getIsAffix());
            dto.setIcon(addAndUpdateMenuItemApiDTO.getMeta().getIcon());
            dto.setRoles(addAndUpdateMenuItemApiDTO.getMeta().getRoles());
        }
        //
        return dto;
    }
 
    public AddAndUpdateMenuItemAppDTO toAddAndUpdateAppDTO(AddAndUpdateMenuItemApiDTO addAndUpdateMenuItemApiDTO){
        if(addAndUpdateMenuItemApiDTO == null)
            return null;
        AddAndUpdateMenuItemAppDTO appDTO = new AddAndUpdateMenuItemAppDTO();
        BeanUtils.copyProperties(addAndUpdateMenuItemApiDTO,appDTO);
        appDTO.setMenuItemId(addAndUpdateMenuItemApiDTO.getId());
        appDTO.setDescInfo(addAndUpdateMenuItemApiDTO.getDescription());
        if(addAndUpdateMenuItemApiDTO.getMeta() != null){
            appDTO.setLink(addAndUpdateMenuItemApiDTO.getMeta().getIsLink());
            appDTO.setTitle(addAndUpdateMenuItemApiDTO.getMeta().getTitle());
            appDTO.setVisiable(addAndUpdateMenuItemApiDTO.getMeta().getIsHide());
            appDTO.setIframeable(addAndUpdateMenuItemApiDTO.getMeta().getIsIframe());
            appDTO.setAliveable(addAndUpdateMenuItemApiDTO.getMeta().getIsKeepAlive());
            appDTO.setAffixable(addAndUpdateMenuItemApiDTO.getMeta().getIsAffix());
            appDTO.setIcon(addAndUpdateMenuItemApiDTO.getMeta().getIcon());
            appDTO.setRoles(addAndUpdateMenuItemApiDTO.getMeta().getRoles());
        }
        return appDTO;
    }
}