From beced664ecf6d3685605d1c522a3cb7365237610 Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 11 Apr 2025 14:59:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=90=8E=E7=AE=A1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=AE=A2=E5=8D=95=E5=88=86=E8=B4=A6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/OrderBasicInfoController.java | 8 +- .../jsowell/pile/dto/QueryOrderSplitDTO.java | 5 +- .../pile/service/OrderSplitRecordService.java | 3 +- .../impl/OrderSplitRecordServiceImpl.java | 42 +++++++++- .../pile/vo/web/SplitRecordInfoVO.java | 76 +++++++++++++++++++ 5 files changed, 127 insertions(+), 7 deletions(-) create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/vo/web/SplitRecordInfoVO.java diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java index ac7be34e1..10f17ef0f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java @@ -1,6 +1,7 @@ package com.jsowell.web.controller.pile; import com.alibaba.fastjson2.JSON; +import com.google.common.collect.ImmutableBiMap; import com.jsowell.common.annotation.Log; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.domain.AjaxResult; @@ -20,6 +21,7 @@ import com.jsowell.pile.service.PileMerchantInfoService; import com.jsowell.pile.service.PileStationInfoService; import com.jsowell.pile.util.UserUtils; import com.jsowell.pile.vo.web.OrderListVO; +import com.jsowell.pile.vo.web.SplitRecordInfoVO; import com.jsowell.service.OrderService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -238,9 +240,11 @@ public class OrderBasicInfoController extends BaseController { public RestApiResponse queryOrderSplitData(@RequestBody QueryOrderSplitDTO dto) { RestApiResponse response = null; try { - orderSplitRecordService.queryOrderSplitData(dto); + List splitRecordInfoVOS = orderSplitRecordService.queryOrderSplitData(dto); + response = new RestApiResponse<>(ImmutableBiMap.of("orderList", splitRecordInfoVOS)); } catch (Exception e) { - + logger.error("查询订单分账数据 error", e); + response = new RestApiResponse<>(e); } logger.info("查询订单分账数据 params:{}, result:{}", JSON.toJSONString(dto), response); return response; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitDTO.java index 3e90e76d6..abc5fb67f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderSplitDTO.java @@ -16,8 +16,9 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @Builder public class QueryOrderSplitDTO { - private int pageNo; - private int pageSize; + + private Integer pageNo; + private Integer pageSize; /** * 站点id diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java index c519903be..39e6fdf3d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java @@ -10,6 +10,7 @@ import com.jsowell.pile.vo.OrderInfoDetailVO; import com.jsowell.pile.vo.web.OrderSplitDailySummaryData; import com.jsowell.pile.vo.web.OrderSplitRecordVO; import com.jsowell.pile.vo.web.SplitOrdersInfoVO; +import com.jsowell.pile.vo.web.SplitRecordInfoVO; import java.util.List; import java.util.Map; @@ -70,7 +71,7 @@ public interface OrderSplitRecordService { */ List getSplitOrdersInfoList(SplitOrderDTO dto); - public List queryOrderSplitData(QueryOrderSplitDTO dto); + public List queryOrderSplitData(QueryOrderSplitDTO dto); /** * 根据汇付会员id查询时间段内订单分账记录 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 46885b409..b503d0cf8 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 @@ -1,5 +1,6 @@ package com.jsowell.pile.service.impl; +import com.github.pagehelper.PageHelper; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.jsowell.adapay.dto.PaymentConfirmParam; @@ -25,6 +26,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -258,12 +260,48 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { * @return */ @Override - public List queryOrderSplitData(QueryOrderSplitDTO dto) { + public List queryOrderSplitData(QueryOrderSplitDTO dto) { + List resultList = new ArrayList<>(); + + // 设置分页参数 + int pageNo = dto.getPageNo() == null ? 1 : dto.getPageNo(); + int pageSize = dto.getPageSize() == null ? 10 : dto.getPageSize(); + + PageHelper.startPage(pageNo, pageSize); List orderSplitRecordVOS = orderSplitRecordMapper.queryOrderSplitData(dto); // 根据 orderCode 分组 Map> collect = orderSplitRecordVOS.stream() .collect(Collectors.groupingBy(OrderSplitRecordVO::getOrderCode)); - return null; + + for (Map.Entry> entry : collect.entrySet()) { + String orderCode = entry.getKey(); + List splitRecordVOList = entry.getValue(); + + SplitRecordInfoVO vo = SplitRecordInfoVO.builder() + .orderCode(orderCode) + .orderAmount(orderSplitRecordVOS.get(0).getOrderAmount()) + .settleAmount(String.valueOf(orderSplitRecordVOS.get(0).getSettleAmount())) + + .build(); + + List orderSplitList = new ArrayList<>(); + + for (OrderSplitRecordVO orderSplitRecordVO : splitRecordVOList) { + SplitRecordInfoVO.OrderSplit orderSplit = SplitRecordInfoVO.OrderSplit.builder() + .adapayMemberId(orderSplitRecordVO.getAdapayMemberId()) + .electricitySplitRatio(String.valueOf(orderSplitRecordVO.getElectricitySplitRatio())) + .electricitySplitAmount(String.valueOf(orderSplitRecordVO.getElectricitySplitAmount())) + .serviceSplitRatio(String.valueOf(orderSplitRecordVO.getServiceSplitRatio())) + .serviceSplitAmount(String.valueOf(orderSplitRecordVO.getServiceSplitAmount())) + + .build(); + orderSplitList.add(orderSplit); + } + vo.setOrderSplitList(orderSplitList); + + resultList.add(vo); + } + return resultList; } @Override diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/SplitRecordInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/SplitRecordInfoVO.java new file mode 100644 index 000000000..c658ed9d2 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/SplitRecordInfoVO.java @@ -0,0 +1,76 @@ +package com.jsowell.pile.vo.web; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 后管订单分账明细页面VO + * + * @author Lemon + * @Date 2025/4/11 14:30:23 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class SplitRecordInfoVO { + + private String orderCode; + + /** + * 订单金额 + */ + private String orderAmount; + + /** + * 结算金额 + */ + private String settleAmount; + + /** + * 订单分账明细 + */ + private List orderSplitList; + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class OrderSplit { + + /** + * 汇付会员id + */ + private String adapayMemberId; + + /** + * 电费分账比例 + */ + private String electricitySplitRatio; + + /** + * 电费分账金额 + */ + private String electricitySplitAmount; + + /** + * 服务费分账比例 + */ + private String serviceSplitRatio; + + /** + * 服务费分账金额 + */ + private String serviceSplitAmount; + + /** + * 手续费 + */ + private String feeAmount; + + } +}