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) ;
|
}
|
|
}
|