Authored by LUOXC

卖家无法发货

@@ -23,6 +23,7 @@ import com.yohoufo.order.common.TransferCase; @@ -23,6 +23,7 @@ import com.yohoufo.order.common.TransferCase;
23 import com.yohoufo.order.constants.AlarmConfig; 23 import com.yohoufo.order.constants.AlarmConfig;
24 import com.yohoufo.order.event.BillLogEvent; 24 import com.yohoufo.order.event.BillLogEvent;
25 import com.yohoufo.order.service.cache.CacheCleaner; 25 import com.yohoufo.order.service.cache.CacheCleaner;
  26 +import com.yohoufo.order.service.impl.function.BuyerOrderNoticeSender;
26 import com.yohoufo.order.service.listener.BuyerOrderChangeEvent; 27 import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
27 import com.yohoufo.order.event.BuyerRefundCouponEvent; 28 import com.yohoufo.order.event.BuyerRefundCouponEvent;
28 import com.yohoufo.order.model.request.PaymentRequest; 29 import com.yohoufo.order.model.request.PaymentRequest;
@@ -139,7 +140,11 @@ class BuyerOrderCancelHandler { @@ -139,7 +140,11 @@ class BuyerOrderCancelHandler {
139 } 140 }
140 141
141 public NoticeBuyer withNoticeBuyer(BuyerNoticeSender buyerNoticeSender) { 142 public NoticeBuyer withNoticeBuyer(BuyerNoticeSender buyerNoticeSender) {
142 - return new NoticeBuyer(buyerNoticeSender); 143 + return new NoticeBuyer().buyerNoticeSender(buyerNoticeSender);
  144 + }
  145 +
  146 + public NoticeBuyer withNoticeBuyer(BuyerOrderNoticeSender buyerOrderNoticeSender) {
  147 + return new NoticeBuyer().buyerOrderNoticeSender(buyerOrderNoticeSender);
143 } 148 }
144 149
145 public RecordSuppleExpress withRecordSuppleExpress(RecordSuppleExpressSender recordSuppleExpressSender) { 150 public RecordSuppleExpress withRecordSuppleExpress(RecordSuppleExpressSender recordSuppleExpressSender) {
@@ -163,6 +168,7 @@ class BuyerOrderCancelHandler { @@ -163,6 +168,7 @@ class BuyerOrderCancelHandler {
163 168
164 /** 169 /**
165 * 异步事件 170 * 异步事件
  171 + *
166 * @param orderChangeListenerContainer 172 * @param orderChangeListenerContainer
167 * @return 173 * @return
168 */ 174 */
@@ -413,15 +419,20 @@ class BuyerOrderCancelHandler { @@ -413,15 +419,20 @@ class BuyerOrderCancelHandler {
413 } 419 }
414 420
415 private void noticeBuyer(BuyerOrder buyerOrder, BuyerOrderGoods buyerOrderGoods) { 421 private void noticeBuyer(BuyerOrder buyerOrder, BuyerOrderGoods buyerOrderGoods) {
  422 + NoticeBuyer noticeBuyer = this.noticeBuyer;
416 if (Objects.nonNull(noticeBuyer)) { 423 if (Objects.nonNull(noticeBuyer)) {
417 log.info("notice buyer order has closed by order {}", orderCode); 424 log.info("notice buyer order has closed by order {}", orderCode);
418 try { 425 try {
419 - BuyerNoticeSender.Request request = BuyerNoticeSender.Request.builder()  
420 - .uid(buyerOrder.getUid())  
421 - .orderCode(buyerOrder.getOrderCode())  
422 - .goodsAmount(buyerOrderGoods.getGoodsAmount())  
423 - .build();  
424 - noticeBuyer.buyerNoticeSender().notice(request); 426 + if (Objects.nonNull(noticeBuyer.buyerNoticeSender())) {
  427 + BuyerNoticeSender.Request request = BuyerNoticeSender.Request.builder()
  428 + .uid(buyerOrder.getUid())
  429 + .orderCode(buyerOrder.getOrderCode())
  430 + .goodsAmount(buyerOrderGoods.getGoodsAmount())
  431 + .build();
  432 + noticeBuyer.buyerNoticeSender().notice(request);
  433 + } else {
  434 + noticeBuyer.buyerOrderNoticeSender().notice(buyerOrder);
  435 + }
425 } catch (Exception e) { 436 } catch (Exception e) {
426 log.warn("notice buyer order has closed by order {} fail", orderCode, e); 437 log.warn("notice buyer order has closed by order {} fail", orderCode, e);
427 } 438 }
@@ -441,6 +452,7 @@ class BuyerOrderCancelHandler { @@ -441,6 +452,7 @@ class BuyerOrderCancelHandler {
441 452
442 /** 453 /**
443 * 订单取消异步事件 454 * 订单取消异步事件
  455 + *
444 * @param buyerOrder 456 * @param buyerOrder
445 */ 457 */
446 public void fireAsyncCancelEvent(BuyerOrder buyerOrder) { 458 public void fireAsyncCancelEvent(BuyerOrder buyerOrder) {
@@ -493,7 +505,9 @@ class BuyerOrderCancelHandler { @@ -493,7 +505,9 @@ class BuyerOrderCancelHandler {
493 @Accessors(fluent = true) 505 @Accessors(fluent = true)
494 class NoticeBuyer { 506 class NoticeBuyer {
495 507
496 - private final BuyerNoticeSender buyerNoticeSender; 508 + private BuyerNoticeSender buyerNoticeSender;
  509 +
  510 + private BuyerOrderNoticeSender buyerOrderNoticeSender;
497 511
498 BuyerOrderCancelHandler and() { 512 BuyerOrderCancelHandler and() {
499 BuyerOrderCancelHandler.this.noticeBuyer = this; 513 BuyerOrderCancelHandler.this.noticeBuyer = this;
@@ -3,6 +3,7 @@ package com.yohoufo.order.service.impl; @@ -3,6 +3,7 @@ package com.yohoufo.order.service.impl;
3 import com.alibaba.fastjson.JSONObject; 3 import com.alibaba.fastjson.JSONObject;
4 import com.google.common.collect.Lists; 4 import com.google.common.collect.Lists;
5 import com.yoho.core.rabbitmq.YhProducer; 5 import com.yoho.core.rabbitmq.YhProducer;
  6 +import com.yohobuy.ufo.model.enums.InboxBusinessTypeEnum;
6 import com.yohobuy.ufo.model.order.bo.CustomsClearanceResult; 7 import com.yohobuy.ufo.model.order.bo.CustomsClearanceResult;
7 import com.yohobuy.ufo.model.order.bo.MerchantOrderAttachInfo; 8 import com.yohobuy.ufo.model.order.bo.MerchantOrderAttachInfo;
8 import com.yohobuy.ufo.model.order.common.OrderStatus; 9 import com.yohobuy.ufo.model.order.common.OrderStatus;
@@ -157,21 +158,21 @@ public class BuyerOrderCancelService { @@ -157,21 +158,21 @@ public class BuyerOrderCancelService {
157 private BuyerOrderAssistant buyerOrderAssistant; 158 private BuyerOrderAssistant buyerOrderAssistant;
158 159
159 160
160 - public int cancel(BeforeSellerDeliverEvent bsdEvent){ 161 + public int cancel(BeforeSellerDeliverEvent bsdEvent) {
161 int buyerUid = bsdEvent.getBuyerUid(); 162 int buyerUid = bsdEvent.getBuyerUid();
162 int sellerUid = bsdEvent.getSellerUid(); 163 int sellerUid = bsdEvent.getSellerUid();
163 long orderCode = bsdEvent.getOrderCode(); 164 long orderCode = bsdEvent.getOrderCode();
164 OrderStatus targetOrderStatus = bsdEvent.getTarget(); 165 OrderStatus targetOrderStatus = bsdEvent.getTarget();
165 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode); 166 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
166 - BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectByOrderCode(buyerOrder.getUid(),buyerOrder.getOrderCode()); 167 + BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectByOrderCode(buyerOrder.getUid(), buyerOrder.getOrderCode());
167 logger.info("in buyer cancel BeforeSellerDeliver begin buyerOrderMapper.selectByOrderCode, buyerUid {}, orderCode {}, skup {} buyerOrder {}", 168 logger.info("in buyer cancel BeforeSellerDeliver begin buyerOrderMapper.selectByOrderCode, buyerUid {}, orderCode {}, skup {} buyerOrder {}",
168 - buyerUid, orderCode, buyerOrder );  
169 - BuyerPenaltyCalResult bpcr = buyerCancelCompensateComputeHandler.calBuyerPenaltyCalResult(buyerOrder,buyerOrderGoods, targetOrderStatus); 169 + buyerUid, orderCode, buyerOrder);
  170 + BuyerPenaltyCalResult bpcr = buyerCancelCompensateComputeHandler.calBuyerPenaltyCalResult(buyerOrder, buyerOrderGoods, targetOrderStatus);
170 logger.info("in buyer cancel BeforeSellerDeliver, event {} BuyerPenaltyCalResult {}", bsdEvent, bpcr); 171 logger.info("in buyer cancel BeforeSellerDeliver, event {} BuyerPenaltyCalResult {}", bsdEvent, bpcr);
171 //买家实付金额(货款+运费)小于赔偿金的额度,不够赔偿的,则不允许取消 172 //买家实付金额(货款+运费)小于赔偿金的额度,不够赔偿的,则不允许取消
172 BigDecimal penaltyAmount; 173 BigDecimal penaltyAmount;
173 - Pair<Boolean,UfoServiceException> penaltyAmountIsEnough = checkPenaltyAmount(bsdEvent.getAmount(), penaltyAmount=bpcr.getPenaltyAmount());  
174 - if(!penaltyAmountIsEnough.getLeft()){ 174 + Pair<Boolean, UfoServiceException> penaltyAmountIsEnough = checkPenaltyAmount(bsdEvent.getAmount(), penaltyAmount = bpcr.getPenaltyAmount());
  175 + if (!penaltyAmountIsEnough.getLeft()) {
175 logger.warn("in buyer cancel BeforeSellerDeliver not allow cancel cause of buyer amount lower than BuyerCompensateMoney, event {} compensate {}", bsdEvent, bpcr); 176 logger.warn("in buyer cancel BeforeSellerDeliver not allow cancel cause of buyer amount lower than BuyerCompensateMoney, event {} compensate {}", bsdEvent, bpcr);
176 throw penaltyAmountIsEnough.getRight(); 177 throw penaltyAmountIsEnough.getRight();
177 } 178 }
@@ -180,9 +181,9 @@ public class BuyerOrderCancelService { @@ -180,9 +181,9 @@ public class BuyerOrderCancelService {
180 OrderStatus expected = bsdEvent.getExpected(); 181 OrderStatus expected = bsdEvent.getExpected();
181 int currentTime = DateUtil.getCurrentTimeSecond(); 182 int currentTime = DateUtil.getCurrentTimeSecond();
182 int rows = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerUid, expected.getCode(), targetOrderStatus.getCode(), currentTime); 183 int rows = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerUid, expected.getCode(), targetOrderStatus.getCode(), currentTime);
183 - if (rows>0) { 184 + if (rows > 0) {
184 boolean noResponsibility = Objects.isNull(penaltyAmount) 185 boolean noResponsibility = Objects.isNull(penaltyAmount)
185 - || BigDecimal.ZERO.compareTo(penaltyAmount) == 0; 186 + || BigDecimal.ZERO.compareTo(penaltyAmount) == 0;
186 //退还优惠券 187 //退还优惠券
187 asyncRefundCoupon(buyerUid, orderCode, BuyerRefundCouponEvent.BizCase.BUYER_CANCEL_BSD); 188 asyncRefundCoupon(buyerUid, orderCode, BuyerRefundCouponEvent.BizCase.BUYER_CANCEL_BSD);
188 int skup = bsdEvent.getSkup(); 189 int skup = bsdEvent.getSkup();
@@ -191,7 +192,7 @@ public class BuyerOrderCancelService { @@ -191,7 +192,7 @@ public class BuyerOrderCancelService {
191 int targetSellerOrderStatus = SellerOrderStatus.BUYER_CANCEL_BEFORE_SELLER_DELIVER.getCode(); 192 int targetSellerOrderStatus = SellerOrderStatus.BUYER_CANCEL_BEFORE_SELLER_DELIVER.getCode();
192 //重新上架标志 求购不需要自动上架 193 //重新上架标志 求购不需要自动上架
193 boolean reSellAfterCancel = !psog.isBidSkup() && (OrderAssist.skupIsCommonInStock(psog.getAttributes()) || OrderAssist.skupIsAdvance(psog.getAttributes())); 194 boolean reSellAfterCancel = !psog.isBidSkup() && (OrderAssist.skupIsCommonInStock(psog.getAttributes()) || OrderAssist.skupIsAdvance(psog.getAttributes()));
194 - if(reSellAfterCancel){ 195 + if (reSellAfterCancel) {
195 targetGoodsStatus = SkupStatus.CAN_SELL.getCode(); 196 targetGoodsStatus = SkupStatus.CAN_SELL.getCode();
196 targetSellerOrderStatus = SellerOrderStatus.HAS_PAYED.getCode(); 197 targetSellerOrderStatus = SellerOrderStatus.HAS_PAYED.getCode();
197 } 198 }
@@ -204,22 +205,22 @@ public class BuyerOrderCancelService { @@ -204,22 +205,22 @@ public class BuyerOrderCancelService {
204 205
205 logger.info("in buyer cancel BeforeSellerDeliver reSellAfterCancel {}, buyerUid {}, orderCode {}, skup {} buyerOrder {}", 206 logger.info("in buyer cancel BeforeSellerDeliver reSellAfterCancel {}, buyerUid {}, orderCode {}, skup {} buyerOrder {}",
206 reSellAfterCancel, buyerUid, orderCode, skup, buyerOrder); 207 reSellAfterCancel, buyerUid, orderCode, skup, buyerOrder);
207 - if(reSellAfterCancel){ 208 + if (reSellAfterCancel) {
208 // 恢复product skup的库存 209 // 恢复product skup的库存
209 boolean isReturnSuccess = productProxyService.returnStorage(skup); 210 boolean isReturnSuccess = productProxyService.returnStorage(skup);
210 - logger.info("in buyer cancel BeforeSellerDeliver returnStorage {} reSellAfterCancel {}, buyerUid {}, orderCode {}, skup {} buyerOrder {}",isReturnSuccess,  
211 - reSellAfterCancel, buyerUid, orderCode, buyerOrder );  
212 - }else{ 211 + logger.info("in buyer cancel BeforeSellerDeliver returnStorage {} reSellAfterCancel {}, buyerUid {}, orderCode {}, skup {} buyerOrder {}", isReturnSuccess,
  212 + reSellAfterCancel, buyerUid, orderCode, buyerOrder);
  213 + } else {
213 SellerOrder soc = new SellerOrder(); 214 SellerOrder soc = new SellerOrder();
214 soc.setStatus(targetSellerOrderStatus); 215 soc.setStatus(targetSellerOrderStatus);
215 soc.setUpdateTime(DateUtil.getCurrentTimeSecond()); 216 soc.setUpdateTime(DateUtil.getCurrentTimeSecond());
216 sellerOrderMapper.updateBySkups(soc, Arrays.asList(skup)); 217 sellerOrderMapper.updateBySkups(soc, Arrays.asList(skup));
217 } 218 }
218 219
219 - if (noResponsibility){  
220 - sellerNoticeFacade.noticeSellerWhenBuyerCancelNoResponsibility(psog, orderCode,reSellAfterCancel);  
221 - }else {  
222 - inBoxFacade.buyerCancelBeforeSellerDeliver(buyerOrder, penaltyAmount.toPlainString(), psog,reSellAfterCancel); 220 + if (noResponsibility) {
  221 + sellerNoticeFacade.noticeSellerWhenBuyerCancelNoResponsibility(psog, orderCode, reSellAfterCancel);
  222 + } else {
  223 + inBoxFacade.buyerCancelBeforeSellerDeliver(buyerOrder, penaltyAmount.toPlainString(), psog, reSellAfterCancel);
223 } 224 }
224 //TODO 整个过程异步去执行(考虑退费依赖订单状态) 225 //TODO 整个过程异步去执行(考虑退费依赖订单状态)
225 //(退费)退保证金给卖家 226 //(退费)退保证金给卖家
@@ -241,7 +242,7 @@ public class BuyerOrderCancelService { @@ -241,7 +242,7 @@ public class BuyerOrderCancelService {
241 .addInitField(InfluxdbFieldEnum.FIELD_COUNT).build())); // 统计取消订单的次数 242 .addInitField(InfluxdbFieldEnum.FIELD_COUNT).build())); // 统计取消订单的次数
242 243
243 logger.info("use one thread to execute buyer cancel BeforeSellerDeliver buyerUid {}, orderCode {}, skup {}, compensate {}, transferCase {}", 244 logger.info("use one thread to execute buyer cancel BeforeSellerDeliver buyerUid {}, orderCode {}, skup {}, compensate {}, transferCase {}",
244 - buyerUid, orderCode, skup, bpcr, transferCase); 245 + buyerUid, orderCode, skup, bpcr, transferCase);
245 } 246 }
246 247
247 return rows; 248 return rows;
@@ -250,7 +251,7 @@ public class BuyerOrderCancelService { @@ -250,7 +251,7 @@ public class BuyerOrderCancelService {
250 public void cancelForSellerSendOutTimeout(int uid, long orderCode, int skup, SellerOrderGoods sellerOrderGoods) { 251 public void cancelForSellerSendOutTimeout(int uid, long orderCode, int skup, SellerOrderGoods sellerOrderGoods) {
251 new BuyerOrderCancelHandler(uid, orderCode) 252 new BuyerOrderCancelHandler(uid, orderCode)
252 .withBuyerOrderSupplier(buyerOrderMapper, buyerOrderGoodsMapper) 253 .withBuyerOrderSupplier(buyerOrderMapper, buyerOrderGoodsMapper)
253 - .withSellerOrderSupplier(sellerOrderGoodsMapper,sellerOrderMetaMapper) 254 + .withSellerOrderSupplier(sellerOrderGoodsMapper, sellerOrderMetaMapper)
254 // 已付款 -> 超时未发货取消 255 // 已付款 -> 超时未发货取消
255 .withStateTransition(OrderStatus.HAS_PAYED, OrderStatus.SEND_OUT_TIMEOUT, orderStatusFlowService) 256 .withStateTransition(OrderStatus.HAS_PAYED, OrderStatus.SEND_OUT_TIMEOUT, orderStatusFlowService)
256 // 保证金分账给平台和买家 257 // 保证金分账给平台和买家
@@ -269,9 +270,9 @@ public class BuyerOrderCancelService { @@ -269,9 +270,9 @@ public class BuyerOrderCancelService {
269 .cancel(); 270 .cancel();
270 } 271 }
271 272
272 - public void cancelForSellerShamSendOut(int uid, long orderCode,OrderStatus targetStatus) { 273 + public void cancelForSellerShamSendOut(int uid, long orderCode, OrderStatus targetStatus) {
273 274
274 - if (serviceOrderProcessor.isGoodsServiceOrder(orderCode)){ 275 + if (serviceOrderProcessor.isGoodsServiceOrder(orderCode)) {
275 logger.info("cancelForSellerShamSendOut isGoodsServiceOrder orderCode {}", orderCode); 276 logger.info("cancelForSellerShamSendOut isGoodsServiceOrder orderCode {}", orderCode);
276 ServiceOrderProcessor.ExistenceNode existenceNode = serviceOrderProcessor.findGoodsServiceInstanceAndExt(orderCode); 277 ServiceOrderProcessor.ExistenceNode existenceNode = serviceOrderProcessor.findGoodsServiceInstanceAndExt(orderCode);
277 existenceNode.getGoodsService().shamDeliver(existenceNode.getAppraiseOrder()); 278 existenceNode.getGoodsService().shamDeliver(existenceNode.getAppraiseOrder());
@@ -279,7 +280,7 @@ public class BuyerOrderCancelService { @@ -279,7 +280,7 @@ public class BuyerOrderCancelService {
279 280
280 new BuyerOrderCancelHandler(uid, orderCode) 281 new BuyerOrderCancelHandler(uid, orderCode)
281 .withBuyerOrderSupplier(buyerOrderMapper, buyerOrderGoodsMapper) 282 .withBuyerOrderSupplier(buyerOrderMapper, buyerOrderGoodsMapper)
282 - .withSellerOrderSupplier(sellerOrderGoodsMapper,sellerOrderMetaMapper) 283 + .withSellerOrderSupplier(sellerOrderGoodsMapper, sellerOrderMetaMapper)
283 // 卖家发货 -> 鉴定中心收货前客服取消 284 // 卖家发货 -> 鉴定中心收货前客服取消
284 // 卖家发货 -> 鉴定中心收货前系统取消 285 // 卖家发货 -> 鉴定中心收货前系统取消
285 .withStateTransition(OrderStatus.SELLER_SEND_OUT, targetStatus, orderStatusFlowService) 286 .withStateTransition(OrderStatus.SELLER_SEND_OUT, targetStatus, orderStatusFlowService)
@@ -299,30 +300,55 @@ public class BuyerOrderCancelService { @@ -299,30 +300,55 @@ public class BuyerOrderCancelService {
299 .cancel(); 300 .cancel();
300 } 301 }
301 302
302 - private Pair<Boolean,UfoServiceException> checkPenaltyAmount(BigDecimal actualPaidAmount, BigDecimal penaltyAmount){  
303 - boolean isEnough = (actualPaidAmount !=null && actualPaidAmount.compareTo(penaltyAmount) >= 0); 303 +
  304 + public void cancelForSellerCanNotSendOut(int uid, long orderCode) {
  305 +
  306 + throwServiceExceptionIf(serviceOrderProcessor.isGoodsServiceOrder(orderCode), "不支持的订单类型");
  307 +
  308 + new BuyerOrderCancelHandler(uid, orderCode)
  309 + .withBuyerOrderSupplier(buyerOrderMapper, buyerOrderGoodsMapper)
  310 + .withSellerOrderSupplier(sellerOrderGoodsMapper, sellerOrderMetaMapper)
  311 + // 待卖家发货 -> 卖家无法发货
  312 + .withStateTransition(OrderStatus.HAS_PAYED, OrderStatus.SELLER_CAN_NOT_SEND_OUT, orderStatusFlowService)
  313 + // 退保证金给卖家
  314 + .withRefundEarnestMoney(payRefundService::refund, sellerOrderMapper::selectBySkup).and()
  315 + // 退买家货款
  316 + .withRefundGoodsMoney(payRefundService::refund).refundCase(RefundCase.BUYER_GOODS_MONEY).and()
  317 + // 通知买家卖家无法发货
  318 + .withNoticeBuyer(buyerNoticeFacade::noticeBuyerOfSellerCanNotSendOut).and()
  319 + // 通知卖家无法发货
  320 + .withNoticeSeller(sellerNoticeFacade::noticeSellerOfSellerCanNotSendOut).and()
  321 + // 退优惠券
  322 + .withRefundCoupon(BuyerRefundCouponEvent.BizCase.BUYER_CANCEL_BSD)
  323 + .withCacheCleaner(cacheCleaner::delete)
  324 + .withOrderChangeListenerContainer(orderChangeListenerContainer)
  325 + .cancel();
  326 + }
  327 +
  328 + private Pair<Boolean, UfoServiceException> checkPenaltyAmount(BigDecimal actualPaidAmount, BigDecimal penaltyAmount) {
  329 + boolean isEnough = (actualPaidAmount != null && actualPaidAmount.compareTo(penaltyAmount) >= 0);
304 UfoServiceException ex = null; 330 UfoServiceException ex = null;
305 - if(!isEnough){  
306 - ex = new com.yohoufo.common.exception.UfoServiceException(400,"实付金额低于订单违约金,不允许取消"); 331 + if (!isEnough) {
  332 + ex = new com.yohoufo.common.exception.UfoServiceException(400, "实付金额低于订单违约金,不允许取消");
307 } 333 }
308 return Pair.of(isEnough, ex); 334 return Pair.of(isEnough, ex);
309 } 335 }
310 336
311 - public void cancel(BeforeDepotReceiveEvent bdrEvent){ 337 + public void cancel(BeforeDepotReceiveEvent bdrEvent) {
312 int buyerUid = bdrEvent.getBuyerUid(); 338 int buyerUid = bdrEvent.getBuyerUid();
313 int sellerUid = bdrEvent.getSellerUid(); 339 int sellerUid = bdrEvent.getSellerUid();
314 long orderCode = bdrEvent.getOrderCode(); 340 long orderCode = bdrEvent.getOrderCode();
315 OrderStatus targetOrderStatus = bdrEvent.getTarget(); 341 OrderStatus targetOrderStatus = bdrEvent.getTarget();
316 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode); 342 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
317 - BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectByOrderCode(buyerOrder.getUid(),buyerOrder.getOrderCode()); 343 + BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectByOrderCode(buyerOrder.getUid(), buyerOrder.getOrderCode());
318 logger.info("in buyer cancel BeforeDepotReceive begin buyerOrderMapper.selectByOrderCode, buyerUid {}, orderCode {}, skup {} buyerOrder {}", 344 logger.info("in buyer cancel BeforeDepotReceive begin buyerOrderMapper.selectByOrderCode, buyerUid {}, orderCode {}, skup {} buyerOrder {}",
319 - buyerUid, orderCode, buyerOrder ); 345 + buyerUid, orderCode, buyerOrder);
320 BuyerPenaltyCalResult bpcr = buyerCancelCompensateComputeHandler.calBuyerPenaltyCalResult(buyerOrder, buyerOrderGoods, targetOrderStatus); 346 BuyerPenaltyCalResult bpcr = buyerCancelCompensateComputeHandler.calBuyerPenaltyCalResult(buyerOrder, buyerOrderGoods, targetOrderStatus);
321 logger.info("in buyer cancel BeforeDepotReceive, event {} compensate {}", bdrEvent, bpcr); 347 logger.info("in buyer cancel BeforeDepotReceive, event {} compensate {}", bdrEvent, bpcr);
322 //买家实付金额(货款+运费)小于赔偿金的额度,不够赔偿的,则不允许取消 348 //买家实付金额(货款+运费)小于赔偿金的额度,不够赔偿的,则不允许取消
323 BigDecimal penaltyAmount; 349 BigDecimal penaltyAmount;
324 - Pair<Boolean,UfoServiceException> amountIsEnough = checkPenaltyAmount(bdrEvent.getAmount(), penaltyAmount=bpcr.getPenaltyAmount());  
325 - if(!amountIsEnough.getLeft()){ 350 + Pair<Boolean, UfoServiceException> amountIsEnough = checkPenaltyAmount(bdrEvent.getAmount(), penaltyAmount = bpcr.getPenaltyAmount());
  351 + if (!amountIsEnough.getLeft()) {
326 logger.warn("in buyer cancel BeforeDepotReceive not allow cancel cause of buyer amount lower than BuyerCompensateMoney, event {} compensate {}", bdrEvent, bpcr); 352 logger.warn("in buyer cancel BeforeDepotReceive not allow cancel cause of buyer amount lower than BuyerCompensateMoney, event {} compensate {}", bdrEvent, bpcr);
327 throw amountIsEnough.getRight(); 353 throw amountIsEnough.getRight();
328 } 354 }
@@ -330,7 +356,7 @@ public class BuyerOrderCancelService { @@ -330,7 +356,7 @@ public class BuyerOrderCancelService {
330 OrderStatus expected = bdrEvent.getExpected(); 356 OrderStatus expected = bdrEvent.getExpected();
331 int currentTime = DateUtil.getCurrentTimeSecond(); 357 int currentTime = DateUtil.getCurrentTimeSecond();
332 int rows = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerUid, expected.getCode(), targetOrderStatus.getCode(), currentTime); 358 int rows = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerUid, expected.getCode(), targetOrderStatus.getCode(), currentTime);
333 - if (rows>0) { 359 + if (rows > 0) {
334 boolean useDepositGoods = bdrEvent.isUseDepositGoods(); 360 boolean useDepositGoods = bdrEvent.isUseDepositGoods();
335 boolean noResponsibility = Objects.isNull(penaltyAmount) 361 boolean noResponsibility = Objects.isNull(penaltyAmount)
336 || BigDecimal.ZERO.compareTo(penaltyAmount) == 0; 362 || BigDecimal.ZERO.compareTo(penaltyAmount) == 0;
@@ -349,10 +375,10 @@ public class BuyerOrderCancelService { @@ -349,10 +375,10 @@ public class BuyerOrderCancelService {
349 soc.setUpdateTime(DateUtil.getCurrentTimeSecond()); 375 soc.setUpdateTime(DateUtil.getCurrentTimeSecond());
350 sellerOrderMapper.updateBySkups(soc, Arrays.asList(skup)); 376 sellerOrderMapper.updateBySkups(soc, Arrays.asList(skup));
351 SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(skup); 377 SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(skup);
352 - if (noResponsibility){  
353 - sellerNoticeFacade.noticeSellerWhenBuyerCancelNoResponsibility(psog, orderCode,false);  
354 - }else {  
355 - inBoxFacade.buyerCancelBeforeDepotReceive(buyerOrder, penaltyAmount.toPlainString(), psog, useDepositGoods); 378 + if (noResponsibility) {
  379 + sellerNoticeFacade.noticeSellerWhenBuyerCancelNoResponsibility(psog, orderCode, false);
  380 + } else {
  381 + inBoxFacade.buyerCancelBeforeDepotReceive(buyerOrder, penaltyAmount.toPlainString(), psog, useDepositGoods);
356 } 382 }
357 //整个过程异步去执行(考虑退费依赖订单状态) 383 //整个过程异步去执行(考虑退费依赖订单状态)
358 //(退费)退保证金给卖家 384 //(退费)退保证金给卖家
@@ -360,7 +386,7 @@ public class BuyerOrderCancelService { @@ -360,7 +386,7 @@ public class BuyerOrderCancelService {
360 //(退费)扣除赔偿款,计算剩余的货款,退给买家 386 //(退费)扣除赔偿款,计算剩余的货款,退给买家
361 TransferCase transferCase = TransferCase.PART_GOODS_MONEY_TO_SELLER; 387 TransferCase transferCase = TransferCase.PART_GOODS_MONEY_TO_SELLER;
362 BuyerCancelAfterProcessTask bcapt = new BuyerCancelAfterProcessTask(buyerOrder, skup, 388 BuyerCancelAfterProcessTask bcapt = new BuyerCancelAfterProcessTask(buyerOrder, skup,
363 - bpcr, transferCase,false); 389 + bpcr, transferCase, false);
364 bcapt.targetOrderStatus = targetOrderStatus; 390 bcapt.targetOrderStatus = targetOrderStatus;
365 bcapt.setSwdType(SellerWalletDetail.Type.BUYER_CANCEL_DELIVERY); 391 bcapt.setSwdType(SellerWalletDetail.Type.BUYER_CANCEL_DELIVERY);
366 Future<PayRefundBo> future = ThreadPoolFactory.getBuyerCancelThreadPool().submit(bcapt); 392 Future<PayRefundBo> future = ThreadPoolFactory.getBuyerCancelThreadPool().submit(bcapt);
@@ -374,17 +400,17 @@ public class BuyerOrderCancelService { @@ -374,17 +400,17 @@ public class BuyerOrderCancelService {
374 400
375 // 401 //
376 402
377 - if (useDepositGoods){ 403 + if (useDepositGoods) {
378 String depositCode = bdrEvent.getDepositCode(); 404 String depositCode = bdrEvent.getDepositCode();
379 logger.info("cancel buyer order Before Depot Receive trigger DepositGoodsCompensateAsyncEvent orderCode {} depositCode {}", orderCode, depositCode); 405 logger.info("cancel buyer order Before Depot Receive trigger DepositGoodsCompensateAsyncEvent orderCode {} depositCode {}", orderCode, depositCode);
380 triggerDepositGoodsCompensateAsyncEvent(sellerUid, depositCode); 406 triggerDepositGoodsCompensateAsyncEvent(sellerUid, depositCode);
381 } 407 }
382 logger.info("use one thread to execute buyer cancel BeforeDepotReceive buyerUid {}, orderCode {}, skup {}, compensate {}, transferCase {}", 408 logger.info("use one thread to execute buyer cancel BeforeDepotReceive buyerUid {}, orderCode {}, skup {}, compensate {}, transferCase {}",
383 - buyerUid, orderCode, skup, bpcr, transferCase); 409 + buyerUid, orderCode, skup, bpcr, transferCase);
384 } 410 }
385 } 411 }
386 412
387 - public void cancelForBuyerPullWool(BuyerOrderCancelReq request){ 413 + public void cancelForBuyerPullWool(BuyerOrderCancelReq request) {
388 Long orderCode = request.getOrderCode(); 414 Long orderCode = request.getOrderCode();
389 final OrderStatus targetStatus = OrderStatus.PLATFORM_CANCEL_OF_BUYER_PULL_WOOL; 415 final OrderStatus targetStatus = OrderStatus.PLATFORM_CANCEL_OF_BUYER_PULL_WOOL;
390 final List<Integer> statusList = ActionStatusHold.getCancelStatusOfpullwool(); 416 final List<Integer> statusList = ActionStatusHold.getCancelStatusOfpullwool();
@@ -392,14 +418,14 @@ public class BuyerOrderCancelService { @@ -392,14 +418,14 @@ public class BuyerOrderCancelService {
392 BuyerOrderAssistant.PreparedData preparedData = buyerOrderAssistant.prepare(orderCode); 418 BuyerOrderAssistant.PreparedData preparedData = buyerOrderAssistant.prepare(orderCode);
393 BuyerOrder pbo = preparedData.getBuyerOrder(); 419 BuyerOrder pbo = preparedData.getBuyerOrder();
394 OrderStatus cos = OrderStatus.getOrderStatus(pbo.getStatus()); 420 OrderStatus cos = OrderStatus.getOrderStatus(pbo.getStatus());
395 - if (!statusList.contains(pbo.getStatus())){ 421 + if (!statusList.contains(pbo.getStatus())) {
396 logger.warn("in buyer order cancelByCS status illegal,req {} status {}", request, cos.getDesc()); 422 logger.warn("in buyer order cancelByCS status illegal,req {} status {}", request, cos.getDesc());
397 - throw new UfoServiceException(400, String.format("当前订单状态处于%s,不支持取消",cos.getDesc())); 423 + throw new UfoServiceException(400, String.format("当前订单状态处于%s,不支持取消", cos.getDesc()));
398 } 424 }
399 //2. update status using optimize lock , as last time filter 425 //2. update status using optimize lock , as last time filter
400 - int rows = buyerOrderMapper.updateStatusWithStatusList(orderCode,targetStatus.getCode(), statusList, DateUtil.getCurrentTimeSecond());  
401 - logger.info("in buyer order cancelByCS because pull wool, req {} updateStatusWithStatusList {}",request, rows);  
402 - if (rows>0){ 426 + int rows = buyerOrderMapper.updateStatusWithStatusList(orderCode, targetStatus.getCode(), statusList, DateUtil.getCurrentTimeSecond());
  427 + logger.info("in buyer order cancelByCS because pull wool, req {} updateStatusWithStatusList {}", request, rows);
  428 + if (rows > 0) {
403 asyncProcessPenalty(preparedData, targetStatus); 429 asyncProcessPenalty(preparedData, targetStatus);
404 //clean cache 430 //clean cache
405 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(pbo.getSellerUid(), pbo.getUid(), orderCode); 431 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(pbo.getSellerUid(), pbo.getUid(), orderCode);
@@ -409,7 +435,7 @@ public class BuyerOrderCancelService { @@ -409,7 +435,7 @@ public class BuyerOrderCancelService {
409 } 435 }
410 } 436 }
411 437
412 - private void asyncProcessPenalty(BuyerOrderAssistant.PreparedData preparedData, final OrderStatus targetStatus){ 438 + private void asyncProcessPenalty(BuyerOrderAssistant.PreparedData preparedData, final OrderStatus targetStatus) {
413 BuyerOrder pbo = preparedData.getBuyerOrder(); 439 BuyerOrder pbo = preparedData.getBuyerOrder();
414 final Long orderCode = pbo.getOrderCode(); 440 final Long orderCode = pbo.getOrderCode();
415 final boolean resellFlag = false; 441 final boolean resellFlag = false;
@@ -422,7 +448,7 @@ public class BuyerOrderCancelService { @@ -422,7 +448,7 @@ public class BuyerOrderCancelService {
422 448
423 TransferCase transferCase = TransferCase.PART_GOODS_MONEY_TO_SELLER; 449 TransferCase transferCase = TransferCase.PART_GOODS_MONEY_TO_SELLER;
424 BuyerCancelAfterProcessTask bcapt = new BuyerCancelAfterProcessTask(pbo, skup, 450 BuyerCancelAfterProcessTask bcapt = new BuyerCancelAfterProcessTask(pbo, skup,
425 - bpcr, transferCase, resellFlag); 451 + bpcr, transferCase, resellFlag);
426 bcapt.targetOrderStatus = targetStatus; 452 bcapt.targetOrderStatus = targetStatus;
427 bcapt.setSwdType(SellerWalletDetail.Type.PULL_WOOL); 453 bcapt.setSwdType(SellerWalletDetail.Type.PULL_WOOL);
428 Future<PayRefundBo> future = ThreadPoolFactory.getBuyerCancelThreadPool().submit(bcapt); 454 Future<PayRefundBo> future = ThreadPoolFactory.getBuyerCancelThreadPool().submit(bcapt);
@@ -432,13 +458,12 @@ public class BuyerOrderCancelService { @@ -432,13 +458,12 @@ public class BuyerOrderCancelService {
432 } 458 }
433 459
434 460
435 -  
436 - private boolean compensateDepositGoods(DepositGoodsCompensateAsyncEvent event){ 461 + private boolean compensateDepositGoods(DepositGoodsCompensateAsyncEvent event) {
437 logger.info("cancel buyer order compensateDepositGoods, event {}", event); 462 logger.info("cancel buyer order compensateDepositGoods, event {}", event);
438 return depositService.updateDepositAfterCancelBuy(event.getUid(), event.getDepositCode()); 463 return depositService.updateDepositAfterCancelBuy(event.getUid(), event.getDepositCode());
439 } 464 }
440 465
441 - private void triggerDepositGoodsCompensateAsyncEvent(int sellerUid, String depositCode){ 466 + private void triggerDepositGoodsCompensateAsyncEvent(int sellerUid, String depositCode) {
442 logger.info("trigger DepositGoodsCompensateAsyncEvent sellerUid {} depositCode {}", sellerUid, depositCode); 467 logger.info("trigger DepositGoodsCompensateAsyncEvent sellerUid {} depositCode {}", sellerUid, depositCode);
443 DepositGoodsCompensateAsyncEvent asyncEvent 468 DepositGoodsCompensateAsyncEvent asyncEvent
444 = new DepositGoodsCompensateAsyncEvent(this::compensateDepositGoods); 469 = new DepositGoodsCompensateAsyncEvent(this::compensateDepositGoods);
@@ -447,7 +472,7 @@ public class BuyerOrderCancelService { @@ -447,7 +472,7 @@ public class BuyerOrderCancelService {
447 EventBusPublisher.publishEvent(asyncEvent); 472 EventBusPublisher.publishEvent(asyncEvent);
448 } 473 }
449 474
450 - public void clearanceFail(long orderCode, String failReason, ClearanceFailType failType){ 475 + public void clearanceFail(long orderCode, String failReason, ClearanceFailType failType) {
451 new ClearanceFailModel(orderCode, failReason, failType).invoke().cancel(); 476 new ClearanceFailModel(orderCode, failReason, failType).invoke().cancel();
452 } 477 }
453 478
@@ -455,7 +480,7 @@ public class BuyerOrderCancelService { @@ -455,7 +480,7 @@ public class BuyerOrderCancelService {
455 List<String> couponTokens; 480 List<String> couponTokens;
456 if (goodsAmount.compareTo(BigDecimal.valueOf(2000)) > 0) { 481 if (goodsAmount.compareTo(BigDecimal.valueOf(2000)) > 0) {
457 couponTokens = Lists.newArrayList("f489885f-2000-4e15-a628-c40e660128fa"); 482 couponTokens = Lists.newArrayList("f489885f-2000-4e15-a628-c40e660128fa");
458 - }else if (goodsAmount.compareTo(BigDecimal.valueOf(1000)) > 0) { 483 + } else if (goodsAmount.compareTo(BigDecimal.valueOf(1000)) > 0) {
459 couponTokens = Lists.newArrayList("f489885f-1000-4e15-a628-c40e660128fa"); 484 couponTokens = Lists.newArrayList("f489885f-1000-4e15-a628-c40e660128fa");
460 } else { 485 } else {
461 couponTokens = Lists.newArrayList("f489885f-0000-4e15-a628-c40e660128fa"); 486 couponTokens = Lists.newArrayList("f489885f-0000-4e15-a628-c40e660128fa");
@@ -471,7 +496,8 @@ public class BuyerOrderCancelService { @@ -471,7 +496,8 @@ public class BuyerOrderCancelService {
471 tradeMqProducer.send("ufo.couponSendWithTradeMqNotify", mqBean); 496 tradeMqProducer.send("ufo.couponSendWithTradeMqNotify", mqBean);
472 } 497 }
473 498
474 - @Data@Builder 499 + @Data
  500 + @Builder
475 private static class RefundGoodsAmountNode { 501 private static class RefundGoodsAmountNode {
476 BuyerOrder buyerOrder; 502 BuyerOrder buyerOrder;
477 int skup; 503 int skup;
@@ -480,7 +506,7 @@ public class BuyerOrderCancelService { @@ -480,7 +506,7 @@ public class BuyerOrderCancelService {
480 } 506 }
481 507
482 508
483 - class BuyerCancelAfterProcessTask implements Callable<PayRefundBo>{ 509 + class BuyerCancelAfterProcessTask implements Callable<PayRefundBo> {
484 int buyerUid; 510 int buyerUid;
485 long orderCode; 511 long orderCode;
486 int skup; 512 int skup;
@@ -494,7 +520,7 @@ public class BuyerOrderCancelService { @@ -494,7 +520,7 @@ public class BuyerOrderCancelService {
494 @Setter 520 @Setter
495 SellerWalletDetail.Type swdType; 521 SellerWalletDetail.Type swdType;
496 522
497 - public BuyerCancelAfterProcessTask(BuyerOrder buyerOrder, int skup, BuyerPenaltyCalResult bpcr, TransferCase transferCase,boolean reSellFlag) { 523 + public BuyerCancelAfterProcessTask(BuyerOrder buyerOrder, int skup, BuyerPenaltyCalResult bpcr, TransferCase transferCase, boolean reSellFlag) {
498 this.buyerUid = buyerOrder.getUid(); 524 this.buyerUid = buyerOrder.getUid();
499 this.orderCode = buyerOrder.getOrderCode(); 525 this.orderCode = buyerOrder.getOrderCode();
500 this.skup = skup; 526 this.skup = skup;
@@ -504,7 +530,7 @@ public class BuyerOrderCancelService { @@ -504,7 +530,7 @@ public class BuyerOrderCancelService {
504 this.reSellFlag = reSellFlag; 530 this.reSellFlag = reSellFlag;
505 } 531 }
506 532
507 - private PayRefundBo refundSellerEarnestMoney(SellerOrder sellerOrder){ 533 + private PayRefundBo refundSellerEarnestMoney(SellerOrder sellerOrder) {
508 PayRefundBo prb = null; 534 PayRefundBo prb = null;
509 int sellerUid = sellerOrder.getUid(); 535 int sellerUid = sellerOrder.getUid();
510 long sellerOrderCode = sellerOrder.getOrderCode(); 536 long sellerOrderCode = sellerOrder.getOrderCode();
@@ -516,7 +542,7 @@ public class BuyerOrderCancelService { @@ -516,7 +542,7 @@ public class BuyerOrderCancelService {
516 .build(); 542 .build();
517 boolean sellerIsSuper = sellerService.isSuperEntrySeller(sellerUid); 543 boolean sellerIsSuper = sellerService.isSuperEntrySeller(sellerUid);
518 refundReqOfSeller.setSuper(sellerIsSuper); 544 refundReqOfSeller.setSuper(sellerIsSuper);
519 - if (!sellerIsSuper && PaymentHelper.isWallet(sop)){ 545 + if (!sellerIsSuper && PaymentHelper.isWallet(sop)) {
520 546
521 MerchantOrderAttachInfo moai = MerchantOrderAttachInfo.builder().uid(sellerUid) 547 MerchantOrderAttachInfo moai = MerchantOrderAttachInfo.builder().uid(sellerUid)
522 .orderCode(sellerOrderCode).skup(skup).earnestMoney(sellerOrder.getEarnestMoney()) 548 .orderCode(sellerOrderCode).skup(skup).earnestMoney(sellerOrder.getEarnestMoney())
@@ -529,7 +555,7 @@ public class BuyerOrderCancelService { @@ -529,7 +555,7 @@ public class BuyerOrderCancelService {
529 .payType(sellerOrder.getPayment()).refundCase(RefundCase.SELLER_EARNEST_MONEY) 555 .payType(sellerOrder.getPayment()).refundCase(RefundCase.SELLER_EARNEST_MONEY)
530 .skup(skup); 556 .skup(skup);
531 logger.info("in BuyerCancelAfterProcessTask call begin payRefundService.refund seller, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}", 557 logger.info("in BuyerCancelAfterProcessTask call begin payRefundService.refund seller, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}",
532 - buyerUid, orderCode, skup, refundReqOfSeller ); 558 + buyerUid, orderCode, skup, refundReqOfSeller);
533 new RefundEarnestMoneyHandler() 559 new RefundEarnestMoneyHandler()
534 .loadRefundAction(payRefundService::refund) 560 .loadRefundAction(payRefundService::refund)
535 .loadBillLogEventBuilder(bleb) 561 .loadBillLogEventBuilder(bleb)
@@ -540,11 +566,11 @@ public class BuyerOrderCancelService { @@ -540,11 +566,11 @@ public class BuyerOrderCancelService {
540 .refund(); 566 .refund();
541 567
542 logger.info("in BuyerCancelAfterProcessTask call after payRefundService.refund seller, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}", 568 logger.info("in BuyerCancelAfterProcessTask call after payRefundService.refund seller, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}",
543 - buyerUid, orderCode, skup, refundReqOfSeller ); 569 + buyerUid, orderCode, skup, refundReqOfSeller);
544 return prb; 570 return prb;
545 } 571 }
546 572
547 - void transferPenalty(BuyerPenaltyCalResult bpcr){ 573 + void transferPenalty(BuyerPenaltyCalResult bpcr) {
548 if (bpcr.getPenaltyAmount().compareTo(BigDecimal.ZERO) <= 0) { 574 if (bpcr.getPenaltyAmount().compareTo(BigDecimal.ZERO) <= 0) {
549 logger.info("in BuyerCancelAfterProcessTask call non need penalty, buyerUid {}, orderCode {}, skup {}", 575 logger.info("in BuyerCancelAfterProcessTask call non need penalty, buyerUid {}, orderCode {}, skup {}",
550 buyerUid, orderCode, skup); 576 buyerUid, orderCode, skup);
@@ -560,17 +586,17 @@ public class BuyerOrderCancelService { @@ -560,17 +586,17 @@ public class BuyerOrderCancelService {
560 .transeferCellNode(transeferCellNode) 586 .transeferCellNode(transeferCellNode)
561 .build(); 587 .build();
562 logger.info("in BuyerCancelAfterProcessTask call begin paymentService.transferMon, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}", 588 logger.info("in BuyerCancelAfterProcessTask call begin paymentService.transferMon, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}",
563 - buyerUid, orderCode, skup, tmReq ); 589 + buyerUid, orderCode, skup, tmReq);
564 transferService.transfer(tmReq); 590 transferService.transfer(tmReq);
565 logger.info("in BuyerCancelAfterProcessTask call after paymentService.transferMon, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}", 591 logger.info("in BuyerCancelAfterProcessTask call after paymentService.transferMon, buyerUid {}, orderCode {}, skup {} refundReqOfSeller {}",
566 - buyerUid, orderCode, skup, tmReq ); 592 + buyerUid, orderCode, skup, tmReq);
567 } 593 }
568 594
569 - void refundLeftOrderAmount(BuyerPenaltyCalResult bpcr, BuyerOrder buyerOrder){ 595 + void refundLeftOrderAmount(BuyerPenaltyCalResult bpcr, BuyerOrder buyerOrder) {
570 Integer sellerUid = buyerOrder.getSellerUid(); 596 Integer sellerUid = buyerOrder.getSellerUid();
571 BigDecimal leftBuyerMoney = bpcr.getLeftAmount(); 597 BigDecimal leftBuyerMoney = bpcr.getLeftAmount();
572 logger.info("in BuyerCancelAfterProcessTask call begin payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}", 598 logger.info("in BuyerCancelAfterProcessTask call begin payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}",
573 - buyerUid, orderCode, skup, leftBuyerMoney ); 599 + buyerUid, orderCode, skup, leftBuyerMoney);
574 new RefundGoodsMoneyHandler().loadLogger(logger) 600 new RefundGoodsMoneyHandler().loadLogger(logger)
575 .loadPaymentRequest(buyerUid, orderCode, buyerOrder.getPayment(), leftBuyerMoney) 601 .loadPaymentRequest(buyerUid, orderCode, buyerOrder.getPayment(), leftBuyerMoney)
576 //.loadBillLogEventBuilder(blebOfBuyer) 602 //.loadBillLogEventBuilder(blebOfBuyer)
@@ -579,7 +605,7 @@ public class BuyerOrderCancelService { @@ -579,7 +605,7 @@ public class BuyerOrderCancelService {
579 .loadSellerOrderGoods(sellerUid, skup) 605 .loadSellerOrderGoods(sellerUid, skup)
580 .refund(); 606 .refund();
581 logger.info("in BuyerCancelAfterProcessTask call after payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}", 607 logger.info("in BuyerCancelAfterProcessTask call after payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}",
582 - buyerUid, orderCode, skup, leftBuyerMoney ); 608 + buyerUid, orderCode, skup, leftBuyerMoney);
583 } 609 }
584 610
585 @Override 611 @Override
@@ -587,13 +613,13 @@ public class BuyerOrderCancelService { @@ -587,13 +613,13 @@ public class BuyerOrderCancelService {
587 // 整个过程异步去执行(考虑退费依赖订单状态) 613 // 整个过程异步去执行(考虑退费依赖订单状态)
588 //(退费)退保证金给卖家 614 //(退费)退保证金给卖家
589 logger.info("in BuyerCancelAfterProcessTask call buyerUid {}, orderCode {}, skup {}, transferCase {}, compensate {},reSellFlag {}", 615 logger.info("in BuyerCancelAfterProcessTask call buyerUid {}, orderCode {}, skup {}, transferCase {}, compensate {},reSellFlag {}",
590 - buyerUid, orderCode, skup, transferCase, bpcr,reSellFlag); 616 + buyerUid, orderCode, skup, transferCase, bpcr, reSellFlag);
591 PayRefundBo prb = null; 617 PayRefundBo prb = null;
592 try { 618 try {
593 SellerOrder sellerOrder = sellerOrderMapper.selectBySkup(skup); 619 SellerOrder sellerOrder = sellerOrderMapper.selectBySkup(skup);
594 logger.info("in BuyerCancelAfterProcessTask call sellerOrderMapper.selectBySkup, buyerUid {}, orderCode {}, skup {},reSellFlag {}", 620 logger.info("in BuyerCancelAfterProcessTask call sellerOrderMapper.selectBySkup, buyerUid {}, orderCode {}, skup {},reSellFlag {}",
595 - buyerUid, orderCode, skup,reSellFlag );  
596 - if(!reSellFlag){ 621 + buyerUid, orderCode, skup, reSellFlag);
  622 + if (!reSellFlag) {
597 //只有不重新上架,才退保证金 623 //只有不重新上架,才退保证金
598 prb = refundSellerEarnestMoney(sellerOrder); 624 prb = refundSellerEarnestMoney(sellerOrder);
599 } 625 }
@@ -604,7 +630,7 @@ public class BuyerOrderCancelService { @@ -604,7 +630,7 @@ public class BuyerOrderCancelService {
604 refundLeftOrderAmount(bpcr, buyerOrder); 630 refundLeftOrderAmount(bpcr, buyerOrder);
605 logger.info("out BuyerCancelAfterProcessTask call buyerUid {}, orderCode {}, skup {}, transferCase {}, compensate {}", 631 logger.info("out BuyerCancelAfterProcessTask call buyerUid {}, orderCode {}, skup {}, transferCase {}, compensate {}",
606 buyerUid, orderCode, skup, transferCase, bpcr); 632 buyerUid, orderCode, skup, transferCase, bpcr);
607 - }catch (Exception ex){ 633 + } catch (Exception ex) {
608 logger.info("occur error BuyerCancelAfterProcessTask call buyerUid {}, orderCode {}, skup {}, transferCase {}, compensate {}", 634 logger.info("occur error BuyerCancelAfterProcessTask call buyerUid {}, orderCode {}, skup {}, transferCase {}, compensate {}",
609 buyerUid, orderCode, skup, transferCase, bpcr, ex); 635 buyerUid, orderCode, skup, transferCase, bpcr, ex);
610 } 636 }
@@ -697,7 +723,7 @@ public class BuyerOrderCancelService { @@ -697,7 +723,7 @@ public class BuyerOrderCancelService {
697 final List<Integer> expectedStatus = Lists.newArrayList(OrderStatus.WAITING_RECEIVE.getCode(), OrderStatus.HAS_PAYED.getCode()); 723 final List<Integer> expectedStatus = Lists.newArrayList(OrderStatus.WAITING_RECEIVE.getCode(), OrderStatus.HAS_PAYED.getCode());
698 int buyerUid = buyerOrder.getUid(); 724 int buyerUid = buyerOrder.getUid();
699 Integer sellerUid = buyerOrder.getSellerUid(); 725 Integer sellerUid = buyerOrder.getSellerUid();
700 - boolean changeStatusFlag = buyerOrderMapper.updateStatusWithStatusList(orderCode, targetStatus.getCode(),expectedStatus,DateUtil.getCurrentTimeSecond()) > 0; 726 + boolean changeStatusFlag = buyerOrderMapper.updateStatusWithStatusList(orderCode, targetStatus.getCode(), expectedStatus, DateUtil.getCurrentTimeSecond()) > 0;
701 if (!changeStatusFlag) { 727 if (!changeStatusFlag) {
702 logger.info("{} changeStatus fail", logTag); 728 logger.info("{} changeStatus fail", logTag);
703 throwServiceException("订单状态变更失败"); 729 throwServiceException("订单状态变更失败");
@@ -716,14 +742,13 @@ public class BuyerOrderCancelService { @@ -716,14 +742,13 @@ public class BuyerOrderCancelService {
716 742
717 asyncRefundCoupon(buyerOrder.getUid(), buyerOrder.getOrderCode(), BuyerRefundCouponEvent.BizCase.PLATFORM_BLOWN_CUSTOMS_CLEARANCE); 743 asyncRefundCoupon(buyerOrder.getUid(), buyerOrder.getOrderCode(), BuyerRefundCouponEvent.BizCase.PLATFORM_BLOWN_CUSTOMS_CLEARANCE);
718 744
719 - orderStatusFlowService.addAsy(orderCode, targetStatus.getCode(),failReason); 745 + orderStatusFlowService.addAsy(orderCode, targetStatus.getCode(), failReason);
720 } 746 }
721 747
722 748
723 -  
724 private void asyncRefundGoodsAmount() { 749 private void asyncRefundGoodsAmount() {
725 final ExecutorService executorService = ThreadPoolFactory.getBuyerCancelThreadPool(); 750 final ExecutorService executorService = ThreadPoolFactory.getBuyerCancelThreadPool();
726 - executorService.execute(()->{ 751 + executorService.execute(() -> {
727 BigDecimal leftGoodsMoney = buyerOrder.getAmount(); 752 BigDecimal leftGoodsMoney = buyerOrder.getAmount();
728 753
729 BuyerOrderGoods pbog = buyerOrderGoodsMapper.selectOnlyByOrderCode(buyerOrder.getOrderCode()); 754 BuyerOrderGoods pbog = buyerOrderGoodsMapper.selectOnlyByOrderCode(buyerOrder.getOrderCode());
@@ -743,9 +768,9 @@ public class BuyerOrderCancelService { @@ -743,9 +768,9 @@ public class BuyerOrderCancelService {
743 768
744 } 769 }
745 770
746 - private void saveFailRecord(int uid, long orderCode, String failReason){ 771 + private void saveFailRecord(int uid, long orderCode, String failReason) {
747 final ExecutorService executorService = ThreadPoolFactory.getBuyerCancelThreadPool(); 772 final ExecutorService executorService = ThreadPoolFactory.getBuyerCancelThreadPool();
748 - executorService.execute(()-> { 773 + executorService.execute(() -> {
749 BuyerOrderMeta record = new BuyerOrderMeta(); 774 BuyerOrderMeta record = new BuyerOrderMeta();
750 record.setOrderCode(orderCode); 775 record.setOrderCode(orderCode);
751 record.setUid(uid); 776 record.setUid(uid);
@@ -765,9 +790,10 @@ public class BuyerOrderCancelService { @@ -765,9 +790,10 @@ public class BuyerOrderCancelService {
765 * 货品平台自己吃了 790 * 货品平台自己吃了
766 * 买家钱退给买家 791 * 买家钱退给买家
767 * 赔偿卖家ufo券 券金额还未定 792 * 赔偿卖家ufo券 券金额还未定
  793 + *
768 * @param refundGoodsAmountNode 794 * @param refundGoodsAmountNode
769 */ 795 */
770 - private void platformReason(RefundGoodsAmountNode refundGoodsAmountNode){ 796 + private void platformReason(RefundGoodsAmountNode refundGoodsAmountNode) {
771 BuyerOrder buyerOrder = refundGoodsAmountNode.buyerOrder; 797 BuyerOrder buyerOrder = refundGoodsAmountNode.buyerOrder;
772 int skup = refundGoodsAmountNode.skup; 798 int skup = refundGoodsAmountNode.skup;
773 OrderStatus targetOrderStatus = refundGoodsAmountNode.targetOrderStatus; 799 OrderStatus targetOrderStatus = refundGoodsAmountNode.targetOrderStatus;
@@ -782,9 +808,10 @@ public class BuyerOrderCancelService { @@ -782,9 +808,10 @@ public class BuyerOrderCancelService {
782 * 买家原因失败 808 * 买家原因失败
783 * 货品平台自己吃了 809 * 货品平台自己吃了
784 * 货款钱退给买家 810 * 货款钱退给买家
  811 + *
785 * @param refundGoodsAmountNode 812 * @param refundGoodsAmountNode
786 */ 813 */
787 - private void userReason(RefundGoodsAmountNode refundGoodsAmountNode){ 814 + private void userReason(RefundGoodsAmountNode refundGoodsAmountNode) {
788 BuyerOrder buyerOrder = refundGoodsAmountNode.buyerOrder; 815 BuyerOrder buyerOrder = refundGoodsAmountNode.buyerOrder;
789 int skup = refundGoodsAmountNode.skup; 816 int skup = refundGoodsAmountNode.skup;
790 OrderStatus targetOrderStatus = refundGoodsAmountNode.targetOrderStatus; 817 OrderStatus targetOrderStatus = refundGoodsAmountNode.targetOrderStatus;
@@ -798,23 +825,23 @@ public class BuyerOrderCancelService { @@ -798,23 +825,23 @@ public class BuyerOrderCancelService {
798 } 825 }
799 826
800 827
801 - private void refundGoodsAmount(BuyerOrder buyerOrder,int skup, OrderStatus targetOrderStatus, BigDecimal leftBuyerMoney){ 828 + private void refundGoodsAmount(BuyerOrder buyerOrder, int skup, OrderStatus targetOrderStatus, BigDecimal leftBuyerMoney) {
802 Integer buyerUid = buyerOrder.getUid(); 829 Integer buyerUid = buyerOrder.getUid();
803 Integer sellerUid = buyerOrder.getSellerUid(); 830 Integer sellerUid = buyerOrder.getSellerUid();
804 Long orderCode = buyerOrder.getOrderCode(); 831 Long orderCode = buyerOrder.getOrderCode();
805 // 832 //
806 833
807 logger.info("clearanceFail refundGoodsAmount begin payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}", 834 logger.info("clearanceFail refundGoodsAmount begin payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}",
808 - buyerUid, orderCode, skup, leftBuyerMoney ); 835 + buyerUid, orderCode, skup, leftBuyerMoney);
809 836
810 new RefundGoodsMoneyHandler().loadLogger(logger) 837 new RefundGoodsMoneyHandler().loadLogger(logger)
811 - .loadPaymentRequest(buyerUid,orderCode,buyerOrder.getPayment(), leftBuyerMoney) 838 + .loadPaymentRequest(buyerUid, orderCode, buyerOrder.getPayment(), leftBuyerMoney)
812 .loadRefundAction(payRefundService::refund) 839 .loadRefundAction(payRefundService::refund)
813 .loadTargetOrderStatus(targetOrderStatus) 840 .loadTargetOrderStatus(targetOrderStatus)
814 .loadSellerOrderGoods(sellerUid, skup) 841 .loadSellerOrderGoods(sellerUid, skup)
815 .refund(); 842 .refund();
816 logger.info("clearanceFail refundGoodsAmount after payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}", 843 logger.info("clearanceFail refundGoodsAmount after payRefundService.refund buyer, buyerUid {}, orderCode {}, skup {} refundAmount {}",
817 - buyerUid, orderCode, skup, leftBuyerMoney ); 844 + buyerUid, orderCode, skup, leftBuyerMoney);
818 } 845 }
819 } 846 }
820 } 847 }
@@ -152,9 +152,10 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -152,9 +152,10 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
152 152
153 /** 153 /**
154 * 提交订单 154 * 提交订单
  155 + *
155 * @param orderRequest 156 * @param orderRequest
156 */ 157 */
157 - public void confirm(OrderRequest orderRequest){ 158 + public void confirm(OrderRequest orderRequest) {
158 159
159 // 参数检查 ![待收货] 不合法 160 // 参数检查 ![待收货] 不合法
160 DataNode node = checkBase(orderRequest); 161 DataNode node = checkBase(orderRequest);
@@ -162,12 +163,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -162,12 +163,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
162 OrderStatus buyerOrderStatus = OrderStatus.getOrderStatus(buyerOrder.getStatus()); 163 OrderStatus buyerOrderStatus = OrderStatus.getOrderStatus(buyerOrder.getStatus());
163 OrderStatus expectStatus; 164 OrderStatus expectStatus;
164 // 如果当前订单状态为待寄存或待收货 165 // 如果当前订单状态为待寄存或待收货
165 - if(buyerOrderStatus == OrderStatus.JUDGE_PASS_WAIT_WAREHOUSE){ 166 + if (buyerOrderStatus == OrderStatus.JUDGE_PASS_WAIT_WAREHOUSE) {
166 expectStatus = OrderStatus.JUDGE_PASS_WAIT_WAREHOUSE; 167 expectStatus = OrderStatus.JUDGE_PASS_WAIT_WAREHOUSE;
167 } else { 168 } else {
168 expectStatus = OrderStatus.WAITING_RECEIVE; 169 expectStatus = OrderStatus.WAITING_RECEIVE;
169 } 170 }
170 - checkStatus(node,orderRequest, expectStatus); 171 + checkStatus(node, orderRequest, expectStatus);
171 int uid = buyerOrder.getUid(); 172 int uid = buyerOrder.getUid();
172 long orderCode = buyerOrder.getOrderCode(); 173 long orderCode = buyerOrder.getOrderCode();
173 int sellerUid = buyerOrder.getSellerUid(); 174 int sellerUid = buyerOrder.getSellerUid();
@@ -189,8 +190,8 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -189,8 +190,8 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
189 .build()); 190 .build());
190 191
191 //记录状态信息 192 //记录状态信息
192 - logger.info("in seller confirm record status change, orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid);  
193 - orderStatusFlowService.addAsy(orderCode,OrderStatus.DONE.getCode()); 193 + logger.info("in seller confirm record status change, orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
  194 + orderStatusFlowService.addAsy(orderCode, OrderStatus.DONE.getCode());
194 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(sellerUid, uid, orderCode); 195 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(sellerUid, uid, orderCode);
195 196
196 ErpBuyerOrderEvent event = new ErpBuyerOrderEvent(uid); // 清理有货个人中心接口缓存的UFO订单数量的缓存 197 ErpBuyerOrderEvent event = new ErpBuyerOrderEvent(uid); // 清理有货个人中心接口缓存的UFO订单数量的缓存
@@ -201,8 +202,6 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -201,8 +202,6 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
201 } 202 }
202 203
203 204
204 -  
205 -  
206 /** 205 /**
207 * 买家修改收货地址: 206 * 买家修改收货地址:
208 * 鉴定中心确定收货之前,都可以修改地址 207 * 鉴定中心确定收货之前,都可以修改地址
@@ -211,45 +210,42 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -211,45 +210,42 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
211 @Override 210 @Override
212 public boolean buyerModifyAddress(int uid, long orderCode, 211 public boolean buyerModifyAddress(int uid, long orderCode,
213 AddressInfo changedAddress, 212 AddressInfo changedAddress,
214 - final boolean fromPlatform){ 213 + final boolean fromPlatform) {
215 214
216 - boolean result = buyerOrderMetaService.buyerSelfModifyAddress(uid, orderCode,changedAddress, fromPlatform); 215 + boolean result = buyerOrderMetaService.buyerSelfModifyAddress(uid, orderCode, changedAddress, fromPlatform);
217 return result; 216 return result;
218 } 217 }
219 218
220 219
221 -  
222 -  
223 -  
224 -  
225 -  
226 -  
227 /** 220 /**
228 * 取消订单 221 * 取消订单
  222 + *
229 * @param orderRequest 223 * @param orderRequest
230 */ 224 */
231 @Override 225 @Override
232 - public void cancel(OrderRequest orderRequest){ 226 + public void cancel(OrderRequest orderRequest) {
233 logger.info("Buyer Order cancel (OrderRequest) {}", orderRequest); 227 logger.info("Buyer Order cancel (OrderRequest) {}", orderRequest);
234 doCancel(orderRequest); 228 doCancel(orderRequest);
235 } 229 }
236 230
237 @Override 231 @Override
238 public void cancelByCS(BuyerOrderCancelReq request) { 232 public void cancelByCS(BuyerOrderCancelReq request) {
239 - logger.info("in buyer order cancelByCS, req {}",request); 233 + logger.info("in buyer order cancelByCS, req {}", request);
240 int uid = request.getUid(); 234 int uid = request.getUid();
241 long orderCode = request.getOrderCode(); 235 long orderCode = request.getOrderCode();
242 int cancelType = request.getCancelType(); 236 int cancelType = request.getCancelType();
243 BuyerOrderCancelType boct = BuyerOrderCancelType.getBuyerOrderCancelType(cancelType); 237 BuyerOrderCancelType boct = BuyerOrderCancelType.getBuyerOrderCancelType(cancelType);
244 - if (Objects.isNull(boct)){ 238 + if (Objects.isNull(boct)) {
245 buyerOrderCancelService.cancelForSellerShamSendOut(uid, orderCode, OrderStatus.SELLER_SHAM_SEND_OUT); 239 buyerOrderCancelService.cancelForSellerShamSendOut(uid, orderCode, OrderStatus.SELLER_SHAM_SEND_OUT);
246 return; 240 return;
247 } 241 }
248 - switch (boct){ 242 + switch (boct) {
249 case PULL_WOOL: 243 case PULL_WOOL:
250 - logger.info("in buyer order cancelByCS because pull wool, req {}",request); 244 + logger.info("in buyer order cancelByCS because pull wool, req {}", request);
251 buyerOrderCancelService.cancelForBuyerPullWool(request); 245 buyerOrderCancelService.cancelForBuyerPullWool(request);
252 break; 246 break;
  247 + case SELLER_CAN_NOT_SEND_OUT:
  248 + buyerOrderCancelService.cancelForSellerCanNotSendOut(uid, orderCode);
253 default: 249 default:
254 logger.warn("in buyer order cancelByCS not match any BuyerOrderCancelType, req {}", request); 250 logger.warn("in buyer order cancelByCS not match any BuyerOrderCancelType, req {}", request);
255 break; 251 break;
@@ -299,28 +295,29 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -299,28 +295,29 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
299 295
300 /** 296 /**
301 * protect hack action 297 * protect hack action
  298 + *
302 * @param buyerOrder 299 * @param buyerOrder
303 * @param pbog 300 * @param pbog
304 */ 301 */
305 - private void checkCancelable(BuyerOrder buyerOrder, BuyerOrderGoods pbog){ 302 + private void checkCancelable(BuyerOrder buyerOrder, BuyerOrderGoods pbog) {
306 boolean isDepositOrder = BuyerOrderUtils.isDeposit(buyerOrder); 303 boolean isDepositOrder = BuyerOrderUtils.isDeposit(buyerOrder);
307 SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(pbog.getSkup()); 304 SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(pbog.getSkup());
308 SkupType skupType = SkupType.getSkupType(psog.getAttributes()); 305 SkupType skupType = SkupType.getSkupType(psog.getAttributes());
309 boolean isQuickDeliverGoods = SellerGoodsHelper.isQuickDeliver(skupType); 306 boolean isQuickDeliverGoods = SellerGoodsHelper.isQuickDeliver(skupType);
310 307
311 - if (isDepositOrder && isQuickDeliverGoods){ 308 + if (isDepositOrder && isQuickDeliverGoods) {
312 logger.warn("checkCancelable find illegal action, uid {} orderCode {}", buyerOrder.getUid(), buyerOrder.getOrderCode()); 309 logger.warn("checkCancelable find illegal action, uid {} orderCode {}", buyerOrder.getUid(), buyerOrder.getOrderCode());
313 throw new UfoServiceException(400, "闪购商品订单不允许取消"); 310 throw new UfoServiceException(400, "闪购商品订单不允许取消");
314 } 311 }
315 } 312 }
316 313
317 - private void doCancel(OrderRequest orderRequest){ 314 + private void doCancel(OrderRequest orderRequest) {
318 DataNode node = checkBase(orderRequest); 315 DataNode node = checkBase(orderRequest);
319 BuyerOrder buyerOrder = node.buyerOrderInDB; 316 BuyerOrder buyerOrder = node.buyerOrderInDB;
320 Integer orderStatus = buyerOrder.getStatus(); 317 Integer orderStatus = buyerOrder.getStatus();
321 - OrderStatus expectStatus = null ;  
322 - if (orderStatus == null || (expectStatus = OrderStatus.getOrderStatus(orderStatus))== null){  
323 - logger.warn("in buyer cancel check orderStatus fail, orderStatus {} expectStatus {}", orderStatus,expectStatus ); 318 + OrderStatus expectStatus = null;
  319 + if (orderStatus == null || (expectStatus = OrderStatus.getOrderStatus(orderStatus)) == null) {
  320 + logger.warn("in buyer cancel check orderStatus fail, orderStatus {} expectStatus {}", orderStatus, expectStatus);
324 throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE); 321 throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
325 } 322 }
326 logger.info("in buyer cancel, req {} expectStatus {}", orderRequest, expectStatus); 323 logger.info("in buyer cancel, req {} expectStatus {}", orderRequest, expectStatus);
@@ -332,7 +329,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -332,7 +329,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
332 Long orderCode = buyerOrder.getOrderCode(); 329 Long orderCode = buyerOrder.getOrderCode();
333 330
334 boolean useDepositGoods = node.useDepositGoods; 331 boolean useDepositGoods = node.useDepositGoods;
335 - switch (expectStatus){ 332 + switch (expectStatus) {
336 case WAITING_PAY_DEPOSIT: 333 case WAITING_PAY_DEPOSIT:
337 targetStatus = OrderStatus.BUYER_CANCEL_BEFORE_DEPOSIT_PAY; 334 targetStatus = OrderStatus.BUYER_CANCEL_BEFORE_DEPOSIT_PAY;
338 buyerOrderStateChangers.selectOneToChange(buyerOrder, OrderStatus.WAITING_PAY_DEPOSIT, targetStatus); 335 buyerOrderStateChangers.selectOneToChange(buyerOrder, OrderStatus.WAITING_PAY_DEPOSIT, targetStatus);
@@ -372,18 +369,18 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -372,18 +369,18 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
372 .useDepositGoods(useDepositGoods) 369 .useDepositGoods(useDepositGoods)
373 .build(); 370 .build();
374 int updateOrderFlag = buyerOrderCancelService.cancel(bsde); 371 int updateOrderFlag = buyerOrderCancelService.cancel(bsde);
375 - if (updateOrderFlag>0){  
376 - if (node.isDepositGoods){ 372 + if (updateOrderFlag > 0) {
  373 + if (node.isDepositGoods) {
377 asyncUnlockDepositGoods(buyerOrder.getSellerUid(), node.depositCodeOfSkup); 374 asyncUnlockDepositGoods(buyerOrder.getSellerUid(), node.depositCodeOfSkup);
378 } 375 }
379 } 376 }
380 //取消事件 377 //取消事件
381 orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus)); 378 orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus));
382 - orderStatusFlowService.addAsy(orderCode,targetStatus.getCode()); 379 + orderStatusFlowService.addAsy(orderCode, targetStatus.getCode());
383 break; 380 break;
384 case SELLER_SEND_OUT: 381 case SELLER_SEND_OUT:
385 bog = buyerOrderGoodsMapper.selectByOrderCode(uid = orderRequest.getUid(), 382 bog = buyerOrderGoodsMapper.selectByOrderCode(uid = orderRequest.getUid(),
386 - orderCode=orderRequest.getOrderCode()); 383 + orderCode = orderRequest.getOrderCode());
387 skup = bog.getSkup(); 384 skup = bog.getSkup();
388 targetStatus = useDepositGoods ? OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE_USE_DEPOSIT_GOODS 385 targetStatus = useDepositGoods ? OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE_USE_DEPOSIT_GOODS
389 : OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE; 386 : OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE;
@@ -397,18 +394,18 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -397,18 +394,18 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
397 buyerOrderCancelService.cancel(bdre); 394 buyerOrderCancelService.cancel(bdre);
398 //取消事件 395 //取消事件
399 orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus)); 396 orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus));
400 - orderStatusFlowService.addAsy(orderCode,targetStatus.getCode()); 397 + orderStatusFlowService.addAsy(orderCode, targetStatus.getCode());
401 break; 398 break;
402 default: 399 default:
403 logger.warn("in buyer cancel fail uid {} order code {} expectStatus {}", 400 logger.warn("in buyer cancel fail uid {} order code {} expectStatus {}",
404 - buyerOrder.getUid(),buyerOrder.getOrderCode(), expectStatus); 401 + buyerOrder.getUid(), buyerOrder.getOrderCode(), expectStatus);
405 throw new UfoServiceException(401, "订单状态已变更,不能取消"); 402 throw new UfoServiceException(401, "订单状态已变更,不能取消");
406 } 403 }
407 //记录状态变更信息 404 //记录状态变更信息
408 logger.info("in doCancel record status {} change to {}, orderRequest {}", expectStatus, targetStatus, orderRequest); 405 logger.info("in doCancel record status {} change to {}, orderRequest {}", expectStatus, targetStatus, orderRequest);
409 } 406 }
410 407
411 - private void asyncUnlockDepositGoods(Integer sellerUid,String depositCode){ 408 + private void asyncUnlockDepositGoods(Integer sellerUid, String depositCode) {
412 Callable<Integer> depositGoodsTask = () -> depositService.updateSellLock(sellerUid, depositCode, 0); 409 Callable<Integer> depositGoodsTask = () -> depositService.updateSellLock(sellerUid, depositCode, 0);
413 Future<Integer> future = ThreadPoolFactory.getCommomExecutorService().submit(depositGoodsTask); 410 Future<Integer> future = ThreadPoolFactory.getCommomExecutorService().submit(depositGoodsTask);
414 logger.info("asyncUnlockDepositGoodsIf depositCode {} future.isDone {}", depositCode, future.isDone()); 411 logger.info("asyncUnlockDepositGoodsIf depositCode {} future.isDone {}", depositCode, future.isDone());
@@ -416,13 +413,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -416,13 +413,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
416 } 413 }
417 414
418 415
419 -  
420 - public void cancelBeforePaid(OrderRequest orderRequest, DataNode dataNode, OrderStatus exceptStatus, OrderStatus targetStatus){ 416 + public void cancelBeforePaid(OrderRequest orderRequest, DataNode dataNode, OrderStatus exceptStatus, OrderStatus targetStatus) {
421 // 状态 ![待付款] 不合法 417 // 状态 ![待付款] 不合法
422 checkStatus(dataNode, orderRequest, exceptStatus); 418 checkStatus(dataNode, orderRequest, exceptStatus);
423 419
424 // 近一分钟内有预支付记录 420 // 近一分钟内有预支付记录
425 - if (orderRequest.getOrderCancelEvent()!=null && !orderRequest.getOrderCancelEvent().isFinalRetry()){ 421 + if (orderRequest.getOrderCancelEvent() != null && !orderRequest.getOrderCancelEvent().isFinalRetry()) {
426 paymentService.checkPrePay(orderRequest.getUid(), orderRequest.getOrderCode()); 422 paymentService.checkPrePay(orderRequest.getUid(), orderRequest.getOrderCode());
427 } 423 }
428 final BuyerOrder buyerOrder = dataNode.buyerOrderInDB; 424 final BuyerOrder buyerOrder = dataNode.buyerOrderInDB;
@@ -437,13 +433,13 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -437,13 +433,13 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
437 tbo.setOrderCode(orderCode = orderRequest.getOrderCode()); 433 tbo.setOrderCode(orderCode = orderRequest.getOrderCode());
438 tbo.setUpdateTime(DateUtil.getCurrentTimeSecond()); 434 tbo.setUpdateTime(DateUtil.getCurrentTimeSecond());
439 buyerOrderMapper.updateByOrderCode(tbo); 435 buyerOrderMapper.updateByOrderCode(tbo);
440 - if (dataNode.isDepositGoods){ 436 + if (dataNode.isDepositGoods) {
441 asyncUnlockDepositGoods(sellerUid, dataNode.depositCodeOfSkup); 437 asyncUnlockDepositGoods(sellerUid, dataNode.depositCodeOfSkup);
442 } 438 }
443 // 更新skup的状态[出售中] 卖家订单为[可售] 439 // 更新skup的状态[出售中] 卖家订单为[可售]
444 BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(orderRequest.getUid(), orderCode); 440 BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(orderRequest.getUid(), orderCode);
445 int skup = bog.getSkup(); 441 int skup = bog.getSkup();
446 - SellerOrderGoods psog= sellerOrderGoodsMapper.selectByPrimaryKey(skup); 442 + SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(skup);
447 Integer skupStatus = psog.getStatus(); 443 Integer skupStatus = psog.getStatus();
448 //todo check skupStatus 444 //todo check skupStatus
449 SellerOrderGoods tsog = new SellerOrderGoods(); 445 SellerOrderGoods tsog = new SellerOrderGoods();
@@ -455,7 +451,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -455,7 +451,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
455 boolean isReturnSuccess = productProxyService.returnStorage(skup); 451 boolean isReturnSuccess = productProxyService.returnStorage(skup);
456 452
457 // 急速发货的场合,释放库存 453 // 急速发货的场合,释放库存
458 - if (fastDeliveryProxyService.isFastDeliveryGoods(skup)){ 454 + if (fastDeliveryProxyService.isFastDeliveryGoods(skup)) {
459 fastDeliveryProxyService.cancel(psog.getUid(), skup); 455 fastDeliveryProxyService.cancel(psog.getUid(), skup);
460 } 456 }
461 457
@@ -476,7 +472,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -476,7 +472,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
476 } 472 }
477 473
478 474
479 - class DataNode{ 475 + class DataNode {
480 BuyerOrder buyerOrderInDB; 476 BuyerOrder buyerOrderInDB;
481 String depositCodeOfSellerUsingDeliver; 477 String depositCodeOfSellerUsingDeliver;
482 boolean useDepositGoods; 478 boolean useDepositGoods;
@@ -484,12 +480,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -484,12 +480,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
484 boolean isDepositGoods; 480 boolean isDepositGoods;
485 } 481 }
486 482
487 - DataNode checkBase(OrderRequest orderRequest){ 483 + DataNode checkBase(OrderRequest orderRequest) {
488 int uid; 484 int uid;
489 long orderCode; 485 long orderCode;
490 // 参数检查 486 // 参数检查
491 - if ((uid=orderRequest.getUid()) < 0  
492 - || (orderCode=orderRequest.getOrderCode()) < 0){ 487 + if ((uid = orderRequest.getUid()) < 0
  488 + || (orderCode = orderRequest.getOrderCode()) < 0) {
493 logger.warn("check uid or orderCode empty"); 489 logger.warn("check uid or orderCode empty");
494 throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY); 490 throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY);
495 } 491 }
@@ -497,16 +493,16 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -497,16 +493,16 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
497 // 订单存在 & 待付款的状态 493 // 订单存在 & 待付款的状态
498 // 查询订单状态 494 // 查询订单状态
499 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(orderRequest.getOrderCode(), orderRequest.getUid()); 495 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(orderRequest.getOrderCode(), orderRequest.getUid());
500 - if (buyerOrder == null){ 496 + if (buyerOrder == null) {
501 logger.warn("check orderCode exist, uid is {}, orderCode is {}", 497 logger.warn("check orderCode exist, uid is {}, orderCode is {}",
502 - orderRequest.getUid(), orderRequest.getOrderCode() ); 498 + orderRequest.getUid(), orderRequest.getOrderCode());
503 throw new ServiceException(ServiceError.ORDER_NULL); 499 throw new ServiceException(ServiceError.ORDER_NULL);
504 } 500 }
505 DataNode node = new DataNode(); 501 DataNode node = new DataNode();
506 BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectOnlyByOrderCode(orderCode); 502 BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectOnlyByOrderCode(orderCode);
507 SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(buyerOrderGoods.getSkup()); 503 SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(buyerOrderGoods.getSkup());
508 SkupType skupType = SkupType.getSkupType(sellerOrderGoods.getAttributes()); 504 SkupType skupType = SkupType.getSkupType(sellerOrderGoods.getAttributes());
509 - if(skupType == SkupType.QUICK_DELIVER) { 505 + if (skupType == SkupType.QUICK_DELIVER) {
510 String depositCode = findDepoistGoods(buyerOrder.getSellerUid(), buyerOrderGoods.getSkup()); 506 String depositCode = findDepoistGoods(buyerOrder.getSellerUid(), buyerOrderGoods.getSkup());
511 node.depositCodeOfSkup = depositCode; 507 node.depositCodeOfSkup = depositCode;
512 node.isDepositGoods = true; 508 node.isDepositGoods = true;
@@ -520,33 +516,32 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -520,33 +516,32 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
520 } 516 }
521 517
522 518
523 -  
524 - private String findDepositCodeOfSellerUsingDeliver(Integer uid, Long orderCode){ 519 + private String findDepositCodeOfSellerUsingDeliver(Integer uid, Long orderCode) {
525 520
526 String depositCode = buyerOrderMetaService.getDepositCode(uid, orderCode); 521 String depositCode = buyerOrderMetaService.getDepositCode(uid, orderCode);
527 return depositCode; 522 return depositCode;
528 } 523 }
  524 +
529 @Autowired 525 @Autowired
530 private SellerOrderMetaService sellerOrderMetaService; 526 private SellerOrderMetaService sellerOrderMetaService;
531 527
532 - private String findDepoistGoods(Integer sellerUid, Integer skup){ 528 + private String findDepoistGoods(Integer sellerUid, Integer skup) {
533 String depoistCode = sellerOrderMetaService.getDepoistCode(sellerUid, skup); 529 String depoistCode = sellerOrderMetaService.getDepoistCode(sellerUid, skup);
534 530
535 return depoistCode; 531 return depoistCode;
536 } 532 }
537 533
538 /** 534 /**
539 - *  
540 * @param orderRequest 535 * @param orderRequest
541 * @param orderStatusEx 536 * @param orderStatusEx
542 */ 537 */
543 - private void checkStatus(DataNode node, OrderRequest orderRequest, OrderStatus orderStatusEx ) { 538 + private void checkStatus(DataNode node, OrderRequest orderRequest, OrderStatus orderStatusEx) {
544 539
545 BuyerOrder buyerOrder = node.buyerOrderInDB; 540 BuyerOrder buyerOrder = node.buyerOrderInDB;
546 // 检查 订单状态 541 // 检查 订单状态
547 int status = buyerOrder.getStatus() == null ? -1 : buyerOrder.getStatus().intValue(); 542 int status = buyerOrder.getStatus() == null ? -1 : buyerOrder.getStatus().intValue();
548 OrderStatus orderStatus = OrderStatus.getOrderStatus(status); 543 OrderStatus orderStatus = OrderStatus.getOrderStatus(status);
549 - if (orderStatus == null || orderStatus.getCode() != orderStatusEx.getCode()){ 544 + if (orderStatus == null || orderStatus.getCode() != orderStatusEx.getCode()) {
550 logger.warn("check status invalidate, uid is {}, orderCode is {}, status is {}", 545 logger.warn("check status invalidate, uid is {}, orderCode is {}, status is {}",
551 orderRequest.getUid(), orderRequest.getOrderCode(), buyerOrder.getStatus()); 546 orderRequest.getUid(), orderRequest.getOrderCode(), buyerOrder.getStatus());
552 throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE); 547 throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
@@ -554,11 +549,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -554,11 +549,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
554 549
555 // 状态是待支付的场合,到第三方检查是否支付过了 550 // 状态是待支付的场合,到第三方检查是否支付过了
556 Payment payment = Payment.getPayment(buyerOrder.getPayment()); 551 Payment payment = Payment.getPayment(buyerOrder.getPayment());
557 - if (payment != null && status == OrderStatus.WAITING_PAY.getCode()){ 552 + if (payment != null && status == OrderStatus.WAITING_PAY.getCode()) {
558 AbstractPayService payService = paymentService.getPayService(payment.getCode()); 553 AbstractPayService payService = paymentService.getPayService(payment.getCode());
559 PayQueryBo payQueryBo = payService.payQuery(String.valueOf(buyerOrder.getOrderCode()), buyerOrder.getCreateTime()); 554 PayQueryBo payQueryBo = payService.payQuery(String.valueOf(buyerOrder.getOrderCode()), buyerOrder.getCreateTime());
560 555
561 - if (payQueryBo != null && payQueryBo.isPayStatus()){ 556 + if (payQueryBo != null && payQueryBo.isPayStatus()) {
562 logger.warn("check status failed ,confirm paid, uid is {}, orderCode is {}, status is {}", 557 logger.warn("check status failed ,confirm paid, uid is {}, orderCode is {}, status is {}",
563 orderRequest.getUid(), orderRequest.getOrderCode(), buyerOrder.getStatus()); 558 orderRequest.getUid(), orderRequest.getOrderCode(), buyerOrder.getStatus());
564 // 主动触发支付结果确认 559 // 主动触发支付结果确认
@@ -571,23 +566,21 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -571,23 +566,21 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
571 } 566 }
572 567
573 568
574 -  
575 -  
576 -  
577 /** 569 /**
578 * 查询订单数量 570 * 查询订单数量
  571 + *
579 * @param uid 572 * @param uid
580 * @return 573 * @return
581 */ 574 */
582 - public BuyerOrderNums getBuyerOrderNums(int uid){ 575 + public BuyerOrderNums getBuyerOrderNums(int uid) {
583 576
584 - if (uid < 0){ 577 + if (uid < 0) {
585 logger.warn("buyer delete, uid or orderCode empty, uid {}", uid); 578 logger.warn("buyer delete, uid or orderCode empty, uid {}", uid);
586 throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY); 579 throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY);
587 } 580 }
588 581
589 BuyerOrderNums buyerOrderNumsCache = orderCacheService.getBuyerOrderNums(uid); 582 BuyerOrderNums buyerOrderNumsCache = orderCacheService.getBuyerOrderNums(uid);
590 - if (buyerOrderNumsCache != null){ 583 + if (buyerOrderNumsCache != null) {
591 logger.info("getBuyerOrderNums result uid is {}, result is {}", uid, buyerOrderNumsCache); 584 logger.info("getBuyerOrderNums result uid is {}, result is {}", uid, buyerOrderNumsCache);
592 return buyerOrderNumsCache; 585 return buyerOrderNumsCache;
593 } 586 }
@@ -595,7 +588,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -595,7 +588,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
595 588
596 List<BuyOrderNums> buyOrderNumList = buyerOrderMapper.selectCntByUidStatusAll(uid); 589 List<BuyOrderNums> buyOrderNumList = buyerOrderMapper.selectCntByUidStatusAll(uid);
597 590
598 - if (CollectionUtils.isEmpty(buyOrderNumList)){ 591 + if (CollectionUtils.isEmpty(buyOrderNumList)) {
599 return BuyerOrderNums.builder().build(); 592 return BuyerOrderNums.builder().build();
600 } 593 }
601 594
@@ -618,12 +611,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -618,12 +611,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
618 return buyerOrderNums; 611 return buyerOrderNums;
619 } 612 }
620 613
621 - private int getValueDefalutZero(Map<Integer, Integer> map, List<Integer> status){ 614 + private int getValueDefalutZero(Map<Integer, Integer> map, List<Integer> status) {
622 615
623 int sum = 0; 616 int sum = 0;
624 - for(Integer key : status){ 617 + for (Integer key : status) {
625 int num = Objects.isNull(map.get(key)) ? 0 : map.get(key); 618 int num = Objects.isNull(map.get(key)) ? 0 : map.get(key);
626 - sum+=num; 619 + sum += num;
627 } 620 }
628 621
629 return sum; 622 return sum;
@@ -633,54 +626,52 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -633,54 +626,52 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
633 @Override 626 @Override
634 public boolean delete(int uid, long orderCode) { 627 public boolean delete(int uid, long orderCode) {
635 if (uid < 0 628 if (uid < 0
636 - || orderCode < 0){ 629 + || orderCode < 0) {
637 logger.warn("buyer delete, uid or orderCode empty, uid {}, orderCode {}", uid, orderCode); 630 logger.warn("buyer delete, uid or orderCode empty, uid {}, orderCode {}", uid, orderCode);
638 throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY); 631 throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY);
639 } 632 }
640 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(orderCode, uid); 633 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(orderCode, uid);
641 - if (Objects.isNull(buyerOrder) || buyerOrder.getBuyerOrderStatus() == DelStatus.IS_DEL.getCode()){ 634 + if (Objects.isNull(buyerOrder) || buyerOrder.getBuyerOrderStatus() == DelStatus.IS_DEL.getCode()) {
642 logger.warn("buyer delete, order not exist, uid {}, orderCode {}", uid, orderCode); 635 logger.warn("buyer delete, order not exist, uid {}, orderCode {}", uid, orderCode);
643 return false; 636 return false;
644 } 637 }
645 Integer status; 638 Integer status;
646 - if(ActionStatusHold.getBuyerCanDelStatusList().contains(status=buyerOrder.getStatus())){ 639 + if (ActionStatusHold.getBuyerCanDelStatusList().contains(status = buyerOrder.getStatus())) {
647 BuyerOrder target = new BuyerOrder(); 640 BuyerOrder target = new BuyerOrder();
648 target.setId(buyerOrder.getId()); 641 target.setId(buyerOrder.getId());
649 target.setBuyerOrderStatus(DelStatus.IS_DEL.getCode()); 642 target.setBuyerOrderStatus(DelStatus.IS_DEL.getCode());
650 boolean result = buyerOrderMapper.updateByPrimaryKeySelective(target) == 1; 643 boolean result = buyerOrderMapper.updateByPrimaryKeySelective(target) == 1;
651 - if(result){ 644 + if (result) {
652 cacheCleaner.cleanList(uid, TabType.BUY.getValue()); 645 cacheCleaner.cleanList(uid, TabType.BUY.getValue());
653 } 646 }
654 return result; 647 return result;
655 - }else{ 648 + } else {
656 logger.warn("buyer delete fail, order status {}", status); 649 logger.warn("buyer delete fail, order status {}", status);
657 } 650 }
658 return false; 651 return false;
659 } 652 }
660 653
661 654
662 -  
663 -  
664 @Override 655 @Override
665 public void confirmReceive(long orderCode) { 656 public void confirmReceive(long orderCode) {
666 logger.info("in confirmReceive, orderCode {}", orderCode); 657 logger.info("in confirmReceive, orderCode {}", orderCode);
667 - if(serviceOrderProcessor.isGoodsServiceOrder(orderCode)){ 658 + if (serviceOrderProcessor.isGoodsServiceOrder(orderCode)) {
668 logger.info("in confirmReceive isGoodsServiceOrder, orderCode {}", orderCode); 659 logger.info("in confirmReceive isGoodsServiceOrder, orderCode {}", orderCode);
669 660
670 ServiceOrderProcessor.ExistenceNode existenceNode = serviceOrderProcessor.findGoodsServiceInstanceAndExt(orderCode); 661 ServiceOrderProcessor.ExistenceNode existenceNode = serviceOrderProcessor.findGoodsServiceInstanceAndExt(orderCode);
671 int rows = existenceNode.getGoodsService().platformReceiveGoods(existenceNode.appraiseOrder); 662 int rows = existenceNode.getGoodsService().platformReceiveGoods(existenceNode.appraiseOrder);
672 - if (rows==0){ 663 + if (rows == 0) {
673 return; 664 return;
674 } 665 }
675 // 确认收货过来的是子订单号 666 // 确认收货过来的是子订单号
676 int uid = existenceNode.getAppraiseOrder().getUid(); 667 int uid = existenceNode.getAppraiseOrder().getUid();
677 Long parentOrderCode = existenceNode.getAppraiseOrder().getParentOrderCode(); 668 Long parentOrderCode = existenceNode.getAppraiseOrder().getParentOrderCode();
678 - if (parentOrderCode == null){ 669 + if (parentOrderCode == null) {
679 // 平台收货 内部调拨信息 670 // 平台收货 内部调拨信息
680 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER; 671 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
681 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer; 672 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer;
682 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.platform_receive; 673 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.platform_receive;
683 - expressInfoService.saveOperateTransferExpressInfo(existenceNode.getAppraiseOrder().getUid(), orderCode ,expressType.getCode(),expressDataType,operateTransferCode); 674 + expressInfoService.saveOperateTransferExpressInfo(existenceNode.getAppraiseOrder().getUid(), orderCode, expressType.getCode(), expressDataType, operateTransferCode);
684 return; 675 return;
685 } 676 }
686 // 上一个状态是[卖家已发货] 该父订单下状态为[卖家已发货]的子订单数量为0,代表父订单状态应该为 [已收货] 677 // 上一个状态是[卖家已发货] 该父订单下状态为[卖家已发货]的子订单数量为0,代表父订单状态应该为 [已收货]
@@ -689,28 +680,28 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -689,28 +680,28 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
689 logger.info("no confirm delivery sub order cnt is {}, parentOrderCode {}", cnt, parentOrderCode); 680 logger.info("no confirm delivery sub order cnt is {}, parentOrderCode {}", cnt, parentOrderCode);
690 int cdt = DateUtil.getCurrentTimeSecond(); 681 int cdt = DateUtil.getCurrentTimeSecond();
691 // 682 //
692 - if (cnt == 0){ 683 + if (cnt == 0) {
693 // 平台收货 内部调拨信息 684 // 平台收货 内部调拨信息
694 try { 685 try {
695 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER; 686 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
696 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer; 687 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer;
697 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.platform_receive; 688 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.platform_receive;
698 expressInfoService.saveOperateTransferExpressInfo(existenceNode.getAppraiseOrder().getUid(), parentOrderCode, expressType.getCode(), expressDataType, operateTransferCode); 689 expressInfoService.saveOperateTransferExpressInfo(existenceNode.getAppraiseOrder().getUid(), parentOrderCode, expressType.getCode(), expressDataType, operateTransferCode);
699 - }catch (Exception ex){ 690 + } catch (Exception ex) {
700 logger.warn("in confirmReceive isGoodsServiceOrder saveOperateTransferExpressInfo fail ,orderCode {} ", orderCode, ex); 691 logger.warn("in confirmReceive isGoodsServiceOrder saveOperateTransferExpressInfo fail ,orderCode {} ", orderCode, ex);
701 } 692 }
702 //update 693 //update
703 sellerDepositOrderService.platformFinishReceiveGoods(uid, parentOrderCode); 694 sellerDepositOrderService.platformFinishReceiveGoods(uid, parentOrderCode);
704 } 695 }
705 696
706 - }else{ 697 + } else {
707 698
708 confirmReceive4BuyerOrder(orderCode); 699 confirmReceive4BuyerOrder(orderCode);
709 } 700 }
710 701
711 } 702 }
712 703
713 - private void confirmReceive4BuyerOrder(long orderCode){ 704 + private void confirmReceive4BuyerOrder(long orderCode) {
714 705
715 OrderStatus expectStatus = OrderStatus.SELLER_SEND_OUT; 706 OrderStatus expectStatus = OrderStatus.SELLER_SEND_OUT;
716 OrderStatus targetStatus = OrderStatus.PLATFORM_RECEIVE; 707 OrderStatus targetStatus = OrderStatus.PLATFORM_RECEIVE;
@@ -718,40 +709,41 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -718,40 +709,41 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
718 BuyerOrderAssistant.PreparedData preparedData = buyerOrderAssistant.prepare(orderCode); 709 BuyerOrderAssistant.PreparedData preparedData = buyerOrderAssistant.prepare(orderCode);
719 BuyerOrder buyerOrder = preparedData.getBuyerOrder(); 710 BuyerOrder buyerOrder = preparedData.getBuyerOrder();
720 711
721 - if (buyerOrder != null && buyerOrder.getStatus() == expectStatus.getCode()){ 712 + if (buyerOrder != null && buyerOrder.getStatus() == expectStatus.getCode()) {
722 int uid = buyerOrder.getUid(); 713 int uid = buyerOrder.getUid();
723 int sellerUid = buyerOrder.getSellerUid(); 714 int sellerUid = buyerOrder.getSellerUid();
724 - logger.info("in confirmReceive begin update status orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid); 715 + logger.info("in confirmReceive begin update status orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
725 int num = buyerOrderMapper.updateStatusByOrderCode(orderCode, uid, expectStatus.getCode(), 716 int num = buyerOrderMapper.updateStatusByOrderCode(orderCode, uid, expectStatus.getCode(),
726 targetStatus.getCode(), DateUtil.getCurrentTimeSecond()); 717 targetStatus.getCode(), DateUtil.getCurrentTimeSecond());
727 718
728 //记录订单的状态变更信息 719 //记录订单的状态变更信息
729 - if(num>=1){  
730 - logger.info("in confirmReceive record status change, orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid); 720 + if (num >= 1) {
  721 + logger.info("in confirmReceive record status change, orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
731 buyerNoticeFacade.platformReceiveGoods(buyerOrder); 722 buyerNoticeFacade.platformReceiveGoods(buyerOrder);
732 - orderStatusFlowService.addAsy(buyerOrder.getOrderCode(),targetStatus.getCode()); 723 + orderStatusFlowService.addAsy(buyerOrder.getOrderCode(), targetStatus.getCode());
733 // 724 //
734 finishDepositGoodsIf(preparedData); 725 finishDepositGoodsIf(preparedData);
735 - }else{  
736 - logger.warn("in confirmReceive not record status change cause of update empty num , orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid); 726 + } else {
  727 + logger.warn("in confirmReceive not record status change cause of update empty num , orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
737 } 728 }
738 729
739 //记录调拨信息(只保存卖家一条) 730 //记录调拨信息(只保存卖家一条)
740 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER; 731 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
741 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer; 732 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer;
742 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.platform_receive; 733 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.platform_receive;
743 - expressInfoService.saveOperateTransferExpressInfo(sellerUid,orderCode,expressType.getCode(),expressDataType,operateTransferCode); 734 + expressInfoService.saveOperateTransferExpressInfo(sellerUid, orderCode, expressType.getCode(), expressDataType, operateTransferCode);
744 735
745 - cleanCacheAfterUpdateStatus(orderCode,uid,sellerUid); 736 + cleanCacheAfterUpdateStatus(orderCode, uid, sellerUid);
746 } 737 }
747 } 738 }
748 739
749 /** 740 /**
750 * 现货寄存订单 741 * 现货寄存订单
751 * 卖家使用寄存商品发货 742 * 卖家使用寄存商品发货
  743 + *
752 * @param preparedData 744 * @param preparedData
753 */ 745 */
754 - private void finishDepositGoodsIf(BuyerOrderAssistant.PreparedData preparedData){ 746 + private void finishDepositGoodsIf(BuyerOrderAssistant.PreparedData preparedData) {
755 BuyerOrder buyerOrder = preparedData.getBuyerOrder(); 747 BuyerOrder buyerOrder = preparedData.getBuyerOrder();
756 int uid = buyerOrder.getUid(); 748 int uid = buyerOrder.getUid();
757 Long orderCode = buyerOrder.getOrderCode(); 749 Long orderCode = buyerOrder.getOrderCode();
@@ -759,11 +751,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -759,11 +751,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
759 SkupType skupType = SkupType.getSkupType(psog.getAttributes()); 751 SkupType skupType = SkupType.getSkupType(psog.getAttributes());
760 boolean isInstockDepositOrder = BuyerOrderUtils.isInstockDeposit(skupType, buyerOrder.getAttributes()); 752 boolean isInstockDepositOrder = BuyerOrderUtils.isInstockDeposit(skupType, buyerOrder.getAttributes());
761 logger.info("platform confirmReceive orderCode {} buyerUid {} isInstockDepositOrder {}", orderCode, uid, isInstockDepositOrder); 753 logger.info("platform confirmReceive orderCode {} buyerUid {} isInstockDepositOrder {}", orderCode, uid, isInstockDepositOrder);
762 - if(isInstockDepositOrder){ 754 + if (isInstockDepositOrder) {
763 String depositCode = buyerOrderMetaService.getDepositCode(uid, orderCode); 755 String depositCode = buyerOrderMetaService.getDepositCode(uid, orderCode);
764 logger.info("platform confirmReceive orderCode {} buyerUid {} isInstockDepositOrder {} depositCode {}", 756 logger.info("platform confirmReceive orderCode {} buyerUid {} isInstockDepositOrder {} depositCode {}",
765 orderCode, uid, isInstockDepositOrder, depositCode); 757 orderCode, uid, isInstockDepositOrder, depositCode);
766 - if (StringUtils.isNotBlank(depositCode)){ 758 + if (StringUtils.isNotBlank(depositCode)) {
767 int depositUpdate = depositService.updateDelStatus(psog.getUid(), depositCode); 759 int depositUpdate = depositService.updateDelStatus(psog.getUid(), depositCode);
768 logger.info("platform confirmReceive update deposit DelStatus {} orderCode {} buyerUid {} depositCode {}", 760 logger.info("platform confirmReceive update deposit DelStatus {} orderCode {} buyerUid {} depositCode {}",
769 depositUpdate, orderCode, uid, depositCode); 761 depositUpdate, orderCode, uid, depositCode);
@@ -775,65 +767,64 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -775,65 +767,64 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
775 // 质检通过,不需要记录物流调拨信息 767 // 质检通过,不需要记录物流调拨信息
776 @Override 768 @Override
777 @Deprecated 769 @Deprecated
778 - public void qualityCheckPass(long orderCode){ 770 + public void qualityCheckPass(long orderCode) {
779 logger.info("in qualityCheckPass, orderCode {}", orderCode); 771 logger.info("in qualityCheckPass, orderCode {}", orderCode);
780 772
781 773
782 -  
783 OrderStatus expectStatus = OrderStatus.PLATFORM_RECEIVE; 774 OrderStatus expectStatus = OrderStatus.PLATFORM_RECEIVE;
784 OrderStatus targetStatus = OrderStatus.PLATFORM_CHECKING; 775 OrderStatus targetStatus = OrderStatus.PLATFORM_CHECKING;
785 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode); 776 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
786 777
787 - if (buyerOrder != null && buyerOrder.getStatus() == expectStatus.getCode()){ 778 + if (buyerOrder != null && buyerOrder.getStatus() == expectStatus.getCode()) {
788 int uid = buyerOrder.getUid(); 779 int uid = buyerOrder.getUid();
789 int sellerUid = buyerOrder.getSellerUid(); 780 int sellerUid = buyerOrder.getSellerUid();
790 - logger.info("in qualityCheckPass begin update status orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid);  
791 - int num=buyerOrderMapper.updateStatusByOrderCode(orderCode, uid, expectStatus.getCode(), 781 + logger.info("in qualityCheckPass begin update status orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
  782 + int num = buyerOrderMapper.updateStatusByOrderCode(orderCode, uid, expectStatus.getCode(),
792 targetStatus.getCode(), DateUtil.getCurrentTimeSecond()); 783 targetStatus.getCode(), DateUtil.getCurrentTimeSecond());
793 784
794 //记录订单的状态变更信息 785 //记录订单的状态变更信息
795 - if(num>=1){  
796 - logger.info("in qualityCheckPass record status change, orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid);  
797 - orderStatusFlowService.addAsy(buyerOrder.getOrderCode(),targetStatus.getCode()); 786 + if (num >= 1) {
  787 + logger.info("in qualityCheckPass record status change, orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
  788 + orderStatusFlowService.addAsy(buyerOrder.getOrderCode(), targetStatus.getCode());
798 789
799 //记录调拨信息(只保存卖家一条) 790 //记录调拨信息(只保存卖家一条)
800 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER; 791 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
801 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer; 792 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer;
802 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.judging; 793 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.judging;
803 - expressInfoService.saveOperateTransferExpressInfo(sellerUid,orderCode,expressType.getCode(),expressDataType,operateTransferCode); 794 + expressInfoService.saveOperateTransferExpressInfo(sellerUid, orderCode, expressType.getCode(), expressDataType, operateTransferCode);
804 795
805 796
806 - }else{  
807 - logger.warn("in qualityCheckPass not record status change cause of update empty num , orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid); 797 + } else {
  798 + logger.warn("in qualityCheckPass not record status change cause of update empty num , orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
808 } 799 }
809 800
810 - cleanCacheAfterUpdateStatus(orderCode,uid,sellerUid); 801 + cleanCacheAfterUpdateStatus(orderCode, uid, sellerUid);
811 } 802 }
812 } 803 }
813 804
814 // 瑕疵创建 805 // 瑕疵创建
815 @Override 806 @Override
816 - public void miniFaultCreate(SaveQualityCheckInfoRequest request){ 807 + public void miniFaultCreate(SaveQualityCheckInfoRequest request) {
817 logger.info("in miniFaultCreate, orderCode {}", request); 808 logger.info("in miniFaultCreate, orderCode {}", request);
818 long orderCode = request.getOrderCode(); 809 long orderCode = request.getOrderCode();
819 QualityCheck qualityCheck = request.getQualityCheck(); 810 QualityCheck qualityCheck = request.getQualityCheck();
820 OrderStatus expectStatus = OrderStatus.PLATFORM_RECEIVE; 811 OrderStatus expectStatus = OrderStatus.PLATFORM_RECEIVE;
821 OrderStatus targetStatus = OrderStatus.MINI_FAULT_WAITING; 812 OrderStatus targetStatus = OrderStatus.MINI_FAULT_WAITING;
822 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode); 813 BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
823 - if (buyerOrder == null ){  
824 - throw new ServiceException(400,"订单为空"); 814 + if (buyerOrder == null) {
  815 + throw new ServiceException(400, "订单为空");
825 } 816 }
826 817
827 - if( buyerOrder.getStatus() != expectStatus.getCode()){  
828 - throw new ServiceException(400,"订单状态发生变化"); 818 + if (buyerOrder.getStatus() != expectStatus.getCode()) {
  819 + throw new ServiceException(400, "订单状态发生变化");
829 } 820 }
830 int uid = buyerOrder.getUid(); 821 int uid = buyerOrder.getUid();
831 int sellerUid = buyerOrder.getSellerUid(); 822 int sellerUid = buyerOrder.getSellerUid();
832 823
833 //保存质检有问题的图片信息 824 //保存质检有问题的图片信息
834 - if(qualityCheck==null){  
835 - logger.warn("in miniFaultCreate qualityCheck is null, orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid);  
836 - throw new ServiceException(400,"瑕疵信息为空"); 825 + if (qualityCheck == null) {
  826 + logger.warn("in miniFaultCreate qualityCheck is null, orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
  827 + throw new ServiceException(400, "瑕疵信息为空");
837 } 828 }
838 qualityCheckMapper.insert(qualityCheck); 829 qualityCheckMapper.insert(qualityCheck);
839 830
@@ -845,24 +836,24 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -845,24 +836,24 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
845 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER; 836 EnumExpressType expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
846 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer; 837 EnumExpressDataType expressDataType = EnumExpressDataType.operate_transfer;
847 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.judging; 838 EnumExpressDataOperateTransferCode operateTransferCode = EnumExpressDataOperateTransferCode.judging;
848 - expressInfoService.saveOperateTransferExpressInfo(sellerUid,orderCode,expressType.getCode(),expressDataType,operateTransferCode); 839 + expressInfoService.saveOperateTransferExpressInfo(sellerUid, orderCode, expressType.getCode(), expressDataType, operateTransferCode);
849 840
850 //记录调拨信息(只保存卖家一条) 841 //记录调拨信息(只保存卖家一条)
851 expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER; 842 expressType = EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER;
852 expressDataType = EnumExpressDataType.operate_transfer; 843 expressDataType = EnumExpressDataType.operate_transfer;
853 operateTransferCode = EnumExpressDataOperateTransferCode.mini_fault_create; 844 operateTransferCode = EnumExpressDataOperateTransferCode.mini_fault_create;
854 - expressInfoService.saveOperateTransferExpressInfo(sellerUid,orderCode,expressType.getCode(),expressDataType,operateTransferCode); 845 + expressInfoService.saveOperateTransferExpressInfo(sellerUid, orderCode, expressType.getCode(), expressDataType, operateTransferCode);
855 846
856 //TODO 产生一个延时队列(24小时后,超时确认) 847 //TODO 产生一个延时队列(24小时后,超时确认)
857 BuyerMiniFaultOuterTimeEvent miniFaultOuterTimeEvent = BuyerMiniFaultOuterTimeEvent.builder().uid(uid).orderCode(orderCode).build(); 848 BuyerMiniFaultOuterTimeEvent miniFaultOuterTimeEvent = BuyerMiniFaultOuterTimeEvent.builder().uid(uid).orderCode(orderCode).build();
858 - logger.info("in miniFaultCreate, push event uid {} ,order code {} ", miniFaultOuterTimeEvent.getUid(),miniFaultOuterTimeEvent.getOrderCode()); 849 + logger.info("in miniFaultCreate, push event uid {} ,order code {} ", miniFaultOuterTimeEvent.getUid(), miniFaultOuterTimeEvent.getOrderCode());
859 EventBusPublisher.publishEvent(miniFaultOuterTimeEvent); 850 EventBusPublisher.publishEvent(miniFaultOuterTimeEvent);
860 851
861 852
862 - SellerOrderGoods sellerOrderGoods = cleanCacheAfterUpdateStatus(orderCode,uid,sellerUid); 853 + SellerOrderGoods sellerOrderGoods = cleanCacheAfterUpdateStatus(orderCode, uid, sellerUid);
863 Product product = Optional.ofNullable(sellerOrderGoods).map(SellerOrderGoods::getProductId).map(productMapper::selectByPrimaryKey).orElse(null); 854 Product product = Optional.ofNullable(sellerOrderGoods).map(SellerOrderGoods::getProductId).map(productMapper::selectByPrimaryKey).orElse(null);
864 //消息 855 //消息
865 - buyerNoticeFacade.miniFaultCreated(buyerOrder,sellerOrderGoods,product); 856 + buyerNoticeFacade.miniFaultCreated(buyerOrder, sellerOrderGoods, product);
866 857
867 //记录订单的状态变更信息 858 //记录订单的状态变更信息
868 logger.info("in miniFaultCreate record status change, orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid); 859 logger.info("in miniFaultCreate record status change, orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
@@ -871,29 +862,27 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -871,29 +862,27 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
871 } 862 }
872 863
873 864
874 -  
875 -  
876 @Override 865 @Override
877 public void modifyAddressOfDepositOrder(int uid, Long orderCode, String addressIdstr) { 866 public void modifyAddressOfDepositOrder(int uid, Long orderCode, String addressIdstr) {
878 - if (serviceOrderProcessor.isGoodsServiceOrder(orderCode)){ 867 + if (serviceOrderProcessor.isGoodsServiceOrder(orderCode)) {
879 sellerDepositOrderService.addOrModifyAddress(uid, orderCode, addressIdstr); 868 sellerDepositOrderService.addOrModifyAddress(uid, orderCode, addressIdstr);
880 return; 869 return;
881 } 870 }
882 871
883 int addressId = AddressUtil.getDecryptStr(addressIdstr); 872 int addressId = AddressUtil.getDecryptStr(addressIdstr);
884 - if (addressId < 0){ 873 + if (addressId < 0) {
885 logger.warn("modifyAddressOfDepositOrder addressId invalidate, uid {}, orderCode {}, addressId is {}", 874 logger.warn("modifyAddressOfDepositOrder addressId invalidate, uid {}, orderCode {}, addressId is {}",
886 uid, orderCode, addressIdstr); 875 uid, orderCode, addressIdstr);
887 throw new ServiceException(ServiceError.ORDER_ADDRESSID_INVALIDATE); 876 throw new ServiceException(ServiceError.ORDER_ADDRESSID_INVALIDATE);
888 } 877 }
889 BuyerOrder pbo = buyerOrderMapper.selectOnlyByOrderCode(orderCode); 878 BuyerOrder pbo = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
890 - if (pbo == null ){ 879 + if (pbo == null) {
891 logger.warn("in modifyAddressOfDepositOrder BuyerOrder is null,uid {} orderCode {} addressIdstr {}", 880 logger.warn("in modifyAddressOfDepositOrder BuyerOrder is null,uid {} orderCode {} addressIdstr {}",
892 uid, orderCode, addressIdstr); 881 uid, orderCode, addressIdstr);
893 return; 882 return;
894 } 883 }
895 Integer oa; 884 Integer oa;
896 - if (OrderAttributes.DEPOSITE.getCode() != (oa=pbo.getAttributes())){ 885 + if (OrderAttributes.DEPOSITE.getCode() != (oa = pbo.getAttributes())) {
897 logger.warn("in modifyAddressOfDepositOrder BuyerOrder.Attributes is {},uid {} orderCode {} addressIdstr {}", 886 logger.warn("in modifyAddressOfDepositOrder BuyerOrder.Attributes is {},uid {} orderCode {} addressIdstr {}",
898 oa, uid, orderCode, addressIdstr); 887 oa, uid, orderCode, addressIdstr);
899 return; 888 return;
@@ -936,7 +925,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -936,7 +925,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
936 925
937 @Override 926 @Override
938 public BuyerOrderMeta buildnoHiddenAddressMeta(int uid, long orderCode, String key, AddressInfo noHiddenBackAddress) { 927 public BuyerOrderMeta buildnoHiddenAddressMeta(int uid, long orderCode, String key, AddressInfo noHiddenBackAddress) {
939 - BuyerOrderMeta noHiddenAddressMeta=new BuyerOrderMeta(); 928 + BuyerOrderMeta noHiddenAddressMeta = new BuyerOrderMeta();
940 noHiddenAddressMeta.setUid(uid); 929 noHiddenAddressMeta.setUid(uid);
941 noHiddenAddressMeta.setOrderCode(orderCode); 930 noHiddenAddressMeta.setOrderCode(orderCode);
942 noHiddenAddressMeta.setMetaKey(key); 931 noHiddenAddressMeta.setMetaKey(key);
@@ -946,7 +935,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -946,7 +935,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
946 935
947 @Override 936 @Override
948 public BuyerOrderMeta buildHiddenAddressMeta(int uid, long orderCode, String hiddenKey, AddressInfo hiddenBackAddress) { 937 public BuyerOrderMeta buildHiddenAddressMeta(int uid, long orderCode, String hiddenKey, AddressInfo hiddenBackAddress) {
949 - BuyerOrderMeta hiddenAddressMeta=new BuyerOrderMeta(); 938 + BuyerOrderMeta hiddenAddressMeta = new BuyerOrderMeta();
950 hiddenAddressMeta.setUid(uid); 939 hiddenAddressMeta.setUid(uid);
951 hiddenAddressMeta.setOrderCode(orderCode); 940 hiddenAddressMeta.setOrderCode(orderCode);
952 hiddenAddressMeta.setMetaKey(hiddenKey); 941 hiddenAddressMeta.setMetaKey(hiddenKey);
@@ -968,13 +957,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -968,13 +957,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
968 } 957 }
969 958
970 959
971 -  
972 -  
973 //清理缓存 960 //清理缓存
974 - private SellerOrderGoods cleanCacheAfterUpdateStatus(long orderCode,int uid,int sellerUid){ 961 + private SellerOrderGoods cleanCacheAfterUpdateStatus(long orderCode, int uid, int sellerUid) {
975 BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(uid, orderCode); 962 BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(uid, orderCode);
976 SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(bog.getSkup()); 963 SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(bog.getSkup());
977 - logger.info("in cleanCacheAfterUpdateStatus begin clean cache orderCode {},uid {} ,sellerUid {}", orderCode,uid,sellerUid); 964 + logger.info("in cleanCacheAfterUpdateStatus begin clean cache orderCode {},uid {} ,sellerUid {}", orderCode, uid, sellerUid);
978 965
979 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(sellerUid, uid, orderCode); 966 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(sellerUid, uid, orderCode);
980 967
@@ -984,12 +971,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -984,12 +971,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
984 } 971 }
985 972
986 973
987 -  
988 @Override 974 @Override
989 public int processOrderDeliverByDepositGoods(BuyerOrderAssistant.PreparedData preparedData, 975 public int processOrderDeliverByDepositGoods(BuyerOrderAssistant.PreparedData preparedData,
990 - BuyerOrderAssistant.DepositSkuCheckNode dscNode){ 976 + BuyerOrderAssistant.DepositSkuCheckNode dscNode) {
991 977
992 - if (!dscNode.isExistDepositGoods()){ 978 + if (!dscNode.isExistDepositGoods()) {
993 return 0; 979 return 0;
994 } 980 }
995 BuyerOrderGoods pbog = preparedData.getBuyerOrderGoods(); 981 BuyerOrderGoods pbog = preparedData.getBuyerOrderGoods();
@@ -1001,7 +987,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1001,7 +987,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1001 Integer ownerUid = psd.getOwnerUid(); 987 Integer ownerUid = psd.getOwnerUid();
1002 Integer sellerUid = buyerOrder.getSellerUid(); 988 Integer sellerUid = buyerOrder.getSellerUid();
1003 Integer skup; 989 Integer skup;
1004 - boolean isExistSkup = Objects.nonNull(skup = psd.getNewSkup()) && skup>0; 990 + boolean isExistSkup = Objects.nonNull(skup = psd.getNewSkup()) && skup > 0;
1005 logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} skup {}", orderCode, depositCode, skup); 991 logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} skup {}", orderCode, depositCode, skup);
1006 992
1007 //寄存商品 出库准备 993 //寄存商品 出库准备
@@ -1031,7 +1017,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1031,7 +1017,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1031 logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} updateDepositWaitToPick {}", orderCode, depositCode, rows); 1017 logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} updateDepositWaitToPick {}", orderCode, depositCode, rows);
1032 1018
1033 1019
1034 - if (rows>0){ 1020 + if (rows > 0) {
1035 //bind deposit code 2 buyer order 1021 //bind deposit code 2 buyer order
1036 buyerOrderMetaService.saveDepositCode(depositCode, buyerUid, orderCode); 1022 buyerOrderMetaService.saveDepositCode(depositCode, buyerUid, orderCode);
1037 //check 1023 //check
@@ -1041,7 +1027,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1041,7 +1027,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1041 1027
1042 //skup 下架 1028 //skup 下架
1043 //skup 竟然在数据库有默认值0,什么鬼!!! 1029 //skup 竟然在数据库有默认值0,什么鬼!!!
1044 - if (isExistSkup){ 1030 + if (isExistSkup) {
1045 // 减库存 1031 // 减库存
1046 asyncExecutePrdTask(psd); 1032 asyncExecutePrdTask(psd);
1047 // 1033 //
@@ -1052,11 +1038,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1052,11 +1038,11 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1052 } 1038 }
1053 1039
1054 1040
1055 - private Future<Boolean> asyncExecutePrdTask(StorageDeposit psd){ 1041 + private Future<Boolean> asyncExecutePrdTask(StorageDeposit psd) {
1056 Integer skup = psd.getNewSkup(); 1042 Integer skup = psd.getNewSkup();
1057 Integer productId = psd.getProductId(); 1043 Integer productId = psd.getProductId();
1058 final ExecutorService executorService = ThreadPoolFactory.getCommomExecutorService(); 1044 final ExecutorService executorService = ThreadPoolFactory.getCommomExecutorService();
1059 - FutureTask<Boolean> futureTask = new FutureTask<>(()->productProxyService.subtractStorage(productId, skup)); 1045 + FutureTask<Boolean> futureTask = new FutureTask<>(() -> productProxyService.subtractStorage(productId, skup));
1060 executorService.submit(futureTask); 1046 executorService.submit(futureTask);
1061 logger.info("asyncExecutePrdTask submit task, skup {} productId {}", skup, productId); 1047 logger.info("asyncExecutePrdTask submit task, skup {} productId {}", skup, productId);
1062 return futureTask; 1048 return futureTask;
@@ -1065,6 +1051,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1065,6 +1051,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1065 /** 1051 /**
1066 * 这个方法请尽量保持单一原则 1052 * 这个方法请尽量保持单一原则
1067 * 如果有复杂的业务逻辑 如入参数据需要动态判定时 请在调用前处理 1053 * 如果有复杂的业务逻辑 如入参数据需要动态判定时 请在调用前处理
  1054 + *
1068 * @param preparedData (include buyerOrder) 1055 * @param preparedData (include buyerOrder)
1069 * @param req4Log 1056 * @param req4Log
1070 * @return 1057 * @return
@@ -1074,7 +1061,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1074,7 +1061,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1074 OrderStatus targetOrderStatus, 1061 OrderStatus targetOrderStatus,
1075 SellerDeliverToDepotReq req4Log 1062 SellerDeliverToDepotReq req4Log
1076 1063
1077 - ){ 1064 + ) {
1078 /*Integer expressCompanyId, 1065 /*Integer expressCompanyId,
1079 Integer expressType, 1066 Integer expressType,
1080 String wayBillCode,*/ 1067 String wayBillCode,*/
@@ -1085,7 +1072,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1085,7 +1072,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1085 final OrderStatus expectOrderStatus = OrderStatus.HAS_PAYED; 1072 final OrderStatus expectOrderStatus = OrderStatus.HAS_PAYED;
1086 1073
1087 logger.info("processBuyerOrderWhenSellerDeliver req {}, orderCode {},expectOrderStatus {} ,targetOrderStatus {} ", 1074 logger.info("processBuyerOrderWhenSellerDeliver req {}, orderCode {},expectOrderStatus {} ,targetOrderStatus {} ",
1088 - new Object[]{req4Log, orderCode, expectOrderStatus, targetOrderStatus}); 1075 + new Object[]{req4Log, orderCode, expectOrderStatus, targetOrderStatus});
1089 Integer orderStatus = buyerOrder.getStatus(); 1076 Integer orderStatus = buyerOrder.getStatus();
1090 if (orderStatus != expectOrderStatus.getCode()) { 1077 if (orderStatus != expectOrderStatus.getCode()) {
1091 logger.warn("deliverToDepot order status changed , orderCode {} orderStatus {}", orderCode, orderStatus); 1078 logger.warn("deliverToDepot order status changed , orderCode {} orderStatus {}", orderCode, orderStatus);
@@ -1103,7 +1090,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1103,7 +1090,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1103 int updateBuyerCnt = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerOrder.getUid(), 1090 int updateBuyerCnt = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerOrder.getUid(),
1104 expectOrderStatus.getCode(), targetOrderStatus.getCode(), DateUtil.getCurrentTimeSecond()); 1091 expectOrderStatus.getCode(), targetOrderStatus.getCode(), DateUtil.getCurrentTimeSecond());
1105 logger.info("processBuyerOrderWhenSellerDeliver updateBuyerCnt {}, orderCode {}", updateBuyerCnt, orderCode); 1092 logger.info("processBuyerOrderWhenSellerDeliver updateBuyerCnt {}, orderCode {}", updateBuyerCnt, orderCode);
1106 - if (updateBuyerCnt>0){ 1093 + if (updateBuyerCnt > 0) {
1107 //根据skup ,更新鉴定中心 1094 //根据skup ,更新鉴定中心
1108 int skup; 1095 int skup;
1109 skupService.setDepotNum(skup = buyerOrderGoods.getSkup(), depotNum); 1096 skupService.setDepotNum(skup = buyerOrderGoods.getSkup(), depotNum);
@@ -1112,12 +1099,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1112,12 +1099,12 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1112 final SellerOrderGoods psog = preparedData.getSellerOrderGoods(); 1099 final SellerOrderGoods psog = preparedData.getSellerOrderGoods();
1113 1100
1114 // 极速: 无需再向买家发一遍[卖家发货]消息 & 虚拟单号无物流 1101 // 极速: 无需再向买家发一遍[卖家发货]消息 & 虚拟单号无物流
1115 - if (psog.getAttributes() == OrderAttributes.FAST_DELIVERY.getCode()){ 1102 + if (psog.getAttributes() == OrderAttributes.FAST_DELIVERY.getCode()) {
1116 1103
1117 // 物流直接更新成1 1104 // 物流直接更新成1
1118 - buyerOrderMapper.updateSellerDeliveryStatusByOrderCode(orderCode, buyerUid,1);  
1119 - }else{  
1120 - if (targetOrderStatus == OrderStatus.SELLER_SEND_OUT){ 1105 + buyerOrderMapper.updateSellerDeliveryStatusByOrderCode(orderCode, buyerUid, 1);
  1106 + } else {
  1107 + if (targetOrderStatus == OrderStatus.SELLER_SEND_OUT) {
1121 buyerNoticeFacade.sellerDeliver2Depot(buyerOrder, psog); 1108 buyerNoticeFacade.sellerDeliver2Depot(buyerOrder, psog);
1122 //卖家物流检查 1109 //卖家物流检查
1123 BuyerOrderSellerDeliveryCheckEvent sellerDeliveryCheckEvent = BuyerOrderSellerDeliveryCheckEvent.builder().uid(buyerUid).sellerUid(sellerUid).orderCode(orderCode).build(); 1110 BuyerOrderSellerDeliveryCheckEvent sellerDeliveryCheckEvent = BuyerOrderSellerDeliveryCheckEvent.builder().uid(buyerUid).sellerUid(sellerUid).orderCode(orderCode).build();
@@ -1127,7 +1114,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { @@ -1127,7 +1114,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
1127 // 1114 //
1128 try { 1115 try {
1129 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(sellerUid, buyerUid, orderCode); 1116 cacheCleaner.cleanSellerAndBuyerOrderDetailAndList(sellerUid, buyerUid, orderCode);
1130 - }catch (Exception ex){ 1117 + } catch (Exception ex) {
1131 logger.warn("{}.processBuyerOrder clean cache fail, {}", getClass().getSimpleName(), orderCode, ex); 1118 logger.warn("{}.processBuyerOrder clean cache fail, {}", getClass().getSimpleName(), orderCode, ex);
1132 } 1119 }
1133 1120
  1 +package com.yohoufo.order.service.impl.function;
  2 +
  3 +import com.yohoufo.dal.order.model.BuyerOrder;
  4 +
  5 +public interface BuyerOrderNoticeSender {
  6 +
  7 + void notice(BuyerOrder buyerOrder);
  8 +
  9 +}
@@ -503,12 +503,27 @@ public class BuyerNoticeFacade extends BaseNoticeFacade { @@ -503,12 +503,27 @@ public class BuyerNoticeFacade extends BaseNoticeFacade {
503 .send(); 503 .send();
504 } 504 }
505 505
506 - public void noticeBuyerOfSellerShamSendOut(BuyerNoticeSender.Request request) { 506 + public void noticeBuyerOfSellerCanNotSendOut(BuyerOrder buyerOrder) {
  507 + String logPrefix = "notice buyer of seller can not send out";
  508 + Integer uid = buyerOrder.getUid();
  509 + Long orderCode = buyerOrder.getOrderCode();
  510 + try {
  511 + newBuyerNotice(buyerOrder)
  512 + .withLogPrefix(logPrefix)
  513 + .withInBox(InboxBusinessTypeEnum.NOTICE_BUYER_SELLER_CAN_NOT_SEND_OUT, orderCode)
  514 + .withSms(InboxBusinessTypeEnum.SMS_NOTICE_BUYER_SELLER_CAN_NOT_SEND_OUT, orderCode)
  515 + .send();
  516 + } catch (Exception e) {
  517 + log.warn("{} fail,uid {}", logPrefix, uid, e);
  518 + }
  519 +
  520 + }
  521 +
  522 + public void noticeBuyerOfSellerShamSendOut(BuyerOrder buyerOrder) {
507 String logPrefix = "notice buyer of seller sham send out"; 523 String logPrefix = "notice buyer of seller sham send out";
508 - Integer uid = request.getUid();  
509 - Long orderCode = request.getOrderCode(); 524 + Integer uid = buyerOrder.getUid();
  525 + Long orderCode = buyerOrder.getOrderCode();
510 try { 526 try {
511 - BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);  
512 newBuyerNotice(buyerOrder) 527 newBuyerNotice(buyerOrder)
513 .withLogPrefix(logPrefix) 528 .withLogPrefix(logPrefix)
514 .withInBox(InboxBusinessTypeEnum.NOTICE_BUYER_SELLER_SHAM_SEND_OUT, orderCode) 529 .withInBox(InboxBusinessTypeEnum.NOTICE_BUYER_SELLER_SHAM_SEND_OUT, orderCode)
@@ -368,7 +368,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade { @@ -368,7 +368,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade {
368 String goodsTypeTag = buildGoodsTypeTag(sog, buyerOrder, TabType.SELL); 368 String goodsTypeTag = buildGoodsTypeTag(sog, buyerOrder, TabType.SELL);
369 MsgSendFlg msgSendFlg = fastDeliveryProxyService.isFastDeliveryGoods(sog.getId()) ? MsgSendFlg.FAST_DELIVERY : MsgSendFlg.OTHER; 369 MsgSendFlg msgSendFlg = fastDeliveryProxyService.isFastDeliveryGoods(sog.getId()) ? MsgSendFlg.FAST_DELIVERY : MsgSendFlg.OTHER;
370 try { 370 try {
371 - Supplier<Product> productSupplier = ()-> productMapper.selectByPrimaryKey(sog.getProductId()); 371 + Supplier<Product> productSupplier = () -> productMapper.selectByPrimaryKey(sog.getProductId());
372 if (times == OrderConstant.SellerDeliverNotice.SECOND_TIME 372 if (times == OrderConstant.SellerDeliverNotice.SECOND_TIME
373 || times == OrderConstant.SellerDeliverNotice.LAST_TIME) { 373 || times == OrderConstant.SellerDeliverNotice.LAST_TIME) {
374 Product product = productSupplier.get(); 374 Product product = productSupplier.get();
@@ -380,7 +380,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade { @@ -380,7 +380,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade {
380 .withInBox(InboxBusinessTypeEnum.NOTICE_SELLER_DELIVER_GOODS, goodsTypeTag, prdName, sizeName, productCode, leftTime, timeUnit) 380 .withInBox(InboxBusinessTypeEnum.NOTICE_SELLER_DELIVER_GOODS, goodsTypeTag, prdName, sizeName, productCode, leftTime, timeUnit)
381 .withSms(InboxBusinessTypeEnum.SMS_NOTIFIED_SEND_SECOND, goodsTypeTag, prdName, sizeName, productCode, leftTime, timeUnit, orderCode) 381 .withSms(InboxBusinessTypeEnum.SMS_NOTIFIED_SEND_SECOND, goodsTypeTag, prdName, sizeName, productCode, leftTime, timeUnit, orderCode)
382 .send(); 382 .send();
383 - }else if (times == OrderConstant.SellerDeliverNotice.TIME_OF_CANCELED) { 383 + } else if (times == OrderConstant.SellerDeliverNotice.TIME_OF_CANCELED) {
384 Product product = productSupplier.get(); 384 Product product = productSupplier.get();
385 String productCode = product.getProductCode(); 385 String productCode = product.getProductCode();
386 newSellerNotice(sog) 386 newSellerNotice(sog)
@@ -609,6 +609,27 @@ public class SellerNoticeFacade extends BaseNoticeFacade { @@ -609,6 +609,27 @@ public class SellerNoticeFacade extends BaseNoticeFacade {
609 } 609 }
610 } 610 }
611 611
  612 + public void noticeSellerOfSellerCanNotSendOut(SellerOrderGoods sog, BuyerOrder buyerOrder) {
  613 + Integer sellerUid = sog.getUid();
  614 + String prdName = sog.getProductName();
  615 + String sizeName = sog.getSizeName();
  616 + try {
  617 + String goodsTypeTag = buildGoodsTypeTag(sog, buyerOrder, TabType.SELL);
  618 + boolean isFastDelivery = fastDeliveryProxyService.isFastDeliveryGoods(sog.getId());
  619 + Product product = productMapper.selectByPrimaryKey(sog.getProductId());
  620 + String productCode = product.getProductCode();
  621 + newSellerNotice(sog)
  622 + .withLogPrefix("notice seller of seller can not send out")
  623 + .withInBox(InboxBusinessTypeEnum.NOTICE_SELLER_SELLER_CAN_NOT_SEND_OUT,
  624 + goodsTypeTag, prdName, sizeName, productCode)
  625 + .withSmsIf(!isFastDelivery, InboxBusinessTypeEnum.SMS_NOTICE_SELLER_SELLER_CAN_NOT_SEND_OUT,
  626 + goodsTypeTag, prdName, sizeName, productCode, buyerOrder.getOrderCode())
  627 + .send();
  628 + } catch (Exception e) {
  629 + log.warn("notice seller of seller can not send out fail, sellerUid {}, prdName {} ", sellerUid, prdName, e);
  630 + }
  631 + }
  632 +
612 /** 633 /**
613 * 质检不通过,给卖家消息 634 * 质检不通过,给卖家消息
614 */ 635 */
@@ -907,7 +928,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade { @@ -907,7 +928,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade {
907 } 928 }
908 929
909 930
910 - public void buyerOrderCancelByBuyerPullWool(SellerOrderGoods sog){ 931 + public void buyerOrderCancelByBuyerPullWool(SellerOrderGoods sog) {
911 InboxBusinessTypeEnum ibtOfsms = InboxBusinessTypeEnum.SMS_NOTICE_SELLER_WHEN_BUYER_PULL_WOOL; 932 InboxBusinessTypeEnum ibtOfsms = InboxBusinessTypeEnum.SMS_NOTICE_SELLER_WHEN_BUYER_PULL_WOOL;
912 InboxBusinessTypeEnum ibt = InboxBusinessTypeEnum.NOTICE_SELLER_WHEN_BUYER_PULL_WOOL; 933 InboxBusinessTypeEnum ibt = InboxBusinessTypeEnum.NOTICE_SELLER_WHEN_BUYER_PULL_WOOL;
913 Integer sellerUid = sog.getUid(); 934 Integer sellerUid = sog.getUid();
@@ -923,7 +944,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade { @@ -923,7 +944,7 @@ public class SellerNoticeFacade extends BaseNoticeFacade {
923 .withInBox(ibt, inboxParams) 944 .withInBox(ibt, inboxParams)
924 .withSms(ibtOfsms, smsParams) 945 .withSms(ibtOfsms, smsParams)
925 .send(); 946 .send();
926 - }catch (Exception ex){ 947 + } catch (Exception ex) {
927 log.warn("notice seller buyerOrderCancelByBuyerPullWool fail, sellerUid {}, skup {} ", sellerUid, sog.getId(), ex); 948 log.warn("notice seller buyerOrderCancelByBuyerPullWool fail, sellerUid {}, skup {} ", sellerUid, sog.getId(), ex);
928 } 949 }
929 } 950 }