依赖
<properties> <org.mapstruct.version>1.4.1.Final</org.mapstruct.version> <org.projectlombok.version>1.18.12</org.projectlombok.version> </properties> <dependencies> <!-- mapstruct,需要对应lombok版本--> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-jdk8</artifactId> <version>${org.mapstruct.version}</version> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>${org.mapstruct.version}</version> </dependency> <!-- 升级lombok版本 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${org.projectlombok.version}</version> <scope>provided</scope> </dependency> </dependencies>
接口类
/** * @author UnityAlvin * @date 2021/9/28 18:57 */@Mapper(componentModel = "spring")public interface BusinessCovertBasic { BusinessCovertBasic INSTANCE = Mappers.getMapper(BusinessCovertBasic.class); // 手动设置某个值:expression中,不包含的类需要具体到包名 @Mappings({ // LocalDateTime转Date @Mapping(target = "createTime", expression = "java(java.util.Date.from(omsOrder.getCreateTime()" + ".atZone(java.time.ZoneId.systemDefault()).toInstant()))"), // 时间戳转Date @Mapping(target = "validDate", expression = "java(new java.util.Date(omsOrder.getValidDate()))"), // 单位为分的金额转单位为元 @Mapping(target = "refundFee", expression = "java(new java.math.BigDecimal(omsOrder.getRefundFee())" + ".divide(new java.math.BigDecimal(100), 2, java.math.BigDecimal.ROUND_HALF_UP))"), // 对象/List转JSON @Mapping(target = "baseInfo", expression = "java(com.alibaba.fastjson.JSON.toJSONString(omsOrder.getBaseInfo()))"), // 直接为某个字段赋具体值 @Mapping(target = "orderNoteChangeFlag", expression = "java(0)") }) OmsOrderSimpleResponse orderToOmsOrderSimpleResponse(OmsOrder omsOrder); // 将原有source列的值转换到target列上 @Mappings({ @Mapping(source="id", target="mchId") }) OmsOrderItemView orderItemToOrderItemView(OmsOrderItem orderItem); // 忽略某个字段的映射 // 方式2:注解 // https://blog.csdn.net/zyw61483/article/details/112990760 @Mappings({ @Mapping(target="mchId", ignore=true) }) OmsOrderItemView orderItemToOrderItemView(OmsOrderItem orderItem);}