diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java index eb41832ce..497dc1b79 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java @@ -1,17 +1,14 @@ package com.jsowell.web.controller.pile; -import com.google.common.collect.Lists; import com.jsowell.common.annotation.Log; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.domain.AjaxResult; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; -import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.core.page.TableDataInfo; import com.jsowell.common.enums.BusinessType; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.PageUtils; import com.jsowell.common.util.SecurityUtils; -import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.poi.ExcelUtil; import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.dto.CreateMerchantDTO; @@ -22,7 +19,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; /** @@ -44,7 +40,7 @@ public class PileMerchantInfoController extends BaseController { @GetMapping("/list") public TableDataInfo list(PileMerchantInfo pileMerchantInfo) { startPage(); - List list = pileMerchantInfoService.selectPileMerchantInfoList(pileMerchantInfo); + List list = pileMerchantInfoService.selectPileMerchantInfoListWithAuth(pileMerchantInfo); return getDataTable(list); } @@ -56,7 +52,7 @@ public class PileMerchantInfoController extends BaseController { @PreAuthorize("@ss.hasPermi('pile:merchant:list')") @GetMapping("/getMerchantList") public TableDataInfo getMerchantList(PileMerchantInfo pileMerchantInfo) { - List list = pileMerchantInfoService.selectPileMerchantInfoList(pileMerchantInfo); + List list = pileMerchantInfoService.selectPileMerchantInfoListWithAuth(pileMerchantInfo); return getDataTable(list); } @@ -67,7 +63,7 @@ public class PileMerchantInfoController extends BaseController { @Log(title = "充电桩运营商信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, PileMerchantInfo pileMerchantInfo) { - List list = pileMerchantInfoService.selectPileMerchantInfoList(pileMerchantInfo); + List list = pileMerchantInfoService.selectPileMerchantInfoListWithAuth(pileMerchantInfo); ExcelUtil util = new ExcelUtil(PileMerchantInfo.class); util.exportExcel(response, list, "充电桩运营商信息数据"); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index c8b8e0a0e..a3132ab46 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -136,9 +136,18 @@ public interface IOrderBasicInfoService { List getListByMemberIdAndOrderStatus(String memberId, List orderStatusList, LocalDateTime dateTime, String stationId); - void doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException; + void orderSplittingOperations(String merchantId, String tradeDate); - void tempOrderRefund(); + void doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException; + + /** + * 批量查询订单 + * @param orderCodeList + * @return + */ + List queryOrderList(List orderCodeList); + + void tempOrderRefund(); void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java index eb3fd294a..70f33301c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java @@ -28,9 +28,11 @@ public interface IPileMerchantInfoService { * @param pileMerchantInfo 充电桩运营商信息 * @return 充电桩运营商信息集合 */ - public List selectPileMerchantInfoList(PileMerchantInfo pileMerchantInfo); + List selectPileMerchantInfoListWithAuth(PileMerchantInfo pileMerchantInfo); - /** + List selectPileMerchantInfoList(PileMerchantInfo pileMerchantInfo); + + /** * 新增充电桩运营商信息 * * @param pileMerchantInfo 充电桩运营商信息 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 d7bb4f54b..b530ad31f 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 @@ -874,12 +874,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * orderSplittingOperations * 只有开通结算账户的运营商才走分账逻辑 */ - private void orderSplittingOperations(String merchantId, String tradeDate) { + @Override + public void orderSplittingOperations(String merchantId, String tradeDate) { // 查询运营商有没有开通结算账户 AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByMerchantId(merchantId); if (adapayMemberAccount == null) { logger.error("订单分账逻辑error, 运营商id:{}, 未配置结算账户", merchantId); - throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_MEMBER_IS_NULL_ERROR); + // throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_MEMBER_IS_NULL_ERROR); + return; } // 根据交易日期查询运营商下面所有站点的交易日报 @@ -913,6 +915,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { */ @Override public void doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException { + LocalDateTime now = LocalDateTime.now(); + LocalDateTime dateTime = LocalDateTime.of(2023, 8, 1, 0, 0, 0); + if (now.isBefore(dateTime)) { + logger.info("当前时间:{}早于:{}, 此订单不进行分账处理, 订单信息:{}", DateUtils.formatDateTime(now), DateUtils.formatDateTime(dateTime), JSON.toJSONString(orderBasicInfo)); + return; + } + // 查询订单的交易id AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode()); if (adapayCallbackRecord == null) { @@ -967,6 +976,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * @param orderCodeList * @return */ + @Override public List queryOrderList(List orderCodeList) { List resultList = Lists.newArrayList(); if (CollectionUtils.isEmpty(orderCodeList)) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java index 0feaaf721..2decbd2d8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java @@ -59,13 +59,12 @@ public class PileMerchantInfoServiceImpl implements IPileMerchantInfoService { /** * 查询充电桩运营商信息列表 - * + * 带权限校验 * @param pileMerchantInfo 充电桩运营商信息 * @return 充电桩运营商信息 */ @Override - // @DataScope(deptAlias = "t") - public List selectPileMerchantInfoList(PileMerchantInfo pileMerchantInfo) { + public List selectPileMerchantInfoListWithAuth(PileMerchantInfo pileMerchantInfo) { AuthorizedDeptVO authorizedMap = SecurityUtils.getAuthorizedMap(); if (authorizedMap == null) { // 为空表示没有权限,返回空数组 @@ -73,7 +72,17 @@ public class PileMerchantInfoServiceImpl implements IPileMerchantInfoService { } pileMerchantInfo.setStationDeptIds(authorizedMap.getStationDeptIds()); pileMerchantInfo.setMerchantDeptIds(authorizedMap.getMerchantDeptIds()); + return selectPileMerchantInfoList(pileMerchantInfo); + } + /** + * 查询充电桩运营商信息列表 + * 无权限校验 + * @param pileMerchantInfo 充电桩运营商信息 + * @return 充电桩运营商信息 + */ + @Override + public List selectPileMerchantInfoList(PileMerchantInfo pileMerchantInfo) { List list = pileMerchantInfoMapper.selectPileMerchantInfoList(pileMerchantInfo); if (Objects.nonNull(list)) { for (PileMerchantInfo p:list) { diff --git a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml index 6a1b72960..5da69d6ca 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml @@ -807,7 +807,7 @@ order by t1.trade_date DESC - select from settle_order_report where del_flag = '0' @@ -815,7 +815,7 @@ and trade_date = #{date,jdbcType=VARCHAR} - select from settle_order_report where del_flag = '0' diff --git a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java index d4bbcc682..e51d694ec 100644 --- a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java +++ b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java @@ -6,13 +6,11 @@ import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.OrderBasicInfo; +import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.domain.PileStationInfo; import com.jsowell.pile.domain.ykcCommond.PublishPileBillingTemplateCommand; import com.jsowell.pile.domain.ykcCommond.StartChargingCommand; -import com.jsowell.pile.service.IOrderBasicInfoService; -import com.jsowell.pile.service.IPileBillingTemplateService; -import com.jsowell.pile.service.IPileStationInfoService; -import com.jsowell.pile.service.YKCPushCommandService; +import com.jsowell.pile.service.*; import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.thirdparty.amap.service.AMapService; import org.apache.commons.collections4.CollectionUtils; @@ -42,6 +40,9 @@ public class JsowellTask { @Autowired private YKCPushCommandService ykcPushCommandService; + @Autowired + private IPileMerchantInfoService pileMerchantInfoService; + @Autowired private IPileStationInfoService pileStationInfoService; @@ -157,4 +158,24 @@ public class JsowellTask { // 删除缓存 redisCache.deleteObject(CacheConstants.PUSH_STATION_CONNECTOR); } + + /** + * 定时任务,处理订单分账 + * jsowellTask.processOrderSplitting() + */ + public void processOrderSplitting() { + // 查询运营商列表 + List pileMerchantInfos = pileMerchantInfoService.selectPileMerchantInfoList(null); + if (CollectionUtils.isEmpty(pileMerchantInfos)) { + log.info("定时任务,处理订单分账, 未查询到运营商列表,直接返回"); + return; + } + // 获取日期 + // LocalDate yesterday = LocalDate.now().plusDays(-1); + LocalDate yesterday = LocalDate.of(2023, 7, 8); + // 调分账方法 + pileMerchantInfos.parallelStream().forEach(merchant -> { + orderBasicInfoService.orderSplittingOperations(merchant.getId()+"", yesterday.toString()); + }); + } }