Authored by chenchao

Merge branch 'master' of http://git.yoho.cn/ufo/ufo-service-model

# Conflicts:
#	users/src/main/java/com/yohobuy/ufo/model/enums/InboxBusinessTypeEnum.java
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 <sql id="Base_Column_List" > 35 <sql id="Base_Column_List" >
36 id, product_id, goods_id, storage_id, deposit_code, shelf_code, owner_uid, order_code, 36 id, product_id, goods_id, storage_id, deposit_code, shelf_code, owner_uid, order_code,
37 skup, status, order_status, update_time, create_time, deposit_start_time, deposit_end_time, 37 skup, status, order_status, update_time, create_time, deposit_start_time, deposit_end_time,
38 - edit_pid, del_status, out_type 38 + edit_pid, del_status, out_type, new_order_code, new_skup
39 </sql> 39 </sql>
40 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > 40 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
41 select 41 select
@@ -38,6 +38,6 @@ public class BuyerOrderConfirmDelayMsgConsumer implements YhConsumer { @@ -38,6 +38,6 @@ public class BuyerOrderConfirmDelayMsgConsumer implements YhConsumer {
38 38
39 OrderRequest req = OrderRequest.builder().uid(buyerUid).orderCode(orderCode).build(); 39 OrderRequest req = OrderRequest.builder().uid(buyerUid).orderCode(orderCode).build();
40 buyerOrderService.confirm(req); 40 buyerOrderService.confirm(req);
41 - logger.info("topic {}, msg {} finish", getMessageTopic(), buyerConfirmEvent); 41 + logger.info("topic {}, msg {} finish", getMessageTopic(), o);
42 } 42 }
43 } 43 }
@@ -5,10 +5,7 @@ import com.alibaba.fastjson.JSONObject; @@ -5,10 +5,7 @@ import com.alibaba.fastjson.JSONObject;
5 import com.yoho.error.ServiceError; 5 import com.yoho.error.ServiceError;
6 import com.yoho.error.exception.ServiceException; 6 import com.yoho.error.exception.ServiceException;
7 import com.yohobuy.ufo.model.order.bo.OrderInfo; 7 import com.yohobuy.ufo.model.order.bo.OrderInfo;
8 -import com.yohobuy.ufo.model.order.common.OrderAttributes;  
9 -import com.yohobuy.ufo.model.order.common.OrderCodeType;  
10 -import com.yohobuy.ufo.model.order.common.OrderStatus;  
11 -import com.yohobuy.ufo.model.order.common.TabType; 8 +import com.yohobuy.ufo.model.order.common.*;
12 import com.yohobuy.ufo.model.order.constants.SkupType; 9 import com.yohobuy.ufo.model.order.constants.SkupType;
13 import com.yohoufo.common.alarm.EventBusPublisher; 10 import com.yohoufo.common.alarm.EventBusPublisher;
14 import com.yohoufo.common.utils.DateUtil; 11 import com.yohoufo.common.utils.DateUtil;
@@ -49,6 +46,11 @@ import java.util.Arrays; @@ -49,6 +46,11 @@ import java.util.Arrays;
49 import java.util.List; 46 import java.util.List;
50 import java.util.concurrent.TimeUnit; 47 import java.util.concurrent.TimeUnit;
51 48
  49 +import static com.yohobuy.ufo.model.order.common.EnumExpressDataOperateTransferCode.judge_pass;
  50 +import static com.yohobuy.ufo.model.order.common.EnumExpressDataOperateTransferCode.platform_receive;
  51 +import static com.yohobuy.ufo.model.order.common.EnumExpressDataType.operate_transfer;
  52 +import static com.yohobuy.ufo.model.order.common.EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
  53 +
