diff --git a/jsowell-admin/src/main/java/com/jsowell/service/SplitBillService.java b/jsowell-admin/src/main/java/com/jsowell/service/SplitBillService.java new file mode 100644 index 000000000..ecd53c0af --- /dev/null +++ b/jsowell-admin/src/main/java/com/jsowell/service/SplitBillService.java @@ -0,0 +1,54 @@ +package com.jsowell.service; + +import com.jsowell.common.constant.Constants; +import com.jsowell.pile.domain.OrderSplitRecord; +import com.jsowell.pile.dto.DebugOrderDTO; +import com.jsowell.pile.dto.QueryOrderSplitRecordDTO; +import com.jsowell.pile.service.OrderBasicInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +@Service +public class SplitBillService { + + @Autowired + private OrderBasicInfoService orderBasicInfoService; + + @Autowired + private TempService tempService; + + /** + * 重试运营商分账 + * @param dto + */ + public void retryMerchantSplit(QueryOrderSplitRecordDTO dto) { + // 首先根据 merchantId、startTime、endTime 查出日期区间内所有订单信息(包括 paymentId) + List recordList = orderBasicInfoService.getSplitOrders(dto); + // 判断订单是否已经成功分账 +// adapayService.checkOrderSplitStatus(list); + // 将未分账的订单进行筛选、汇总 + List paymenIdList = new ArrayList<>(); + // 将 paymentIdList 与 recordList 进行匹配,筛选出 orderCodeList + Set paymentIdSet = new HashSet<>(paymenIdList); + List orderCodeList = recordList.stream() + .filter(record -> paymentIdSet.contains(record.getPaymentId())) + .map(OrderSplitRecord::getOrderCode) + .collect(Collectors.toList()); + + // 调用 debugOrder 接口进行重新分账 + for (String orderCode : orderCodeList) { + DebugOrderDTO debugOrderDTO = new DebugOrderDTO(); + debugOrderDTO.setOrderCode(orderCode); + debugOrderDTO.setReSplitFlag(Constants.ONE); + + tempService.debugOrder(debugOrderDTO); + } + + } +} diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderSplitRecordController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderSplitRecordController.java index e1cf7bb20..0215a1130 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderSplitRecordController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderSplitRecordController.java @@ -7,6 +7,7 @@ import com.jsowell.common.response.RestApiResponse; import com.jsowell.pile.dto.QueryOrderSplitRecordDTO; import com.jsowell.pile.service.OrderSplitRecordService; import com.jsowell.pile.vo.web.OrderCommissionSummaryVO; +import com.jsowell.service.SplitBillService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -26,6 +27,9 @@ public class OrderSplitRecordController extends BaseController { @Autowired private OrderSplitRecordService orderSplitRecordService; + @Autowired + private SplitBillService splitBillService; + /** * 后管查询引流抽成订单列表 * @param dto @@ -61,4 +65,19 @@ public class OrderSplitRecordController extends BaseController { } return response; } + + /** + * 重试运营商分账 + */ + public RestApiResponse retryMerchantSplit(@RequestBody QueryOrderSplitRecordDTO dto) { + RestApiResponse response = null; + try { + splitBillService.retryMerchantSplit(dto); + response = new RestApiResponse<>(); + } catch (Exception e) { + logger.error("重试运营商分账 error", e); + response = new RestApiResponse<>(e); + } + return response; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitRecordDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitRecordDTO.java index 54c5f2235..77809a461 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitRecordDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitRecordDTO.java @@ -28,4 +28,6 @@ public class QueryOrderSplitRecordDTO { private String orderCode; private String transactionCode; + + private String merchantId; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index 9b399e7e8..cde60591f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -3,6 +3,7 @@ package com.jsowell.pile.mapper; import com.alipay.api.domain.ChargeOrderInfo; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderDetail; +import com.jsowell.pile.domain.OrderSplitRecord; import com.jsowell.pile.domain.UserFrequentedStationInfo; import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; @@ -416,4 +417,11 @@ public interface OrderBasicInfoMapper { List getOrderBasicInfoByTimeInterval(@Param("stationIds") List stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime); List queryOrderListByStationIdAndTime(@Param("stationId") String stationId , @Param("startTime") String startTime , @Param("endTime") String endTime); + + /** + * 查询分账订单信息 + * @param dto + * @return + */ + List getSplitOrders(@Param("dto") QueryOrderSplitRecordDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index 8bd48e0fc..96b9e2b63 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -606,4 +606,11 @@ public interface OrderBasicInfoService{ * @param orderCode */ void closeOrderByOrderCode(String orderCode); + + /** + * 获取订单分账记录 + * @param dto + * @return + */ + List getSplitOrders(QueryOrderSplitRecordDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 5d916a3df..c94ced15d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -5635,5 +5635,15 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_CLOSE_TIMEOUT.getValue()); updateOrderBasicInfo(orderBasicInfo); } + + /** + * 获取订单分账信息 + * @param dto + * @return + */ + @Override + public List getSplitOrders(QueryOrderSplitRecordDTO dto) { + return orderBasicInfoMapper.getSplitOrders(dto); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java index f2fb11308..269d3c262 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java @@ -9,6 +9,7 @@ import com.huifu.adapay.model.AdapayCommon; import com.jsowell.adapay.dto.PaymentConfirmParam; import com.jsowell.adapay.dto.SplitData; import com.jsowell.adapay.response.PaymentConfirmResponse; +import com.jsowell.adapay.service.AdapayService; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.model.LoginUser; import com.jsowell.common.core.page.PageResponse; @@ -27,6 +28,7 @@ import com.jsowell.pile.dto.QueryOrderSplitDTO; import com.jsowell.pile.dto.QueryOrderSplitRecordDTO; import com.jsowell.pile.dto.SplitConfigStationDTO; import com.jsowell.pile.dto.SplitOrderDTO; +import com.jsowell.pile.mapper.OrderBasicInfoMapper; import com.jsowell.pile.mapper.OrderSplitRecordMapper; import com.jsowell.pile.service.AdapayMemberAccountService; import com.jsowell.pile.service.OrderSplitRecordService; @@ -56,6 +58,9 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { @Autowired private AdapayMemberAccountService adapayMemberAccountService; + @Autowired + private OrderBasicInfoMapper orderBasicInfoMapper; + @Override public int batchInsert(List list) { return orderSplitRecordMapper.batchInsert(list); @@ -667,6 +672,8 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { return orderSplitRecordMapper.deleteOrderSplitRecord(orderCode); } + + /** * 根据汇付会员id查询分账汇总数据 * @param dto diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 534d495fd..807a10289 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -3396,4 +3396,20 @@ and t1.create_time #{endTime,jdbcType=VARCHAR} order by t1.create_time DESC + +