liurunyu
2023-11-04 df37487916ebc1ff8d8e0f8b088c5b6af1e582ff
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
package com.dy.pipIrrDemo.demo;
 
import com.alibaba.fastjson2.JSONObject;
import com.dy.pipIrrGlobal.pojoDemo.DemoTest;
import com.dy.pipIrrGlobal.pojoDemo.DemoTestAttr;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;
 
import java.util.List;
 
@Mapper
public interface DemoTestMapper {
    DemoTestMapper INSTANCT = Mappers.getMapper(DemoTestMapper.class);
 
    /**
     * vo转po
     * @param vo
     * @return
     */
    @Mapping(target = "phone", source = "tel")
    @Mapping(target = "createDt", source = "createDt", dateFormat = "yyyy-MM-dd")
    @Mapping(target = "age", source = "age", numberFormat = "#0.00")
    @Mapping(target = "id", ignore = true)
    @Mapping(target = "nickName", defaultValue = "别名")
    @Mapping(target = "attr", qualifiedByName = "attrJsonToObject")
    DemoTest vo2po(DemoTestVo vo);
 
    /**
     *
     * @param vos
     * @return
     */
    List<DemoTest> vos2pos(List<DemoTestVo> vos) ;
 
    /**
     * po转vo
     * @param po
     * @return
     */
    @Mapping(target = "tel", source = "phone")
    @Mapping(target = "attr", qualifiedByName = "attrObjectToJson")
    DemoTestVo po2vo(DemoTest po);
 
    /**
     *
     * @param pos
     * @return
     */
    List<DemoTestVo> pos2vos(List<DemoTest> pos) ;
 
    /**
     * json字符串转对象
     */
    @Named("attrJsonToObject")
    default DemoTestAttr attrJsonToObject(String jsonStr) {
        if (StringUtils.isEmpty(jsonStr)) {
            return null;
        }
        return JSONObject.parseObject(jsonStr, DemoTestAttr.class);
    }
    /**
     * 对象转json字符串
     */
    @Named("attrObjectToJson")
    default String attrObjectToJson(DemoTestAttr attr) {
        if (ObjectUtils.isEmpty(attr)) {
            return null;
        }
        return JSONObject.toJSONString(attr) ;
    }
 
}