diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 602ac28a1..764a6d83e 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -33,7 +33,6 @@ import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.enums.ykc.ScenarioEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.AdapayUtil; -import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.JWTUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.id.IdUtils; @@ -62,7 +61,10 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.ParseException; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; @Service @@ -476,19 +478,20 @@ public class MemberService { // 获取分页信息 long pageNum = dto.getPageNum() == 0 ? 1L : dto.getPageNum(); long pageSize = dto.getPageSize() == 0 ? 10L : dto.getPageSize(); - String tradeDate = dto.getTradeDate(); + String tradeDate = dto.getTradeDate() + " 00:00:00";; + String endDate = dto.getEndDate() + " 23:59:59"; // 获取年、月 - String[] split = StringUtils.split(tradeDate, "-"); - int year = Integer.parseInt(split[0]); - int month = Integer.parseInt(split[1]); + // String[] split = StringUtils.split(tradeDate, "-"); + // int year = Integer.parseInt(split[0]); + // int month = Integer.parseInt(split[1]); // 根据年月获取当月第一天和最后一天 - tradeDate = DateUtils.getFirstDay(year, month, DateUtils.YYYY_MM_DD); - String lastDay = DateUtils.getLastDay(year, month, DateUtils.YYYY_MM_DD); + // tradeDate = DateUtils.getFirstDay(year, month, DateUtils.YYYY_MM_DD); + // String lastDay = DateUtils.getLastDay(year, month, DateUtils.YYYY_MM_DD); // sql语句查询日期需要多加一天 - Date date = DateUtils.addDays(DateUtils.parseDate(lastDay, DateUtils.YYYY_MM_DD), 1); - lastDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); + // Date date = DateUtils.addDays(DateUtils.parseDate(lastDay, DateUtils.YYYY_MM_DD), 1); + // lastDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); dto.setTradeDate(tradeDate); - dto.setEndDate(lastDay); + dto.setEndDate(endDate); // PageHelper.startPage(pageNum, pageSize); // List list = memberBasicInfoService.getMemberWalletDetail(dto); List list = memberBasicInfoService.getMemberWalletDetailV2(dto); 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 caf599418..27c259283 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 @@ -22,10 +22,7 @@ import com.jsowell.pile.service.OrderSplitRecordService; 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.SplitAggregateDataVO; -import com.jsowell.pile.vo.web.SplitConfigOrderVO; -import com.jsowell.pile.vo.web.SplitRecordInfoVO; +import com.jsowell.pile.vo.web.*; import com.jsowell.service.OrderService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -364,4 +361,23 @@ public class OrderBasicInfoController extends BaseController { logger.info("订单保险金额退款 params:{}, result:{}", JSON.toJSONString(orderBasicInfo), response); return response; } + + /** + * 订单数量与保险金额时间区统计 + * @param dto + * @return + */ + @PostMapping("/queryOrderInsuranceAmountByTime") + public RestApiResponse queryOrderInsuranceAmountByTime(@RequestBody QueryOrderDTO dto) { + RestApiResponse response = null; + try { + OrderCountByTimeVO result = orderBasicInfoService.queryOrderInsuranceAmountByTime(dto); + response = new RestApiResponse<>(result); + } catch (Exception e) { + logger.error("时间区间查询订单统计 error", e); + } + logger.info("时间区间查询订单统计 result:{}", response); + return response; + } + } diff --git a/jsowell-framework/src/main/java/com/jsowell/framework/config/ThreadPoolConfig.java b/jsowell-framework/src/main/java/com/jsowell/framework/config/ThreadPoolConfig.java index 612ac7476..ec59169f6 100644 --- a/jsowell-framework/src/main/java/com/jsowell/framework/config/ThreadPoolConfig.java +++ b/jsowell-framework/src/main/java/com/jsowell/framework/config/ThreadPoolConfig.java @@ -73,8 +73,8 @@ public class ThreadPoolConfig { @Bean(name = "thirdpartyTaskExecutor") public ThreadPoolTaskExecutor thirdpartyTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setMaxPoolSize(corePoolSize_tp); - executor.setCorePoolSize(maxPoolSize_tp); + executor.setMaxPoolSize(maxPoolSize_tp); + executor.setCorePoolSize(corePoolSize_tp); executor.setQueueCapacity(queueCapacity_tp); executor.setKeepAliveSeconds(keepAliveSeconds_tp); // 线程池对拒绝任务(无线程可用)的处理策略 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java index a0b7afae7..f1710ad94 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java @@ -107,4 +107,9 @@ public class QueryOrderDTO extends BaseEntity { * 车牌号 */ private String plateNumber; + + /** + * 排除的站点Id列表 + */ + private List excludeStationIdList; } 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 ec631dae9..81a334f07 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 @@ -1,10 +1,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; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; @@ -437,4 +434,10 @@ public interface OrderBasicInfoMapper { * @return */ List getPlatformProfit(IndexQueryDTO dto); + + /* + * @param dto 查询条件,startTime/endTime 必须是 yyyy-MM 拼装后的时间段 + * @return List + */ + List selectOrderCountAndInsuranceByMonth(@Param("dto") QueryOrderDTO 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 58a83602e..aa85d1122 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 @@ -638,4 +638,7 @@ public interface OrderBasicInfoService{ * @return */ List getPlatformProfit(IndexQueryDTO dto); + + + OrderCountByTimeVO queryOrderInsuranceAmountByTime(QueryOrderDTO 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 88cfd91d2..54c55dab6 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 @@ -77,7 +77,11 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.ParseException; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; @@ -291,6 +295,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ @Override public List selectOrderBasicInfoList(QueryOrderDTO dto) { + excludePersonalPileStation(dto); // 筛选个人桩站点 List orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto); if (CollectionUtils.isEmpty(orderListVOS)) { return orderListVOS; @@ -339,6 +344,24 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return orderListVOS; } + /** + * 如果查询订单状态只有异常的情况下,排除个人桩的异常订单 + */ + private void excludePersonalPileStation(QueryOrderDTO dto) { + // 如果orderStatus不等于异常,直接返回 + if (!OrderStatusEnum.ABNORMAL.getValue().equals(dto.getOrderStatus())) { + return; + } + // 如果dto中除了订单状态还有其他查询条件,则返回 + if (dto.getMerchantId() != null || dto.getStationId() != null || dto.getOrderCode() != null + || dto.getMobileNumber() != null || dto.getTransactionCode() != null || dto.getPileSn() != null + || dto.getPlateNumber() != null) { + return; + } + // 设置个人桩站id, 148-个人桩站点; 684-7KW小直流个人桩站点 + dto.setExcludeStationIdList(Lists.newArrayList(148, 684)); + } + private void batchQueryFeeAmt(List orderListVOS) { // 批量查手续费 List orderCodeList = orderListVOS.stream().map(OrderListVO::getOrderCode).collect(Collectors.toList()); @@ -599,7 +622,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 结算时间设置为当前时间 orderInfo.setSettlementTime(new Date()); - + // 启动失败原因 orderInfo.setReason(failedReasonMsg); // 订单退款(结算订单) @@ -5942,6 +5965,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { /** * 查询平台抽成金额 + * 订单数量与保险金额时间区统计 * @param dto * @return */ @@ -5949,5 +5973,71 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { public List getPlatformProfit(IndexQueryDTO dto) { return orderBasicInfoMapper.getPlatformProfit(dto); } + + public OrderCountByTimeVO queryOrderInsuranceAmountByTime(QueryOrderDTO dto) { + if (dto == null) { + dto = new QueryOrderDTO(); + } + + DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("yyyy-MM"); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + try { + // 处理 startTime + if (StringUtils.isNotEmpty(dto.getStartTime())) { + YearMonth startMonth = YearMonth.parse(dto.getStartTime(), monthFormatter); + dto.setStartTime(startMonth.atDay(1).atStartOfDay().format(dateTimeFormatter)); + } + // 处理 endTime,取下个月月初,保证 < endTime 不丢数据 + if (StringUtils.isNotEmpty(dto.getEndTime())) { + YearMonth endMonth = YearMonth.parse(dto.getEndTime(), monthFormatter); + dto.setEndTime(endMonth.plusMonths(1).atDay(1).atStartOfDay().format(dateTimeFormatter)); + } + } catch (Exception e) { + throw new IllegalArgumentException("时间格式错误,应为 yyyy-MM"); + } + + // 默认本月 + if (StringUtils.isEmpty(dto.getStartTime()) || StringUtils.isEmpty(dto.getEndTime())) { + YearMonth currentMonth = YearMonth.now(); + dto.setStartTime(currentMonth.atDay(1).atStartOfDay().format(dateTimeFormatter)); + dto.setEndTime(currentMonth.plusMonths(1).atDay(1).atStartOfDay().format(dateTimeFormatter)); + } + + // 查询数据库聚合结果 + List stats = orderBasicInfoMapper.selectOrderCountAndInsuranceByMonth(dto); + + // 封装返回结果 + BigDecimal totalInsuranceAmount = BigDecimal.ZERO; + int totalCount = 0; + List result = new ArrayList<>(); + + for (OrderMonthStatVO stat : stats) { + YearMonth ym = YearMonth.parse(stat.getMonth(), monthFormatter); + + OrderCountByTimeVO.OrderCountByTimeListVO vo = new OrderCountByTimeVO.OrderCountByTimeListVO(); + vo.setStartTime(ym.atDay(1).atStartOfDay().format(dateTimeFormatter)); + vo.setEndTime(ym.plusMonths(1).atDay(1).atStartOfDay().format(dateTimeFormatter)); + vo.setCount(stat.getOrderCount()); + vo.setOrderCount(stat.getOrderCount()); + BigDecimal insuranceAmount = stat.getInsuranceAmount() == null ? BigDecimal.ZERO : stat.getInsuranceAmount(); + vo.setInsuranceAmount(totalInsuranceAmount); + + result.add(vo); + + totalCount += stat.getOrderCount(); + totalInsuranceAmount = totalInsuranceAmount.add(insuranceAmount); + } + + OrderCountByTimeVO vo = new OrderCountByTimeVO(); + vo.setOrderCountByTimeList(result); + vo.setTotalCount(totalCount); + vo.setTotalInsuranceAmount(totalInsuranceAmount); + + + logger.info("按月统计结果: {}", JSONObject.toJSONString(vo)); + return vo; + + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java index ac7a4f5e3..debabc431 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java @@ -609,32 +609,43 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { // 查询订单信息 OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderBasicInfo.getOrderCode()); // 订单消费金额, 除了充满自停是需要计算实际消费, 其他金额都是按次收费 - BigDecimal orderAmount; + BigDecimal orderAmount = BigDecimal.ZERO; // 耗电量 BigDecimal consumedEnergy = message.getConsumedEnergy(); - if (fullOfSelfStopping.compareTo(orderBasicInfo.getPayAmount()) == 0) { - // 计费模板, 只取平时段的价格 - BigDecimal flatElectricityPrice = orderDetail.getFlatElectricityPrice() != null ? orderDetail.getFlatElectricityPrice() : BigDecimal.ZERO; // x元/每度 - // BigDecimal flatServicePrice = orderDetail.getFlatServicePrice() != null ? orderDetail.getFlatServicePrice() : BigDecimal.ZERO; // x元/每度 - BigDecimal flatServicePrice = BigDecimal.ZERO; // x元/每度 服务费默认0 - // 单价 = 电费单价 + 服务费单价 - BigDecimal price = flatElectricityPrice.add(flatServicePrice); - // 如果耗电量或单价为空或者为0,则订单消费为0 - // if (consumedEnergy == null || consumedEnergy.compareTo(BigDecimal.ZERO) == 0 || price.compareTo(BigDecimal.ZERO) == 0) { - // logger.info("计算电单车退款逻辑,耗电量或计费模板为空,不执行退款逻辑, orderCode:{}, 耗电量:{}, 每度电费:{}", orderBasicInfo.getOrderCode(), consumedEnergy, price); - // return; - // } - // 计算实际消费, 保留两位小数 - orderAmount = consumedEnergy.multiply(price).setScale(2, RoundingMode.UP); - } else { - // 2025.07.28如果耗电量为 0,也进行退款 - if (consumedEnergy.compareTo(BigDecimal.ZERO) == 0) { - orderAmount = BigDecimal.ZERO; - }else { - // 其他金额、并且耗电量不为 0 ,都是按次收费, 不退款 - orderAmount = orderBasicInfo.getPayAmount(); - } - } + + // 计算实际消费金额 + // 计费模板, 只取平时段的价格 + BigDecimal flatElectricityPrice = orderDetail.getFlatElectricityPrice() != null ? orderDetail.getFlatElectricityPrice() : BigDecimal.ZERO; // x元/每度 + // BigDecimal flatServicePrice = orderDetail.getFlatServicePrice() != null ? orderDetail.getFlatServicePrice() : BigDecimal.ZERO; // x元/每度 + BigDecimal flatServicePrice = BigDecimal.ZERO; // x元/每度 服务费默认0 + // 单价 = 电费单价 + 服务费单价 + BigDecimal price = flatElectricityPrice.add(flatServicePrice); + // 计算实际消费, 保留两位小数 + orderAmount = consumedEnergy.multiply(price).setScale(2, RoundingMode.UP); + + // if (fullOfSelfStopping.compareTo(orderBasicInfo.getPayAmount()) == 0) { + // // 计费模板, 只取平时段的价格 + // BigDecimal flatElectricityPrice = orderDetail.getFlatElectricityPrice() != null ? orderDetail.getFlatElectricityPrice() : BigDecimal.ZERO; // x元/每度 + // // BigDecimal flatServicePrice = orderDetail.getFlatServicePrice() != null ? orderDetail.getFlatServicePrice() : BigDecimal.ZERO; // x元/每度 + // BigDecimal flatServicePrice = BigDecimal.ZERO; // x元/每度 服务费默认0 + // // 单价 = 电费单价 + 服务费单价 + // BigDecimal price = flatElectricityPrice.add(flatServicePrice); + // // 如果耗电量或单价为空或者为0,则订单消费为0 + // // if (consumedEnergy == null || consumedEnergy.compareTo(BigDecimal.ZERO) == 0 || price.compareTo(BigDecimal.ZERO) == 0) { + // // logger.info("计算电单车退款逻辑,耗电量或计费模板为空,不执行退款逻辑, orderCode:{}, 耗电量:{}, 每度电费:{}", orderBasicInfo.getOrderCode(), consumedEnergy, price); + // // return; + // // } + // // 计算实际消费, 保留两位小数 + // orderAmount = consumedEnergy.multiply(price).setScale(2, RoundingMode.UP); + // } else { + // // 2025.07.28如果耗电量为 0,也进行退款 + // if (consumedEnergy.compareTo(BigDecimal.ZERO) == 0) { + // orderAmount = BigDecimal.ZERO; + // }else { + // // 其他金额、并且耗电量不为 0 ,都是按次收费, 不退款 + // orderAmount = orderBasicInfo.getPayAmount(); + // } + // } // 退款金额 = 支付金额 - 优惠后总消费金额 BigDecimal refundAmount = orderBasicInfo.getPayAmount().subtract(orderAmount); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OccupyOrderVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OccupyOrderVO.java index 9a4ea6b54..3a3e46cf2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OccupyOrderVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OccupyOrderVO.java @@ -1,5 +1,6 @@ package com.jsowell.pile.vo.web; +import com.jsowell.common.annotation.Excel; import lombok.Data; import java.math.BigDecimal; @@ -13,16 +14,36 @@ import java.math.BigDecimal; @Data public class OccupyOrderVO { private String id; + @Excel(name = "占桩订单号") private String occupyCode; + private String status; + + @Excel(name = "会员ID") private String memberId; + private String stationId; + private String plateNumber; + + @Excel(name = "站点名称") private String stationName; + + @Excel(name = "占桩开始时间") private String startTime; + + @Excel(name = "占桩结束时间") private String endTime; + + @Excel(name = "支付状态") private String payStatus; + + @Excel(name = "订单金额") private BigDecimal orderAmount; + + @Excel(name = "充电桩编号") private String pileSn; + + @Excel(name = "充电桩枪口号") private String connectorCode; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderMonthStatVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderMonthStatVO.java new file mode 100644 index 000000000..fc96649a1 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderMonthStatVO.java @@ -0,0 +1,11 @@ +package com.jsowell.pile.vo.web; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class OrderMonthStatVO { + private String month; + private Integer orderCount; + private BigDecimal insuranceAmount; +} diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index e0d2fd323..ea2b20d2a 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -1988,6 +1988,12 @@ #{stationDeptId} + + and t1.station_id not in + + #{excludeStationId} + + order by t1.create_time desc @@ -3474,4 +3480,19 @@ group by `trade_date` + + + diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/XinDiantuPlatfromServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/XinDiantuPlatfromServiceImpl.java index 897bcf964..a2d52413f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/XinDiantuPlatfromServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/XinDiantuPlatfromServiceImpl.java @@ -656,12 +656,10 @@ public class XinDiantuPlatfromServiceImpl implements ThirdPartyPlatformService { */ @Override public String notificationEquipChargeStatus(String orderCode) { - //判断是否是常畅充平台的订单 - boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId()); - if (!flag){ - //表示不是常畅充平台的订单 - return null; - } +// boolean flag = isNeedPushToThirdPartyPlatform(orderCode , com.jsowell.common.enums.ThirdPlatformTypeEnum.XIN_DIAN_TU.getOperatorId()); +// if (!flag){ +// return null; +// } // 根据订单号查询订单信息 OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);