package cn.iocoder.yudao.module.pay.convert.refund; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO; import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundRespDTO; import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundDetailsRespVO; import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundExcelVO; import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundPageItemRespVO; import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO; import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO; import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; import java.util.Map; @Mapper public interface PayRefundConvert { PayRefundConvert INSTANCE = Mappers.getMapper(PayRefundConvert.class); default PayRefundDetailsRespVO convert(PayRefundDO refund, PayAppDO app) { PayRefundDetailsRespVO respVO = convert(refund); if (app != null) { respVO.setAppName(app.getName()); } return respVO; } PayRefundDetailsRespVO convert(PayRefundDO bean); PayRefundDetailsRespVO.Order convert(PayOrderDO bean); default PageResult convertPage(PageResult page, Map appMap) { PageResult result = convertPage(page); result.getList().forEach(order -> MapUtils.findAndThen(appMap, order.getAppId(), app -> order.setAppName(app.getName()))); return result; } PageResult convertPage(PageResult page); PayRefundDO convert(PayRefundCreateReqDTO bean); PayRefundRespDTO convert02(PayRefundDO bean); default List convertList(List list, Map appMap) { return CollectionUtils.convertList(list, order -> { PayRefundExcelVO excelVO = convertExcel(order); MapUtils.findAndThen(appMap, order.getAppId(), app -> excelVO.setAppName(app.getName())); return excelVO; }); } PayRefundExcelVO convertExcel(PayRefundDO bean); }