Authored by mali

Merge branch 'test6.10.1' into test6.10.1_收藏重构

... ... @@ -29,4 +29,7 @@ public interface BuyerOrderGoodsMapper {
List<BuyerOrderGoods> selectByOrderCodes(@Param("orderCodes") List<Long> orderCodes);
List<BuyerOrderGoods> selectOrderBySkups(@Param("skup") Integer skup);
BuyerOrderGoods selectLastOrderBySkup(@Param("skup") Integer skup);
}
\ No newline at end of file
... ...
... ... @@ -205,4 +205,12 @@
from buyer_order_goods
where skup = #{skup,jdbcType=INTEGER} order by id ASC
</select>
<select id="selectLastOrderBySkup" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from buyer_order_goods
where skup = #{skup,jdbcType=INTEGER} order by id desc limit 1
</select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -2,6 +2,7 @@ package com.yohoufo.order.controller.erp;
import com.google.common.base.Throwables;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.constants.DepotType;
import com.yohobuy.ufo.model.order.req.*;
import com.yohobuy.ufo.model.order.resp.FastDeliveryBatchOnShelfResp;
import com.yohobuy.ufo.model.order.resp.FastDeliveryGetShelfDetailResp;
... ... @@ -12,7 +13,12 @@ import com.yohoufo.common.ApiResponse;
import com.yohoufo.common.annotation.IgnoreSession;
import com.yohoufo.common.annotation.IgnoreSignature;
import com.yohoufo.common.exception.UfoServiceException;
import com.yohoufo.order.event.AuditFailedEvent;
import com.yohoufo.order.service.IErpFastDeliveryService;
import com.yohoufo.order.service.IExpressInfoService;
import com.yohoufo.order.service.impl.SellerOrderService;
import com.yohoufo.order.service.impl.visitor.AuditCancelCase;
import com.yohoufo.order.service.seller.SellerOrderCancelService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -34,7 +40,6 @@ public class ErpFastDeliveryController {
@Autowired
IErpFastDeliveryService erpFastDeliveryService;
/**
* 货号+尺寸是否存在
* @param req
... ... @@ -149,6 +154,42 @@ public class ErpFastDeliveryController {
/**
* 取消发货
* @param req
* @return
*/
@IgnoreSignature
@IgnoreSession
@RequestMapping("/cancelDeliver")
public ApiResponse cancelDeliver(@RequestBody FastDeliveryDownShelfReq req){
logger.info("cancelDeliver param {}", req);
erpFastDeliveryService.cancelDeliver(req);
return new ApiResponse.ApiResponseBuilder().code(200).build();
}
/**
* 卖家发货
* @param req
* @return
*/
@IgnoreSignature
@IgnoreSession
@RequestMapping("/deliverToDepot")
public ApiResponse deliverToDepot(@RequestBody FastDeliveryDownShelfReq req){
logger.info("deliverToDepot param {}", req);
erpFastDeliveryService.deliverToDepot(req);
return new ApiResponse.ApiResponseBuilder().code(200).build();
}
/**
* 获取货号的各尺寸的最低价
* @param req
* @return
... ...
... ... @@ -2,15 +2,13 @@ package com.yohoufo.order.event;
import com.yohobuy.ufo.model.order.resp.FastDeliveryReq;
import com.yohoufo.common.alarm.Event;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class FastDeliveryChangeEvent extends Event {
FastDeliveryReq fastDeliveryReq;
... ...
... ... @@ -30,6 +30,7 @@ import com.yohoufo.order.event.ErpBuyerOrderEvent;
import com.yohoufo.order.event.FastDeliveryChangeEvent;
import com.yohoufo.order.event.SellerCancelDeliverEvent;
import com.yohoufo.order.model.OperateTransferExpressInfo;
import com.yohoufo.order.model.dto.LimitTime;
import com.yohoufo.order.model.dto.PreSaleOrderConfig;
import com.yohoufo.order.model.request.PaymentRequest;
import com.yohoufo.order.model.response.PrepayResponse;
... ... @@ -201,14 +202,6 @@ public class BuyerOrderPaymentService extends AbstractOrderPaymentService {
}
orderInfo.setStatus(orderStatusCode);
// 极速 不管是寄存还是发货 都需要通知卖家发货
FastDeliveryChangeEvent fastDeliveryEvent = new FastDeliveryChangeEvent(FastDeliveryReq.builder()
.sellerUid(orderInfo.getSellerUid())
.skup(orderInfo.getSkup())
.orderCode(orderInfo.getOrderCode())
.build(), FastDeliveryChangeEvent.Opt.Delivery);
EventBusPublisher.publishEvent(fastDeliveryEvent);
return result;
}
... ... @@ -259,11 +252,30 @@ public class BuyerOrderPaymentService extends AbstractOrderPaymentService {
private void processFastDelivery(BuyerOrder orderInfo, SellerOrderGoods sellerOrderGoods){
// 通知买家支付成功
buyerNoticeFacade.buyerPaidFastDelivery(sellerOrderGoods, orderInfo);
int limitTime = deliveryMinutesService.getDeliverLimitTimeBySkupType(sellerOrderGoods, TimeUnit.HOURS);
buyerNoticeFacade.buyerFinishPaid(orderInfo, limitTime, DateUtil.UNIT_HOURS);
// 提醒卖家发货
sellerNoticeFacade.sellerSkupPaidByBuyerFastDelivery(sellerOrderGoods, orderInfo);
// 极速 不管是寄存还是发货 都需要通知卖家发货
FastDeliveryChangeEvent fastDeliveryEvent = new FastDeliveryChangeEvent(FastDeliveryReq.builder()
.sellerUid(orderInfo.getSellerUid())
.skup(sellerOrderGoods.getId())
.orderCode(orderInfo.getOrderCode())
.build(), FastDeliveryChangeEvent.Opt.Delivery);
EventBusPublisher.publishEvent(fastDeliveryEvent);
// 超时未发货取消
SellerCancelDeliverEvent event = SellerCancelDeliverEvent.builder()
.sellerOrderGoods(sellerOrderGoods)
.productName(sellerOrderGoods.getProductName())
.uid(orderInfo.getUid()).sellerUid(sellerOrderGoods.getUid()).skup(sellerOrderGoods.getId())
.orderCode(orderInfo.getOrderCode()).build();
EventBusPublisher.publishEvent(event);
}
/**
... ...
... ... @@ -49,7 +49,7 @@ public interface IErpFastDeliveryService {
* 批量下架
* @param req
*/
public boolean batchDownSelf(FastDeliveryDownShelfReq req);
boolean batchDownSelf(FastDeliveryDownShelfReq req);
/**
... ... @@ -57,8 +57,21 @@ public interface IErpFastDeliveryService {
* @param req
* @return
*/
public List<StorageCheckResp> getStorageInfo(FastDeliveryBatchOnShelfReq req);
List<StorageCheckResp> getStorageInfo(FastDeliveryBatchOnShelfReq req);
public OrderGoodsListVo getOrderGoodsList(FastDeliveryGetShelfReq request);
OrderGoodsListVo getOrderGoodsList(FastDeliveryGetShelfReq request);
/**
* 取消发货
* @param req
*/
public void cancelDeliver(FastDeliveryDownShelfReq req);
/**
* 卖家发货
* @param req
*/
void deliverToDepot(FastDeliveryDownShelfReq req);
}
... ...
package com.yohoufo.order.service;
import com.yoho.core.dal.datasource.annotation.Database;
import com.yohobuy.ufo.model.order.common.*;
import com.yohobuy.ufo.model.order.req.SellerDeliverToDepotReq;
import com.yohobuy.ufo.model.order.resp.ExpressInfoDetail;
import com.yohobuy.ufo.model.order.resp.ExpressInfoRespBo;
import com.yohoufo.common.constant.ExpressInfoConstant;
import com.yohoufo.dal.order.model.AppraiseOrder;
import com.yohoufo.dal.order.model.ExpressInfo;
import com.yohoufo.dal.order.model.ExpressRecord;
import com.yohoufo.order.common.ActionStatusHold;
import com.yohoufo.order.model.OperateTransferExpressInfo;
import com.yohoufo.order.model.response.AppraiseAddressResp;
import lombok.NonNull;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
... ...
... ... @@ -35,15 +35,13 @@ public class FastDeliveryChangeHandler implements IEventHandler<FastDeliveryChan
.withStopStrategy(StopStrategies.stopAfterAttempt(2))
.withWaitStrategy(WaitStrategies.fixedWait(50, TimeUnit.MILLISECONDS)).build();
private ExecutorService executors = Executors.newFixedThreadPool(1);
@Autowired
private IExpressInfoService expressInfoService;
@Override
@Subscribe
public void handle(FastDeliveryChangeEvent event) {
logger.info("FastDeliveryChangeEvent {}", event);
if (event.getOpt() == null || event.getFastDeliveryReq()== null){
logger.warn("req required, please check param");
return;
... ... @@ -75,19 +73,21 @@ public class FastDeliveryChangeHandler implements IEventHandler<FastDeliveryChan
logger.warn("multi fast delivery delivery fail, alarm, e {}", e);
}
// 卖家自动发货
executors.submit(()->{
SellerDeliverToDepotReq sdtdReq = SellerDeliverToDepotReq.builder()
.sellerUid(fastDeliveryReq.getSellerUid())
.orderCode(fastDeliveryReq.getOrderCode())
.wayBillCode(wayBillCode)
.depotNum(DepotType.NJ.getCode())
.expressCompanyId(0)
.build();
expressInfoService.deliverToDepot(sdtdReq);
});
break;
// // 卖家自动发货
// executors.submit(()->{
// SellerDeliverToDepotReq sdtdReq = SellerDeliverToDepotReq.builder()
// .sellerUid(fastDeliveryReq.getSellerUid())
// .orderCode(fastDeliveryReq.getOrderCode())
// .wayBillCode(wayBillCode)
// .depotNum(DepotType.NJ.getCode())
// .expressCompanyId(0)
// .build();
// expressInfoService.deliverToDepot(sdtdReq);
// });
break;
case Cancel:
... ... @@ -103,7 +103,9 @@ public class FastDeliveryChangeHandler implements IEventHandler<FastDeliveryChan
logger.warn("multi fast delivery cancel fail, alarm, e {}", e);
}
break;
break;
default:
... ...
... ... @@ -7,6 +7,7 @@ import com.yoho.core.redis.cluster.operations.serializer.RedisKeyBuilder;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.bo.MerchantOrderAttachInfo;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.resp.FastDeliveryReq;
import com.yohoufo.common.alarm.EventBusPublisher;
import com.yohoufo.common.alarm.SmsAlarmEvent;
import com.yohoufo.common.utils.DateUtil;
... ... @@ -20,6 +21,7 @@ import com.yohoufo.order.common.RefundCase;
import com.yohoufo.order.common.TransferCase;
import com.yohoufo.order.constants.AlarmConfig;
import com.yohoufo.order.event.BillLogEvent;
import com.yohoufo.order.event.FastDeliveryChangeEvent;
import com.yohoufo.order.service.cache.CacheCleaner;
import com.yohoufo.order.service.impl.function.BuyerOrderNoticeSender;
import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
... ... @@ -223,6 +225,11 @@ public class BuyerOrderCancelHandler {
cleanCache(buyerOrder, sellerOrderGoods);
//取消事件
fireAsyncCancelEvent(buyerOrder);
// 是否需要通知卖家做相应处理
triggerSellerOperation(sellerUid, buyerOrderGoods.getSkup());
} else {
log.info("cancel order {} fail, order status has changed", orderCode);
throwServiceException("当前状态不可取消订单");
... ... @@ -260,6 +267,15 @@ public class BuyerOrderCancelHandler {
return success;
}
private void triggerSellerOperation(Integer sellerUid, Integer skup){
// 极速通知卖家取消
FastDeliveryChangeEvent fastDeliverEvent = new FastDeliveryChangeEvent(
FastDeliveryReq.builder().sellerUid(sellerUid).skup(skup).needReShelves(false).build(),
FastDeliveryChangeEvent.Opt.Cancel);
EventBusPublisher.publishEvent(fastDeliverEvent);
}
private void refundCoupon() {
if (Objects.isNull(refundCouponCase)) {
return;
... ... @@ -432,6 +448,8 @@ public class BuyerOrderCancelHandler {
}
}
private void noticeSeller(SellerOrderGoods sellerOrderGoods) {
if (Objects.nonNull(noticeSeller)) {
try {
... ...
... ... @@ -7,6 +7,7 @@ import com.yohobuy.ufo.model.ProductInfo;
import com.yohobuy.ufo.model.enums.StorageCheckEnum;
import com.yohobuy.ufo.model.order.bo.SellerBo;
import com.yohobuy.ufo.model.order.common.*;
import com.yohobuy.ufo.model.order.constants.DepotType;
import com.yohobuy.ufo.model.order.constants.SkupType;
import com.yohobuy.ufo.model.order.req.*;
import com.yohobuy.ufo.model.order.resp.*;
... ... @@ -23,17 +24,21 @@ import com.yohoufo.dal.order.*;
import com.yohoufo.dal.order.model.*;
import com.yohoufo.order.common.BillTradeStatus;
import com.yohoufo.order.common.TradeType;
import com.yohoufo.order.event.OrderCancelEvent;
import com.yohoufo.order.model.dto.*;
import com.yohoufo.order.service.IErpFastDeliveryService;
import com.yohoufo.order.service.IExpressInfoService;
import com.yohoufo.order.service.handler.SellerDecrPriceTaskHandler;
import com.yohoufo.order.service.handler.SellerDownShelfTaskHandler;
import com.yohoufo.order.service.handler.SellerIncrPriceTaskHandler;
import com.yohoufo.order.service.handler.SellerOrderSubmitHandler;
import com.yohoufo.order.service.impl.visitor.UserCancelCase;
import com.yohoufo.order.service.proxy.FastDeliveryProxyService;
import com.yohoufo.order.service.proxy.ProductProxyService;
import com.yohoufo.order.service.proxy.UserProxyService;
import com.yohoufo.order.service.seller.ImportPublishExcutor;
import com.yohoufo.order.service.seller.SellerAuthCheckService;
import com.yohoufo.order.service.seller.SellerOrderCancelService;
import com.yohoufo.order.service.seller.processor.AdjustPricePrepareProcessor;
import com.yohoufo.order.service.seller.processor.PriceComputePrepareProcessor;
import com.yohoufo.order.service.seller.processor.SellerDownShelfPrepareProcessor;
... ... @@ -48,6 +53,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
... ... @@ -371,6 +377,121 @@ public class ErpFastDeliveryServiceImpl implements IErpFastDeliveryService {
return any.stream().sorted(Comparator.comparing(TradeBills::getCreateTime).reversed()).limit(1).findFirst().get();
}
@Autowired
private IExpressInfoService expressInfoService;
@Autowired
SellerOrderMapper sellerOrderMapper;
@Autowired
private SellerOrderCancelService sellerOrderCancelService;
/**
* 取消发货
* @param req
*/
public void cancelDeliver(FastDeliveryDownShelfReq req){
if (req.getUid() < 0){
logger.warn("uid is empty");
throw new UfoServiceException(400, "参数[uid]不合法");
}
if (req.getSkup()<0){
logger.warn("productCode is empty");
throw new UfoServiceException(400, "参数[skup]不合法");
}
BuyerOrder buyerOrder = checkSellerParam(req.getSkup(), req.getUid(), OrderStatus.SELLER_CANCEL_AFTER_PAY, OrderStatus.HAS_PAYED);
if (Objects.isNull(buyerOrder)){
return;
}
OrderCancelEvent event = OrderCancelEvent.builder().uid(buyerOrder.getUid())
.orderCode(buyerOrder.getOrderCode()).actorType(TabType.SELL).build();
UserCancelCase userCancelCase = new UserCancelCase(event);
userCancelCase.accept(sellerOrderCancelService);
}
/**
* 卖家发货
* @param req
*/
public void deliverToDepot(FastDeliveryDownShelfReq req){
if (req.getUid() < 0){
logger.warn("uid is empty");
throw new UfoServiceException(400, "参数[uid]不合法");
}
if (req.getSkup()<0){
logger.warn("productCode is empty");
throw new UfoServiceException(400, "参数[skup]不合法");
}
if (StringUtils.isBlank(req.getWayBillCode())){
logger.warn("wayBillCode is empty");
throw new UfoServiceException(400, "参数[wayBillCode]不合法");
}
BuyerOrder buyerOrder = checkSellerParam(req.getSkup(), req.getUid(), OrderStatus.SELLER_SEND_OUT, OrderStatus.HAS_PAYED);
if (Objects.isNull(buyerOrder)){
return;
}
SellerDeliverToDepotReq sdtdReq = SellerDeliverToDepotReq.builder()
.sellerUid(req.getUid())
// 卖家订单号
.orderCode(buyerOrder.getOrderCode())
.wayBillCode(req.getWayBillCode())
.depotNum(DepotType.NJ.getCode())
.expressCompanyId(0)
.build();
expressInfoService.deliverToDepot(sdtdReq);
}
private BuyerOrder checkSellerParam(Integer skup, Integer serllerUid, OrderStatus targetStatus, OrderStatus originalStatus){
// 获取到买家订单号
BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectLastOrderBySkup(skup);
if (buyerOrderGoods == null){
logger.warn("{} buyerOrderGoods is empty", skup);
throw new UfoServiceException(501, "该商品的购买记录不存在,请检查参数!");
}
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(buyerOrderGoods.getOrderCode());
if (buyerOrder == null || buyerOrder.getStatus() == null ){
logger.warn("{} buyerOrder is empty", skup);
throw new UfoServiceException(501, "该商品的购买记录不存在,请检查参数!");
}
if (buyerOrder.getSellerUid() != serllerUid){
logger.warn("{} sellerUid inconsistent {}, {}", skup, buyerOrder.getSellerUid(), serllerUid);
throw new UfoServiceException(501, "指定的卖家uid和上架商品的uid不一致,请检查参数!");
}
if (buyerOrder.getStatus() == targetStatus.getCode()){
logger.info("{} checkSellerParam success", skup);
return null;
}
if (buyerOrder.getStatus() != originalStatus.getCode()){
logger.warn("{} immediately status is {},originalStatus {}", skup, buyerOrder.getStatus(), originalStatus.getCode());
throw new UfoServiceException(502, "该商品的状态已发生变化,请检查!【"+OrderStatus.getOrderStatus(buyerOrder.getStatus()).getDesc()+"】");
}
return buyerOrder;
}
/**
* 获取某个货号的最低价
... ...
... ... @@ -579,30 +579,30 @@ public class BuyerNoticeFacade extends BaseNoticeFacade {
}
}
/**
* 提醒买家支付成功&卖家已经发货
*
* @param sog sog
* @param buyerOrder
*/
public void buyerPaidFastDelivery(SellerOrderGoods sog, BuyerOrder buyerOrder) {
Integer uid = buyerOrder.getUid();
String prdName = sog.getProductName();
String sizeName = sog.getSizeName();
long orderCode = buyerOrder.getOrderCode();
try {
String goodsTypeTag = buildGoodsTypeTag(sog, buyerOrder, TabType.BUY);
Product product = productMapper.selectByPrimaryKey(sog.getProductId());
String productCode = product.getProductCode();
newBuyerNotice(buyerOrder)
.withLogPrefix("buyer paid fast delivery")
.withInBox(InboxBusinessTypeEnum.FAST_DELIVERY_NOTIFIED_SELLER, orderCode)
.withSms(InboxBusinessTypeEnum.SMS_NOTICE_BUYER_WHEN_SELLER_DELIVER, goodsTypeTag, prdName, sizeName, productCode, orderCode)
.send();
} catch (Exception e) {
log.warn("buyer paid fast delivery fail, uid {}, orderCode {} ", uid, orderCode, e);
}
}
// /**
// * 提醒买家支付成功&卖家已经发货
// *
// * @param sog sog
// * @param buyerOrder
// */
// public void buyerPaidFastDelivery(SellerOrderGoods sog, BuyerOrder buyerOrder) {
// Integer uid = buyerOrder.getUid();
// String prdName = sog.getProductName();
// String sizeName = sog.getSizeName();
// long orderCode = buyerOrder.getOrderCode();
// try {
// String goodsTypeTag = buildGoodsTypeTag(sog, buyerOrder, TabType.BUY);
// Product product = productMapper.selectByPrimaryKey(sog.getProductId());
// String productCode = product.getProductCode();
// newBuyerNotice(buyerOrder)
// .withLogPrefix("buyer paid fast delivery")
// .withInBox(InboxBusinessTypeEnum.PURCHASE_NOTIFIED_SELLER, orderCode)
//// .withSms(InboxBusinessTypeEnum.SMS_NOTICE_BUYER_WHEN_SELLER_DELIVER, goodsTypeTag, prdName, sizeName, productCode, orderCode)
// .send();
// } catch (Exception e) {
// log.warn("buyer paid fast delivery fail, uid {}, orderCode {} ", uid, orderCode, e);
// }
// }
public void noticeBuyerOfSellerSendOutTimeout(BuyerNoticeSender.Request request) {
... ...
... ... @@ -9,7 +9,6 @@ import com.yohoufo.dal.order.model.SellerOrderGoods;
import com.yohoufo.order.model.dto.LimitTime;
import com.yohoufo.order.service.impl.MetaConfigService;
import com.yohoufo.order.service.impl.OrderOverTimeService;
import lombok.Getter;
import org.apache.commons.collections.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
... ... @@ -108,7 +107,7 @@ public class DeliveryMinutesService {
//订单维度 下单时刻的配置
int totalMinutes = getDeliverMinutesLimitTimeByOrder(orderCode);
if (totalMinutes<=0){//商品类型匹配,当前生效的全局配置(数据库)
totalMinutes = getDeliverMinutesLimitTimeBySkupType(sellerOrderGoods);
totalMinutes = getDeliverLimitTimeBySkupType(sellerOrderGoods, TimeUnit.MINUTES);
}
//配置文件(程序中)
if (totalMinutes<=0){
... ... @@ -170,20 +169,32 @@ public class DeliveryMinutesService {
return MINUTES_DELIVERNOTICE_SECOND;
}
private int getDeliverMinutesLimitTimeBySkupType(SellerOrderGoods sellerOrderGoods){
public int getDeliverLimitTimeBySkupType(SellerOrderGoods sellerOrderGoods, TimeUnit timeUnit){
Map<String, LimitTime> limitTimeMap = metaConfigService.getSellerDeliverLimitTimeConfig();
SkupType skupType = SkupType.getSkupType(sellerOrderGoods.getAttributes());
LimitTime limitTime = null;
if (MapUtils.isNotEmpty(limitTimeMap)
&& Objects.nonNull(limitTime = limitTimeMap.get(skupType.getLocalCacheKey()))) {
int limitTimeInt = getMinutes(limitTime);
logger.info("getDeliverMinutesLimitTimeBySkupType from special skupType {} {},limitTimeInt {}",
int limitTimeInt = 0;
if (timeUnit == TimeUnit.HOURS){
limitTimeInt = getHours(limitTime);
}else if (timeUnit == TimeUnit.MINUTES){
limitTimeInt = getMinutes(limitTime);
}
logger.info("getDeliverLimitTimeBySkupType from special skupType {} {},limitTimeInt {}",
limitTime,sellerOrderGoods, limitTimeInt);
return limitTimeInt;
}
return -1;
}
/**
* it's dead line of seller deliver goods of buyer order
* @param ts
... ... @@ -191,7 +202,7 @@ public class DeliveryMinutesService {
* @return
*/
public int getDeliverMinutesThird(int ts, SellerOrderGoods sellerOrderGoods){
int limitTimeInt = getDeliverMinutesLimitTimeBySkupType(sellerOrderGoods);
int limitTimeInt = getDeliverLimitTimeBySkupType(sellerOrderGoods, TimeUnit.MINUTES);
if (limitTimeInt>0){
return limitTimeInt;
}
... ... @@ -203,6 +214,26 @@ public class DeliveryMinutesService {
return minutes_deliverNotice_third;
}
private static int getHours(LimitTime limitTime){
int hours;
TimeUnit timeUnit;
if (Objects.nonNull(timeUnit=limitTime.getTimeUnit())) {
switch (timeUnit) {
case HOURS:
default:
hours = limitTime.getLimitTime();
break;
case MINUTES:
hours = limitTime.getLimitTime()/60;
break;
}
}else{
hours = limitTime.getLimitTime();
}
return hours;
}
private static int getMinutes(LimitTime limitTime){
int minutes;
TimeUnit timeUnit;
... ...