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.module.product.api.spu.dto.ProductSpuRespDTO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityBaseVO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageItemRespVO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityRespVO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO; import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.activity.AppBargainActivityDetailRespVO; import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.activity.AppBargainActivityRespVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; /** * 拼团活动 Convert * * @author HUIHUI */ @Mapper public interface BargainActivityConvert { BargainActivityConvert INSTANCE = Mappers.getMapper(BargainActivityConvert.class); BargainActivityDO convert(BargainActivityBaseVO bean); BargainActivityDO convert(BargainActivityUpdateReqVO bean); BargainActivityRespVO convert(BargainActivityDO bean); List convertList(List list); PageResult convertPage(PageResult page); default PageResult convertPage(PageResult page, List spuList, Map recordUserCountMap, Map recordSuccessUserCountMap, Map helpUserCountMap) { PageResult result = convertPage(page); // 拼接关联属性 Map spuMap = convertMap(spuList, ProductSpuRespDTO::getId); result.getList().forEach(item -> { findAndThen(spuMap, item.getSpuId(), spu -> { item.setPicUrl(spu.getPicUrl()).setSpuName(spu.getName()); }); // 设置统计字段 item.setRecordUserCount(recordUserCountMap.getOrDefault(item.getId(), 0)) .setRecordSuccessUserCount(recordSuccessUserCountMap.getOrDefault(item.getId(), 0)) .setHelpUserCount(helpUserCountMap.getOrDefault(item.getId(), 0)); }); return result; } AppBargainActivityDetailRespVO convert1(BargainActivityDO bean); default AppBargainActivityDetailRespVO convert(BargainActivityDO bean, Integer successUserCount, ProductSpuRespDTO spu) { AppBargainActivityDetailRespVO detail = convert1(bean).setSuccessUserCount(successUserCount); if (spu != null) { detail.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice()); } return detail; } PageResult convertAppPage(PageResult page); default PageResult convertAppPage(PageResult page, List spuList) { PageResult result = convertAppPage(page); // 拼接关联属性 Map spuMap = convertMap(spuList, ProductSpuRespDTO::getId); List list = CollectionUtils.convertList(result.getList(), item -> { findAndThen(spuMap, item.getSpuId(), spu -> item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); return item; }); result.setList(list); return result; } List convertAppList(List list); default List convertAppList(List list, List spuList) { List activityList = convertAppList(list); Map spuMap = convertMap(spuList, ProductSpuRespDTO::getId); return CollectionUtils.convertList(activityList, item -> { findAndThen(spuMap, item.getSpuId(), spu -> item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); return item; }); } }