package com.ydd.app.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.ydd.api.DeliveryService; import com.ydd.app.OrderEntityUtils; import com.ydd.app.QueryAmountEntityUtils; import com.ydd.app.dto.OrderReq; import com.ydd.app.dto.ValuationRes; import com.ydd.app.dto.ValuationResultData; import com.ydd.app.service.ApiDadaValuationService; import com.ydd.common.core.redis.RedisCache; import com.ydd.common.enums.DeliveryTypeEnums; import com.ydd.common.utils.DateUtils; import com.ydd.common.utils.SnCodeUtils; import com.ydd.ecloud.core.utils.BigDecimalUtils; import com.ydd.ecloud.core.utils.JsonMapper; import com.ydd.module.domain.*; import com.ydd.module.dto.DeliveryInfo; import com.ydd.module.dto.OrderFreightDto; import com.ydd.module.enums.IsDeleteEnum; import com.ydd.module.enums.MemberTypeEnum; import com.ydd.module.enums.StatusEnum; import com.ydd.module.expection.CustomWebException; import com.ydd.module.service.*; import com.ydd.module.utils.CommonUtils; import com.ydd.third.common.config.DeliveryConfig; import com.ydd.third.common.utils.AddressLngLatExchanger; import com.ydd.third.common.utils.CoordinateUtils; import com.ydd.third.common.vo.GDMapTripResult; import com.ydd.third.common.vo.ResObject; import com.ydd.third.common.vo.shop.AmountResultVo; import com.ydd.third.common.vo.shop.QueryAmount; import com.ydd.third.common.vo.vo.order.OrderResultVo; import com.ydd.third.common.vo.vo.order.OrderVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.BigInteger; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; import static java.math.BigDecimal.ROUND_DOWN; import static java.math.BigDecimal.ROUND_UP; /** * 达达配送商-计价serviceImpl * @author 叶君翔 * @date 2021/12/31 15:20 */ @Slf4j @Service @RequiredArgsConstructor(onConstructor_ = @Autowired) public class ApiDadaValuationServiceImpl implements ApiDadaValuationService { private final IPackageFreightService iPackageFreightService; private final IPackageFreightDateService iPackageFreightDateService; private final IPackageFreightDistanceService iPackageFreightDistanceService; private final IPackageFreightMoneyService iPackageFreightMoneyService; private final IPackageFreightTimeService iPackageFreightTimeService; private final IPackageFreightWeekService iPackageFreightWeekService; private final IPackageFreightWeightService iPackageFreightWeightService; private final DeliveryService client; private final IShopService iShopService; private final DeliveryConfig deliveryConfig; private final IShopDeliveryBindService iShopDeliveryBindService; private final IDspDeliveryService iDspDeliveryService; private final RedisCache redisCache; @Override public ValuationResultData dadaValuation(Long shopId, Member loginMember, Member member, OrderReq orderReq, int valuationType, Long dadaDspId) { log.info("达达配送商计价: shopId: {}, orderReq: {}, valuationType: {}, dadaDspId: {}", shopId, JsonMapper.nonEmptyMapper().toJson(orderReq), valuationType, dadaDspId); ValuationResultData resultData = new ValuationResultData(); ValuationRes res = new ValuationRes(); List list = new ArrayList<>(); List supports = new ArrayList<>(); // 达达配送商个人地址发单,使用登录用户绑定的shopId if (shopId == null) { shopId = member.getShopId(); } if (shopId != null) { Shop shop = iShopService.getById(shopId); orderReq.setShopName(shop.getName()); } OrderFreightDto orderFreight = new OrderFreightDto(); DeliveryInfo info = this.getDeliveryInfo(member, shopId); if (info == null) { log.warn("未绑定达达自运力"); return ValuationResultData.error("达达配送商模式发单, 请绑定达达自运力"); } ValuationRes valuationRes = null; if (valuationType == 1) { // 达达收付模式 orderFreight = this.getDadaValuationPrice(shopId, member, orderReq); if (orderFreight == null) { log.warn("运费包计算异常, 计价失败!"); return ValuationResultData.error("运费包计算异常, 计价失败"); } orderFreight.setValuationType(1); valuationRes = this.queryOrderDeliverFee(orderReq, info, member.getMerchantId(), shopId, orderFreight); valuationRes.setIsEnough(StatusEnum.SHOW.status); } else if (valuationType == 2) { // 达达非收付模式 orderFreight.setValuationType(2); valuationRes = this.queryOrderDeliverFee(orderReq, info, member.getMerchantId(), shopId, orderFreight); } if (valuationRes == null) { log.warn("计价失败!"); return ValuationResultData.error("计价失败!"); } orderFreight.setDadaDspId(dadaDspId); // 计价金额存入redis, 24小时后自动失效, 下单时再入库 redisCache.setCacheObject(orderReq.getOrderNo(), orderFreight, 24 * 3600, TimeUnit.SECONDS); valuationRes.setPreferredDelivery(info.getPreferredDelivery()); valuationRes.setOriginalMoney(valuationRes.getDeliveryAmount()); valuationRes.setIsMerchant(info.getIsMerchant()); list.add(valuationRes); // Res数据组装 this.setValuationRes(list, res); res.setOptionals(list); res.setSupports(supports); return ValuationResultData.success(res); } private void setValuationRes(List list, ValuationRes res) { // 获取聚合配送的预估价,选最低价格展示 if (CollectionUtils.isNotEmpty(list)) { res.setDeliveryId(list.get(0).getDeliveryId()); res.setDesc("全网运力推单"); res.setDeliveryAmount(list.get(0).getDeliveryAmount()); res.setName("聚合配送"); res.setIsEnough(list.get(0).getIsEnough()); res.setLogo("https://ecloud-cdn.51sssd.com/20210317/e24a425797f54f64b808b95beae37285.png"); } } private DeliveryInfo getDeliveryInfo(Member member, Long shopId) { DspDelivery dspDelivery = iDspDeliveryService.findOne(DeliveryTypeEnums.DADA.getType()); DeliveryInfo info = new DeliveryInfo(); BeanUtils.copyProperties(dspDelivery, info); int isMine = 0; if (member.getMerchantId() != null) { ShopDeliveryBind shopDeliveryBind = iShopDeliveryBindService.getShopDeliveryBind(member.getMerchantId(), shopId, dspDelivery.getId(), dspDelivery.getType()); if (shopDeliveryBind == null) { log.warn("达达配送商模式发单, 未绑定达达自运力"); return null; } info.setAuthToken(shopDeliveryBind.getAuthToken()); info.setThirdShopId(shopDeliveryBind.getThirdShopId()); isMine = 1; if (info.getType().equals(DeliveryTypeEnums.DADA.getType())){ info.setShopId(shopDeliveryBind.getDadaShopNo()); info.setDadaThirdShopId(shopDeliveryBind.getThirdShopId()); } } if (dspDelivery.getType().equals(DeliveryTypeEnums.DADA.getType()) && member.getMemberType().equals(MemberTypeEnum.PERSON.type)){ info.setIsMerchant(StatusEnum.SHOW.status); } info.setPreferredDelivery(StatusEnum.STOP.getStatus()); info.setIsMine(isMine); return info; } private OrderFreightDto getDadaValuationPrice(Long shopId, Member member, OrderReq orderReq) { try { BigDecimal valuationPrice = BigDecimal.ZERO; // 获取合适运费包(门店>商户>通用) Long packageId = iPackageFreightService.getPackageId(shopId, member); PackageFreight packageFreight = iPackageFreightService.getById(packageId); if (packageFreight == null) { log.warn("无合适运费包!"); return null; } // 基础运费 if (packageFreight.getAmount() != null) { valuationPrice = valuationPrice.add(packageFreight.getAmount()); } // 订单加价详情 OrderFreightDto orderFreight = new OrderFreightDto(); orderFreight.setFreightPackageId(packageFreight.getId()); orderFreight.setAmount(packageFreight.getAmount()); orderFreight.setMaxAmount(packageFreight.getMaxAmount()); String startLonLat = orderReq.getSendAddress().getLng() + "," + orderReq.getSendAddress().getLat(); String endLonLat = orderReq.getReceiptAddress().getLng() + "," + orderReq.getReceiptAddress().getLat(); // 获取订单距离 GDMapTripResult bicyclingInfo = AddressLngLatExchanger.getBicyclingInfo(startLonLat, endLonLat); orderFreight.setDistance(Integer.valueOf(bicyclingInfo.getDistance() + "")); // 获取距离加价配置 List distanceList = iPackageFreightDistanceService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(distanceList)) { BigDecimal orderDistance = new BigDecimal(String.valueOf(bicyclingInfo.getDistance())).divide(new BigDecimal(String.valueOf(1000)), 2, BigDecimal.ROUND_UP); for (PackageFreightDistance item : distanceList) { boolean inRange = BigDecimalUtils.inRange(item.getStartDistance(), item.getEndDistance(), orderDistance); if (inRange && item.getDistance() != null && item.getPrice() != null) { // 计算加价次数 BigDecimal addNum = orderDistance.divide(item.getDistance(), 0, BigDecimal.ROUND_UP); valuationPrice = valuationPrice.add(item.getPrice().multiply(addNum)); orderFreight.setDistanceAdd(item.getPrice().multiply(addNum)); break; } } } // 获取重量加价配置 List weightList = iPackageFreightWeightService.getPackageById(packageId); if(CollectionUtils.isNotEmpty(weightList)) { BigDecimal orderWeight = new BigDecimal(String.valueOf(orderReq.getWeight())); for (PackageFreightWeight item : weightList) { boolean inRange = BigDecimalUtils.inRange(item.getStartWeight(), item.getEndWeight(), orderWeight); if (inRange && item.getWeight() != null && item.getPrice() != null) { // 计算加价次数 BigDecimal addNum = orderWeight.divide(item.getWeight(), 0, BigDecimal.ROUND_UP); valuationPrice = valuationPrice.add(item.getPrice().multiply(addNum)); orderFreight.setWeightAdd(item.getPrice().multiply(addNum)); break; } } } // 获取商品金额加价配置 List moneyList = iPackageFreightMoneyService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(moneyList)) { BigDecimal orderAmount = orderReq.getWaimaiOrderId() == null ? orderReq.getProductAmount() : orderReq.getMtMoney(); for (PackageFreightMoney item : moneyList) { boolean inRange = BigDecimalUtils.inRange(item.getStartMoney(), item.getEndMoney(), orderAmount); if (inRange && item.getPrice() != null) { valuationPrice = valuationPrice.add(item.getPrice()); orderFreight.setProductAmountAdd(item.getPrice()); break; } } } // 获取时间段加价配置 List timeList = iPackageFreightTimeService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(timeList)) { for (PackageFreightTime item : timeList) { boolean inZone = DateUtils.HHmmInZone(item.getStartTime(), item.getEndTime()); if (inZone && item.getPrice() != null) { valuationPrice = valuationPrice.add(item.getPrice()); orderFreight.setTimeAdd(item.getPrice()); break; } } } // 获取日期加价配置 List dateList = iPackageFreightDateService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(dateList)) { for (PackageFreightDate item : dateList) { boolean inZone = DateUtils.YYYYMMddInZone(item.getStartDate(), item.getEndDate()); if (inZone && item.getPrice() != null) { valuationPrice = valuationPrice.add(item.getPrice()); orderFreight.setDateAdd(item.getPrice()); break; } } } // 获取每周加价配置 List weekList = iPackageFreightWeekService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(weekList)) { Integer todayWeek = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); for (PackageFreightWeek item : weekList) { if (todayWeek.equals(item.getWeek())) { valuationPrice = valuationPrice.add(item.getPrice()); orderFreight.setWeekAdd(item.getPrice()); break; } } } // 计算运费金额 if (packageFreight.getMaxAmount() != null && packageFreight.getMaxAmount().compareTo(valuationPrice) < 0) { orderFreight.setDeliveryAmount(packageFreight.getMaxAmount()); } else { orderFreight.setDeliveryAmount(valuationPrice); } return orderFreight; } catch (Exception e) { log.error("运费包计算异常", e); return null; } } public OrderFreightDto dadaValuation(Long shopId, Member member, OrderReq orderReq) { try { BigDecimal valuationPrice = BigDecimal.ZERO; // 获取合适运费包(门店>商户>通用) Long packageId = iPackageFreightService.getPackageId(shopId, member); PackageFreight packageFreight = iPackageFreightService.getById(packageId); if (packageFreight == null) { log.warn("无合适运费包!"); return null; } // 基础运费 if (packageFreight.getAmount() != null) { valuationPrice = valuationPrice.add(packageFreight.getAmount()); } // 订单加价详情 OrderFreightDto orderFreight = new OrderFreightDto(); orderFreight.setOrderId(orderReq.getOrderId()); orderFreight.setFreightPackageId(packageFreight.getId()); orderFreight.setAmount(packageFreight.getAmount()); orderFreight.setMaxAmount(packageFreight.getMaxAmount()); String startLonLat = orderReq.getSendAddress().getLng() + "," + orderReq.getSendAddress().getLat(); String endLonLat = orderReq.getReceiptAddress().getLng() + "," + orderReq.getReceiptAddress().getLat(); // 获取订单距离 GDMapTripResult bicyclingInfo = AddressLngLatExchanger.getBicyclingInfo(startLonLat, endLonLat); orderFreight.setDistance(Integer.valueOf(bicyclingInfo.getDistance() + "")); // 获取距离加价配置 List distanceList = iPackageFreightDistanceService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(distanceList)) { BigDecimal orderKm = new BigDecimal(String.valueOf(bicyclingInfo.getDistance())).divide(new BigDecimal(String.valueOf(1000)), 2, BigDecimal.ROUND_UP); BigDecimal distanceAdd = new BigDecimal(BigInteger.ZERO); for (PackageFreightDistance distance : distanceList) { // 起始 < orderKm <= 无穷大 if (distance.getEndDistance() == null && orderKm.compareTo(distance.getStartDistance()) > 0) { // 计算加价次数 BigDecimal addNum = orderKm.subtract(distance.getStartDistance()).divide(distance.getDistance(), 0, ROUND_UP); valuationPrice = valuationPrice.add(distance.getPrice().multiply(addNum)); distanceAdd = distanceAdd.add(distance.getPrice().multiply(addNum)); } // 起始 < orderKm <= 结束值 if (distance.getEndDistance() != null && orderKm.compareTo(distance.getEndDistance()) > 0) { // 计算加价次数 BigDecimal addNum = distance.getEndDistance().subtract(distance.getStartDistance()).divide(distance.getDistance(), 0, ROUND_UP); valuationPrice = valuationPrice.add(distance.getPrice().multiply(addNum)); distanceAdd = distanceAdd.add(distance.getPrice().multiply(addNum)); } if (distance.getEndDistance() != null && (orderKm.compareTo(distance.getStartDistance()) > 0 && orderKm.compareTo(distance.getEndDistance()) < 1)) { // 计算加价次数 BigDecimal addNum = orderKm.subtract(distance.getStartDistance()).divide(distance.getDistance(), 0, ROUND_UP); valuationPrice = valuationPrice.add(distance.getPrice().multiply(addNum)); distanceAdd = distanceAdd.add(distance.getPrice().multiply(addNum)); } } orderFreight.setDistanceAdd(distanceAdd); } // 获取重量加价配置 List weightList = iPackageFreightWeightService.getPackageById(packageId); if(CollectionUtils.isNotEmpty(weightList)) { BigDecimal orderWeight = new BigDecimal(Integer.toString(orderReq.getWeight())); BigDecimal weightAdd = new BigDecimal(BigInteger.ZERO); for (PackageFreightWeight weight : weightList) { // 起始 < orderWeight <= 无穷大 if (weight.getEndWeight() == null && orderWeight.compareTo(weight.getStartWeight()) > 0) { // 计算加价次数 BigDecimal addNum = orderWeight.subtract(weight.getStartWeight()).divide(weight.getWeight(), 0, ROUND_UP); valuationPrice = valuationPrice.add(weight.getPrice().multiply(addNum)); weightAdd = weightAdd.add(weight.getPrice().multiply(addNum)); } // 起始 < orderWeight <= 结束值 if (weight.getEndWeight() != null && orderWeight.compareTo(weight.getEndWeight()) > 0) { // 计算加价次数 BigDecimal addNum = weight.getEndWeight().subtract(weight.getStartWeight()).divide(weight.getWeight(), 0, ROUND_UP); valuationPrice = valuationPrice.add(weight.getPrice().multiply(addNum)); weightAdd = weightAdd.add(weight.getPrice().multiply(addNum)); } if (weight.getEndWeight() != null && (orderWeight.compareTo(weight.getStartWeight()) > 0 && orderWeight.compareTo(weight.getEndWeight()) < 1)) { // 计算加价次数 BigDecimal addNum = orderWeight.subtract(weight.getStartWeight()).divide(weight.getWeight(), 0, ROUND_UP); valuationPrice = valuationPrice.add(weight.getPrice().multiply(addNum)); weightAdd = weightAdd.add(weight.getPrice().multiply(addNum)); } } orderFreight.setWeightAdd(weightAdd); } // 获取商品金额加价配置 List moneyList = iPackageFreightMoneyService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(moneyList)) { BigDecimal orderAmount = orderReq.getWaimaiOrderId() == null ? orderReq.getProductAmount() : orderReq.getMtMoney(); BigDecimal moneyAdd = new BigDecimal(BigInteger.ZERO); for (PackageFreightMoney money : moneyList) { // 起始 < orderAmount <= 结束值 if (orderAmount.compareTo(money.getEndMoney()) > 0) { valuationPrice = valuationPrice.add(money.getPrice()); moneyAdd = moneyAdd.add(money.getPrice()); } if (orderAmount.compareTo(money.getStartMoney()) > 0 && orderAmount.compareTo(money.getEndMoney()) < 1) { valuationPrice = valuationPrice.add(money.getPrice()); moneyAdd = moneyAdd.add(money.getPrice()); } } orderFreight.setProductAmountAdd(moneyAdd); } // 获取时间段加价配置 List timeList = iPackageFreightTimeService.getPackageById(packageId); if (CollectionUtils.isNotEmpty(timeList)) { Date newDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String now = sdf.format(newDate); BigDecimal timeAdd = new BigDecimal(BigInteger.ZERO); for (PackageFreightTime time : timeList) { // 起始时间段 < now <= 结束时间段 if (now.compareTo(time.getEndTime()) > 0) { valuationPrice = valuationPrice.add(time.getPrice()); timeAdd = timeAdd.add(time.getPrice()); } if (now.compareTo(time.getStartTime()) > 0 && now.compareTo(time.getEndTime()) < 1) { valuationPrice = valuationPrice.add(time.getPrice()); timeAdd = timeAdd.add(time.getPrice()); } } orderFreight.setTimeAdd(timeAdd); } // 获取日期加价配置 List dateList = iPackageFreightDateService.getPackageById(packageId); if (dateList != null && dateList.size() > 0) { Date newDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date now = sdf.parse(sdf.format(newDate)); BigDecimal dateAdd = new BigDecimal(BigInteger.ZERO); for (PackageFreightDate date : dateList) { // 起始日期 < now <= 结束日期 if (now.compareTo(date.getEndDate()) > 0) { valuationPrice = valuationPrice.add(date.getPrice()); dateAdd = dateAdd.add(date.getPrice()); } if (now.compareTo(date.getStartDate()) > 0 && now.compareTo(date.getEndDate()) < 1) { valuationPrice = valuationPrice.add(date.getPrice()); dateAdd = dateAdd.add(date.getPrice()); } } orderFreight.setDateAdd(dateAdd); } // 获取每周加价配置 List weekList = iPackageFreightWeekService.getPackageById(packageId); if (weekList != null && weekList.size() > 0) { Calendar calendar = Calendar.getInstance(); Integer todayWeek = calendar.get(Calendar.DAY_OF_WEEK); BigDecimal weekAdd = new BigDecimal(BigInteger.ZERO); for (PackageFreightWeek week : weekList) { if (todayWeek.equals(week.getWeek())) { valuationPrice = valuationPrice.add(week.getPrice()); weekAdd = weekAdd.add(week.getPrice()); } } orderFreight.setWeekAdd(weekAdd); } // 加价超过最高运费,返回最高运费 if (packageFreight.getMaxAmount() != null && packageFreight.getMaxAmount().compareTo(valuationPrice) < 0) { orderFreight.setDeliveryAmount(packageFreight.getMaxAmount()); } else { orderFreight.setDeliveryAmount(valuationPrice); } return orderFreight; }catch (Exception e) { log.error("运费包计算异常", e); return null; } } private ValuationRes queryOrderDeliverFee(OrderReq orderReq, DeliveryInfo delivery, Long merchantId, Long shopId, OrderFreightDto orderFreight) { orderReq.setOrderSn(SnCodeUtils.createSn()); orderReq.setAmount(orderReq.getProductAmount()); OrderVo orderVo = OrderEntityUtils.createOrderVo(orderReq, delivery, deliveryConfig.isTest()); orderVo.setIsMine(delivery.getIsMine()); ValuationRes res = new ValuationRes(); if (orderFreight.getValuationType() == 2) { ResObject resObject = client.queryOrderDeliverFee(orderVo); if (resObject.getCode() == 0) { this.transResObject(res, delivery, resObject, orderReq, orderVo); } } else { this.transRes(res, delivery, orderFreight, orderReq, orderVo); } // 判断是否是自己平台,查询金额是否充足 QueryAmount queryAmount = QueryAmountEntityUtils.queryAmount(delivery, merchantId, delivery.getIsMine()); ResObject amountRes = client.queryAmount(queryAmount); if (amountRes.getCode() == 0) { // 更新余额 AmountResultVo vo = amountRes.getData(); this.updateAmount(delivery, merchantId, shopId, vo.getBalanceAmount()); // 自运力余额不足0.1元, 则直接计价失败 if (vo.getBalanceAmount().compareTo(new BigDecimal("0.1")) < 0) { log.error("自运力余额不足, 计价失败!"); throw new CustomWebException("自运力余额不足, 计价失败"); } res.setIsEnough(StatusEnum.SHOW.status); res.setIsMine(1); } return res; } private void updateAmount(DeliveryInfo delivery, Long merchantId, Long shopId, BigDecimal balanceAmount) { ShopDeliveryBind shopDeliveryBind = iShopDeliveryBindService.getOne(new QueryWrapper() .eq("merchant_id", merchantId).eq("shop_id", shopId).eq("delivery_id", delivery.getId()) .eq("deleted", IsDeleteEnum.NORMAL.status).eq("bind_status", 1)); // 门店模式变更余额 if (shopDeliveryBind != null) { iShopDeliveryBindService.updateShopAmount(shopDeliveryBind.getMerchantId(), shopDeliveryBind.getDeliveryId(), shopDeliveryBind.getThirdShopId(), balanceAmount); } } private void transResObject(ValuationRes res, DeliveryInfo delivery, ResObject resObject, OrderReq orderReq, OrderVo orderVo) { res.setDeliveryId(delivery.getId()); res.setName(delivery.getName()); res.setLogo(delivery.getLogo()); res.setDesc(CommonUtils.change2Km((int) resObject.getData().getDistance())); res.setDeliveryAmount(resObject.getData().getDeliverFee()); res.setIsEnough(StatusEnum.STOP.status); res.setOrderSn(orderReq.getOrderSn()); res.setIsMine(orderVo.getIsMine()); res.setOrderNo(orderReq.getOrderNo()); res.setOrderNumber(resObject.getData().getDeliveryOrderNo()); res.setShopId(delivery.getShopId()); res.setThirdShopId(delivery.getThirdShopId()); res.setAuthToken(delivery.getAuthToken()); res.setPhone(delivery.getPhone()); res.setDeliveryType(delivery.getType()); } private void transRes(ValuationRes res, DeliveryInfo delivery, OrderFreightDto orderFreight, OrderReq orderReq, OrderVo orderVo) { res.setDeliveryId(delivery.getId()); res.setName(delivery.getName()); res.setLogo(delivery.getLogo()); res.setDesc(CommonUtils.change2Km(orderFreight.getDistance())); res.setDeliveryAmount(orderFreight.getDeliveryAmount()); res.setIsEnough(StatusEnum.STOP.status); res.setOrderSn(orderReq.getOrderSn()); res.setIsMine(orderVo.getIsMine()); res.setOrderNo(orderReq.getOrderNo()); res.setOrderNumber(null); res.setShopId(delivery.getShopId()); res.setThirdShopId(delivery.getThirdShopId()); res.setAuthToken(delivery.getAuthToken()); res.setPhone(delivery.getPhone()); res.setDeliveryType(delivery.getType()); } }