package cn.iocoder.yudao.module.promotion.convert.bargain; 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.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.recrod.BargainRecordPageItemRespVO; import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordDetailRespVO; import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordRespVO; import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordSummaryRespVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO; import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; /** * 砍价记录 Convert * * @author 芋道源码 */ @Mapper public interface BargainRecordConvert { BargainRecordConvert INSTANCE = Mappers.getMapper(BargainRecordConvert.class); default PageResult convertPage(PageResult page, Map helpCountMap, List activityList, Map userMap) { PageResult pageResult = convertPage(page); // 拼接数据 Map activityMap = convertMap(activityList, BargainActivityDO::getId); pageResult.getList().forEach(record -> { MapUtils.findAndThen(userMap, record.getUserId(), user -> record.setNickname(user.getNickname()).setAvatar(user.getAvatar())); record.setActivity(BargainActivityConvert.INSTANCE.convert(activityMap.get(record.getActivityId()))) .setHelpCount(helpCountMap.getOrDefault(record.getId(), 0)); }); return pageResult; } PageResult convertPage(PageResult page); default PageResult convertPage02(PageResult page, List activityList, List spuList, List orderList) { PageResult pageResult = convertPage02(page); // 拼接数据 Map activityMap = convertMap(activityList, BargainActivityDO::getId); Map spuMap = convertMap(spuList, ProductSpuRespDTO::getId); Map orderMap = convertMap(orderList, TradeOrderRespDTO::getId); pageResult.getList().forEach(record -> { MapUtils.findAndThen(activityMap, record.getActivityId(), activity -> record.setActivityName(activity.getName()).setEndTime(activity.getEndTime())); MapUtils.findAndThen(spuMap, record.getSpuId(), spu -> record.setPicUrl(record.getPicUrl())); MapUtils.findAndThen(orderMap, record.getOrderId(), order -> record.setPayStatus(order.getPayStatus()).setPayOrderId(order.getPayOrderId())); }); return pageResult; } PageResult convertPage02(PageResult page); default AppBargainRecordSummaryRespVO convert(Integer successUserCount, List successList, List activityList, Map userMap) { AppBargainRecordSummaryRespVO summary = new AppBargainRecordSummaryRespVO().setSuccessUserCount(successUserCount); Map activityMap = convertMap(activityList, BargainActivityDO::getId); summary.setSuccessList(CollectionUtils.convertList(successList, record -> { AppBargainRecordSummaryRespVO.Record recordVO = new AppBargainRecordSummaryRespVO.Record(); MapUtils.findAndThen(userMap, record.getUserId(), user -> recordVO.setNickname(user.getNickname()).setAvatar(user.getAvatar())); MapUtils.findAndThen(activityMap, record.getActivityId(), activity -> recordVO.setActivityName(activity.getName())); return recordVO; })); return summary; } @Mapping(source = "record.id", target = "id") @Mapping(source = "record.userId", target = "userId") @Mapping(source = "record.status", target = "status") AppBargainRecordDetailRespVO convert02(BargainRecordDO record, Integer helpAction, TradeOrderRespDTO order); }