package cn.iocoder.yudao.module.promotion.convert.coupon; import cn.hutool.core.map.MapUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateCreateReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateRespVO; import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateUpdateReqVO; import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.template.AppCouponTemplatePageReqVO; import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.template.AppCouponTemplateRespVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; import java.util.Map; /** * 优惠劵模板 Convert * * @author 芋道源码 */ @Mapper public interface CouponTemplateConvert { CouponTemplateConvert INSTANCE = Mappers.getMapper(CouponTemplateConvert.class); CouponTemplateDO convert(CouponTemplateCreateReqVO bean); CouponTemplateDO convert(CouponTemplateUpdateReqVO bean); CouponTemplateRespVO convert(CouponTemplateDO bean); PageResult convertPage(PageResult page); CouponTemplatePageReqVO convert(AppCouponTemplatePageReqVO pageReqVO, List canTakeTypes, Integer productScope, Long productScopeValue); PageResult convertAppPage(PageResult pageResult); List convertAppList(List list); default PageResult convertAppPage(PageResult pageResult, Map userCanTakeMap) { PageResult result = convertAppPage(pageResult); copyTo(result.getList(), userCanTakeMap); return result; } default List convertAppList(List list, Map userCanTakeMap) { List result = convertAppList(list); copyTo(result, userCanTakeMap); return result; } default void copyTo(List list, Map userCanTakeMap) { for (AppCouponTemplateRespVO template : list) { // 检查已领取数量是否超过限领数量 template.setCanTake(MapUtil.getBool(userCanTakeMap, template.getId(), false)); } } List convertList(List list); }