|
|
@@ -11,16 +11,19 @@ import com.dderp.common.entity.base.InvokeCallResult;
|
|
|
import com.dderp.common.entity.invoke.douyin.DouyinCallBody;
|
|
|
import com.dderp.common.entity.order.BusinessOrder;
|
|
|
import com.dderp.common.entity.site.ERPTokenUser;
|
|
|
+import com.dderp.common.entity.store.StoreInfo;
|
|
|
import com.dderp.common.entity.store.StorePlatform;
|
|
|
import com.dderp.common.tool.DouyinTools;
|
|
|
import com.dySweetFishPlugin.redis.RedisService;
|
|
|
import com.sweetfish.convert.json.JsonConvert;
|
|
|
+import com.sweetfish.convert.json.JsonFactory;
|
|
|
import com.sweetfish.net.WorkThread;
|
|
|
import com.sweetfish.net.http.*;
|
|
|
import com.sweetfish.service.RetResult;
|
|
|
import com.sweetfish.util.AnyValue;
|
|
|
import com.sweetfish.util.AutoLoad;
|
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
|
import org.apache.logging.log4j.Logger;
|
|
|
|
|
|
@@ -57,6 +60,11 @@ public class OrderCallServlet extends HttpServlet {
|
|
|
@Resource(name = "property.douyin.appSecret")
|
|
|
private String douyinAppSecret;
|
|
|
|
|
|
+ private JsonConvert orderWriteConvert;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ JsonFactory jsonRootFactory;
|
|
|
+
|
|
|
private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName());
|
|
|
|
|
|
private ExecutorService getExecutor() {
|
|
|
@@ -69,7 +77,10 @@ public class OrderCallServlet extends HttpServlet {
|
|
|
|
|
|
@Override
|
|
|
public void init(HttpContext context, AnyValue config) {
|
|
|
- super.init(context, config);
|
|
|
+ final JsonFactory orderChildFactory = jsonRootFactory.createChild();
|
|
|
+ orderChildFactory.register(BusinessOrder.class, true, "orderFinances", "detailItemList", "orderDeliveryInfo", "riderItemList");
|
|
|
+ orderChildFactory.reloadCoder(BusinessOrder.class);
|
|
|
+ this.orderWriteConvert = orderChildFactory.getConvert();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -120,6 +131,13 @@ public class OrderCallServlet extends HttpServlet {
|
|
|
currentUser.setId(-100);
|
|
|
currentUser.setUserName("抖音来客");
|
|
|
|
|
|
+ InvokeCallParams callParams = new InvokeCallParams();
|
|
|
+ callParams.setParams(callBody.getContent());
|
|
|
+ callParams.getJsonConvertMap().put("orderConvertor", orderWriteConvert);
|
|
|
+ callParams.setCurrentUser(currentUser);
|
|
|
+ callParams.setDataSourceId(dataSourceId);
|
|
|
+ callParams.setSupplierCode(supplierCode);
|
|
|
+
|
|
|
switch (callBody.getEvent()) {
|
|
|
case "life_saas_cooperate_auth_with_bind": {
|
|
|
//能力授权&门店绑定消息
|
|
|
@@ -132,123 +150,58 @@ public class OrderCallServlet extends HttpServlet {
|
|
|
}
|
|
|
case "life_takeout_order_pay_success": {
|
|
|
//用户下单消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_CreateOrder_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]商户下单成功");
|
|
|
- else logger.error("[抖音来客]商户下单失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_CreateOrder_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_takeout_order_merchant_receive": {
|
|
|
//商户接单消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_AcceptOrder_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]商户接单成功");
|
|
|
- else logger.error("[抖音来客]商户接单失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_AcceptOrder_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_takeout_order_merchant_refuse": {
|
|
|
//商户拒单消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_RejectOrder_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]商户拒单成功");
|
|
|
- else logger.error("[抖音来客]商户拒单失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_RejectOrder_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_trade_refund_complete": {
|
|
|
//订单已取消消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_CancelOrder_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]订单取消成功");
|
|
|
- else logger.error("[抖音来客]订单取消失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_CancelOrder_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_trade_refund_audit": {
|
|
|
//订单已同意/拒绝退款消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_ProcessRefund_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]订单已同意/拒绝退款成功");
|
|
|
- else logger.error("[抖音来客]订单已同意/拒绝退款失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_ProcessRefund_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_trade_takeout_order_finish": {
|
|
|
//订单完成消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_CompleteOrder_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]订单完成成功");
|
|
|
- else logger.error("[抖音来客]订单完成失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_CompleteOrder_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_trade_part_refund_complete": {
|
|
|
//订单已部分退款消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_PartRefund_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]部分退款成功");
|
|
|
- else logger.error("[抖音来客]部分退款失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_PartRefund_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_takeout_bill_ledger_create": {
|
|
|
//订单确认账单消息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_BillConfirm_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]账单确认成功");
|
|
|
- else logger.error("[抖音来客]账单确认失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_BillConfirm_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
case "life_trade_takeout_order_modify": {
|
|
|
//订单修改消息,主要是修改配送信息
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- InvokeCallParams callParams = new InvokeCallParams();
|
|
|
- callParams.setBusinessMethod("Order_DeliveryChange_DYLK");
|
|
|
- callParams.setParams(callBody.getContent());
|
|
|
- RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
- if (result.isSuccess())
|
|
|
- logger.info("[抖音来客]订单配送信息修改成功");
|
|
|
- else logger.error("[抖音来客]订单配送信息修改失败:" + result.getRetinfo());
|
|
|
- });
|
|
|
+ callParams.setBusinessMethod("Order_DeliveryChange_DYLK");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(callParams.getBusinessMethod())) {
|
|
|
+ CompletableFuture.runAsync(() ->
|
|
|
+ orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode)
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//无论如何,最终还得返回个200
|
|
|
response.finish(200, "success");
|
|
|
}
|
|
|
@@ -288,6 +241,10 @@ public class OrderCallServlet extends HttpServlet {
|
|
|
InvokeCallParams callParams = new InvokeCallParams();
|
|
|
callParams.setBusinessMethod("Order_UserRefundRequest_DYLK");
|
|
|
callParams.setParams(body);
|
|
|
+ callParams.getJsonConvertMap().put("orderConvertor", orderWriteConvert);
|
|
|
+ callParams.setCurrentUser(currentUser);
|
|
|
+ callParams.setDataSourceId(dataSourceId);
|
|
|
+ callParams.setSupplierCode(supplierCode);
|
|
|
RetResult<InvokeCallResult> result = orderService.callOrder(callParams, currentUser, dataSourceId, supplierCode);
|
|
|
if (result.isSuccess())
|
|
|
logger.info("[抖音来客]用户退款申请写入成功");
|