mirror of https://github.com/jeecgboot/jeecg-boot
Merge pull request #96 from LQYBill/fix/mabangJobOverridingContent
fix: mabang job, overriding order contentpull/8040/head
commit
58fde4e98d
|
@ -7,6 +7,7 @@ import org.codehaus.jettison.json.JSONObject;
|
|||
import org.jeecg.modules.business.domain.api.mabang.dochangeorder.ArchiveOrderRequest;
|
||||
import org.jeecg.modules.business.domain.api.mabang.dochangeorder.ArchiveOrderRequestBody;
|
||||
import org.jeecg.modules.business.domain.api.mabang.dochangeorder.ChangeOrderResponse;
|
||||
import org.jeecg.modules.business.service.IPlatformOrderMabangService;
|
||||
import org.jeecg.modules.business.service.IPlatformOrderService;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobDataMap;
|
||||
|
@ -36,6 +37,8 @@ public class ArchiveOrderJob implements Job {
|
|||
|
||||
@Autowired
|
||||
private IPlatformOrderService platformOrderService;
|
||||
@Autowired
|
||||
private IPlatformOrderMabangService platformOrderMabangService;
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext context) throws JobExecutionException {
|
||||
|
@ -86,7 +89,7 @@ public class ArchiveOrderJob implements Job {
|
|||
platformOrderIds.forEach(s -> archiveOrderRequestBodies.add(new ArchiveOrderRequestBody(s)));
|
||||
|
||||
log.info("{} order archiving requests to be sent to MabangAPI", archiveOrderRequestBodies.size());
|
||||
|
||||
List<String> platformOrderIdsArchived = new ArrayList<>();
|
||||
List<CompletableFuture<Boolean>> changeOrderFutures = archiveOrderRequestBodies.stream()
|
||||
.map(archiveOrderRequestBody -> CompletableFuture.supplyAsync(() -> {
|
||||
boolean success = false;
|
||||
|
@ -94,7 +97,9 @@ public class ArchiveOrderJob implements Job {
|
|||
ArchiveOrderRequest archiveOrderRequest = new ArchiveOrderRequest(archiveOrderRequestBody);
|
||||
ChangeOrderResponse response = archiveOrderRequest.send();
|
||||
success = response.success();
|
||||
} catch (RuntimeException e) {
|
||||
if(success)
|
||||
platformOrderIdsArchived.add(archiveOrderRequestBody.getPlatformOrderId());
|
||||
} catch (RuntimeException e) {
|
||||
log.error("Error communicating with MabangAPI", e);
|
||||
}
|
||||
return success;
|
||||
|
@ -103,5 +108,11 @@ public class ArchiveOrderJob implements Job {
|
|||
List<Boolean> results = changeOrderFutures.stream().map(CompletableFuture::join).collect(Collectors.toList());
|
||||
long nbSuccesses = results.stream().filter(b -> b).count();
|
||||
log.info("{}/{} order archiving requests have succeeded.", nbSuccesses, archiveOrderRequestBodies.size());
|
||||
|
||||
try {
|
||||
platformOrderMabangService.syncOrdersFromMabang(platformOrderIdsArchived);
|
||||
} catch (JSONException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.jeecg.modules.business.domain.job.ThrottlingExecutorService;
|
|||
import org.jeecg.modules.business.entity.PlatformOrder;
|
||||
import org.jeecg.modules.business.mapper.PlatformOrderMabangMapper;
|
||||
import org.jeecg.modules.business.service.IPlatformOrderMabangService;
|
||||
import org.jeecg.modules.business.service.IPlatformOrderService;
|
||||
import org.jeecg.modules.business.vo.PlatformOrderOperation;
|
||||
import org.jeecg.modules.business.vo.Responses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -46,6 +47,8 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
@Autowired
|
||||
private PlatformOrderMabangMapper platformOrderMabangMapper;
|
||||
@Autowired
|
||||
private IPlatformOrderService orderservice;
|
||||
@Autowired
|
||||
private ISysBaseAPI ISysBaseApi;
|
||||
|
||||
private static final Integer DEFAULT_NUMBER_OF_THREADS = 2;
|
||||
|
@ -99,6 +102,9 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
) {
|
||||
// If order wasn't invoiced pre-shipping, we can remove and re-insert contents
|
||||
if (orderInDatabase.getShippingInvoiceNumber() == null) {
|
||||
boolean hasInvoiceNumber = orderservice.getById(orderInDatabase.getId()).getShippingInvoiceNumber() != null;
|
||||
if(hasInvoiceNumber)
|
||||
continue;
|
||||
oldOrders.add(retrievedOrder);
|
||||
} else {
|
||||
invoicedShippedOrders.add(retrievedOrder);
|
||||
|
@ -123,11 +129,11 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
/* for new orders, insert them to DB and their children */
|
||||
List<OrderItem> allNewItems = prepareItems(newOrders);
|
||||
try {
|
||||
if (newOrders.size() != 0) {
|
||||
if (!newOrders.isEmpty()) {
|
||||
log.info("{} orders to be inserted/updated.", newOrders.size());
|
||||
platformOrderMabangMapper.insertOrdersFromMabang(newOrders);
|
||||
}
|
||||
if (allNewItems.size() != 0) {
|
||||
if (!allNewItems.isEmpty()) {
|
||||
platformOrderMabangMapper.insertOrderItemsFromMabang(allNewItems);
|
||||
log.info("{} order items to be inserted/updated.", allNewItems.size());
|
||||
}
|
||||
|
@ -138,12 +144,12 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
// for old orders, update themselves and delete and reinsert their content.
|
||||
List<OrderItem> allNewItemsOfOldItems = prepareItems(oldOrders);
|
||||
try {
|
||||
if (oldOrders.size() != 0) {
|
||||
if (!oldOrders.isEmpty()) {
|
||||
log.info("{} orders to be inserted/updated.", oldOrders.size());
|
||||
platformOrderMabangMapper.batchUpdateById(oldOrders);
|
||||
platformOrderMabangMapper.batchDeleteByMainID(oldOrders.stream().map(Order::getId).collect(toList()));
|
||||
}
|
||||
if (ordersFromShippedToCompleted.size() != 0) {
|
||||
if (!ordersFromShippedToCompleted.isEmpty()) {
|
||||
log.info("{} orders to be updated from Shipped to Completed.", ordersFromShippedToCompleted.size());
|
||||
platformOrderMabangMapper.batchUpdateById(ordersFromShippedToCompleted);
|
||||
log.info("Contents of {} orders to be updated from Shipped to Completed.", ordersFromShippedToCompleted.size());
|
||||
|
@ -151,7 +157,7 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
ordersFromShippedToCompleted.stream().map(Order::getId).collect(toList()),
|
||||
OrderStatus.Completed.getCode());
|
||||
}
|
||||
if (invoicedShippedOrders.size() != 0) {
|
||||
if (!invoicedShippedOrders.isEmpty()) {
|
||||
log.info("{} orders to be updated from Pending/Preparing to Shipped.", invoicedShippedOrders.size());
|
||||
platformOrderMabangMapper.batchUpdateById(invoicedShippedOrders);
|
||||
log.info("Contents of {} orders to be updated from Pending/Preparing to Shipped.", invoicedShippedOrders.size());
|
||||
|
@ -159,7 +165,7 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
invoicedShippedOrders.stream().map(Order::getId).collect(toList()),
|
||||
OrderStatus.Shipped.getCode());
|
||||
}
|
||||
if (obsoleteOrders.size() != 0) {
|
||||
if (!obsoleteOrders.isEmpty()) {
|
||||
log.info("{} orders to become obsolete.", obsoleteOrders.size());
|
||||
platformOrderMabangMapper.batchUpdateById(obsoleteOrders);
|
||||
log.info("Contents of {} orders to be updated to Obsolete.", obsoleteOrders.size());
|
||||
|
@ -167,7 +173,7 @@ public class PlatformOrderMabangServiceImpl extends ServiceImpl<PlatformOrderMab
|
|||
obsoleteOrders.stream().map(Order::getId).collect(toList()),
|
||||
OrderStatus.Obsolete.getCode());
|
||||
}
|
||||
if (allNewItemsOfOldItems.size() != 0) {
|
||||
if (!allNewItemsOfOldItems.isEmpty()) {
|
||||
log.info("{} order items to be inserted/updated.", allNewItemsOfOldItems.size());
|
||||
platformOrderMabangMapper.insertOrderItemsFromMabang(allNewItemsOfOldItems);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue