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