diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderSumAndCountDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderSumAndCountDto.java index 778a1fa9c..ea6f14236 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderSumAndCountDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderSumAndCountDto.java @@ -23,4 +23,9 @@ public class HardOrderSumAndCountDto { private List mchIds; + /** + * 退款成功 + */ + private Boolean isRefundSuccess; + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index 572a167c7..146651122 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -122,7 +122,10 @@ public interface HardOrderMapper extends PjcloudBaseMapper { List sumAndCount(@Param("dto") HardOrderSumAndCountDto dto); + List refundSumAndCount(@Param("dto") HardOrderSumAndCountDto refundDto); + List sumAndCountTotalByHourType(@Param("dto") HardOrderSumAndCountDto dto); HardZyCardSyncVo totalYearMonthDay(@Param("dto") HardOrderDto hardOrderDto); + } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderSyncServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderSyncServiceImpl.java index 45c7748b4..442e08873 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderSyncServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderSyncServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.bsd.pjcloud.admin.api.dto.UserInfo; +import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.hard.api.constant.HardTypeEnum; @@ -57,6 +59,7 @@ public class HardOrderSyncServiceImpl implements HardOrderSyncService { private final RemoteMchService remoteMchService; private final RemoteWalletSettingService walletSettingService; private final RemoteWalletService walletService; + private final RemoteUserService userService; @Override @Transactional(rollbackFor = Exception.class) @@ -84,7 +87,13 @@ public class HardOrderSyncServiceImpl implements HardOrderSyncService { createIdList.add(findOrder.getAndroidOrderCode()); continue; } - HardOrderEntity order = parseOrder(i, body.getHardwareId(), body.getMerchantId(), merchant.getDeptId()); + // 查询用户 + UserInfo userInfo = userService.getByUserId(i.getUserCode()).getData(); + if (ObjectUtil.isEmpty(userInfo)) { + log.error("|{}|同步安卓机离线订单,用户不存在:{}", TAG, JSON.toJSONString(i)); + continue; + } + HardOrderEntity order = parseOrder(i, body.getHardwareId(), merchant, merchant.getDeptId(), userInfo); HardParentCarEntity parentCar = parseParentCar(i, body.getMerchantId()); List carList = i.getCarList().stream().map(this::parseCar).toList(); @@ -168,12 +177,15 @@ public class HardOrderSyncServiceImpl implements HardOrderSyncService { return false; } - public HardOrderEntity parseOrder(OfflineOrder order, Long hardwareId, Long merchantId, Long merchantDeptId) { + public HardOrderEntity parseOrder(OfflineOrder order, Long hardwareId, MchManageVo mchDetail, Long merchantDeptId, UserInfo userInfo) { HardOrderEntity res = new HardOrderEntity(); res.setAndroidOrderCode(order.getUniqueCode()); res.setUserId(order.getUserCode()); + res.setUserDeptId(userInfo.getSysUser().getDeptId()); res.setHardId(hardwareId); - res.setMerchantId(merchantId); + res.setMerchantId(mchDetail.getId()); + res.setMerchantDeptId(mchDetail.getDeptId()); + res.setMerchantType(mchDetail.getTypes()); res.setDeptId(merchantDeptId); res.setSysType(order.getSysType().getType()); res.setWalletId(order.getWalletId()); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java index 5aee99170..dc63dd2d7 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java @@ -402,13 +402,16 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { if (ObjectUtil.isNotEmpty(dto.getWalletTypeId())) { refundDto.setWalletTypeId(dto.getWalletTypeId()); } - return hardOrderMapper.sumAndCount(refundDto); + return hardOrderMapper.refundSumAndCount(refundDto); }); // 消费净次数 CompletableFuture> profitFuture = CompletableFuture.supplyAsync(() -> { HardOrderSumAndCountDto refundDto = new HardOrderSumAndCountDto(); refundDto.setUserDeptIds(deptIds); - refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); + refundDto.setIsRefundSuccess(true); + List paySuccessCodes = new ArrayList<>(HardOrderStatusEnum.getPaySuccessCodes()); + paySuccessCodes.add(HardOrderStatusEnum.REFUND.getType()); + refundDto.setOrderStatusCodes(paySuccessCodes); if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { refundDto.setCreateTimeList(dto.getCreateTimeList()); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml index d984a1298..c4e7db046 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml @@ -312,6 +312,43 @@ sum(a.pay_price) as sum, count(0) as count from hard_order a + + a.del_flag = 0 + + and (a.refund_status is null or a.refund_status not in ('20')) + + + and a.order_status in + + #{v} + + + + and a.user_dept_id in + + #{v} + + + + and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]} + + + and a.merchant_id in + + #{v} + + + + group by a.user_dept_id + + +