package cn.iocoder.yudao.module.trade.convert.delivery; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.number.NumberUtils; import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreRespVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreSimpleRespVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO; import cn.iocoder.yudao.module.trade.controller.app.delivery.vo.pickup.AppDeliveryPickUpStoreRespVO; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Named; import org.mapstruct.factory.Mappers; import java.util.List; @Mapper public interface DeliveryPickUpStoreConvert { DeliveryPickUpStoreConvert INSTANCE = Mappers.getMapper(DeliveryPickUpStoreConvert.class); DeliveryPickUpStoreDO convert(DeliveryPickUpStoreCreateReqVO bean); DeliveryPickUpStoreDO convert(DeliveryPickUpStoreUpdateReqVO bean); List convertList(List list); PageResult convertPage(PageResult page); List convertList1(List list); @Mapping(source = "areaId", target = "areaName", qualifiedByName = "convertAreaIdToAreaName") DeliveryPickUpStoreSimpleRespVO convert02(DeliveryPickUpStoreDO bean); @Named("convertAreaIdToAreaName") default String convertAreaIdToAreaName(Integer areaId) { return AreaUtils.format(areaId); } default List convertList(List list, Double latitude, Double longitude) { return CollectionUtils.convertList(list, store -> { AppDeliveryPickUpStoreRespVO storeVO = convert03(store); if (latitude != null && longitude != null) { storeVO.setDistance(NumberUtils.getDistance(latitude, longitude, storeVO.getLatitude(), storeVO.getLongitude())); } return storeVO; }); } @Mapping(source = "areaId", target = "areaName", qualifiedByName = "convertAreaIdToAreaName") AppDeliveryPickUpStoreRespVO convert03(DeliveryPickUpStoreDO bean); }