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