|
|
@@ -8,11 +8,13 @@ import com.dderp.common.api.flycat.OrderService
|
|
|
import com.dderp.common.api.flycat.OrderStepService
|
|
|
import com.dderp.common.datas.ERPModule
|
|
|
import com.dderp.common.datas.ESKeys
|
|
|
-import com.dderp.common.datas.flycat.BusinessOrderStatus
|
|
|
import com.dderp.common.datas.flycat.PlatformType
|
|
|
+import com.dderp.common.datas.flycat.RefundRequestStatus
|
|
|
+import com.dderp.common.datas.flycat.VoidFlagStatus
|
|
|
import com.dderp.common.entity.base.InvokeCallParams
|
|
|
import com.dderp.common.entity.base.InvokeCallResult
|
|
|
import com.dderp.common.entity.order.BusinessOrder
|
|
|
+import com.dderp.common.entity.order.OrderRefundRequest
|
|
|
import com.dderp.common.entity.order.OrderStep
|
|
|
import com.dderp.common.entity.site.ERPTokenUser
|
|
|
import com.dderp.common.entity.store.StorePlatform
|
|
|
@@ -107,18 +109,40 @@ class BE_Order_UserRefundRequest_DYLK implements BusinessExecutor<InvokeCallPara
|
|
|
if (storePlatform == null) return RetResult.<InvokeCallResult> errorT().retinfo("订单来源平台未知!")
|
|
|
|
|
|
RMap searchParams = new RMap();
|
|
|
- searchParams.set("incomePlatformId", platformStoreId)
|
|
|
+ searchParams.set("incomePlatformId", storePlatform.id)
|
|
|
searchParams.set("incomePlatformOrderCode", incomePlatformOrderCode)
|
|
|
|
|
|
RetResult<List<BusinessOrder>> orderResult = orderSearchService.searchBusinessOrderList(searchParams, currentUser, dataSourceId, supplierCode, null)
|
|
|
if (!orderResult.isSuccess()) return RetResult.<InvokeCallResult> errorT().retinfo(orderResult.retinfo)
|
|
|
|
|
|
BusinessOrder esOrder = orderResult.result.get(0) //这么查只可能有一个
|
|
|
- esOrder.setOrderStatus(BusinessOrderStatus.accept.value)
|
|
|
+ //构造订单退款申请
|
|
|
+ OrderRefundRequest refundRequest = new OrderRefundRequest()
|
|
|
+ refundRequest.setId(tableIdService.getTableIdMulti("deOrderRefundRequest.id", 1, dataSourceId, String.valueOf(supplierCode)))
|
|
|
+ refundRequest.setIdOrder(esOrder.id)
|
|
|
+ refundRequest.setIdStore(esOrder.idStore)
|
|
|
+ refundRequest.setIdStorePlatform(storePlatform.id)
|
|
|
+ refundRequest.setOutPlatformStoreId(storePlatform.platformStoreId)
|
|
|
+ refundRequest.setPlatformCode(storePlatform.platformCode)
|
|
|
+ refundRequest.setPlatformType(storePlatform.platformType)
|
|
|
+ refundRequest.setPlatformName(storePlatform.platformName)
|
|
|
+ refundRequest.setOutAfterSaleId(invokeOrder["after_sale_id"] as String)
|
|
|
+ refundRequest.setRequestStatus(RefundRequestStatus.init.value)
|
|
|
+ refundRequest.setRefundReasonCodes(invokeOrder["refund_reason"]["reason_code"] as ArrayList)
|
|
|
+ refundRequest.setUserRefundMemo(invokeOrder["refund_reason"]["desc"] as String)
|
|
|
+ refundRequest.setRefundType(invokeOrder["refund_type"] as int)
|
|
|
+ refundRequest.setDeliveryFee(invokeOrder["delivery_fee"] as int)
|
|
|
+ refundRequest.setRefundFee(invokeOrder["refund_fee"] as int)
|
|
|
+ refundRequest.setRefundProdCount(invokeOrder["refund_count"] as int)
|
|
|
+ refundRequest.setRefundProductsDetail(invokeOrder["product_detail"] as String)
|
|
|
+
|
|
|
+ OrderRefundRequest.create(refundRequest, currentUser.id)
|
|
|
+
|
|
|
+ esOrder.setVoidFlagIn(VoidFlagStatus.requestRefund.value)
|
|
|
BusinessOrder.update(esOrder, currentUser.id)
|
|
|
|
|
|
- OrderStep orderStep = orderStepService.parseOrderStep(esOrder.id, "[" + storePlatform.platformName + "]商家接单完成", storePlatform.platformCode, currentUser)
|
|
|
-
|
|
|
+ OrderStep orderStep = orderStepService.parseOrderStep(esOrder.id, "用户申请退款,原因:" + refundRequest.userRefundMemo,
|
|
|
+ storePlatform.platformCode, currentUser)
|
|
|
|
|
|
//持久化
|
|
|
//订单主表
|
|
|
@@ -130,11 +154,20 @@ class BE_Order_UserRefundRequest_DYLK implements BusinessExecutor<InvokeCallPara
|
|
|
String.valueOf(esOrder.getId()))
|
|
|
.setDoc(jsonBuilder()
|
|
|
.startObject()
|
|
|
- .field("orderStatus", esOrder.orderStatus)
|
|
|
+ .field("voidFlagIn", esOrder.voidFlagIn)
|
|
|
.field("updateBy", esOrder.getUpdateBy())
|
|
|
.field("updateTimeLong", esOrder.getUpdateTimeLong())
|
|
|
.endObject())
|
|
|
bulkRequest.add(orderRequest)
|
|
|
+
|
|
|
+ //订单退款申请
|
|
|
+ IndexRequestBuilder refundQueryRequest = esClient.getClient()
|
|
|
+ .prepareIndex(supplierInitService.getDateYearESIndex(supplierCode, ESKeys.ES_DELIVER_ORDER_REFUND_REQUEST_INDEX, 0),
|
|
|
+ ESKeys.ES_DELIVER_ORDER_REFUND_REQUEST_TYPE)
|
|
|
+ .setId(String.valueOf(refundRequest.id))
|
|
|
+ .setSource(jsonConvert.convertTo(refundRequest), XContentType.JSON)
|
|
|
+ bulkRequest.add(refundQueryRequest)
|
|
|
+
|
|
|
//订单脚印
|
|
|
IndexRequestBuilder orderStepRequest = esClient.getClient()
|
|
|
.prepareIndex(supplierInitService.getDateYearESIndex(supplierCode, ESKeys.ES_DELIVER_ORDER_STEP_INDEX, 0),
|
|
|
@@ -147,17 +180,18 @@ class BE_Order_UserRefundRequest_DYLK implements BusinessExecutor<InvokeCallPara
|
|
|
BulkResponse bulkResponse = bulkRequest.get();
|
|
|
orderDao = tunaService.generate(OrderDao.class)
|
|
|
if (bulkResponse.hasFailures()) {
|
|
|
- logger.error("商户接单出错:" + bulkResponse.buildFailureMessage());
|
|
|
- return RetResult.<InvokeCallResult> errorT().retinfo("商户接单出错:" + esOrder.orderName);
|
|
|
+ logger.error("客户申请退款出错:" + bulkResponse.buildFailureMessage());
|
|
|
+ return RetResult.<InvokeCallResult> errorT().retinfo("客户申请退款出错:" + esOrder.orderName);
|
|
|
} else {
|
|
|
- logger.info("商户接单成功");
|
|
|
+ logger.info("客户申请退款成功");
|
|
|
//写数据库
|
|
|
- orderDao.acceptBusinessOrder(esOrder,
|
|
|
+ orderDao.requestRefundOrder(esOrder,
|
|
|
+ refundRequest,
|
|
|
[orderStep],
|
|
|
dataSourceId,
|
|
|
String.valueOf(supplierCode))
|
|
|
|
|
|
- return RetResult.<InvokeCallResult> successT().result(InvokeCallResult.success().data(jsonConvert.convertTo(esOrder)))
|
|
|
+ return RetResult.<InvokeCallResult> successT()
|
|
|
}
|
|
|
|
|
|
}
|