52 @Service 54 @Service
53 public class BuyerOrderPaymentService extends AbstractOrderPaymentService { 55 public class BuyerOrderPaymentService extends AbstractOrderPaymentService {
54 56
@@ -95,6 +97,9 @@ public class BuyerOrderPaymentService extends AbstractOrderPaymentService { @@ -95,6 +97,9 @@ public class BuyerOrderPaymentService extends AbstractOrderPaymentService {
95 @Autowired 97 @Autowired
96 private AppraiseService appraiseService; 98 private AppraiseService appraiseService;
97 99
  100 + @Autowired
  101 + private IExpressInfoService expressInfoService;
  102 +
98 private boolean isDepositWithQuickDeliverGoods(int uid, long orderCode, Integer oa){ 103 private boolean isDepositWithQuickDeliverGoods(int uid, long orderCode, Integer oa){
99 BuyerOrderGoods pbog = buyerOrderGoodsMapper.selectOnlyByOrderCode(orderCode); 104 BuyerOrderGoods pbog = buyerOrderGoodsMapper.selectOnlyByOrderCode(orderCode);
100 SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(pbog.getSkup()); 105 SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(pbog.getSkup());
@@ -230,6 +235,23 @@ public class BuyerOrderPaymentService extends AbstractOrderPaymentService { @@ -230,6 +235,23 @@ public class BuyerOrderPaymentService extends AbstractOrderPaymentService {
230 235
231 // notice 236 // notice
232 inBoxFacade.noticeWhenQuickDeliverOrderPaid(buyerOrder.getUid(), buyerOrder.getOrderCode(), sellerOrderGoods); 237 inBoxFacade.noticeWhenQuickDeliverOrderPaid(buyerOrder.getUid(), buyerOrder.getOrderCode(), sellerOrderGoods);
  238 + Integer sellerUid = buyerOrder.getSellerUid();
  239 + Integer buyerUid = buyerOrder.getUid();
  240 + Long orderCode = buyerOrder.getOrderCode();
  241 + Integer skup = sellerOrderGoods.getId();
  242 +
  243 + if (BuyerOrderUtils.isQuickDeliver(buyerOrder.getAttributes())) {
  244 + try {
  245 + // 插入物流调拨信息
  246 + expressInfoService.saveOperateTransferExpressInfo(buyerUid, orderCode,
  247 + EXPRESS_TYPE_JUDGE_CENTER.getCode(), operate_transfer, platform_receive);
  248 + expressInfoService.saveOperateTransferExpressInfo(buyerUid, orderCode,
  249 + EXPRESS_TYPE_JUDGE_CENTER.getCode(), operate_transfer, judge_pass);
  250 + } catch (Exception ex) {
  251 + logger.warn("pay successful, processQuickDeliverOrder invoke save transfer express info fail, sellerUid {}, buyerUid {},orderCode {},skup {}",
  252 + sellerUid, buyerUid, orderCode, skup);
  253 + }
  254 + }
233 } 255 }
234 256
235 @Override 257 @Override
@@ -60,4 +60,11 @@ public interface DepositService { @@ -60,4 +60,11 @@ public interface DepositService {
60 * @param depositCode 60 * @param depositCode
61 */ 61 */
62 void clearCacheByDepositCode(Integer uid, String depositCode); 62 void clearCacheByDepositCode(Integer uid, String depositCode);
  63 +
  64 + /**
  65 + * 根据货号查询库存
  66 + * @param depositCode
  67 + * @return
  68 + */
  69 + StorageDeposit selectStorageDeposit(Integer uid, String depositCode);
63 } 70 }
@@ -35,6 +35,8 @@ public interface IExpressInfoService { @@ -35,6 +35,8 @@ public interface IExpressInfoService {
35 void deliverToDepot(Integer sellerUid,Integer expressCompanyId, Long orderCode, String wayBillCode,Integer depotNum); 35 void deliverToDepot(Integer sellerUid,Integer expressCompanyId, Long orderCode, String wayBillCode,Integer depotNum);
36 36
37 37
  38 +
  39 +
38 /** 40 /**
39 * 卖家发货的商品,买家取消后,鉴定中心寄回商品给卖家 41 * 卖家发货的商品,买家取消后,鉴定中心寄回商品给卖家
40 * @param sellerUid 卖家uid 42 * @param sellerUid 卖家uid
@@ -7,20 +7,25 @@ import com.yohobuy.ufo.model.order.bo.OrderInfo; @@ -7,20 +7,25 @@ import com.yohobuy.ufo.model.order.bo.OrderInfo;
7 import com.yohobuy.ufo.model.order.common.OrderCodeType; 7 import com.yohobuy.ufo.model.order.common.OrderCodeType;
8 import com.yohobuy.ufo.model.order.common.OrderStatus; 8 import com.yohobuy.ufo.model.order.common.OrderStatus;
9 import com.yohobuy.ufo.model.order.constants.StorageDepositStatusEnum; 9 import com.yohobuy.ufo.model.order.constants.StorageDepositStatusEnum;
  10 +import com.yohoufo.dal.order.SellerOrderGoodsMapper;
10 import com.yohoufo.dal.order.model.DepositOrder; 11 import com.yohoufo.dal.order.model.DepositOrder;
11 import com.yohoufo.dal.order.model.EntrySellerRechargeOrder; 12 import com.yohoufo.dal.order.model.EntrySellerRechargeOrder;
  13 +import com.yohoufo.dal.order.model.SellerOrderGoods;
12 import com.yohoufo.dal.order.model.StorageDeposit; 14 import com.yohoufo.dal.order.model.StorageDeposit;
13 import com.yohoufo.order.model.request.PaymentRequest; 15 import com.yohoufo.order.model.request.PaymentRequest;
14 import com.yohoufo.order.model.response.PrepayResponse; 16 import com.yohoufo.order.model.response.PrepayResponse;
15 import com.yohoufo.order.service.AbstractOrderPaymentService; 17 import com.yohoufo.order.service.AbstractOrderPaymentService;
16 import com.yohoufo.order.service.DepositService; 18 import com.yohoufo.order.service.DepositService;
17 import com.yohoufo.order.service.deposit.DepositOrderService; 19 import com.yohoufo.order.service.deposit.DepositOrderService;
  20 +import com.yohoufo.order.service.proxy.InBoxFacade;
18 import org.slf4j.Logger; 21 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory; 22 import org.slf4j.LoggerFactory;
20 import org.springframework.beans.factory.annotation.Autowired; 23 import org.springframework.beans.factory.annotation.Autowired;
21 import org.springframework.stereotype.Service; 24 import org.springframework.stereotype.Service;
22 25
  26 +import javax.swing.text.html.Option;
23 import java.util.Objects; 27 import java.util.Objects;
  28 +import java.util.Optional;
24 29
25 @Service 30 @Service
26 public class DepositOrderPaymentService extends AbstractOrderPaymentService { 31 public class DepositOrderPaymentService extends AbstractOrderPaymentService {
@@ -32,6 +37,12 @@ public class DepositOrderPaymentService extends AbstractOrderPaymentService { @@ -32,6 +37,12 @@ public class DepositOrderPaymentService extends AbstractOrderPaymentService {
32 @Autowired 37 @Autowired
33 private DepositService depositService; 38 private DepositService depositService;
34 39
  40 + @Autowired
  41 + protected InBoxFacade inBoxFacade;
  42 +
  43 + @Autowired
  44 + private SellerOrderGoodsMapper sellerOrderGoodsMapper;
  45 +
35 @Override 46 @Override
36 public boolean isTimeoutCancelStatus(OrderInfo orderInfo) { 47 public boolean isTimeoutCancelStatus(OrderInfo orderInfo) {
37 return false; 48 return false;
@@ -151,6 +162,19 @@ public class DepositOrderPaymentService extends AbstractOrderPaymentService { @@ -151,6 +162,19 @@ public class DepositOrderPaymentService extends AbstractOrderPaymentService {
151 if (result != 1) { 162 if (result != 1) {
152 logger.error("depositService.changeStorageStatus find wrong, depositCode is {}, result is {}", depositOrder.getDepositCode(), result); 163 logger.error("depositService.changeStorageStatus find wrong, depositCode is {}, result is {}", depositOrder.getDepositCode(), result);
153 return; 164 return;
  165 + } else {
  166 + try {
  167 + logger.info("depositService.notify begin, orderInfo is {}", orderInfo);
  168 +
  169 + StorageDeposit deposit = depositService.selectStorageDeposit(depositOrder.getUid(), depositOrder.getDepositCode());
  170 +
  171 + SellerOrderGoods psog = Optional.ofNullable(deposit).map(StorageDeposit::getSkup)
  172 + .map(sellerOrderGoodsMapper::selectByPrimaryKey).orElse(null);
  173 +
  174 + inBoxFacade.recallDepositnotify(deposit.getOwnerUid(), psog); // 更新待拣货状态成功后,发通知
  175 + } catch (Exception e) {
  176 + logger.error("depositService.notify find wrong, orderInfo is {}", orderInfo);
  177 + }
154 } 178 }
155 } 179 }
156 180
@@ -13,8 +13,10 @@ import com.yohoufo.common.cache.ControllerCacheAop; @@ -13,8 +13,10 @@ import com.yohoufo.common.cache.ControllerCacheAop;
13 import com.yohoufo.common.caller.UfoServiceCaller; 13 import com.yohoufo.common.caller.UfoServiceCaller;
14 import com.yohoufo.common.exception.UfoServiceException; 14 import com.yohoufo.common.exception.UfoServiceException;
15 import com.yohoufo.common.helper.ImageUrlAssist; 15 import com.yohoufo.common.helper.ImageUrlAssist;
  16 +import com.yohoufo.dal.order.BuyerOrderMapper;
16 import com.yohoufo.dal.order.SellerOrderGoodsMapper; 17 import com.yohoufo.dal.order.SellerOrderGoodsMapper;
17 import com.yohoufo.dal.order.StorageDepositMapper; 18 import com.yohoufo.dal.order.StorageDepositMapper;
  19 +import com.yohoufo.dal.order.model.BuyerOrder;
18 import com.yohoufo.dal.order.model.SellerOrderGoods; 20 import com.yohoufo.dal.order.model.SellerOrderGoods;
19 import com.yohoufo.dal.order.model.StorageDeposit; 21 import com.yohoufo.dal.order.model.StorageDeposit;
20 import com.yohoufo.dal.order.model.StorageDepositCount; 22 import com.yohoufo.dal.order.model.StorageDepositCount;
@@ -52,6 +54,9 @@ public class DepositServiceImpl implements DepositService { @@ -52,6 +54,9 @@ public class DepositServiceImpl implements DepositService {
52 private SellerOrderGoodsMapper sellerOrderGoodsMapper; 54 private SellerOrderGoodsMapper sellerOrderGoodsMapper;
53 55
54 @Autowired 56 @Autowired
  57 + private BuyerOrderMapper buyerOrderMapper;
  58 +
  59 + @Autowired
55 private UfoServiceCaller ufoServiceCaller; 60 private UfoServiceCaller ufoServiceCaller;
56 61
57 private static final int DEPOSIT_MAX_TIME = 45 * 24 * 60 * 60; 62 private static final int DEPOSIT_MAX_TIME = 45 * 24 * 60 * 60;
@@ -107,6 +112,8 @@ public class DepositServiceImpl implements DepositService { @@ -107,6 +112,8 @@ public class DepositServiceImpl implements DepositService {
107 } 112 }
108 // 召回或者到期退回的 113 // 召回或者到期退回的
109 List<StorageDeposit> depositList = storageDepositMapper.queryUserDopositBack(uid, (page - 1) * limit, limit); 114 List<StorageDeposit> depositList = storageDepositMapper.queryUserDopositBack(uid, (page - 1) * limit, limit);
  115 + List<BuyerOrder> buyerGoodsList = buyerOrderMapper.selectByOrderCodes(depositList.stream().map(StorageDeposit::getOrderCode).collect(Collectors.toList()), null);
  116 + Map<Long, BuyerOrder> buyerGoodsMap = buyerGoodsList.stream().map(Function.identity()).collect(Collectors.toMap(BuyerOrder::getOrderCode, Function.identity()));
110 List<Integer> skupList = depositList.stream().map(StorageDeposit::getSkup).collect(Collectors.toList()); 117 List<Integer> skupList = depositList.stream().map(StorageDeposit::getSkup).collect(Collectors.toList());
111 List<SellerOrderGoods> goodsList = sellerOrderGoodsMapper.selectBySkups(skupList); 118 List<SellerOrderGoods> goodsList = sellerOrderGoodsMapper.selectBySkups(skupList);
112 Map<Integer, SellerOrderGoods> goodsMap = goodsList.stream().map(Function.identity()).collect(Collectors.toMap(SellerOrderGoods::getId, Function.identity())); 119 Map<Integer, SellerOrderGoods> goodsMap = goodsList.stream().map(Function.identity()).collect(Collectors.toMap(SellerOrderGoods::getId, Function.identity()));
@@ -120,7 +127,10 @@ public class DepositServiceImpl implements DepositService { @@ -120,7 +127,10 @@ public class DepositServiceImpl implements DepositService {
120 bo.setColorName(goods.getColorName()); 127 bo.setColorName(goods.getColorName());
121 bo.setSizeName(goods.getSizeName()); 128 bo.setSizeName(goods.getSizeName());
122 bo.setPic(ImageUrlAssist.getAllProductPicUrl(goods.getImageUrl(), "goodsimg", "center", "d2hpdGU=")); 129 bo.setPic(ImageUrlAssist.getAllProductPicUrl(goods.getImageUrl(), "goodsimg", "center", "d2hpdGU="));
123 - bo.setPrice(goods.getGoodsPrice().toString()); 130 + BuyerOrder buyerOrder = buyerGoodsMap.get(buyerGoodsMap.get(depo.getOrderCode()));
  131 + if (buyerOrder != null) {
  132 + bo.setPrice(buyerOrder.getAmount().toString());
  133 + }
124 bo.setDepositStatusName(getBackStatusName(depo.getStatus())); 134 bo.setDepositStatusName(getBackStatusName(depo.getStatus()));
125 bo.setDepositCode(depo.getDepositCode()); 135 bo.setDepositCode(depo.getDepositCode());
126 } 136 }
@@ -368,6 +378,15 @@ public class DepositServiceImpl implements DepositService { @@ -368,6 +378,15 @@ public class DepositServiceImpl implements DepositService {
368 } 378 }
369 379
370 /** 380 /**
  381 + * 根据货号查询库存
  382 + * @param depositCode
  383 + * @return
  384 + */
  385 + public StorageDeposit selectStorageDeposit(Integer uid, String depositCode) {
  386 + return storageDepositMapper.queryByDepositCode(uid, depositCode);
  387 + }
  388 +
  389 + /**
371 * Do 转 Vo 390 * Do 转 Vo
372 * @param storageDeposit 391 * @param storageDeposit
373 * @return 392 * @return
@@ -1872,6 +1872,41 @@ public class InBoxFacade { @@ -1872,6 +1872,41 @@ public class InBoxFacade {
1872 appraisePassNoticeSeller(buyerUid,orderCode, sog); 1872 appraisePassNoticeSeller(buyerUid,orderCode, sog);
1873 } 1873 }
1874 1874
  1875 + // 召回的
  1876 + public void recallDepositnotify(int uid, SellerOrderGoods sog) {
  1877 + if (null == sog) {
  1878 + logger.warn("InBoxFacade recallDepositnotify error SellerOrderGoods is null, uid {}", uid);
  1879 + return;
  1880 + }
  1881 + String prdName = sog.getProductName();
  1882 + String sizeName = sog.getSizeName();
  1883 + try {
  1884 + executorService.execute(()->{
  1885 + Product product = productMapper.selectByPrimaryKey(sog.getProductId());
  1886 + String productCode = product.getProductCode();
  1887 +
  1888 + InboxBusinessTypeEnum ibtOfSeller = InboxBusinessTypeEnum.NOTICE_SELLER_DEPOSIT_RECALL;
  1889 + String paramsOfSeller = buildParams(prdName, sizeName,productCode);
  1890 + InboxReqVO reqOfSeller = buildInboxReqVO(uid, paramsOfSeller, ibtOfSeller);
  1891 + InBoxResponse respOfSeller = inBoxSDK.addInbox(reqOfSeller);
  1892 + logger.info("record recallDepositnotify to seller inbox msg, uid {}, sog {} resp {}",
  1893 + uid, sog, respOfSeller);
  1894 +
  1895 + String phone = userProxyService.getMobile(uid);
  1896 + if (StringUtils.isBlank(phone)){
  1897 + logger.warn("in recallDepositnotify sms fail, uid {} sog {}", uid, sog);
  1898 + return;
  1899 + }
  1900 + List<String> mobileList = Arrays.asList(phone);
  1901 + String content= getReplacedContent(InboxBusinessTypeEnum.SMS_NOTIFY_SELLER_DEPOSIT_RECALL.getContent(),prdName, sizeName, productCode);
  1902 + sendSmsService.smsSendByMobile(content,mobileList);
  1903 + logger.info("record recallDepositnotify inbox sms msg, uid {}, sog {}", uid, sog);
  1904 + });
  1905 + } catch (Exception e) {
  1906 + logger.warn("InBoxFacade recallDepositnotify error inbox msg, uid {}, sog {}", uid, sog, e);
  1907 + }
  1908 + }
  1909 +
1875 public InboxReqVO buildInboxReqVO(int uid, String params, InboxBusinessTypeEnum ibt) { 1910 public InboxReqVO buildInboxReqVO(int uid, String params, InboxBusinessTypeEnum ibt) {
1876 InboxReqVO req = new InboxReqVO(); 1911 InboxReqVO req = new InboxReqVO();
1877 req.setType(ibt.getType()); 1912 req.setType(ibt.getType());
  1 +package com.yohoufo.order.service.proxy;
  2 +
  3 +import com.yoho.message.sdk.service.ufo.IUFOSendService;
  4 +import com.yohoufo.dal.order.SellerOrderMapper;
  5 +import com.yohoufo.dal.product.ProductMapper;
  6 +import com.yohoufo.inboxclient.sdk.InBoxSDK;
  7 +import com.yohoufo.order.utils.PubThreadFactory;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Service;
  10 +
  11 +import javax.annotation.PostConstruct;
  12 +import java.util.concurrent.ArrayBlockingQueue;
  13 +import java.util.concurrent.ExecutorService;
  14 +import java.util.concurrent.ThreadPoolExecutor;
  15 +import java.util.concurrent.TimeUnit;
  16 +
  17 +@Service
  18 +public class SellerOrderMessage {
  19 +
  20 + private ExecutorService executorService;
  21 +
  22 + @Autowired
  23 + private InBoxSDK inBoxSDK;
  24 +
  25 + @Autowired
  26 + private SendSmsService sendSmsService;
  27 +
  28 + @Autowired
  29 + private UserProxyService userProxyService;
  30 +
  31 + @Autowired
  32 + private ProductMapper productMapper;
  33 +
  34 + @Autowired
  35 + private SellerOrderMapper sellerOrderMapper;
  36 +
  37 + @Autowired
  38 + private IUFOSendService ufoSendService;
  39 +
  40 + @PostConstruct
  41 + public void init() {
  42 + executorService = new ThreadPoolExecutor(5, 10,
  43 + 60, TimeUnit.SECONDS,
  44 + new ArrayBlockingQueue<>(1000),
  45 + new PubThreadFactory("seller-order-message"));
  46 + }
  47 +
  48 +
  49 +}
@@ -35,6 +35,7 @@ import org.springframework.web.bind.annotation.RequestParam; @@ -35,6 +35,7 @@ import org.springframework.web.bind.annotation.RequestParam;
35 import org.springframework.web.bind.annotation.RestController; 35 import org.springframework.web.bind.annotation.RestController;
36 import org.springframework.web.servlet.ModelAndView; 36 import org.springframework.web.servlet.ModelAndView;
37 37
  38 +import java.lang.reflect.Method;
38 import java.math.BigDecimal; 39 import java.math.BigDecimal;
39 import java.util.Collection; 40 import java.util.Collection;
40 import java.util.List; 41 import java.util.List;
@@ -451,6 +452,8 @@ public class ProductController { @@ -451,6 +452,8 @@ public class ProductController {
451 cacheAop.clearCache( 452 cacheAop.clearCache(
452 ProductController.class.getMethod("queryProductDetailById", new Class[]{Integer.class}), 453 ProductController.class.getMethod("queryProductDetailById", new Class[]{Integer.class}),
453 new Object[]{productId}); 454 new Object[]{productId});
  455 + Method queryLeastFlashSalePrice = ProductController.class.getMethod("queryLeastFlashSalePrice", new Class[]{Integer.class});
  456 + cacheAop.clearCache(queryLeastFlashSalePrice, new Object[]{productId});
454 Integer storageId = sp.getStorageId(); 457 Integer storageId = sp.getStorageId();
455 // sku最低价 458 // sku最低价
456 LOG.info("clearCache queryStorageLeastprice skup = {}, ", skup); 459 LOG.info("clearCache queryStorageLeastprice skup = {}, ", skup);
@@ -506,6 +509,8 @@ public class ProductController { @@ -506,6 +509,8 @@ public class ProductController {
506 cacheAop.clearCache( 509 cacheAop.clearCache(
507 ProductController.class.getMethod("queryProductInStockNewBriefById", new Class[]{Integer.class}), 510 ProductController.class.getMethod("queryProductInStockNewBriefById", new Class[]{Integer.class}),
508 new Object[]{productId}); 511 new Object[]{productId});
  512 + Method queryLeastFlashSalePrice = ProductController.class.getMethod("queryLeastFlashSalePrice", new Class[]{Integer.class});
  513 + cacheAop.clearCache(queryLeastFlashSalePrice, new Object[]{productId});
509 } catch (Exception e) { 514 } catch (Exception e) {
510 LOG.error("删除商品详情缓存失败!", e); 515 LOG.error("删除商品详情缓存失败!", e);
511 } 516 }
@@ -528,6 +533,8 @@ public class ProductController { @@ -528,6 +533,8 @@ public class ProductController {
528 cacheAop.clearCache( 533 cacheAop.clearCache(
529 ProductController.class.getMethod("queryProductInStockNewBriefById", new Class[]{Integer.class}), 534 ProductController.class.getMethod("queryProductInStockNewBriefById", new Class[]{Integer.class}),
530 new Object[]{productId}); 535 new Object[]{productId});
  536 + Method queryLeastFlashSalePrice = ProductController.class.getMethod("queryLeastFlashSalePrice", new Class[]{Integer.class});
  537 + cacheAop.clearCache(queryLeastFlashSalePrice, new Object[]{productId});
531 } 538 }
532 } 539 }
533 if (CollectionUtils.isNotEmpty(storageIdList)) { 540 if (CollectionUtils.isNotEmpty(storageIdList)) {