From 988f3e47471c2e5e0755e0583683d7a37516cb7a60f0ab3857908270cf67008e Mon Sep 17 00:00:00 2001 From: yanglei Date: Fri, 16 Jan 2026 17:13:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=BB=9F=E8=AE=A1=E6=96=B0=E5=A2=9E=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeStatisticsController.java | 15 ++++- .../user/controller/EbikeOrderController.java | 2 +- .../user/controller/EbikeUserController.java | 7 ++- .../cdzy/user/service/EbikeOrderService.java | 2 +- .../service/impl/EbikeOrderServiceImpl.java | 63 +++++++++++++++---- 5 files changed, 70 insertions(+), 19 deletions(-) diff --git a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java index 73fc3b8..1f5176d 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java @@ -14,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Collections; +import java.util.Optional; + /** * 用户订单统计 控制层 * @@ -37,7 +40,17 @@ public class EbikeStatisticsController { public JsonResult getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) { long staffId = StpUtil.getLoginIdAsLong(); CommonStaffInfo staffInfo = StpUtil.getSession().getModel(String.valueOf(staffId), CommonStaffInfo.class); - dto.setOperatorId(staffInfo.getOperatorId()); + if (staffInfo == null) { + throw new EbikeException("当前用户信息不存在"); + } + boolean isSuperAdmin = Optional.ofNullable(staffInfo.getRoles()) + .orElse(Collections.emptyList()) + .stream() + .anyMatch(role -> "super_admin".equals(role.getRoleCode())); + // 判断是否超级管理员 + if (!isSuperAdmin) { + dto.setOperatorId(staffInfo.getOperatorId()); + } JsonResult jsonResult = userFeignClient.getOrderStatistics(dto); if (jsonResult.getCode() != Code.SUCCESS) { throw new EbikeException(jsonResult.getMessage()); diff --git a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java index 601ee19..d99b6f5 100644 --- a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java +++ b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java @@ -88,7 +88,7 @@ public class EbikeOrderController { */ @GetMapping("checkHistoryOrder") public JsonResult checkHistoryOrder(@Validated @NotNull(message = "用户id不能为空") @RequestParam("userId") Long userId) { - EbikeOrder userOrders = ebikeOrderService.checkHistoryOrder(userId); + EbikeOrderDetailVo userOrders = ebikeOrderService.checkHistoryOrder(userId); return JsonResult.success(userOrders); } diff --git a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeUserController.java b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeUserController.java index 8b13e97..9c2bf72 100644 --- a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeUserController.java +++ b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeUserController.java @@ -6,8 +6,8 @@ import com.cdzy.common.model.response.JsonResult; import com.cdzy.user.model.dto.EbikeUserPageDto; import com.cdzy.user.model.dto.UserValidateDto; import com.cdzy.user.model.dto.WechatInfoDto; -import com.cdzy.user.model.entity.EbikeOrder; import com.cdzy.user.model.entity.EbikeUser; +import com.cdzy.user.model.vo.EbikeOrderDetailVo; import com.cdzy.user.model.vo.EbikeUserVo; import com.cdzy.user.service.EbikeOrderService; import com.cdzy.user.service.EbikeUserRealInfoService; @@ -141,7 +141,7 @@ public class EbikeUserController { @PostMapping("deRegister") public JsonResult deRegister(@RequestBody EbikeUser ebikeUser) { // 需要检测用户是否还有未支付的订单,如果有则不能注销 - EbikeOrder unPayed = ebikeOrderTransactionService.checkHistoryOrder(ebikeUser.getUserId()); + EbikeOrderDetailVo unPayed = ebikeOrderTransactionService.checkHistoryOrder(ebikeUser.getUserId()); if (unPayed != null) { throw new EbikeException("用户还有未完成的订单,不能注销"); } @@ -194,7 +194,7 @@ public class EbikeUserController { * @return 分页对象 */ @PostMapping("page") - public JsonResult page(@RequestBody EbikeUserPageDto userPageDto) { + public JsonResult page(@RequestBody EbikeUserPageDto userPageDto) { Page list = ebikeUserService.queryPage(userPageDto); return JsonResult.success(list); } @@ -219,6 +219,7 @@ public class EbikeUserController { /** * 校验用户是否存在 + * * @param userId 用户id * @return true 存在 false 不存在 */ diff --git a/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java b/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java index d3cc2cd..8573e63 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java @@ -39,7 +39,7 @@ public interface EbikeOrderService extends IService { * * @param userId 用户id */ - EbikeOrder checkHistoryOrder(Long userId); + EbikeOrderDetailVo checkHistoryOrder(Long userId); /** * 订单发起退款 diff --git a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java index 119112d..fd0c71b 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java @@ -44,6 +44,7 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -89,7 +90,7 @@ public class EbikeOrderServiceImpl extends ServiceImpl details = ebikeOrderDetailService.getOrderDetailsByOrderId(ebikeOrderDetailVo.getOrderId()); + if (!CollectionUtils.isEmpty(details)) { + for (EbikePaymentCostDetailVo payDetailVo : details) { + //1-时长费用 2-起步费用 3-运营区调度费用 4-停车区外调度费用 5-禁停区调度费用 6-头盔使用费用 + switch (payDetailVo.getDetailType()) { + case 1 -> { + BigDecimal current = payDetailVo.getDetailAmount(); + ebikeOrderDetailVo.setUserDurationFee((current != null ? current : BigDecimal.ZERO)); + } + case 2 -> { + BigDecimal current = payDetailVo.getDetailAmount(); + ebikeOrderDetailVo.setUserBaseFee((current != null ? current : BigDecimal.ZERO)); + } + case 3, 4, 5 -> { + BigDecimal current = payDetailVo.getDetailAmount(); + ebikeOrderDetailVo.setUserDispatchFee((current != null ? current : BigDecimal.ZERO)); + } + case 6 -> { + BigDecimal current = payDetailVo.getDetailAmount(); + ebikeOrderDetailVo.setUserHelmetFee((current != null ? current : BigDecimal.ZERO)); + } + } + } + } + return ebikeOrderDetailVo; } @@ -321,9 +355,13 @@ public class EbikeOrderServiceImpl extends ServiceImpl details = ebikeOrderDetailService.getOrderDetailsByOrderId(orderId); - if (Objects.nonNull(details)) { + if (!CollectionUtils.isEmpty(details)) { for (EbikePaymentCostDetailVo payDetailVo : details) { //1-时长费用 2-起步费用 3-运营区调度费用 4-停车区外调度费用 5-禁停区调度费用 6-头盔使用费用 switch (payDetailVo.getDetailType()) { @@ -335,15 +373,7 @@ public class EbikeOrderServiceImpl extends ServiceImpl { - BigDecimal current = payDetailVo.getDetailAmount(); - ebikeOrderDetailVo.setUserDispatchFee((current != null ? current : BigDecimal.ZERO)); - } - case 4 -> { - BigDecimal current = payDetailVo.getDetailAmount(); - ebikeOrderDetailVo.setUserDispatchFee((current != null ? current : BigDecimal.ZERO)); - } - case 5 -> { + case 3, 4, 5 -> { BigDecimal current = payDetailVo.getDetailAmount(); ebikeOrderDetailVo.setUserDispatchFee((current != null ? current : BigDecimal.ZERO)); } @@ -546,4 +576,11 @@ public class EbikeOrderServiceImpl extends ServiceImpl