|
@@ -10,6 +10,7 @@ import com.yohobuy.ufo.model.order.common.TabType; |
|
@@ -10,6 +10,7 @@ import com.yohobuy.ufo.model.order.common.TabType; |
10
|
import com.yohoufo.common.ApiResponse;
|
10
|
import com.yohoufo.common.ApiResponse;
|
11
|
import com.yohoufo.common.alarm.EventBusPublisher;
|
11
|
import com.yohoufo.common.alarm.EventBusPublisher;
|
12
|
import com.yohoufo.common.alarm.SmsAlarmEvent;
|
12
|
import com.yohoufo.common.alarm.SmsAlarmEvent;
|
|
|
13
|
+import com.yohoufo.common.exception.UfoServiceException;
|
13
|
import com.yohoufo.common.utils.DateUtil;
|
14
|
import com.yohoufo.common.utils.DateUtil;
|
14
|
import com.yohoufo.dal.order.*;
|
15
|
import com.yohoufo.dal.order.*;
|
15
|
import com.yohoufo.dal.order.model.*;
|
16
|
import com.yohoufo.dal.order.model.*;
|
|
@@ -104,7 +105,7 @@ public class AppraiseService { |
|
@@ -104,7 +105,7 @@ public class AppraiseService { |
104
|
throw new ServiceException(ServiceError.ORDER_NULL);
|
105
|
throw new ServiceException(ServiceError.ORDER_NULL);
|
105
|
}
|
106
|
}
|
106
|
final OrderStatus expectOrderStatus = OrderStatus.PLATFORM_CHECKING;
|
107
|
final OrderStatus expectOrderStatus = OrderStatus.PLATFORM_CHECKING;
|
107
|
- final OrderStatus targetOrderStatus = OrderStatus.WAITING_RECEIVE;
|
108
|
+ final OrderStatus targetOrderStatus = OrderStatus.JUDGE_PASS;
|
108
|
if (expectOrderStatus.getCode() != buyerOrder.getStatus().intValue()){
|
109
|
if (expectOrderStatus.getCode() != buyerOrder.getStatus().intValue()){
|
109
|
LOGGER.warn("in appraiseSuccess, buyer Order orderCode {} pstatus {}, expect Order Status {}",
|
110
|
LOGGER.warn("in appraiseSuccess, buyer Order orderCode {} pstatus {}, expect Order Status {}",
|
110
|
orderCode, buyerOrder.getStatus(), expectOrderStatus);
|
111
|
orderCode, buyerOrder.getStatus(), expectOrderStatus);
|
|
@@ -188,7 +189,8 @@ public class AppraiseService { |
|
@@ -188,7 +189,8 @@ public class AppraiseService { |
188
|
BuyerConfirmEvent buyerConfirmEvent = BuyerConfirmEvent.builder().uid(buyerUid).orderCode(orderCode).build();
|
189
|
BuyerConfirmEvent buyerConfirmEvent = BuyerConfirmEvent.builder().uid(buyerUid).orderCode(orderCode).build();
|
189
|
EventBusPublisher.publishEvent(buyerConfirmEvent);
|
190
|
EventBusPublisher.publishEvent(buyerConfirmEvent);
|
190
|
//记录物流信息
|
191
|
//记录物流信息
|
191
|
- expressInfoService.appraiseSuccess(buyerUid, expressCompanyId, orderCode, wayBillCode, depotNum,mobile);
|
192
|
+ //不发物流
|
|
|
193
|
+ //expressInfoService.appraiseSuccess(buyerUid, expressCompanyId, orderCode, wayBillCode, depotNum,mobile);
|
192
|
//平台已发货给买家
|
194
|
//平台已发货给买家
|
193
|
inBoxFacade.appraisePassNotice(buyerUid, orderCode, sellerOrderGoods);
|
195
|
inBoxFacade.appraisePassNotice(buyerUid, orderCode, sellerOrderGoods);
|
194
|
}catch (Exception ex){
|
196
|
}catch (Exception ex){
|
|
@@ -273,6 +275,106 @@ public class AppraiseService { |
|
@@ -273,6 +275,106 @@ public class AppraiseService { |
273
|
}
|
275
|
}
|
274
|
|
276
|
|
275
|
/**
|
277
|
/**
|
|
|
278
|
+ * 发货
|
|
|
279
|
+ * (1)更新订单状态
|
|
|
280
|
+ * (2)记录物流
|
|
|
281
|
+ * (3)消息
|
|
|
282
|
+ */
|
|
|
283
|
+ public void deliverGoods(AppraiseExpressInfoBo appraiseExpressInfoBo){
|
|
|
284
|
+ Integer expressCompanyId = appraiseExpressInfoBo.getExpressCompanyId();
|
|
|
285
|
+ Long orderCode=appraiseExpressInfoBo.getOrderCode();
|
|
|
286
|
+ String wayBillCode=appraiseExpressInfoBo.getWayBillCode();
|
|
|
287
|
+ Integer depotNum=appraiseExpressInfoBo.getDepotNum();
|
|
|
288
|
+ String mobile=appraiseExpressInfoBo.getMobile();
|
|
|
289
|
+
|
|
|
290
|
+ BuyerOrder buyerOrder = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
|
|
|
291
|
+
|
|
|
292
|
+ if (buyerOrder == null){
|
|
|
293
|
+ LOGGER.warn("deliverGoods getOrderInfo order not exist, orderCode {}", orderCode);
|
|
|
294
|
+ throw new ServiceException(ServiceError.ORDER_NULL);
|
|
|
295
|
+ }
|
|
|
296
|
+
|
|
|
297
|
+ OrderStatus expectStatus = OrderStatus.JUDGE_PASS;
|
|
|
298
|
+ final OrderStatus targetStatus = OrderStatus.WAITING_RECEIVE;
|
|
|
299
|
+ if (buyerOrder.getStatus() != expectStatus.getCode()){
|
|
|
300
|
+ LOGGER.warn("deliverGoods expectStatus {}, actual status {}, orderCode {}", expectStatus,
|
|
|
301
|
+ buyerOrder.getStatus(), orderCode);
|
|
|
302
|
+ throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
|
|
|
303
|
+ }
|
|
|
304
|
+
|
|
|
305
|
+ //更新状态为 (待收货[买家])
|
|
|
306
|
+ int buyerUid = buyerOrder.getUid();
|
|
|
307
|
+ BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(buyerUid, orderCode);
|
|
|
308
|
+ int skup = bog.getSkup();
|
|
|
309
|
+ SellerOrder sellerOrder = sellerOrderMapper.selectBySkup(skup);
|
|
|
310
|
+ SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(skup);
|
|
|
311
|
+
|
|
|
312
|
+ int updateBuyerCnt = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerUid,
|
|
|
313
|
+ expectStatus.getCode(), targetStatus.getCode(), DateUtil.getCurrentTimeSecond());
|
|
|
314
|
+
|
|
|
315
|
+ LOGGER.info("deliverGoods updateBuyerCnt {} ,expectStatus {}, actual status {}, orderCode {}", updateBuyerCnt ,expectStatus,
|
|
|
316
|
+ buyerOrder.getStatus(), orderCode);
|
|
|
317
|
+ if(updateBuyerCnt==1){
|
|
|
318
|
+ int sellerUid = buyerOrder.getSellerUid();
|
|
|
319
|
+
|
|
|
320
|
+ //记录物流信息
|
|
|
321
|
+ expressInfoService.appraiseSuccess(buyerUid, expressCompanyId, orderCode, wayBillCode, depotNum,mobile);
|
|
|
322
|
+ //平台已发货给买家 TODO
|
|
|
323
|
+ //inBoxFacade.appraisePassNotice(buyerUid, orderCode, sellerOrderGoods);
|
|
|
324
|
+
|
|
|
325
|
+ //清理
|
|
|
326
|
+ cacheCleaner.delete(Arrays.asList(CacheKeyBuilder.orderListKey(sellerUid, TabType.SELL.getValue()),
|
|
|
327
|
+ CacheKeyBuilder.orderListKey(buyerUid, TabType.BUY.getValue()),
|
|
|
328
|
+ CacheKeyBuilder.sellerOrderDetailKey(sellerOrderGoods),
|
|
|
329
|
+ CacheKeyBuilder.orderDetailKey(sellerUid, TabType.SELL.getValue(), orderCode),
|
|
|
330
|
+ CacheKeyBuilder.orderDetailKey(buyerUid,TabType.BUY.getValue(), orderCode),
|
|
|
331
|
+ CacheKeyBuilder.buyerOrderNums(buyerUid)));
|
|
|
332
|
+
|
|
|
333
|
+ ErpBuyerOrderEvent event = new ErpBuyerOrderEvent(buyerUid);
|
|
|
334
|
+ EventBusPublisher.publishEvent(event);
|
|
|
335
|
+
|
|
|
336
|
+ }else{
|
|
|
337
|
+ LOGGER.warn("in deliverGoods update buyer count fail ,expectStatus {}, actual status {}, orderCode {}", updateBuyerCnt ,expectStatus,
|
|
|
338
|
+ buyerOrder.getStatus(), orderCode);
|
|
|
339
|
+ throw new UfoServiceException(400,"更新订单状态失败");
|
|
|
340
|
+ }
|
|
|
341
|
+ }
|
|
|
342
|
+
|
|
|
343
|
+ /**
|
|
|
344
|
+ * 鉴定不通过退回
|
|
|
345
|
+ * (1)记录物流
|
|
|
346
|
+ * (2)消息
|
|
|
347
|
+ */
|
|
|
348
|
+ public void returnBackOrderCauseOfJudgeFailure(AppraiseExpressInfoBo appraiseExpressInfoBo){
|
|
|
349
|
+ Integer expressCompanyId = appraiseExpressInfoBo.getExpressCompanyId();
|
|
|
350
|
+ Long orderCode=appraiseExpressInfoBo.getOrderCode();
|
|
|
351
|
+ String wayBillCode=appraiseExpressInfoBo.getWayBillCode();
|
|
|
352
|
+ Integer depotNum=appraiseExpressInfoBo.getDepotNum();
|
|
|
353
|
+ String mobile=appraiseExpressInfoBo.getMobile();
|
|
|
354
|
+
|
|
|
355
|
+ BuyerOrder buyerOrder = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
|
|
|
356
|
+
|
|
|
357
|
+ if (buyerOrder == null){
|
|
|
358
|
+ LOGGER.warn("returnBackOrderCauseOfJudgeFailure getOrderInfo order not exist, orderCode {}", orderCode);
|
|
|
359
|
+ throw new ServiceException(ServiceError.ORDER_NULL);
|
|
|
360
|
+ }
|
|
|
361
|
+
|
|
|
362
|
+ OrderStatus expectStatus = OrderStatus.CHECKING_FAKE;
|
|
|
363
|
+ if (buyerOrder.getStatus() != expectStatus.getCode()){
|
|
|
364
|
+ LOGGER.warn("returnBackOrderCauseOfJudgeFailure expectStatus {}, actual status {}, orderCode {}", expectStatus,
|
|
|
365
|
+ buyerOrder.getStatus(), orderCode);
|
|
|
366
|
+ throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
|
|
|
367
|
+ }
|
|
|
368
|
+
|
|
|
369
|
+ //更新物流信息
|
|
|
370
|
+ int sellerUid = buyerOrder.getSellerUid();
|
|
|
371
|
+ expressInfoService.appraiseFail(sellerUid, expressCompanyId, orderCode, wayBillCode, depotNum,mobile);
|
|
|
372
|
+
|
|
|
373
|
+ //发消息给卖家 TODO
|
|
|
374
|
+ //inBoxFacade.sendCancelledProductToSellerByCenter(sellerUid,wayBillCode);
|
|
|
375
|
+ }
|
|
|
376
|
+
|
|
|
377
|
+ /**
|
276
|
* 直接退回商品,记录物流,不涉及状态更改
|
378
|
* 直接退回商品,记录物流,不涉及状态更改
|
277
|
* @param expressCompanyId
|
379
|
* @param expressCompanyId
|
278
|
* @param orderCode
|
380
|
* @param orderCode
|
|
@@ -396,6 +498,7 @@ public class AppraiseService { |
|
@@ -396,6 +498,7 @@ public class AppraiseService { |
396
|
payRefundService.refund(req, bleb);
|
498
|
payRefundService.refund(req, bleb);
|
397
|
//
|
499
|
//
|
398
|
|
500
|
|
|
|
501
|
+ //TODO 消息
|
399
|
inBoxFacade.noticeSellerWhenAppraiseFail( sellerOrderGoods,orderCode,wayBillCode);
|
502
|
inBoxFacade.noticeSellerWhenAppraiseFail( sellerOrderGoods,orderCode,wayBillCode);
|
400
|
inBoxFacade.buyerGetEarnestMoneyWhenAppraiseFail(buyerUid, buyerOrder.getOrderCode(), sellerOrderGoods.getProductName());
|
503
|
inBoxFacade.buyerGetEarnestMoneyWhenAppraiseFail(buyerUid, buyerOrder.getOrderCode(), sellerOrderGoods.getProductName());
|
401
|
}catch (Exception ex){
|
504
|
}catch (Exception ex){
|
|
@@ -414,7 +517,8 @@ public class AppraiseService { |
|
@@ -414,7 +517,8 @@ public class AppraiseService { |
414
|
}finally {
|
517
|
}finally {
|
415
|
|
518
|
|
416
|
//更新物流信息,写到最后
|
519
|
//更新物流信息,写到最后
|
417
|
- expressInfoService.appraiseFail(sellerUid, expressCompanyId, orderCode, wayBillCode, depotNum,mobile);
|
520
|
+ //鉴定不通过,不发物流
|
|
|
521
|
+ //expressInfoService.appraiseFail(sellerUid, expressCompanyId, orderCode, wayBillCode, depotNum,mobile);
|
418
|
}
|
522
|
}
|
419
|
|
523
|
|
420
|
}else{
|
524
|
}else{
|